playcademy 0.33.2 → 0.33.3-beta.1

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.27",
45
+ version: "0.0.28-beta.1",
46
46
  type: "module",
47
47
  exports: {
48
48
  "./server": {
@@ -138,6 +138,10 @@ var CLI_DEFAULT_OUTPUTS = {
138
138
  WORKER_BUNDLE: join4(WORKSPACE_NAME, "worker-bundle.js")
139
139
  };
140
140
 
141
+ // ../constants/src/embed.ts
142
+ var EMBED_PASS_TTL_MS = 60 * 1e3;
143
+ var EMBED_LAUNCH_TTL_MS = 12 * 60 * 60 * 1e3;
144
+
141
145
  // ../constants/src/platform.ts
142
146
  var ASSESSMENT_ASSET_MAX_BYTES = 4 * 1024 * 1024;
143
147
 
@@ -183,6 +187,9 @@ import {
183
187
  } from "colorette";
184
188
  import { colorize } from "json-colorizer";
185
189
 
190
+ // ../utils/src/ansi.ts
191
+ var isInteractive = typeof process !== "undefined" && process.stdout?.isTTY && !process.env.CI && process.env.TERM !== "dumb";
192
+
186
193
  // src/lib/core/error.ts
187
194
  import { bold, dim, redBright } from "colorette";
188
195
  import { ApiError, extractApiErrorInfo } from "@playcademy/sdk/internal";
@@ -227,9 +234,6 @@ process.stderr.write = (chunk, ...rest) => {
227
234
  // src/lib/core/errors.ts
228
235
  import { ApiError as ApiError2 } from "@playcademy/sdk/internal";
229
236
 
230
- // ../utils/src/ansi.ts
231
- var isInteractive = typeof process !== "undefined" && process.stdout?.isTTY && !process.env.CI && process.env.TERM !== "dumb";
232
-
233
237
  // ../utils/src/spinner.ts
234
238
  var SPINNER_FRAMES = [
235
239
  10251,
package/dist/cli.js CHANGED
@@ -300,16 +300,16 @@ var init_file_loader = __esm({
300
300
  });
301
301
 
302
302
  // src/lib/core/error.ts
303
- import { bold as bold2, dim as dim2, redBright } from "colorette";
303
+ import { bold as bold3, dim as dim3, redBright } from "colorette";
304
304
  import { ApiError, extractApiErrorInfo } from "@playcademy/sdk/internal";
305
305
 
306
306
  // src/lib/core/logger.ts
307
307
  import {
308
308
  blue,
309
309
  blueBright,
310
- bold,
310
+ bold as bold2,
311
311
  cyan,
312
- dim,
312
+ dim as dim2,
313
313
  gray,
314
314
  green,
315
315
  greenBright,
@@ -320,6 +320,50 @@ import {
320
320
  } from "colorette";
321
321
  import { colorize } from "json-colorizer";
322
322
 
323
+ // ../utils/src/ansi.ts
324
+ var colors = {
325
+ black: "\x1B[30m",
326
+ red: "\x1B[31m",
327
+ green: "\x1B[32m",
328
+ yellow: "\x1B[33m",
329
+ blue: "\x1B[34m",
330
+ magenta: "\x1B[35m",
331
+ cyan: "\x1B[36m",
332
+ white: "\x1B[37m",
333
+ gray: "\x1B[90m"
334
+ };
335
+ var styles = {
336
+ reset: "\x1B[0m",
337
+ bold: "\x1B[1m",
338
+ dim: "\x1B[2m",
339
+ italic: "\x1B[3m",
340
+ underline: "\x1B[4m"
341
+ };
342
+ var cursor = {
343
+ hide: "\x1B[?25l",
344
+ show: "\x1B[?25h",
345
+ up: (n) => `\x1B[${n}A`,
346
+ down: (n) => `\x1B[${n}B`,
347
+ forward: (n) => `\x1B[${n}C`,
348
+ back: (n) => `\x1B[${n}D`,
349
+ clearLine: "\x1B[K",
350
+ clearScreen: "\x1B[2J",
351
+ home: "\x1B[H"
352
+ };
353
+ function color(text, colorCode) {
354
+ return `${colorCode}${text}${styles.reset}`;
355
+ }
356
+ function dim(text) {
357
+ return color(text, styles.dim);
358
+ }
359
+ function bold(text) {
360
+ return color(text, styles.bold);
361
+ }
362
+ var isInteractive = typeof process !== "undefined" && process.stdout?.isTTY && !process.env.CI && process.env.TERM !== "dumb";
363
+ function stripAnsi(text) {
364
+ return text.replace(/\x1B\[[0-9;]*[a-zA-Z]/g, "");
365
+ }
366
+
323
367
  // src/lib/core/context.ts
324
368
  import { existsSync as existsSync2 } from "fs";
325
369
  import { resolve } from "path";
@@ -523,12 +567,8 @@ function customTransform(text) {
523
567
  return result;
524
568
  }
525
569
  function formatTable(data, title) {
526
- const ANSI_REGEX = /\u001B\[[0-9;]*m/g;
527
- function stripAnsi2(value) {
528
- return value.replace(ANSI_REGEX, "");
529
- }
530
570
  function visibleLength(value) {
531
- return stripAnsi2(value).length;
571
+ return stripAnsi(value).length;
532
572
  }
533
573
  function padCell(value, width) {
534
574
  const length = visibleLength(value);
@@ -560,7 +600,7 @@ function formatTable(data, title) {
560
600
  const bottomBorder = `\u2514${widths.map((w) => "\u2500".repeat(w + 2)).join("\u2534")}\u2518`;
561
601
  writeOut(topBorder);
562
602
  if (title) {
563
- const titleText = bold(title);
603
+ const titleText = bold2(title);
564
604
  const titlePadding = totalWidth - titleWidth - 1;
565
605
  const titleRow = `\u2502 ${titleText}${" ".repeat(titlePadding)}\u2502`;
566
606
  writeOut(titleRow);
@@ -584,7 +624,7 @@ var logger = {
584
624
  */
585
625
  info: (message, indent = 0) => {
586
626
  const spaces = " ".repeat(indent);
587
- writeOut(`${spaces}${blue("\u2139")} ${bold(customTransform(message))}`);
627
+ writeOut(`${spaces}${blue("\u2139")} ${bold2(customTransform(message))}`);
588
628
  },
589
629
  /**
590
630
  * Admonition - highlighted note/tip/warning box (Docusaurus-style)
@@ -599,7 +639,7 @@ var logger = {
599
639
  };
600
640
  const { color: color2 } = configs[type];
601
641
  writeBlank();
602
- writeOut(`${spaces}${color2("\u250C\u2500")} ${bold(color2(title.toUpperCase()))}`);
642
+ writeOut(`${spaces}${color2("\u250C\u2500")} ${bold2(color2(title.toUpperCase()))}`);
603
643
  if (lines && lines.length > 0) {
604
644
  lines.forEach((line) => {
605
645
  writeOut(`${spaces}${color2("\u2502")} ${customTransform(line)}`);
@@ -613,18 +653,18 @@ var logger = {
613
653
  */
614
654
  dim: (message, indent = 0) => {
615
655
  const spaces = " ".repeat(indent);
616
- writeOut(`${spaces}${dim(customTransform(message))}`);
656
+ writeOut(`${spaces}${dim2(customTransform(message))}`);
617
657
  },
618
658
  /**
619
659
  * Success message - operation completed successfully
620
660
  */
621
661
  success: (message, indent = 0) => {
622
662
  const spaces = " ".repeat(indent);
623
- writeOut(`${spaces}${green("\u2714")} ${bold(customTransform(message))}`);
663
+ writeOut(`${spaces}${green("\u2714")} ${bold2(customTransform(message))}`);
624
664
  },
625
665
  remark: (message, indent = 0) => {
626
666
  const spaces = " ".repeat(indent);
627
- writeOut(`${spaces}${bold(yellowBright("\u2726"))} ${bold(customTransform(message))}`);
667
+ writeOut(`${spaces}${bold2(yellowBright("\u2726"))} ${bold2(customTransform(message))}`);
628
668
  },
629
669
  /**
630
670
  * Error message - operation failed
@@ -635,14 +675,14 @@ var logger = {
635
675
  },
636
676
  bold: (message, indent = 0) => {
637
677
  const spaces = " ".repeat(indent);
638
- writeOut(`${spaces}${bold(customTransform(message))}`);
678
+ writeOut(`${spaces}${bold2(customTransform(message))}`);
639
679
  },
640
680
  /**
641
681
  * Warning message - something to be aware of
642
682
  */
643
683
  warn: (message, indent = 0) => {
644
684
  const spaces = " ".repeat(indent);
645
- writeErr(`${spaces}${yellow("\u26A0")} ${bold(customTransform(message))}`);
685
+ writeErr(`${spaces}${yellow("\u26A0")} ${bold2(customTransform(message))}`);
646
686
  },
647
687
  /**
648
688
  * Debug message - only shown when DEBUG env var is set
@@ -665,14 +705,14 @@ var logger = {
665
705
  */
666
706
  highlight: (message, indent = 0) => {
667
707
  const spaces = " ".repeat(indent);
668
- writeOut(bold(`${spaces}${cyan(customTransform(message))}`));
708
+ writeOut(bold2(`${spaces}${cyan(customTransform(message))}`));
669
709
  },
670
710
  /**
671
711
  * Aside message - for side information
672
712
  */
673
713
  aside: (message, indent = 0) => {
674
714
  const spaces = " ".repeat(indent);
675
- writeOut(`${spaces}${bold(customTransform(message))}`);
715
+ writeOut(`${spaces}${bold2(customTransform(message))}`);
676
716
  },
677
717
  /**
678
718
  * Data display - for structured data output
@@ -680,9 +720,9 @@ var logger = {
680
720
  data: (label, value, indent = 0) => {
681
721
  const spaces = " ".repeat(indent);
682
722
  if (value) {
683
- writeOut(`${spaces}${dim(`${label}:`)} ${bold(value)}`);
723
+ writeOut(`${spaces}${dim2(`${label}:`)} ${bold2(value)}`);
684
724
  } else {
685
- writeOut(`${spaces}${dim(label)}`);
725
+ writeOut(`${spaces}${dim2(label)}`);
686
726
  }
687
727
  },
688
728
  /**
@@ -706,9 +746,9 @@ var logger = {
706
746
  const spaces = " ".repeat(indent);
707
747
  const oldSize = formatSize(previousSize);
708
748
  const newSize = formatSize(currentSize);
709
- const delta = dim(`(${formatDelta(currentSize - previousSize)})`);
749
+ const delta = dim2(`(${formatDelta(currentSize - previousSize)})`);
710
750
  const value = `${red(oldSize)} \u2192 ${green(newSize)} ${delta}`;
711
- writeOut(`${spaces}${dim(`${label}:`)} ${bold(value)}`);
751
+ writeOut(`${spaces}${dim2(`${label}:`)} ${bold2(value)}`);
712
752
  },
713
753
  /**
714
754
  * Format an old → new change as `red(from) → green(to)`, optionally prefixed
@@ -718,7 +758,7 @@ var logger = {
718
758
  */
719
759
  change: (from, to, label) => {
720
760
  const transition = `${red(from)} \u2192 ${green(to)}`;
721
- return label ? `${bold(label)} ${transition}` : transition;
761
+ return label ? `${bold2(label)} ${transition}` : transition;
722
762
  },
723
763
  /**
724
764
  * Pretty-printed, colorized JSON for humans reading the terminal. Like other
@@ -812,7 +852,7 @@ function displayApiError(error, indent) {
812
852
  const spaces = " ".repeat(indent);
813
853
  const errorInfo = extractApiErrorInfo(error);
814
854
  if (!errorInfo) {
815
- console.error(`${spaces}${redBright("\u2716")} ${bold2(error.message)}`);
855
+ console.error(`${spaces}${redBright("\u2716")} ${bold3(error.message)}`);
816
856
  if (process.env.DEBUG && error.details) {
817
857
  console.error("");
818
858
  logger.json(error.details, indent + 1);
@@ -830,7 +870,7 @@ function displayApiError(error, indent) {
830
870
  errorHeader += ` ${redBright(`[${errorCode}]`)}`;
831
871
  }
832
872
  errorHeader += `: ${displayMessage} ${redBright(`[${statusCode}]`)}`;
833
- console.error(`${spaces}${redBright("\u2716")} ${bold2(errorHeader)}`);
873
+ console.error(`${spaces}${redBright("\u2716")} ${bold3(errorHeader)}`);
834
874
  if (process.env.DEBUG) {
835
875
  const detailsToShow = embeddedJson || error.details || errorInfo.details;
836
876
  if (detailsToShow) {
@@ -841,23 +881,23 @@ function displayApiError(error, indent) {
841
881
  }
842
882
  function displayConfigError(error, indent) {
843
883
  const spaces = " ".repeat(indent);
844
- console.error(`${spaces}${redBright("\u2716")} ${bold2("Configuration Error")}`);
884
+ console.error(`${spaces}${redBright("\u2716")} ${bold3("Configuration Error")}`);
845
885
  console.error("");
846
886
  console.error(`${spaces} ${error.message}`);
847
887
  if (error.field) {
848
- console.error(` ${spaces} ${dim2("Field:")} ${error.field}`);
888
+ console.error(` ${spaces} ${dim3("Field:")} ${error.field}`);
849
889
  }
850
890
  if (error.suggestion) {
851
- console.error(` ${spaces} ${dim2("Fix:")} ${error.suggestion}`);
891
+ console.error(` ${spaces} ${dim3("Fix:")} ${error.suggestion}`);
852
892
  }
853
893
  }
854
894
  function displayGenericError(error, indent) {
855
895
  const spaces = " ".repeat(indent);
856
- console.error(`${spaces}${redBright("\u2716")} ${bold2(error.message)}`);
896
+ console.error(`${spaces}${redBright("\u2716")} ${bold3(error.message)}`);
857
897
  if (error.stack && process.env.DEBUG) {
858
- console.error(`${spaces} ${dim2("Stack:")}`);
898
+ console.error(`${spaces} ${dim3("Stack:")}`);
859
899
  console.error(
860
- error.stack.split("\n").slice(1).map((line) => `${spaces} ${dim2(line)}`).join("\n")
900
+ error.stack.split("\n").slice(1).map((line) => `${spaces} ${dim3(line)}`).join("\n")
861
901
  );
862
902
  }
863
903
  }
@@ -875,7 +915,7 @@ function formatError(error, indent = 0) {
875
915
  displayGenericError(error, indent);
876
916
  return;
877
917
  }
878
- console.error(`${spaces}${redBright("\u2716")} ${bold2(String(error))}`);
918
+ console.error(`${spaces}${redBright("\u2716")} ${bold3(String(error))}`);
879
919
  }
880
920
  function isExitPromptError(error) {
881
921
  return error instanceof Error && error.name === "ExitPromptError" && error.message.includes("force closed the prompt");
@@ -914,50 +954,6 @@ import { execSync as execSync5 } from "child_process";
914
954
  import { writeFileSync as writeFileSync10 } from "fs";
915
955
  import { resolve as resolve9 } from "path";
916
956
 
917
- // ../utils/src/ansi.ts
918
- var colors = {
919
- black: "\x1B[30m",
920
- red: "\x1B[31m",
921
- green: "\x1B[32m",
922
- yellow: "\x1B[33m",
923
- blue: "\x1B[34m",
924
- magenta: "\x1B[35m",
925
- cyan: "\x1B[36m",
926
- white: "\x1B[37m",
927
- gray: "\x1B[90m"
928
- };
929
- var styles = {
930
- reset: "\x1B[0m",
931
- bold: "\x1B[1m",
932
- dim: "\x1B[2m",
933
- italic: "\x1B[3m",
934
- underline: "\x1B[4m"
935
- };
936
- var cursor = {
937
- hide: "\x1B[?25l",
938
- show: "\x1B[?25h",
939
- up: (n) => `\x1B[${n}A`,
940
- down: (n) => `\x1B[${n}B`,
941
- forward: (n) => `\x1B[${n}C`,
942
- back: (n) => `\x1B[${n}D`,
943
- clearLine: "\x1B[K",
944
- clearScreen: "\x1B[2J",
945
- home: "\x1B[H"
946
- };
947
- function color(text, colorCode) {
948
- return `${colorCode}${text}${styles.reset}`;
949
- }
950
- function dim3(text) {
951
- return color(text, styles.dim);
952
- }
953
- function bold3(text) {
954
- return color(text, styles.bold);
955
- }
956
- var isInteractive = typeof process !== "undefined" && process.stdout?.isTTY && !process.env.CI && process.env.TERM !== "dumb";
957
- function stripAnsi(text) {
958
- return text.replace(/\x1B\[[0-9;]*[a-zA-Z]/g, "");
959
- }
960
-
961
957
  // ../utils/src/spinner.ts
962
958
  import { stdout } from "process";
963
959
  var SPINNER_FRAMES = [
@@ -1116,7 +1112,7 @@ function indentLines(str, prefix) {
1116
1112
  }
1117
1113
  function formatDuration(ms) {
1118
1114
  const duration = ms < 1e3 ? `${Math.round(ms)}ms` : `${(ms / 1e3).toFixed(2)}s`;
1119
- return dim3(`[${duration}]`);
1115
+ return dim(`[${duration}]`);
1120
1116
  }
1121
1117
  async function runStep(text, action, successText, options) {
1122
1118
  const effectiveAction = action ?? (async () => void 0);
@@ -1140,7 +1136,7 @@ async function runStep(text, action, successText, options) {
1140
1136
  } else {
1141
1137
  finalSuccessText = successText ?? text;
1142
1138
  }
1143
- finalSuccessText = bold3(finalSuccessText);
1139
+ finalSuccessText = bold(finalSuccessText);
1144
1140
  if (hasAction) {
1145
1141
  const durationText = formatDuration(duration);
1146
1142
  finalSuccessText = `${finalSuccessText} ${durationText}`;
@@ -1208,7 +1204,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
1208
1204
  // ../better-auth/package.json
1209
1205
  var package_default = {
1210
1206
  name: "@playcademy/better-auth",
1211
- version: "0.0.27",
1207
+ version: "0.0.28-beta.1",
1212
1208
  type: "module",
1213
1209
  exports: {
1214
1210
  "./server": {
@@ -1372,6 +1368,10 @@ var CONFIG_FILE_NAMES = [
1372
1368
  "playcademy.config.mjs"
1373
1369
  ];
1374
1370
 
1371
+ // ../constants/src/embed.ts
1372
+ var EMBED_PASS_TTL_MS = 60 * 1e3;
1373
+ var EMBED_LAUNCH_TTL_MS = 12 * 60 * 60 * 1e3;
1374
+
1375
1375
  // ../constants/src/platform.ts
1376
1376
  var ASSESSMENT_ASSET_MAX_BYTES = 4 * 1024 * 1024;
1377
1377
 
@@ -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.2";
3048
+ var cliVersion = false ? "0.0.0-dev" : "0.33.3-beta.1";
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.27",
24
+ version: "0.0.28-beta.1",
25
25
  type: "module",
26
26
  exports: {
27
27
  "./server": {
@@ -257,6 +257,10 @@ var CONFIG_FILE_NAMES = [
257
257
  "playcademy.config.mjs"
258
258
  ];
259
259
 
260
+ // ../constants/src/embed.ts
261
+ var EMBED_PASS_TTL_MS = 60 * 1e3;
262
+ var EMBED_LAUNCH_TTL_MS = 12 * 60 * 60 * 1e3;
263
+
260
264
  // ../constants/src/domains.ts
261
265
  var PLAYCADEMY_DOMAINS = {
262
266
  /** Primary domain (hub, landing pages) */