@weirdfingers/baseboards 0.9.11 → 0.9.12
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/index.js +111 -90
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3218,8 +3218,8 @@ var require_utils = __commonJS({
|
|
|
3218
3218
|
}
|
|
3219
3219
|
return ind;
|
|
3220
3220
|
}
|
|
3221
|
-
function removeDotSegments(
|
|
3222
|
-
let input =
|
|
3221
|
+
function removeDotSegments(path20) {
|
|
3222
|
+
let input = path20;
|
|
3223
3223
|
const output = [];
|
|
3224
3224
|
let nextSlash = -1;
|
|
3225
3225
|
let len = 0;
|
|
@@ -3418,8 +3418,8 @@ var require_schemes = __commonJS({
|
|
|
3418
3418
|
wsComponent.secure = void 0;
|
|
3419
3419
|
}
|
|
3420
3420
|
if (wsComponent.resourceName) {
|
|
3421
|
-
const [
|
|
3422
|
-
wsComponent.path =
|
|
3421
|
+
const [path20, query] = wsComponent.resourceName.split("?");
|
|
3422
|
+
wsComponent.path = path20 && path20 !== "/" ? path20 : void 0;
|
|
3423
3423
|
wsComponent.query = query;
|
|
3424
3424
|
wsComponent.resourceName = void 0;
|
|
3425
3425
|
}
|
|
@@ -6723,10 +6723,10 @@ function createRootPackageJsonContent(projectName, cliVersion) {
|
|
|
6723
6723
|
dev: "baseboards dev",
|
|
6724
6724
|
up: "baseboards up",
|
|
6725
6725
|
"up:attach": "baseboards up --attach",
|
|
6726
|
-
down: "baseboards down",
|
|
6727
|
-
logs: "baseboards logs -f",
|
|
6728
|
-
status: "baseboards status",
|
|
6729
|
-
clean: "baseboards clean"
|
|
6726
|
+
down: "baseboards down .",
|
|
6727
|
+
logs: "baseboards logs . -f",
|
|
6728
|
+
status: "baseboards status .",
|
|
6729
|
+
clean: "baseboards clean ."
|
|
6730
6730
|
},
|
|
6731
6731
|
devDependencies: {
|
|
6732
6732
|
"@weirdfingers/baseboards": `^${cliVersion}`
|
|
@@ -8381,18 +8381,39 @@ async function cleanupDockerVolumes(ctx) {
|
|
|
8381
8381
|
|
|
8382
8382
|
// src/commands/down.ts
|
|
8383
8383
|
import { execa as execa4 } from "execa";
|
|
8384
|
-
import
|
|
8384
|
+
import path8 from "path";
|
|
8385
8385
|
import chalk4 from "chalk";
|
|
8386
8386
|
import ora3 from "ora";
|
|
8387
|
+
|
|
8388
|
+
// src/utils/compose.ts
|
|
8389
|
+
import fs7 from "fs-extra";
|
|
8390
|
+
import path7 from "path";
|
|
8391
|
+
function getComposeFiles2(dir) {
|
|
8392
|
+
const files = ["compose.yaml"];
|
|
8393
|
+
if (fs7.existsSync(path7.join(dir, "compose.web.yaml"))) {
|
|
8394
|
+
files.push("compose.web.yaml");
|
|
8395
|
+
}
|
|
8396
|
+
return files;
|
|
8397
|
+
}
|
|
8398
|
+
function getComposeBaseArgs2(dir) {
|
|
8399
|
+
return [
|
|
8400
|
+
"compose",
|
|
8401
|
+
"--env-file",
|
|
8402
|
+
"docker/.env",
|
|
8403
|
+
...getComposeFiles2(dir).flatMap((f) => ["-f", f])
|
|
8404
|
+
];
|
|
8405
|
+
}
|
|
8406
|
+
|
|
8407
|
+
// src/commands/down.ts
|
|
8387
8408
|
async function down(directory, options) {
|
|
8388
|
-
const dir =
|
|
8409
|
+
const dir = path8.resolve(process.cwd(), directory);
|
|
8389
8410
|
if (!isScaffolded(dir)) {
|
|
8390
8411
|
console.error(chalk4.red("\n\u274C Error: Not a Baseboards project"));
|
|
8391
8412
|
console.log(chalk4.gray(" Run"), chalk4.cyan("baseboards up"), chalk4.gray("to scaffold a project first."));
|
|
8392
8413
|
process.exit(1);
|
|
8393
8414
|
}
|
|
8394
8415
|
const spinner = ora3("Stopping services...").start();
|
|
8395
|
-
const args = [
|
|
8416
|
+
const args = [...getComposeBaseArgs2(dir), "down"];
|
|
8396
8417
|
if (options.volumes) {
|
|
8397
8418
|
args.push("--volumes");
|
|
8398
8419
|
}
|
|
@@ -8412,15 +8433,15 @@ async function down(directory, options) {
|
|
|
8412
8433
|
|
|
8413
8434
|
// src/commands/dev.ts
|
|
8414
8435
|
import { execa as execa5 } from "execa";
|
|
8415
|
-
import
|
|
8436
|
+
import path10 from "path";
|
|
8416
8437
|
import chalk5 from "chalk";
|
|
8417
|
-
import
|
|
8438
|
+
import fs9 from "fs-extra";
|
|
8418
8439
|
|
|
8419
8440
|
// src/utils/mode-detection.ts
|
|
8420
8441
|
import { exec } from "child_process";
|
|
8421
8442
|
import { promisify } from "util";
|
|
8422
|
-
import
|
|
8423
|
-
import
|
|
8443
|
+
import path9 from "path";
|
|
8444
|
+
import fs8 from "fs-extra";
|
|
8424
8445
|
var execAsync2 = promisify(exec);
|
|
8425
8446
|
async function detectProjectMode(projectDir) {
|
|
8426
8447
|
try {
|
|
@@ -8431,15 +8452,15 @@ async function detectProjectMode(projectDir) {
|
|
|
8431
8452
|
}
|
|
8432
8453
|
} catch {
|
|
8433
8454
|
}
|
|
8434
|
-
const modeFile =
|
|
8435
|
-
if (await
|
|
8436
|
-
const mode = (await
|
|
8455
|
+
const modeFile = path9.join(projectDir, ".baseboards-mode");
|
|
8456
|
+
if (await fs8.pathExists(modeFile)) {
|
|
8457
|
+
const mode = (await fs8.readFile(modeFile, "utf-8")).trim();
|
|
8437
8458
|
if (mode === "default" || mode === "app-dev") {
|
|
8438
8459
|
return mode;
|
|
8439
8460
|
}
|
|
8440
8461
|
}
|
|
8441
|
-
const webNodeModules =
|
|
8442
|
-
if (await
|
|
8462
|
+
const webNodeModules = path9.join(projectDir, "web", "node_modules");
|
|
8463
|
+
if (await fs8.pathExists(webNodeModules)) {
|
|
8443
8464
|
return "app-dev";
|
|
8444
8465
|
}
|
|
8445
8466
|
return "default";
|
|
@@ -8460,8 +8481,8 @@ function getDevCommand(pm) {
|
|
|
8460
8481
|
}
|
|
8461
8482
|
}
|
|
8462
8483
|
async function dev(directory) {
|
|
8463
|
-
const dir =
|
|
8464
|
-
const webDir =
|
|
8484
|
+
const dir = path10.resolve(process.cwd(), directory);
|
|
8485
|
+
const webDir = path10.join(dir, "web");
|
|
8465
8486
|
if (!isScaffolded(dir)) {
|
|
8466
8487
|
console.error(chalk5.red("\n\u274C Error: Not a Baseboards project"));
|
|
8467
8488
|
console.log(
|
|
@@ -8471,7 +8492,7 @@ async function dev(directory) {
|
|
|
8471
8492
|
);
|
|
8472
8493
|
process.exit(1);
|
|
8473
8494
|
}
|
|
8474
|
-
if (!await
|
|
8495
|
+
if (!await fs9.pathExists(webDir)) {
|
|
8475
8496
|
console.error(chalk5.red("\n\u274C Error: No web/ directory found"));
|
|
8476
8497
|
console.log(
|
|
8477
8498
|
chalk5.gray(" This project may not have a frontend component.")
|
|
@@ -8500,8 +8521,8 @@ async function dev(directory) {
|
|
|
8500
8521
|
);
|
|
8501
8522
|
process.exit(1);
|
|
8502
8523
|
}
|
|
8503
|
-
const nodeModulesDir =
|
|
8504
|
-
if (!await
|
|
8524
|
+
const nodeModulesDir = path10.join(webDir, "node_modules");
|
|
8525
|
+
if (!await fs9.pathExists(nodeModulesDir)) {
|
|
8505
8526
|
console.error(chalk5.yellow("\n\u26A0\uFE0F Dependencies not installed"));
|
|
8506
8527
|
console.log(
|
|
8507
8528
|
chalk5.gray(" Run the following to install dependencies:")
|
|
@@ -8564,16 +8585,16 @@ async function dev(directory) {
|
|
|
8564
8585
|
|
|
8565
8586
|
// src/commands/logs.ts
|
|
8566
8587
|
import { execa as execa6 } from "execa";
|
|
8567
|
-
import
|
|
8588
|
+
import path11 from "path";
|
|
8568
8589
|
import chalk6 from "chalk";
|
|
8569
8590
|
async function logs(directory, services, options) {
|
|
8570
|
-
const dir =
|
|
8591
|
+
const dir = path11.resolve(process.cwd(), directory);
|
|
8571
8592
|
if (!isScaffolded(dir)) {
|
|
8572
8593
|
console.error(chalk6.red("\n\u274C Error: Not a Baseboards project"));
|
|
8573
8594
|
console.log(chalk6.gray(" Run"), chalk6.cyan("baseboards up"), chalk6.gray("to scaffold a project first."));
|
|
8574
8595
|
process.exit(1);
|
|
8575
8596
|
}
|
|
8576
|
-
const args = [
|
|
8597
|
+
const args = [...getComposeBaseArgs2(dir), "logs"];
|
|
8577
8598
|
if (options.follow) {
|
|
8578
8599
|
args.push("--follow");
|
|
8579
8600
|
}
|
|
@@ -8600,10 +8621,10 @@ async function logs(directory, services, options) {
|
|
|
8600
8621
|
|
|
8601
8622
|
// src/commands/status.ts
|
|
8602
8623
|
import { execa as execa7 } from "execa";
|
|
8603
|
-
import
|
|
8624
|
+
import path12 from "path";
|
|
8604
8625
|
import chalk7 from "chalk";
|
|
8605
8626
|
async function status(directory) {
|
|
8606
|
-
const dir =
|
|
8627
|
+
const dir = path12.resolve(process.cwd(), directory);
|
|
8607
8628
|
if (!isScaffolded(dir)) {
|
|
8608
8629
|
console.error(chalk7.red("\n\u274C Error: Not a Baseboards project"));
|
|
8609
8630
|
console.log(chalk7.gray(" Run"), chalk7.cyan("baseboards up"), chalk7.gray("to scaffold a project first."));
|
|
@@ -8611,7 +8632,7 @@ async function status(directory) {
|
|
|
8611
8632
|
}
|
|
8612
8633
|
console.log(chalk7.blue.bold("\n\u{1F4CA} Service Status\n"));
|
|
8613
8634
|
try {
|
|
8614
|
-
await execa7("docker", [
|
|
8635
|
+
await execa7("docker", [...getComposeBaseArgs2(dir), "ps"], {
|
|
8615
8636
|
cwd: dir,
|
|
8616
8637
|
stdio: "inherit"
|
|
8617
8638
|
});
|
|
@@ -8623,12 +8644,12 @@ async function status(directory) {
|
|
|
8623
8644
|
|
|
8624
8645
|
// src/commands/clean.ts
|
|
8625
8646
|
import { execa as execa8 } from "execa";
|
|
8626
|
-
import
|
|
8647
|
+
import path13 from "path";
|
|
8627
8648
|
import chalk8 from "chalk";
|
|
8628
8649
|
import ora4 from "ora";
|
|
8629
8650
|
import prompts3 from "prompts";
|
|
8630
8651
|
async function clean(directory, options) {
|
|
8631
|
-
const dir =
|
|
8652
|
+
const dir = path13.resolve(process.cwd(), directory);
|
|
8632
8653
|
if (!isScaffolded(dir)) {
|
|
8633
8654
|
console.error(chalk8.red("\n\u274C Error: Not a Baseboards project"));
|
|
8634
8655
|
console.log(chalk8.gray(" Run"), chalk8.cyan("baseboards up"), chalk8.gray("to scaffold a project first."));
|
|
@@ -8652,12 +8673,12 @@ async function clean(directory, options) {
|
|
|
8652
8673
|
}
|
|
8653
8674
|
const spinner = ora4("Cleaning up...").start();
|
|
8654
8675
|
try {
|
|
8655
|
-
await execa8("docker", [
|
|
8676
|
+
await execa8("docker", [...getComposeBaseArgs2(dir), "down", "--volumes", "--remove-orphans"], {
|
|
8656
8677
|
cwd: dir
|
|
8657
8678
|
});
|
|
8658
8679
|
if (options.hard) {
|
|
8659
8680
|
try {
|
|
8660
|
-
const { stdout } = await execa8("docker", [
|
|
8681
|
+
const { stdout } = await execa8("docker", [...getComposeBaseArgs2(dir), "images", "-q"], {
|
|
8661
8682
|
cwd: dir
|
|
8662
8683
|
});
|
|
8663
8684
|
const imageIds = stdout.split("\n").filter(Boolean);
|
|
@@ -8681,10 +8702,10 @@ async function clean(directory, options) {
|
|
|
8681
8702
|
}
|
|
8682
8703
|
|
|
8683
8704
|
// src/commands/update.ts
|
|
8684
|
-
import
|
|
8705
|
+
import path14 from "path";
|
|
8685
8706
|
import chalk9 from "chalk";
|
|
8686
8707
|
async function update(directory, options) {
|
|
8687
|
-
const dir =
|
|
8708
|
+
const dir = path14.resolve(process.cwd(), directory);
|
|
8688
8709
|
if (!isScaffolded(dir)) {
|
|
8689
8710
|
console.error(chalk9.red("\n\u274C Error: Not a Baseboards project"));
|
|
8690
8711
|
console.log(chalk9.gray(" Run"), chalk9.cyan("baseboards up"), chalk9.gray("to scaffold a project first."));
|
|
@@ -8700,7 +8721,7 @@ async function update(directory, options) {
|
|
|
8700
8721
|
}
|
|
8701
8722
|
|
|
8702
8723
|
// src/commands/upgrade.ts
|
|
8703
|
-
import
|
|
8724
|
+
import path18 from "path";
|
|
8704
8725
|
import chalk12 from "chalk";
|
|
8705
8726
|
import prompts4 from "prompts";
|
|
8706
8727
|
|
|
@@ -8709,8 +8730,8 @@ import semver from "semver";
|
|
|
8709
8730
|
|
|
8710
8731
|
// src/utils/compatibility-fetcher.ts
|
|
8711
8732
|
var import_ajv = __toESM(require_ajv(), 1);
|
|
8712
|
-
import
|
|
8713
|
-
import
|
|
8733
|
+
import fs10 from "fs-extra";
|
|
8734
|
+
import path15 from "path";
|
|
8714
8735
|
import os from "os";
|
|
8715
8736
|
import addFormats from "ajv-formats";
|
|
8716
8737
|
|
|
@@ -8773,7 +8794,7 @@ var compatibility_manifest_schema_default = {
|
|
|
8773
8794
|
|
|
8774
8795
|
// src/utils/compatibility-fetcher.ts
|
|
8775
8796
|
var GITHUB_REPO = "weirdfingers/boards";
|
|
8776
|
-
var CACHE_DIR =
|
|
8797
|
+
var CACHE_DIR = path15.join(os.homedir(), ".baseboards", "compatibility");
|
|
8777
8798
|
var ajv = new import_ajv.default({ strict: false });
|
|
8778
8799
|
addFormats(ajv);
|
|
8779
8800
|
var validateManifest = ajv.compile(compatibility_manifest_schema_default);
|
|
@@ -8821,31 +8842,31 @@ function getManifestUrl(version) {
|
|
|
8821
8842
|
}
|
|
8822
8843
|
async function loadFromCache(version) {
|
|
8823
8844
|
const cachePath = getCachePath(version);
|
|
8824
|
-
if (!await
|
|
8845
|
+
if (!await fs10.pathExists(cachePath)) {
|
|
8825
8846
|
return null;
|
|
8826
8847
|
}
|
|
8827
8848
|
try {
|
|
8828
|
-
const content = await
|
|
8849
|
+
const content = await fs10.readFile(cachePath, "utf-8");
|
|
8829
8850
|
const manifest = JSON.parse(content);
|
|
8830
8851
|
if (!validateManifest(manifest)) {
|
|
8831
|
-
await
|
|
8852
|
+
await fs10.remove(cachePath);
|
|
8832
8853
|
return null;
|
|
8833
8854
|
}
|
|
8834
8855
|
return manifest;
|
|
8835
8856
|
} catch (error) {
|
|
8836
|
-
await
|
|
8857
|
+
await fs10.remove(cachePath).catch(() => {
|
|
8837
8858
|
});
|
|
8838
8859
|
return null;
|
|
8839
8860
|
}
|
|
8840
8861
|
}
|
|
8841
8862
|
async function saveToCache(version, manifest) {
|
|
8842
8863
|
const cachePath = getCachePath(version);
|
|
8843
|
-
await
|
|
8844
|
-
await
|
|
8864
|
+
await fs10.ensureDir(CACHE_DIR);
|
|
8865
|
+
await fs10.writeFile(cachePath, JSON.stringify(manifest, null, 2), "utf-8");
|
|
8845
8866
|
}
|
|
8846
8867
|
function getCachePath(version) {
|
|
8847
8868
|
const cleanVersion = version.replace(/^v/, "");
|
|
8848
|
-
return
|
|
8869
|
+
return path15.join(CACHE_DIR, `compatibility-${cleanVersion}.json`);
|
|
8849
8870
|
}
|
|
8850
8871
|
|
|
8851
8872
|
// src/utils/compatibility-checker.ts
|
|
@@ -8897,8 +8918,8 @@ function isVersionAffected(version, affectedRange) {
|
|
|
8897
8918
|
}
|
|
8898
8919
|
|
|
8899
8920
|
// src/commands/upgrade-default.ts
|
|
8900
|
-
import
|
|
8901
|
-
import
|
|
8921
|
+
import path16 from "path";
|
|
8922
|
+
import fs11 from "fs-extra";
|
|
8902
8923
|
import chalk10 from "chalk";
|
|
8903
8924
|
import { execa as execa9 } from "execa";
|
|
8904
8925
|
import ora5 from "ora";
|
|
@@ -8939,21 +8960,21 @@ async function upgradeDefaultMode(projectDir, currentVersion, targetVersion) {
|
|
|
8939
8960
|
}
|
|
8940
8961
|
}
|
|
8941
8962
|
async function updateWebPackageJson(projectDir, version) {
|
|
8942
|
-
const packageJsonPath =
|
|
8943
|
-
const packageJson2 = await
|
|
8963
|
+
const packageJsonPath = path16.join(projectDir, "web", "package.json");
|
|
8964
|
+
const packageJson2 = await fs11.readJson(packageJsonPath);
|
|
8944
8965
|
if (packageJson2.dependencies && packageJson2.dependencies["@weirdfingers/boards"]) {
|
|
8945
8966
|
packageJson2.dependencies["@weirdfingers/boards"] = version;
|
|
8946
8967
|
}
|
|
8947
|
-
await
|
|
8968
|
+
await fs11.writeJson(packageJsonPath, packageJson2, { spaces: 2 });
|
|
8948
8969
|
}
|
|
8949
8970
|
async function updateEnvVersion(projectDir, version) {
|
|
8950
|
-
const envPath =
|
|
8951
|
-
let content = await
|
|
8971
|
+
const envPath = path16.join(projectDir, "docker", ".env");
|
|
8972
|
+
let content = await fs11.readFile(envPath, "utf-8");
|
|
8952
8973
|
content = content.replace(
|
|
8953
8974
|
/^BACKEND_VERSION=.*/m,
|
|
8954
8975
|
`BACKEND_VERSION=${version}`
|
|
8955
8976
|
);
|
|
8956
|
-
await
|
|
8977
|
+
await fs11.writeFile(envPath, content, "utf-8");
|
|
8957
8978
|
}
|
|
8958
8979
|
async function waitForHealth(projectDir, services) {
|
|
8959
8980
|
const spinner = ora5("Waiting for services to be healthy...").start();
|
|
@@ -9006,8 +9027,8 @@ function printUpgradeSuccess(projectDir, version) {
|
|
|
9006
9027
|
console.log(chalk10.gray(" All services are running and healthy.\n"));
|
|
9007
9028
|
console.log(chalk10.gray("Next steps:"));
|
|
9008
9029
|
console.log(chalk10.gray(` \u2022 Check release notes: https://github.com/weirdfingers/boards/releases/tag/v${version}`));
|
|
9009
|
-
console.log(chalk10.gray(` \u2022 View logs: baseboards logs ${
|
|
9010
|
-
console.log(chalk10.gray(` \u2022 Check status: baseboards status ${
|
|
9030
|
+
console.log(chalk10.gray(` \u2022 View logs: baseboards logs ${path16.basename(projectDir)}`));
|
|
9031
|
+
console.log(chalk10.gray(` \u2022 Check status: baseboards status ${path16.basename(projectDir)}
|
|
9011
9032
|
`));
|
|
9012
9033
|
}
|
|
9013
9034
|
async function execAsync3(command, options) {
|
|
@@ -9016,8 +9037,8 @@ async function execAsync3(command, options) {
|
|
|
9016
9037
|
}
|
|
9017
9038
|
|
|
9018
9039
|
// src/commands/upgrade-app-dev.ts
|
|
9019
|
-
import
|
|
9020
|
-
import
|
|
9040
|
+
import path17 from "path";
|
|
9041
|
+
import fs12 from "fs-extra";
|
|
9021
9042
|
import chalk11 from "chalk";
|
|
9022
9043
|
import { execa as execa10 } from "execa";
|
|
9023
9044
|
import ora6 from "ora";
|
|
@@ -9053,22 +9074,22 @@ async function upgradeAppDevMode(projectDir, currentVersion, targetVersion) {
|
|
|
9053
9074
|
}
|
|
9054
9075
|
}
|
|
9055
9076
|
async function updateEnvVersion2(projectDir, version) {
|
|
9056
|
-
const envPath =
|
|
9057
|
-
let content = await
|
|
9077
|
+
const envPath = path17.join(projectDir, "docker", ".env");
|
|
9078
|
+
let content = await fs12.readFile(envPath, "utf-8");
|
|
9058
9079
|
content = content.replace(
|
|
9059
9080
|
/^BACKEND_VERSION=.*/m,
|
|
9060
9081
|
`BACKEND_VERSION=${version}`
|
|
9061
9082
|
);
|
|
9062
|
-
await
|
|
9083
|
+
await fs12.writeFile(envPath, content, "utf-8");
|
|
9063
9084
|
}
|
|
9064
9085
|
async function printAppDevUpgradeInstructions(projectDir, oldVersion, newVersion) {
|
|
9065
|
-
const webDir =
|
|
9086
|
+
const webDir = path17.join(projectDir, "web");
|
|
9066
9087
|
const packageManager = await detectPackageManager(webDir);
|
|
9067
9088
|
const updateCommand = packageManager === "npm" ? `npm install @weirdfingers/boards@${newVersion}` : packageManager === "yarn" ? `yarn upgrade @weirdfingers/boards@${newVersion}` : packageManager === "bun" ? `bun update @weirdfingers/boards@${newVersion}` : `pnpm update @weirdfingers/boards@${newVersion}`;
|
|
9068
9089
|
console.log(chalk11.yellow("\u26A0\uFE0F Frontend requires manual upgrade:\n"));
|
|
9069
9090
|
console.log(chalk11.gray(" 1. Stop your dev server (Ctrl+C if running)\n"));
|
|
9070
9091
|
console.log(chalk11.gray(" 2. Update the frontend package:\n"));
|
|
9071
|
-
console.log(chalk11.cyan(` cd ${
|
|
9092
|
+
console.log(chalk11.cyan(` cd ${path17.basename(projectDir)}/web`));
|
|
9072
9093
|
console.log(chalk11.cyan(` ${updateCommand}
|
|
9073
9094
|
`));
|
|
9074
9095
|
console.log(chalk11.gray(" 3. Check for breaking changes:\n"));
|
|
@@ -9084,8 +9105,8 @@ async function printAppDevUpgradeInstructions(projectDir, oldVersion, newVersion
|
|
|
9084
9105
|
console.log(chalk11.gray(" Consider committing before updating dependencies.\n"));
|
|
9085
9106
|
}
|
|
9086
9107
|
} catch (error) {
|
|
9087
|
-
const gitDir =
|
|
9088
|
-
if (!
|
|
9108
|
+
const gitDir = path17.join(webDir, ".git");
|
|
9109
|
+
if (!fs12.existsSync(gitDir)) {
|
|
9089
9110
|
console.log(chalk11.gray(" Skipping git status check: web/ is not a git repository."));
|
|
9090
9111
|
} else {
|
|
9091
9112
|
console.log(
|
|
@@ -9145,7 +9166,7 @@ async function waitForHealth2(projectDir, services) {
|
|
|
9145
9166
|
|
|
9146
9167
|
// src/commands/upgrade.ts
|
|
9147
9168
|
async function upgrade(directory, options) {
|
|
9148
|
-
const dir =
|
|
9169
|
+
const dir = path18.resolve(process.cwd(), directory);
|
|
9149
9170
|
if (!isScaffolded(dir)) {
|
|
9150
9171
|
console.error(chalk12.red("\n\u274C Error: Not a Baseboards project"));
|
|
9151
9172
|
console.log(chalk12.gray(" Run"), chalk12.cyan("baseboards up"), chalk12.gray("to scaffold a project first."));
|
|
@@ -9234,11 +9255,11 @@ async function getLatestVersion() {
|
|
|
9234
9255
|
}
|
|
9235
9256
|
|
|
9236
9257
|
// src/commands/doctor.ts
|
|
9237
|
-
import
|
|
9238
|
-
import
|
|
9258
|
+
import path19 from "path";
|
|
9259
|
+
import fs13 from "fs-extra";
|
|
9239
9260
|
import chalk13 from "chalk";
|
|
9240
9261
|
async function doctor(directory) {
|
|
9241
|
-
const dir =
|
|
9262
|
+
const dir = path19.resolve(process.cwd(), directory);
|
|
9242
9263
|
console.log(chalk13.blue.bold("\n\u{1FA7A} Baseboards Diagnostics\n"));
|
|
9243
9264
|
console.log(chalk13.cyan("CLI Version:"), getCliVersion());
|
|
9244
9265
|
console.log(chalk13.cyan("\n\u{1F4CB} Prerequisites:"));
|
|
@@ -9271,38 +9292,38 @@ async function doctor(directory) {
|
|
|
9271
9292
|
);
|
|
9272
9293
|
if (scaffolded) {
|
|
9273
9294
|
console.log(chalk13.gray(" Directory:"), dir);
|
|
9274
|
-
const webPkg =
|
|
9275
|
-
const apiPkg =
|
|
9276
|
-
const composeFile =
|
|
9295
|
+
const webPkg = path19.join(dir, "web/package.json");
|
|
9296
|
+
const apiPkg = path19.join(dir, "api/pyproject.toml");
|
|
9297
|
+
const composeFile = path19.join(dir, "compose.yaml");
|
|
9277
9298
|
console.log(
|
|
9278
9299
|
chalk13.gray(" Web package:"),
|
|
9279
|
-
|
|
9300
|
+
fs13.existsSync(webPkg) ? chalk13.green("\u2713") : chalk13.red("\u2717")
|
|
9280
9301
|
);
|
|
9281
9302
|
console.log(
|
|
9282
9303
|
chalk13.gray(" API package:"),
|
|
9283
|
-
|
|
9304
|
+
fs13.existsSync(apiPkg) ? chalk13.green("\u2713") : chalk13.red("\u2717")
|
|
9284
9305
|
);
|
|
9285
9306
|
console.log(
|
|
9286
9307
|
chalk13.gray(" Compose file:"),
|
|
9287
|
-
|
|
9308
|
+
fs13.existsSync(composeFile) ? chalk13.green("\u2713") : chalk13.red("\u2717")
|
|
9288
9309
|
);
|
|
9289
9310
|
console.log(chalk13.cyan("\n\u{1F510} Environment:"));
|
|
9290
|
-
const webEnv =
|
|
9291
|
-
const apiEnv =
|
|
9292
|
-
const dockerEnv =
|
|
9311
|
+
const webEnv = path19.join(dir, "web/.env");
|
|
9312
|
+
const apiEnv = path19.join(dir, "api/.env");
|
|
9313
|
+
const dockerEnv = path19.join(dir, "docker/.env");
|
|
9293
9314
|
console.log(
|
|
9294
9315
|
chalk13.gray(" Web .env:"),
|
|
9295
|
-
|
|
9316
|
+
fs13.existsSync(webEnv) ? chalk13.green("\u2713") : chalk13.yellow("\u2717 Missing")
|
|
9296
9317
|
);
|
|
9297
9318
|
console.log(
|
|
9298
9319
|
chalk13.gray(" API .env:"),
|
|
9299
|
-
|
|
9320
|
+
fs13.existsSync(apiEnv) ? chalk13.green("\u2713") : chalk13.yellow("\u2717 Missing")
|
|
9300
9321
|
);
|
|
9301
9322
|
console.log(
|
|
9302
9323
|
chalk13.gray(" Docker .env:"),
|
|
9303
|
-
|
|
9324
|
+
fs13.existsSync(dockerEnv) ? chalk13.green("\u2713") : chalk13.yellow("\u2717 Missing")
|
|
9304
9325
|
);
|
|
9305
|
-
if (
|
|
9326
|
+
if (fs13.existsSync(apiEnv)) {
|
|
9306
9327
|
const missingKeys = detectMissingProviderKeys(apiEnv);
|
|
9307
9328
|
if (missingKeys.length > 0) {
|
|
9308
9329
|
console.log(
|
|
@@ -9315,20 +9336,20 @@ async function doctor(directory) {
|
|
|
9315
9336
|
}
|
|
9316
9337
|
}
|
|
9317
9338
|
console.log(chalk13.cyan("\n\u2699\uFE0F Configuration:"));
|
|
9318
|
-
const generatorsYaml =
|
|
9319
|
-
const storageYaml =
|
|
9339
|
+
const generatorsYaml = path19.join(dir, "api/config/generators.yaml");
|
|
9340
|
+
const storageYaml = path19.join(dir, "api/config/storage_config.yaml");
|
|
9320
9341
|
console.log(
|
|
9321
9342
|
chalk13.gray(" generators.yaml:"),
|
|
9322
|
-
|
|
9343
|
+
fs13.existsSync(generatorsYaml) ? chalk13.green("\u2713") : chalk13.yellow("\u2717 Missing")
|
|
9323
9344
|
);
|
|
9324
9345
|
console.log(
|
|
9325
9346
|
chalk13.gray(" storage_config.yaml:"),
|
|
9326
|
-
|
|
9347
|
+
fs13.existsSync(storageYaml) ? chalk13.green("\u2713") : chalk13.yellow("\u2717 Missing")
|
|
9327
9348
|
);
|
|
9328
|
-
const storageDir =
|
|
9349
|
+
const storageDir = path19.join(dir, "data/storage");
|
|
9329
9350
|
console.log(
|
|
9330
9351
|
chalk13.gray(" Storage directory:"),
|
|
9331
|
-
|
|
9352
|
+
fs13.existsSync(storageDir) ? chalk13.green("\u2713") : chalk13.yellow("\u2717 Missing")
|
|
9332
9353
|
);
|
|
9333
9354
|
}
|
|
9334
9355
|
console.log(chalk13.cyan("\n\u{1F4A1} Recommendations:"));
|