playcademy 0.19.6 → 0.19.7

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/cli.js CHANGED
@@ -3021,7 +3021,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync5, readFileSync as re
3021
3021
  import { join as join13 } from "node:path";
3022
3022
 
3023
3023
  // src/version.ts
3024
- var cliVersion = false ? "0.0.0-dev" : "0.19.6";
3024
+ var cliVersion = false ? "0.0.0-dev" : "0.19.7";
3025
3025
 
3026
3026
  // src/lib/init/database.ts
3027
3027
  var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
package/dist/index.js CHANGED
@@ -4031,7 +4031,7 @@ import { existsSync as existsSync9, mkdirSync as mkdirSync2, readFileSync as rea
4031
4031
  import { join as join13 } from "node:path";
4032
4032
 
4033
4033
  // src/version.ts
4034
- var cliVersion = false ? "0.0.0-dev" : "0.19.6";
4034
+ var cliVersion = false ? "0.0.0-dev" : "0.19.7";
4035
4035
 
4036
4036
  // src/lib/init/database.ts
4037
4037
  var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
@@ -13403,9 +13403,51 @@ ${error.suggestion}` : error.message;
13403
13403
  return hostname.trim().toLowerCase();
13404
13404
  }
13405
13405
 
13406
+ // src/lib/upgrade/channel.ts
13407
+ import { mkdir as mkdir6, readFile as readFile7, writeFile as writeFile5 } from "node:fs/promises";
13408
+ import { join as join42 } from "node:path";
13409
+ var RELEASE_CHANNELS = ["stable", "beta"];
13410
+ var CDN_BASE_URLS = {
13411
+ stable: "https://cdn.playcademy.net/cli",
13412
+ beta: "https://cdn.dev.playcademy.net/cli"
13413
+ };
13414
+ function getDownloadBaseUrl(channel) {
13415
+ return CDN_BASE_URLS[channel];
13416
+ }
13417
+ function getLatestVersionUrl(channel) {
13418
+ return `${getDownloadBaseUrl(channel)}/latest/version.txt`;
13419
+ }
13420
+ var CHANNEL_FILE = "channel";
13421
+ function getChannelFilePath() {
13422
+ return join42(CLI_USER_DIRECTORIES.CONFIG, CHANNEL_FILE);
13423
+ }
13424
+ function channelFromVersion(version3) {
13425
+ return version3.includes("-beta") ? "beta" : "stable";
13426
+ }
13427
+ async function loadPersistedChannel() {
13428
+ try {
13429
+ const content = await readFile7(getChannelFilePath(), "utf8");
13430
+ const trimmed = content.trim();
13431
+ if (RELEASE_CHANNELS.includes(trimmed)) {
13432
+ return trimmed;
13433
+ }
13434
+ return null;
13435
+ } catch {
13436
+ return null;
13437
+ }
13438
+ }
13439
+ async function persistChannel(channel) {
13440
+ await mkdir6(CLI_USER_DIRECTORIES.CONFIG, { recursive: true });
13441
+ await writeFile5(getChannelFilePath(), channel);
13442
+ }
13443
+ function resolveChannel(cliVersion2, persisted) {
13444
+ if (persisted) {
13445
+ return persisted;
13446
+ }
13447
+ return channelFromVersion(cliVersion2);
13448
+ }
13449
+
13406
13450
  // src/lib/upgrade/constants.ts
13407
- var DOWNLOAD_BASE_URL = "https://cdn.playcademy.net/cli";
13408
- var LATEST_VERSION_URL = `${DOWNLOAD_BASE_URL}/latest/version.txt`;
13409
13451
  var INSTALL_SCRIPT_URL = "https://playcademy.net/cli";
13410
13452
 
13411
13453
  // src/lib/upgrade/detect.ts
@@ -13463,14 +13505,21 @@ function formatExit(name, code, signal) {
13463
13505
  }
13464
13506
  return `${name} exited`;
13465
13507
  }
13466
- function upgradeStandalone(targetVersion) {
13508
+ function upgradeStandalone(targetVersion, channel) {
13467
13509
  return new Promise((resolve13, reject) => {
13468
13510
  const curl = spawn("curl", ["-fsSL", INSTALL_SCRIPT_URL], {
13469
13511
  stdio: ["ignore", "pipe", "pipe"]
13470
13512
  });
13513
+ const env = {
13514
+ ...process.env,
13515
+ VERSION: targetVersion
13516
+ };
13517
+ if (channel === "beta") {
13518
+ env.PLAYCADEMY_DOWNLOAD_BASE_URL = getDownloadBaseUrl("beta");
13519
+ }
13471
13520
  const bash = spawn("bash", [], {
13472
13521
  stdio: ["pipe", "pipe", "pipe"],
13473
- env: { ...process.env, VERSION: targetVersion }
13522
+ env
13474
13523
  });
13475
13524
  let stdout2 = "";
13476
13525
  let stderr = "";
@@ -13605,12 +13654,64 @@ function compareVersions(a, b) {
13605
13654
  if (va.prerelease && !vb.prerelease) {
13606
13655
  return -1;
13607
13656
  }
13657
+ if (va.prerelease && vb.prerelease) {
13658
+ return comparePrereleaseIdentifiers(va.prerelease, vb.prerelease);
13659
+ }
13660
+ return 0;
13661
+ }
13662
+ function comparePrereleaseIdentifiers(a, b) {
13663
+ const partsA = a.split(".");
13664
+ const partsB = b.split(".");
13665
+ const maxLen = Math.max(partsA.length, partsB.length);
13666
+ for (let i = 0; i < maxLen; i++) {
13667
+ if (i >= partsA.length) {
13668
+ return -1;
13669
+ }
13670
+ if (i >= partsB.length) {
13671
+ return 1;
13672
+ }
13673
+ const idA = partsA[i];
13674
+ const idB = partsB[i];
13675
+ const numA = Number(idA);
13676
+ const numB = Number(idB);
13677
+ const aIsNum = !Number.isNaN(numA);
13678
+ const bIsNum = !Number.isNaN(numB);
13679
+ if (aIsNum && bIsNum) {
13680
+ if (numA > numB) {
13681
+ return 1;
13682
+ }
13683
+ if (numA < numB) {
13684
+ return -1;
13685
+ }
13686
+ } else if (aIsNum) {
13687
+ return -1;
13688
+ } else if (bIsNum) {
13689
+ return 1;
13690
+ } else {
13691
+ if (idA > idB) {
13692
+ return 1;
13693
+ }
13694
+ if (idA < idB) {
13695
+ return -1;
13696
+ }
13697
+ }
13698
+ }
13608
13699
  return 0;
13609
13700
  }
13610
- async function fetchLatestVersion() {
13611
- const response = await fetch(LATEST_VERSION_URL);
13701
+ async function assertVersionExists(version3, channel) {
13702
+ const url = `${getDownloadBaseUrl(channel)}/v${version3}/version.txt`;
13703
+ const response = await fetch(url, { method: "HEAD" });
13612
13704
  if (!response.ok) {
13613
- throw new Error(`Failed to fetch latest version: ${response.status} ${response.statusText}`);
13705
+ throw new Error(`Release v${version3} not found`);
13706
+ }
13707
+ }
13708
+ async function fetchLatestVersion(channel) {
13709
+ const url = getLatestVersionUrl(channel);
13710
+ const response = await fetch(url);
13711
+ if (!response.ok) {
13712
+ throw new Error(
13713
+ `Failed to fetch latest ${channel} version: ${response.status} ${response.statusText}`
13714
+ );
13614
13715
  }
13615
13716
  const text5 = await response.text();
13616
13717
  return normalizeVersion(text5);
@@ -13627,6 +13728,7 @@ export {
13627
13728
  analyzeChanges,
13628
13729
  applyEngineSelection,
13629
13730
  applySecretsChanges,
13731
+ assertVersionExists,
13630
13732
  buildCustomRouteImportStatements,
13631
13733
  buildLogStreamUrl,
13632
13734
  buildMigrationSchemaInfo,
@@ -13639,6 +13741,7 @@ export {
13639
13741
  bundleStubWorker,
13640
13742
  calculateConfigDiff,
13641
13743
  calculateDeploymentPlan,
13744
+ channelFromVersion,
13642
13745
  checkAndPromptSecretsSync,
13643
13746
  checkTimebackSetup,
13644
13747
  collectBulkFiles,
@@ -13714,6 +13817,7 @@ export {
13714
13817
  getDeployedGame,
13715
13818
  getDeploymentId,
13716
13819
  getDirectorySize,
13820
+ getDownloadBaseUrl,
13717
13821
  getDrizzleKitApiExports,
13718
13822
  getEnvironment,
13719
13823
  getErrorMessage,
@@ -13785,6 +13889,7 @@ export {
13785
13889
  loadDeployFullConfig,
13786
13890
  loadGameStore,
13787
13891
  loadGitignorePatterns,
13892
+ loadPersistedChannel,
13788
13893
  logAndExit,
13789
13894
  logDeploymentPlanDebug,
13790
13895
  logger,
@@ -13795,6 +13900,7 @@ export {
13795
13900
  normalizeVersion,
13796
13901
  outputDryRunResults,
13797
13902
  outputUploadResults,
13903
+ persistChannel,
13798
13904
  prepareDeploymentContext,
13799
13905
  printDebugInfo,
13800
13906
  printDevBanner,
@@ -13828,6 +13934,7 @@ export {
13828
13934
  requireEnvironment,
13829
13935
  resetCliContext,
13830
13936
  resetDatabase,
13937
+ resolveChannel,
13831
13938
  resolveSchemaStrategy,
13832
13939
  runInit,
13833
13940
  saveAuthStore,
@@ -352,7 +352,7 @@ var init_routes = __esm({
352
352
  // ../edge-play/src/entry/metadata.ts
353
353
  function getRuntimeMetadata() {
354
354
  return {
355
- cliVersion: true ? "0.19.6" : "0.0.0-dev",
355
+ cliVersion: true ? "0.19.7" : "0.0.0-dev",
356
356
  sdkVersion: true ? "0.7.2" : "0.0.0-dev",
357
357
  buildId: true ? "a37875c668ac" : "dev-source"
358
358
  };
@@ -1,5 +1,5 @@
1
1
  {
2
- "cliVersion": "0.19.6",
2
+ "cliVersion": "0.19.7",
3
3
  "sdkVersion": "0.7.2",
4
4
  "runtimeBuildId": "a37875c668ac",
5
5
  "inputFingerprint": "a37875c668accc6268d5aae65d6544b7d002d71c7dd9a97a94c66cc0c39d4fa8",
package/dist/utils.js CHANGED
@@ -2560,7 +2560,7 @@ import { existsSync as existsSync8, mkdirSync as mkdirSync2, writeFileSync as wr
2560
2560
  import { dirname as dirname4, join as join13 } from "node:path";
2561
2561
 
2562
2562
  // src/version.ts
2563
- var cliVersion = false ? "0.0.0-dev" : "0.19.6";
2563
+ var cliVersion = false ? "0.0.0-dev" : "0.19.7";
2564
2564
 
2565
2565
  // src/lib/build/binary-resource.ts
2566
2566
  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.19.6";
2
+ var cliVersion = false ? "0.0.0-dev" : "0.19.7";
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.19.6",
3
+ "version": "0.19.7",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {