playcademy 0.28.1-beta.4 → 0.28.1-beta.5

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
@@ -44,7 +44,7 @@ var GAME_API_ROUTES_DIRECTORY = join2(GAME_SERVER_ROOT_DIRECTORY, "api");
44
44
  // ../better-auth/package.json
45
45
  var package_default = {
46
46
  name: "@playcademy/better-auth",
47
- version: "0.0.21-beta.4",
47
+ version: "0.0.21-beta.5",
48
48
  type: "module",
49
49
  exports: {
50
50
  "./server": {
package/dist/cli.js CHANGED
@@ -1207,7 +1207,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
1207
1207
  // ../better-auth/package.json
1208
1208
  var package_default = {
1209
1209
  name: "@playcademy/better-auth",
1210
- version: "0.0.21-beta.4",
1210
+ version: "0.0.21-beta.5",
1211
1211
  type: "module",
1212
1212
  exports: {
1213
1213
  "./server": {
@@ -3009,7 +3009,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync5, readFileSync as re
3009
3009
  import { join as join13 } from "node:path";
3010
3010
 
3011
3011
  // src/version.ts
3012
- var cliVersion = false ? "0.0.0-dev" : "0.28.1-beta.4";
3012
+ var cliVersion = false ? "0.0.0-dev" : "0.28.1-beta.5";
3013
3013
 
3014
3014
  // src/lib/init/database.ts
3015
3015
  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.21-beta.4",
24
+ version: "0.0.21-beta.5",
25
25
  type: "module",
26
26
  exports: {
27
27
  "./server": {
package/dist/db.js CHANGED
@@ -2335,7 +2335,7 @@ var GAME_API_ROUTES_DIRECTORY = join2(GAME_SERVER_ROOT_DIRECTORY, "api");
2335
2335
  // ../better-auth/package.json
2336
2336
  var package_default = {
2337
2337
  name: "@playcademy/better-auth",
2338
- version: "0.0.21-beta.4",
2338
+ version: "0.0.21-beta.5",
2339
2339
  type: "module",
2340
2340
  exports: {
2341
2341
  "./server": {
package/dist/index.js CHANGED
@@ -2346,7 +2346,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
2346
2346
  // ../better-auth/package.json
2347
2347
  var package_default = {
2348
2348
  name: "@playcademy/better-auth",
2349
- version: "0.0.21-beta.4",
2349
+ version: "0.0.21-beta.5",
2350
2350
  type: "module",
2351
2351
  exports: {
2352
2352
  "./server": {
@@ -6396,7 +6396,7 @@ import { existsSync as existsSync10, mkdirSync as mkdirSync2, readFileSync as re
6396
6396
  import { join as join13 } from "node:path";
6397
6397
 
6398
6398
  // src/version.ts
6399
- var cliVersion = false ? "0.0.0-dev" : "0.28.1-beta.4";
6399
+ var cliVersion = false ? "0.0.0-dev" : "0.28.1-beta.5";
6400
6400
 
6401
6401
  // src/lib/init/database.ts
6402
6402
  var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
@@ -1,7 +1,7 @@
1
1
  {
2
- "cliVersion": "0.28.1-beta.4",
3
- "sdkVersion": "0.16.1-beta.4",
4
- "runtimeBuildId": "0b303f7737b5",
5
- "inputFingerprint": "0b303f7737b5afa41bd3b95ecc9825a9142d651a68e0a1017f25ef6005db378d",
2
+ "cliVersion": "0.28.1-beta.5",
3
+ "sdkVersion": "0.16.1-beta.5",
4
+ "runtimeBuildId": "d0e4e78d35dc",
5
+ "inputFingerprint": "d0e4e78d35dcf41f6d3b01ad3494d9cee07d6e462082ca35a8c29b760b0024f0",
6
6
  "entry": "index.js"
7
7
  }
@@ -367,10 +367,33 @@ var init_constants2 = __esm({
367
367
  });
368
368
 
369
369
  // ../sdk/src/messaging.ts
370
- var PlaycademyMessaging, messaging;
370
+ function isFromParentWindow(event) {
371
+ return globalThis.window.parent !== globalThis.window && event.source === globalThis.window.parent;
372
+ }
373
+ var MESSAGE_DIRECTION, PlaycademyMessaging, messaging;
371
374
  var init_messaging = __esm({
372
375
  "../sdk/src/messaging.ts"() {
373
376
  "use strict";
377
+ MESSAGE_DIRECTION = {
378
+ ["PLAYCADEMY_INIT" /* INIT */]: "launcher-to-game",
379
+ ["PLAYCADEMY_TOKEN_REFRESH" /* TOKEN_REFRESH */]: "launcher-to-game",
380
+ ["PLAYCADEMY_PAUSE" /* PAUSE */]: "launcher-to-game",
381
+ ["PLAYCADEMY_RESUME" /* RESUME */]: "launcher-to-game",
382
+ ["PLAYCADEMY_FORCE_EXIT" /* FORCE_EXIT */]: "launcher-to-game",
383
+ ["PLAYCADEMY_OVERLAY" /* OVERLAY */]: "launcher-to-game",
384
+ ["PLAYCADEMY_READY" /* READY */]: "game-to-launcher",
385
+ ["PLAYCADEMY_INIT_ERROR" /* INIT_ERROR */]: "game-to-launcher",
386
+ ["PLAYCADEMY_EXIT" /* EXIT */]: "game-to-launcher",
387
+ ["PLAYCADEMY_TELEMETRY" /* TELEMETRY */]: "game-to-launcher",
388
+ ["PLAYCADEMY_KEY_EVENT" /* KEY_EVENT */]: "game-to-launcher",
389
+ ["PLAYCADEMY_DEMO_END" /* DEMO_END */]: "game-to-launcher",
390
+ ["PLAYCADEMY_TIMEBACK_HEARTBEAT_RELAY" /* TIMEBACK_HEARTBEAT_RELAY */]: "game-to-launcher",
391
+ ["PLAYCADEMY_TIMEBACK_ACTIVITY_START" /* TIMEBACK_ACTIVITY_START */]: "game-to-launcher",
392
+ ["PLAYCADEMY_TIMEBACK_ACTIVITY_END" /* TIMEBACK_ACTIVITY_END */]: "game-to-launcher",
393
+ ["PLAYCADEMY_CHECKPOINT" /* CHECKPOINT */]: "game-to-launcher",
394
+ ["PLAYCADEMY_AUTH_STATE_CHANGE" /* AUTH_STATE_CHANGE */]: "unscoped",
395
+ ["PLAYCADEMY_AUTH_CALLBACK" /* AUTH_CALLBACK */]: "unscoped"
396
+ };
374
397
  PlaycademyMessaging = class {
375
398
  /**
376
399
  * Internal storage for message listeners.
@@ -480,12 +503,17 @@ var init_messaging = __esm({
480
503
  * })
481
504
  * ```
482
505
  */
483
- listen(type, handler) {
506
+ listen(type, handler, options) {
507
+ const gateToParent = options?.fromParent ?? MESSAGE_DIRECTION[type] === "launcher-to-game";
484
508
  function postMessageListener(event) {
485
509
  const messageEvent = event;
486
- if (messageEvent.data?.type === type) {
487
- handler(messageEvent.data.payload || messageEvent.data);
510
+ if (messageEvent.data?.type !== type) {
511
+ return;
488
512
  }
513
+ if (gateToParent && !isFromParentWindow(messageEvent)) {
514
+ return;
515
+ }
516
+ handler(messageEvent.data.payload || messageEvent.data);
489
517
  }
490
518
  function customEventListener(event) {
491
519
  handler(event.detail);
@@ -599,23 +627,7 @@ var init_messaging = __esm({
599
627
  */
600
628
  getMessagingContext(eventType) {
601
629
  const isIframe = typeof globalThis.window !== "undefined" && globalThis.self !== window.top;
602
- const iframeToParentEvents = [
603
- "PLAYCADEMY_READY" /* READY */,
604
- // "I'm loaded and ready"
605
- "PLAYCADEMY_INIT_ERROR" /* INIT_ERROR */,
606
- // "SDK init failed"
607
- "PLAYCADEMY_EXIT" /* EXIT */,
608
- // "Please close me"
609
- "PLAYCADEMY_TELEMETRY" /* TELEMETRY */,
610
- // "Here's my performance data"
611
- "PLAYCADEMY_KEY_EVENT" /* KEY_EVENT */,
612
- // Key events like Escape pressed inside game
613
- "PLAYCADEMY_DEMO_END" /* DEMO_END */,
614
- // "The demo boundary has been reached"
615
- "PLAYCADEMY_TIMEBACK_HEARTBEAT_RELAY" /* TIMEBACK_HEARTBEAT_RELAY */
616
- // "Relay my latest TimeBack heartbeat"
617
- ];
618
- const shouldUsePostMessage = isIframe && iframeToParentEvents.includes(eventType);
630
+ const shouldUsePostMessage = isIframe && MESSAGE_DIRECTION[eventType] === "game-to-launcher";
619
631
  return {
620
632
  shouldUsePostMessage,
621
633
  target: shouldUsePostMessage ? window.parent : void 0,
@@ -731,11 +743,29 @@ var init_messaging = __esm({
731
743
  }
732
744
  });
733
745
 
746
+ // ../sdk/src/core/launch/handshake.ts
747
+ var init_handshake = __esm({
748
+ "../sdk/src/core/launch/handshake.ts"() {
749
+ "use strict";
750
+ init_messaging();
751
+ }
752
+ });
753
+
754
+ // ../sdk/src/core/launch/context.ts
755
+ var init_context = __esm({
756
+ "../sdk/src/core/launch/context.ts"() {
757
+ "use strict";
758
+ init_messaging();
759
+ init_handshake();
760
+ }
761
+ });
762
+
734
763
  // ../sdk/src/core/static/init.ts
735
764
  var init_init = __esm({
736
765
  "../sdk/src/core/static/init.ts"() {
737
766
  "use strict";
738
767
  init_messaging();
768
+ init_context();
739
769
  }
740
770
  });
741
771
 
@@ -1034,6 +1064,101 @@ var init_demo = __esm({
1034
1064
  }
1035
1065
  });
1036
1066
 
1067
+ // ../utils/src/error.ts
1068
+ var init_error = __esm({
1069
+ "../utils/src/error.ts"() {
1070
+ }
1071
+ });
1072
+
1073
+ // ../sdk/src/core/launch/exclusivity.ts
1074
+ var init_exclusivity = __esm({
1075
+ "../sdk/src/core/launch/exclusivity.ts"() {
1076
+ "use strict";
1077
+ }
1078
+ });
1079
+
1080
+ // ../sdk/src/core/launch/guards.ts
1081
+ var init_guards2 = __esm({
1082
+ "../sdk/src/core/launch/guards.ts"() {
1083
+ "use strict";
1084
+ init_guards();
1085
+ }
1086
+ });
1087
+
1088
+ // ../sdk/src/core/launch/resume-store.ts
1089
+ var init_resume_store = __esm({
1090
+ "../sdk/src/core/launch/resume-store.ts"() {
1091
+ "use strict";
1092
+ init_error();
1093
+ }
1094
+ });
1095
+
1096
+ // ../sdk/src/core/launch/session.ts
1097
+ var init_session = __esm({
1098
+ "../sdk/src/core/launch/session.ts"() {
1099
+ "use strict";
1100
+ init_error();
1101
+ init_messaging();
1102
+ init_errors();
1103
+ init_handshake();
1104
+ }
1105
+ });
1106
+
1107
+ // ../utils/src/uuid.ts
1108
+ function isValidUUID(value) {
1109
+ if (!value || typeof value !== "string") {
1110
+ return false;
1111
+ }
1112
+ return UUID_REGEX.test(value);
1113
+ }
1114
+ var UUID_REGEX;
1115
+ var init_uuid = __esm({
1116
+ "../utils/src/uuid.ts"() {
1117
+ UUID_REGEX = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
1118
+ }
1119
+ });
1120
+
1121
+ // ../sdk/src/core/timeback/keepalive.ts
1122
+ var init_keepalive = __esm({
1123
+ "../sdk/src/core/timeback/keepalive.ts"() {
1124
+ "use strict";
1125
+ init_src();
1126
+ }
1127
+ });
1128
+
1129
+ // ../sdk/src/core/timeback/activity-tracker.ts
1130
+ var DEFAULT_PAUSED_HEARTBEAT_TIMEOUT_MS, DEFAULT_INACTIVITY_TIMEOUT_MS;
1131
+ var init_activity_tracker = __esm({
1132
+ "../sdk/src/core/timeback/activity-tracker.ts"() {
1133
+ "use strict";
1134
+ init_src();
1135
+ init_uuid();
1136
+ init_messaging();
1137
+ init_errors();
1138
+ init_exclusivity();
1139
+ init_keepalive();
1140
+ DEFAULT_PAUSED_HEARTBEAT_TIMEOUT_MS = 10 * 60 * 1e3;
1141
+ DEFAULT_INACTIVITY_TIMEOUT_MS = 10 * 60 * 1e3;
1142
+ }
1143
+ });
1144
+
1145
+ // ../sdk/src/namespaces/game/embed.ts
1146
+ var init_embed = __esm({
1147
+ "../sdk/src/namespaces/game/embed.ts"() {
1148
+ "use strict";
1149
+ init_src();
1150
+ init_error();
1151
+ init_assert();
1152
+ init_errors();
1153
+ init_exclusivity();
1154
+ init_guards2();
1155
+ init_resume_store();
1156
+ init_session();
1157
+ init_activity_tracker();
1158
+ init_keepalive();
1159
+ }
1160
+ });
1161
+
1037
1162
  // ../sdk/src/core/auth/utils.ts
1038
1163
  var init_utils = __esm({
1039
1164
  "../sdk/src/core/auth/utils.ts"() {
@@ -1081,6 +1206,7 @@ var init_login2 = __esm({
1081
1206
  var init_identity2 = __esm({
1082
1207
  "../sdk/src/namespaces/game/identity.ts"() {
1083
1208
  "use strict";
1209
+ init_assert();
1084
1210
  init_login2();
1085
1211
  init_errors();
1086
1212
  }
@@ -1098,6 +1224,7 @@ var init_runtime = __esm({
1098
1224
  var init_scores = __esm({
1099
1225
  "../sdk/src/namespaces/game/scores.ts"() {
1100
1226
  "use strict";
1227
+ init_assert();
1101
1228
  }
1102
1229
  });
1103
1230
 
@@ -1108,33 +1235,6 @@ var init_ttl_cache = __esm({
1108
1235
  }
1109
1236
  });
1110
1237
 
1111
- // ../utils/src/uuid.ts
1112
- function isValidUUID(value) {
1113
- if (!value || typeof value !== "string") {
1114
- return false;
1115
- }
1116
- return UUID_REGEX.test(value);
1117
- }
1118
- var UUID_REGEX;
1119
- var init_uuid = __esm({
1120
- "../utils/src/uuid.ts"() {
1121
- UUID_REGEX = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
1122
- }
1123
- });
1124
-
1125
- // ../sdk/src/core/timeback/activity-tracker.ts
1126
- var DEFAULT_PAUSED_HEARTBEAT_TIMEOUT_MS, DEFAULT_INACTIVITY_TIMEOUT_MS;
1127
- var init_activity_tracker = __esm({
1128
- "../sdk/src/core/timeback/activity-tracker.ts"() {
1129
- "use strict";
1130
- init_src();
1131
- init_uuid();
1132
- init_messaging();
1133
- DEFAULT_PAUSED_HEARTBEAT_TIMEOUT_MS = 10 * 60 * 1e3;
1134
- DEFAULT_INACTIVITY_TIMEOUT_MS = 10 * 60 * 1e3;
1135
- }
1136
- });
1137
-
1138
1238
  // ../sdk/src/core/timeback/user.ts
1139
1239
  var init_user = __esm({
1140
1240
  "../sdk/src/core/timeback/user.ts"() {
@@ -1161,6 +1261,7 @@ var init_timeback2 = __esm({
1161
1261
  init_src();
1162
1262
  init_assert();
1163
1263
  init_guards();
1264
+ init_exclusivity();
1164
1265
  init_engine();
1165
1266
  ASSESSMENTS_ROUTE = TIMEBACK_ROUTES.ASSESSMENTS;
1166
1267
  }
@@ -1180,6 +1281,7 @@ var init_game2 = __esm({
1180
1281
  "use strict";
1181
1282
  init_backend();
1182
1283
  init_demo();
1284
+ init_embed();
1183
1285
  init_identity2();
1184
1286
  init_runtime();
1185
1287
  init_scores();
@@ -1202,6 +1304,14 @@ var init_strategies = __esm({
1202
1304
  }
1203
1305
  });
1204
1306
 
1307
+ // ../sdk/src/core/launch/checkpoint.ts
1308
+ var init_checkpoint = __esm({
1309
+ "../sdk/src/core/launch/checkpoint.ts"() {
1310
+ "use strict";
1311
+ init_messaging();
1312
+ }
1313
+ });
1314
+
1205
1315
  // ../sdk/src/core/transport/retry.ts
1206
1316
  var init_retry = __esm({
1207
1317
  "../sdk/src/core/transport/retry.ts"() {
@@ -1236,6 +1346,7 @@ var init_base = __esm({
1236
1346
  init_strategies();
1237
1347
  init_utils();
1238
1348
  init_errors();
1349
+ init_checkpoint();
1239
1350
  init_transport();
1240
1351
  init_users();
1241
1352
  init_version();
@@ -1693,15 +1804,15 @@ var init_parseUtil = __esm({
1693
1804
  message: issueData.message
1694
1805
  };
1695
1806
  }
1696
- let errorMessage = "";
1807
+ let errorMessage2 = "";
1697
1808
  const maps = errorMaps.filter((m) => !!m).slice().reverse();
1698
1809
  for (const map of maps) {
1699
- errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;
1810
+ errorMessage2 = map(fullIssue, { data, defaultError: errorMessage2 }).message;
1700
1811
  }
1701
1812
  return {
1702
1813
  ...issueData,
1703
1814
  path: fullPath,
1704
- message: errorMessage
1815
+ message: errorMessage2
1705
1816
  };
1706
1817
  };
1707
1818
  EMPTY_PATH = [];
@@ -6510,9 +6621,9 @@ var init_list = __esm({
6510
6621
  // ../edge-play/src/game/lib/metadata.ts
6511
6622
  function getRuntimeMetadata() {
6512
6623
  return {
6513
- cliVersion: true ? "0.28.1-beta.4" : "0.0.0-dev",
6514
- sdkVersion: true ? "0.16.1-beta.4" : "0.0.0-dev",
6515
- buildId: true ? "0b303f7737b5" : "dev-source"
6624
+ cliVersion: true ? "0.28.1-beta.5" : "0.0.0-dev",
6625
+ sdkVersion: true ? "0.16.1-beta.5" : "0.0.0-dev",
6626
+ buildId: true ? "d0e4e78d35dc" : "dev-source"
6516
6627
  };
6517
6628
  }
6518
6629
  var init_metadata = __esm({
@@ -9107,28 +9218,28 @@ async function verifyGameToken(gameToken, options) {
9107
9218
  body: JSON.stringify({ token: gameToken })
9108
9219
  });
9109
9220
  if (!response.ok) {
9110
- let errorMessage = "Unknown error";
9221
+ let errorMessage2 = "Unknown error";
9111
9222
  try {
9112
9223
  const data = await response.json();
9113
9224
  const errorField = data.error || data.message;
9114
9225
  if (typeof errorField === "string") {
9115
- errorMessage = errorField;
9226
+ errorMessage2 = errorField;
9116
9227
  } else if (errorField && typeof errorField === "object") {
9117
9228
  const errorObj = errorField;
9118
9229
  if ("message" in errorObj && typeof errorObj.message === "string") {
9119
- errorMessage = errorObj.message;
9230
+ errorMessage2 = errorObj.message;
9120
9231
  if ("code" in errorObj && typeof errorObj.code === "string") {
9121
- errorMessage = `[${errorObj.code}] ${errorMessage}`;
9232
+ errorMessage2 = `[${errorObj.code}] ${errorMessage2}`;
9122
9233
  }
9123
9234
  } else {
9124
- errorMessage = JSON.stringify(errorField);
9235
+ errorMessage2 = JSON.stringify(errorField);
9125
9236
  }
9126
9237
  }
9127
9238
  } catch {
9128
- errorMessage = response.statusText || "Unknown error";
9239
+ errorMessage2 = response.statusText || "Unknown error";
9129
9240
  }
9130
9241
  throw new Error(
9131
- `[Playcademy SDK] Token verification failed: ${response.status} ${errorMessage}`
9242
+ `[Playcademy SDK] Token verification failed: ${response.status} ${errorMessage2}`
9132
9243
  );
9133
9244
  }
9134
9245
  const result = await response.json();
@@ -1,7 +1,7 @@
1
1
  {
2
- "cliVersion": "0.28.1-beta.4",
3
- "sdkVersion": "0.16.1-beta.4",
4
- "runtimeBuildId": "0b303f7737b5",
5
- "inputFingerprint": "0b303f7737b5afa41bd3b95ecc9825a9142d651a68e0a1017f25ef6005db378d",
2
+ "cliVersion": "0.28.1-beta.5",
3
+ "sdkVersion": "0.16.1-beta.5",
4
+ "runtimeBuildId": "d0e4e78d35dc",
5
+ "inputFingerprint": "d0e4e78d35dcf41f6d3b01ad3494d9cee07d6e462082ca35a8c29b760b0024f0",
6
6
  "entry": "index.js"
7
7
  }
package/dist/utils.js CHANGED
@@ -383,7 +383,7 @@ var DASHBOARD_API_ROUTES_DIRECTORY = "api";
383
383
  // ../better-auth/package.json
384
384
  var package_default = {
385
385
  name: "@playcademy/better-auth",
386
- version: "0.0.21-beta.4",
386
+ version: "0.0.21-beta.5",
387
387
  type: "module",
388
388
  exports: {
389
389
  "./server": {
@@ -2794,7 +2794,7 @@ import { existsSync as existsSync9, mkdirSync as mkdirSync2, writeFileSync as wr
2794
2794
  import { dirname as dirname4, join as join14 } from "node:path";
2795
2795
 
2796
2796
  // src/version.ts
2797
- var cliVersion = false ? "0.0.0-dev" : "0.28.1-beta.4";
2797
+ var cliVersion = false ? "0.0.0-dev" : "0.28.1-beta.5";
2798
2798
 
2799
2799
  // src/lib/build/binary-resource.ts
2800
2800
  function writeFileTree(baseDir, files) {
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var cliVersion = false ? "0.0.0-dev" : "0.28.1-beta.4";
2
+ var cliVersion = false ? "0.0.0-dev" : "0.28.1-beta.5";
3
3
  export {
4
4
  cliVersion
5
5
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "playcademy",
3
- "version": "0.28.1-beta.4",
3
+ "version": "0.28.1-beta.5",
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.16.1-beta.4",
58
+ "@playcademy/sdk": "0.16.1-beta.5",
59
59
  "chokidar": "^4.0.3",
60
60
  "colorette": "^2.0.20",
61
61
  "commander": "^14.0.1",