flash-builder 1.0.8 → 1.0.9
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.cjs +101 -60
- package/dist/index.js +102 -61
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -9819,7 +9819,7 @@ var meow = (helpText, options = {}) => {
|
|
|
9819
9819
|
};
|
|
9820
9820
|
|
|
9821
9821
|
// version.ts
|
|
9822
|
-
var version = "1.0.
|
|
9822
|
+
var version = "1.0.9";
|
|
9823
9823
|
var version_default = version;
|
|
9824
9824
|
|
|
9825
9825
|
// src/banner.ts
|
|
@@ -9834,12 +9834,16 @@ var banner = `
|
|
|
9834
9834
|
var banner_default = banner;
|
|
9835
9835
|
|
|
9836
9836
|
// src/environment.ts
|
|
9837
|
+
var import_fs2 = __toESM(require("fs"));
|
|
9838
|
+
var import_path2 = __toESM(require("path"));
|
|
9837
9839
|
var import_dotenv = __toESM(require_main(), 1);
|
|
9838
9840
|
import_dotenv.default.config({ path: ".env", quiet: true });
|
|
9839
|
-
var PWD = process.cwd();
|
|
9840
9841
|
var ENV = process.env;
|
|
9841
|
-
var
|
|
9842
|
-
|
|
9842
|
+
var IS_NPMJS = ENV["_"]?.includes(".bin/fbi");
|
|
9843
|
+
var PWD = IS_NPMJS ? process.cwd() : import_path2.default.join(process.cwd(), "isolate");
|
|
9844
|
+
if (!IS_NPMJS && !import_fs2.default.existsSync(PWD)) {
|
|
9845
|
+
import_fs2.default.mkdirSync(PWD, { recursive: true });
|
|
9846
|
+
}
|
|
9843
9847
|
var PROJECT_TARGET_URL = ENV.PROJECT_TARGET_URL;
|
|
9844
9848
|
var LLM_PROVIDER = ENV.LLM_PROVIDER;
|
|
9845
9849
|
var LLM_MODEL = ENV.LLM_MODEL;
|
|
@@ -9857,45 +9861,26 @@ function log(message, isVerbose = false, verbose = false) {
|
|
|
9857
9861
|
}
|
|
9858
9862
|
}
|
|
9859
9863
|
|
|
9860
|
-
// src/commands/be/
|
|
9861
|
-
|
|
9862
|
-
|
|
9863
|
-
|
|
9864
|
-
|
|
9865
|
-
|
|
9866
|
-
|
|
9867
|
-
|
|
9868
|
-
|
|
9869
|
-
|
|
9870
|
-
|
|
9864
|
+
// src/commands/be/files.ts
|
|
9865
|
+
var packageJson = (projectName) => ({
|
|
9866
|
+
name: projectName,
|
|
9867
|
+
version: "1.0.0",
|
|
9868
|
+
type: "module",
|
|
9869
|
+
scripts: {
|
|
9870
|
+
dev: "bun run --watch src/index.ts",
|
|
9871
|
+
start: "bun run src/index.ts",
|
|
9872
|
+
build: "bun build src/index.ts --outdir ./dist"
|
|
9873
|
+
},
|
|
9874
|
+
dependencies: {
|
|
9875
|
+
express: "^4.18.2",
|
|
9876
|
+
dotenv: "^16.3.1"
|
|
9877
|
+
},
|
|
9878
|
+
devDependencies: {
|
|
9879
|
+
"@types/express": "^4.17.21",
|
|
9880
|
+
"@types/bun": "latest"
|
|
9871
9881
|
}
|
|
9872
|
-
|
|
9873
|
-
|
|
9874
|
-
import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src"), { recursive: true });
|
|
9875
|
-
import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "routes"), { recursive: true });
|
|
9876
|
-
import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "controllers"), { recursive: true });
|
|
9877
|
-
import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "models"), { recursive: true });
|
|
9878
|
-
import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "middlewares"), { recursive: true });
|
|
9879
|
-
const packageJson = {
|
|
9880
|
-
name: projectName,
|
|
9881
|
-
version: "1.0.0",
|
|
9882
|
-
type: "module",
|
|
9883
|
-
scripts: {
|
|
9884
|
-
dev: "bun run --watch src/index.ts",
|
|
9885
|
-
start: "bun run src/index.ts",
|
|
9886
|
-
build: "bun build src/index.ts --outdir ./dist"
|
|
9887
|
-
},
|
|
9888
|
-
dependencies: {
|
|
9889
|
-
express: "^4.18.2",
|
|
9890
|
-
dotenv: "^16.3.1"
|
|
9891
|
-
},
|
|
9892
|
-
devDependencies: {
|
|
9893
|
-
"@types/express": "^4.17.21",
|
|
9894
|
-
"@types/bun": "latest"
|
|
9895
|
-
}
|
|
9896
|
-
};
|
|
9897
|
-
import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "package.json"), JSON.stringify(packageJson, null, 2));
|
|
9898
|
-
import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "src", "index.ts"), `import express from "express";
|
|
9882
|
+
});
|
|
9883
|
+
var indexTs = (projectName) => `import express from "express";
|
|
9899
9884
|
import dotenv from "dotenv";
|
|
9900
9885
|
|
|
9901
9886
|
dotenv.config();
|
|
@@ -9912,15 +9897,15 @@ app.get("/", (req, res) => {
|
|
|
9912
9897
|
app.listen(PORT, () => {
|
|
9913
9898
|
console.log(\`\uD83D\uDE80 Server running on http://localhost:\${PORT}\`);
|
|
9914
9899
|
});
|
|
9915
|
-
|
|
9916
|
-
|
|
9917
|
-
`);
|
|
9918
|
-
import_node_fs2.writeFileSync(import_node_path3.join(projectPath, ".gitignore"), `node_modules/
|
|
9900
|
+
`;
|
|
9901
|
+
var gitignore = `node_modules/
|
|
9919
9902
|
dist/
|
|
9920
9903
|
.env
|
|
9921
9904
|
*.log
|
|
9922
|
-
|
|
9923
|
-
|
|
9905
|
+
bun.lock
|
|
9906
|
+
bun.lockb
|
|
9907
|
+
`;
|
|
9908
|
+
var readme = (projectName) => `# ${projectName}
|
|
9924
9909
|
|
|
9925
9910
|
Backend project created with fbi
|
|
9926
9911
|
|
|
@@ -9931,12 +9916,67 @@ cd ${projectName}
|
|
|
9931
9916
|
bun install
|
|
9932
9917
|
bun run dev
|
|
9933
9918
|
\`\`\`
|
|
9934
|
-
|
|
9935
|
-
|
|
9919
|
+
`;
|
|
9920
|
+
var envFile = `PORT=3000
|
|
9921
|
+
`;
|
|
9922
|
+
|
|
9923
|
+
// src/commands/be/index.ts
|
|
9924
|
+
function beCommand(projectName, verbose, targetPath) {
|
|
9925
|
+
if (!projectName) {
|
|
9926
|
+
console.error("\u274C Error: Project name is required");
|
|
9927
|
+
console.log("Usage: fbi be <project-name>");
|
|
9928
|
+
process.exit(1);
|
|
9929
|
+
}
|
|
9930
|
+
const isCurrentDir = targetPath === "." || targetPath?.startsWith("./");
|
|
9931
|
+
let projectPath;
|
|
9932
|
+
let actualProjectName;
|
|
9933
|
+
if (isCurrentDir && targetPath) {
|
|
9934
|
+
projectPath = targetPath === "." ? PWD : import_node_path3.join(PWD, targetPath.replace("./", ""));
|
|
9935
|
+
actualProjectName = projectName;
|
|
9936
|
+
} else {
|
|
9937
|
+
projectPath = import_node_path3.join(PWD, projectName);
|
|
9938
|
+
actualProjectName = projectName;
|
|
9939
|
+
}
|
|
9940
|
+
if (import_node_fs2.existsSync(projectPath)) {
|
|
9941
|
+
if (IS_NPMJS) {
|
|
9942
|
+
console.error(`\u274C Error: Directory '${projectName}' already exists`);
|
|
9943
|
+
process.exit(1);
|
|
9944
|
+
}
|
|
9945
|
+
}
|
|
9946
|
+
if (!IS_NPMJS) {
|
|
9947
|
+
import_node_fs2.rmSync(PWD, { recursive: true, force: true });
|
|
9948
|
+
}
|
|
9949
|
+
log(`\uD83D\uDE80 Creating new backend project: ${actualProjectName}`, false, verbose);
|
|
9950
|
+
import_node_fs2.mkdirSync(projectPath, { recursive: true });
|
|
9951
|
+
import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src"), { recursive: true });
|
|
9952
|
+
import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "routes"), { recursive: true });
|
|
9953
|
+
import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "controllers"), { recursive: true });
|
|
9954
|
+
import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "models"), { recursive: true });
|
|
9955
|
+
import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "middlewares"), { recursive: true });
|
|
9956
|
+
const packageJsonString = JSON.stringify(packageJson(actualProjectName), null, 2);
|
|
9957
|
+
import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "package.json"), packageJsonString);
|
|
9958
|
+
import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "src", "index.ts"), indexTs(actualProjectName));
|
|
9959
|
+
import_node_fs2.writeFileSync(import_node_path3.join(projectPath, ".env"), envFile);
|
|
9960
|
+
import_node_fs2.writeFileSync(import_node_path3.join(projectPath, ".gitignore"), gitignore);
|
|
9961
|
+
import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "README.md"), readme(actualProjectName));
|
|
9962
|
+
log(`\u2705 Backend project '${actualProjectName}' created successfully!`, false, verbose);
|
|
9963
|
+
log(`
|
|
9964
|
+
\uD83D\uDCE6 Installing dependencies...`, false, verbose);
|
|
9965
|
+
const installProcess = Bun.spawnSync(["bun", "install"], {
|
|
9966
|
+
cwd: projectPath,
|
|
9967
|
+
stdout: "inherit",
|
|
9968
|
+
stderr: "inherit"
|
|
9969
|
+
});
|
|
9970
|
+
if (installProcess.exitCode === 0) {
|
|
9971
|
+
log(`\u2705 Dependencies installed successfully!`, false, verbose);
|
|
9972
|
+
} else {
|
|
9973
|
+
log(`\u274C Failed to install dependencies`, false, verbose);
|
|
9974
|
+
}
|
|
9936
9975
|
log(`
|
|
9937
9976
|
Next steps:`, true, verbose);
|
|
9938
|
-
|
|
9939
|
-
|
|
9977
|
+
if (!isCurrentDir) {
|
|
9978
|
+
log(` cd ${actualProjectName}`, true, verbose);
|
|
9979
|
+
}
|
|
9940
9980
|
log(` bun run dev`, true, verbose);
|
|
9941
9981
|
}
|
|
9942
9982
|
|
|
@@ -9949,7 +9989,7 @@ function mcpCommand(projectName, verbose) {
|
|
|
9949
9989
|
console.log("Usage: fbi mcp <project-name>");
|
|
9950
9990
|
process.exit(1);
|
|
9951
9991
|
}
|
|
9952
|
-
const projectPath = import_node_path4.join(
|
|
9992
|
+
const projectPath = import_node_path4.join(PWD, projectName);
|
|
9953
9993
|
if (import_node_fs3.existsSync(projectPath)) {
|
|
9954
9994
|
console.error(`\u274C Error: Directory '${projectName}' already exists`);
|
|
9955
9995
|
process.exit(1);
|
|
@@ -9959,7 +9999,7 @@ function mcpCommand(projectName, verbose) {
|
|
|
9959
9999
|
import_node_fs3.mkdirSync(import_node_path4.join(projectPath, "src"), { recursive: true });
|
|
9960
10000
|
import_node_fs3.mkdirSync(import_node_path4.join(projectPath, "src", "tools"), { recursive: true });
|
|
9961
10001
|
import_node_fs3.mkdirSync(import_node_path4.join(projectPath, "src", "resources"), { recursive: true });
|
|
9962
|
-
const
|
|
10002
|
+
const packageJson2 = {
|
|
9963
10003
|
name: projectName,
|
|
9964
10004
|
version: "1.0.0",
|
|
9965
10005
|
type: "module",
|
|
@@ -9976,7 +10016,7 @@ function mcpCommand(projectName, verbose) {
|
|
|
9976
10016
|
"@types/bun": "latest"
|
|
9977
10017
|
}
|
|
9978
10018
|
};
|
|
9979
|
-
import_node_fs3.writeFileSync(import_node_path4.join(projectPath, "package.json"), JSON.stringify(
|
|
10019
|
+
import_node_fs3.writeFileSync(import_node_path4.join(projectPath, "package.json"), JSON.stringify(packageJson2, null, 2));
|
|
9980
10020
|
import_node_fs3.writeFileSync(import_node_path4.join(projectPath, "src", "index.ts"), `import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
9981
10021
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9982
10022
|
import dotenv from "dotenv";
|
|
@@ -10034,16 +10074,16 @@ var import_node_fs4 = require("fs");
|
|
|
10034
10074
|
var import_node_path5 = require("path");
|
|
10035
10075
|
function syncCommand(verbose) {
|
|
10036
10076
|
log(`\uD83D\uDD04 Syncing backend interface with application target...`, false, verbose);
|
|
10037
|
-
const packageJsonPath = import_node_path5.join(
|
|
10077
|
+
const packageJsonPath = import_node_path5.join(PWD, "package.json");
|
|
10038
10078
|
if (!import_node_fs4.existsSync(packageJsonPath)) {
|
|
10039
10079
|
console.error("\u274C Error: package.json not found in current directory");
|
|
10040
10080
|
console.log("Make sure you're in a project directory");
|
|
10041
10081
|
process.exit(1);
|
|
10042
10082
|
}
|
|
10043
10083
|
try {
|
|
10044
|
-
const
|
|
10045
|
-
log(`Project: ${
|
|
10046
|
-
log(`Version: ${
|
|
10084
|
+
const packageJson2 = JSON.parse(import_node_fs4.readFileSync(packageJsonPath, "utf-8"));
|
|
10085
|
+
log(`Project: ${packageJson2.name}`, true, verbose);
|
|
10086
|
+
log(`Version: ${packageJson2.version}`, true, verbose);
|
|
10047
10087
|
log(`\u2705 Sync completed successfully!`, false, verbose);
|
|
10048
10088
|
} catch (error) {
|
|
10049
10089
|
console.error("\u274C Error reading package.json:", error);
|
|
@@ -10082,9 +10122,10 @@ ${banner_default}
|
|
|
10082
10122
|
}
|
|
10083
10123
|
});
|
|
10084
10124
|
var [command, ...args] = cli.input;
|
|
10125
|
+
console.log({ args });
|
|
10085
10126
|
switch (command) {
|
|
10086
10127
|
case "be":
|
|
10087
|
-
beCommand(args[0] || "", cli.flags.verbose);
|
|
10128
|
+
beCommand(args[0] || "", cli.flags.verbose, args[1]);
|
|
10088
10129
|
break;
|
|
10089
10130
|
case "mcp":
|
|
10090
10131
|
mcpCommand(args[0] || "", cli.flags.verbose);
|
package/dist/index.js
CHANGED
|
@@ -9820,7 +9820,7 @@ var meow = (helpText, options = {}) => {
|
|
|
9820
9820
|
};
|
|
9821
9821
|
|
|
9822
9822
|
// version.ts
|
|
9823
|
-
var version = "1.0.
|
|
9823
|
+
var version = "1.0.9";
|
|
9824
9824
|
var version_default = version;
|
|
9825
9825
|
|
|
9826
9826
|
// src/banner.ts
|
|
@@ -9836,11 +9836,15 @@ var banner_default = banner;
|
|
|
9836
9836
|
|
|
9837
9837
|
// src/environment.ts
|
|
9838
9838
|
var import_dotenv = __toESM(require_main(), 1);
|
|
9839
|
+
import fs2 from "fs";
|
|
9840
|
+
import path3 from "path";
|
|
9839
9841
|
import_dotenv.default.config({ path: ".env", quiet: true });
|
|
9840
|
-
var PWD = process.cwd();
|
|
9841
9842
|
var ENV = process.env;
|
|
9842
|
-
var
|
|
9843
|
-
|
|
9843
|
+
var IS_NPMJS = ENV["_"]?.includes(".bin/fbi");
|
|
9844
|
+
var PWD = IS_NPMJS ? process.cwd() : path3.join(process.cwd(), "isolate");
|
|
9845
|
+
if (!IS_NPMJS && !fs2.existsSync(PWD)) {
|
|
9846
|
+
fs2.mkdirSync(PWD, { recursive: true });
|
|
9847
|
+
}
|
|
9844
9848
|
var PROJECT_TARGET_URL = ENV.PROJECT_TARGET_URL;
|
|
9845
9849
|
var LLM_PROVIDER = ENV.LLM_PROVIDER;
|
|
9846
9850
|
var LLM_MODEL = ENV.LLM_MODEL;
|
|
@@ -9848,7 +9852,7 @@ var LLM_BASE_URL = ENV.LLM_BASE_URL;
|
|
|
9848
9852
|
var LLM_API_KEY = ENV.LLM_API_KEY || "";
|
|
9849
9853
|
|
|
9850
9854
|
// src/commands/be/index.ts
|
|
9851
|
-
import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|
9855
|
+
import { existsSync, mkdirSync, writeFileSync, rmSync } from "fs";
|
|
9852
9856
|
import { join } from "path";
|
|
9853
9857
|
|
|
9854
9858
|
// src/utils/logger.ts
|
|
@@ -9858,45 +9862,26 @@ function log(message, isVerbose = false, verbose = false) {
|
|
|
9858
9862
|
}
|
|
9859
9863
|
}
|
|
9860
9864
|
|
|
9861
|
-
// src/commands/be/
|
|
9862
|
-
|
|
9863
|
-
|
|
9864
|
-
|
|
9865
|
-
|
|
9866
|
-
|
|
9867
|
-
|
|
9868
|
-
|
|
9869
|
-
|
|
9870
|
-
|
|
9871
|
-
|
|
9865
|
+
// src/commands/be/files.ts
|
|
9866
|
+
var packageJson = (projectName) => ({
|
|
9867
|
+
name: projectName,
|
|
9868
|
+
version: "1.0.0",
|
|
9869
|
+
type: "module",
|
|
9870
|
+
scripts: {
|
|
9871
|
+
dev: "bun run --watch src/index.ts",
|
|
9872
|
+
start: "bun run src/index.ts",
|
|
9873
|
+
build: "bun build src/index.ts --outdir ./dist"
|
|
9874
|
+
},
|
|
9875
|
+
dependencies: {
|
|
9876
|
+
express: "^4.18.2",
|
|
9877
|
+
dotenv: "^16.3.1"
|
|
9878
|
+
},
|
|
9879
|
+
devDependencies: {
|
|
9880
|
+
"@types/express": "^4.17.21",
|
|
9881
|
+
"@types/bun": "latest"
|
|
9872
9882
|
}
|
|
9873
|
-
|
|
9874
|
-
|
|
9875
|
-
mkdirSync(join(projectPath, "src"), { recursive: true });
|
|
9876
|
-
mkdirSync(join(projectPath, "src", "routes"), { recursive: true });
|
|
9877
|
-
mkdirSync(join(projectPath, "src", "controllers"), { recursive: true });
|
|
9878
|
-
mkdirSync(join(projectPath, "src", "models"), { recursive: true });
|
|
9879
|
-
mkdirSync(join(projectPath, "src", "middlewares"), { recursive: true });
|
|
9880
|
-
const packageJson = {
|
|
9881
|
-
name: projectName,
|
|
9882
|
-
version: "1.0.0",
|
|
9883
|
-
type: "module",
|
|
9884
|
-
scripts: {
|
|
9885
|
-
dev: "bun run --watch src/index.ts",
|
|
9886
|
-
start: "bun run src/index.ts",
|
|
9887
|
-
build: "bun build src/index.ts --outdir ./dist"
|
|
9888
|
-
},
|
|
9889
|
-
dependencies: {
|
|
9890
|
-
express: "^4.18.2",
|
|
9891
|
-
dotenv: "^16.3.1"
|
|
9892
|
-
},
|
|
9893
|
-
devDependencies: {
|
|
9894
|
-
"@types/express": "^4.17.21",
|
|
9895
|
-
"@types/bun": "latest"
|
|
9896
|
-
}
|
|
9897
|
-
};
|
|
9898
|
-
writeFileSync(join(projectPath, "package.json"), JSON.stringify(packageJson, null, 2));
|
|
9899
|
-
writeFileSync(join(projectPath, "src", "index.ts"), `import express from "express";
|
|
9883
|
+
});
|
|
9884
|
+
var indexTs = (projectName) => `import express from "express";
|
|
9900
9885
|
import dotenv from "dotenv";
|
|
9901
9886
|
|
|
9902
9887
|
dotenv.config();
|
|
@@ -9913,15 +9898,15 @@ app.get("/", (req, res) => {
|
|
|
9913
9898
|
app.listen(PORT, () => {
|
|
9914
9899
|
console.log(\`\uD83D\uDE80 Server running on http://localhost:\${PORT}\`);
|
|
9915
9900
|
});
|
|
9916
|
-
|
|
9917
|
-
|
|
9918
|
-
`);
|
|
9919
|
-
writeFileSync(join(projectPath, ".gitignore"), `node_modules/
|
|
9901
|
+
`;
|
|
9902
|
+
var gitignore = `node_modules/
|
|
9920
9903
|
dist/
|
|
9921
9904
|
.env
|
|
9922
9905
|
*.log
|
|
9923
|
-
|
|
9924
|
-
|
|
9906
|
+
bun.lock
|
|
9907
|
+
bun.lockb
|
|
9908
|
+
`;
|
|
9909
|
+
var readme = (projectName) => `# ${projectName}
|
|
9925
9910
|
|
|
9926
9911
|
Backend project created with fbi
|
|
9927
9912
|
|
|
@@ -9932,12 +9917,67 @@ cd ${projectName}
|
|
|
9932
9917
|
bun install
|
|
9933
9918
|
bun run dev
|
|
9934
9919
|
\`\`\`
|
|
9935
|
-
|
|
9936
|
-
|
|
9920
|
+
`;
|
|
9921
|
+
var envFile = `PORT=3000
|
|
9922
|
+
`;
|
|
9923
|
+
|
|
9924
|
+
// src/commands/be/index.ts
|
|
9925
|
+
function beCommand(projectName, verbose, targetPath) {
|
|
9926
|
+
if (!projectName) {
|
|
9927
|
+
console.error("\u274C Error: Project name is required");
|
|
9928
|
+
console.log("Usage: fbi be <project-name>");
|
|
9929
|
+
process.exit(1);
|
|
9930
|
+
}
|
|
9931
|
+
const isCurrentDir = targetPath === "." || targetPath?.startsWith("./");
|
|
9932
|
+
let projectPath;
|
|
9933
|
+
let actualProjectName;
|
|
9934
|
+
if (isCurrentDir && targetPath) {
|
|
9935
|
+
projectPath = targetPath === "." ? PWD : join(PWD, targetPath.replace("./", ""));
|
|
9936
|
+
actualProjectName = projectName;
|
|
9937
|
+
} else {
|
|
9938
|
+
projectPath = join(PWD, projectName);
|
|
9939
|
+
actualProjectName = projectName;
|
|
9940
|
+
}
|
|
9941
|
+
if (existsSync(projectPath)) {
|
|
9942
|
+
if (IS_NPMJS) {
|
|
9943
|
+
console.error(`\u274C Error: Directory '${projectName}' already exists`);
|
|
9944
|
+
process.exit(1);
|
|
9945
|
+
}
|
|
9946
|
+
}
|
|
9947
|
+
if (!IS_NPMJS) {
|
|
9948
|
+
rmSync(PWD, { recursive: true, force: true });
|
|
9949
|
+
}
|
|
9950
|
+
log(`\uD83D\uDE80 Creating new backend project: ${actualProjectName}`, false, verbose);
|
|
9951
|
+
mkdirSync(projectPath, { recursive: true });
|
|
9952
|
+
mkdirSync(join(projectPath, "src"), { recursive: true });
|
|
9953
|
+
mkdirSync(join(projectPath, "src", "routes"), { recursive: true });
|
|
9954
|
+
mkdirSync(join(projectPath, "src", "controllers"), { recursive: true });
|
|
9955
|
+
mkdirSync(join(projectPath, "src", "models"), { recursive: true });
|
|
9956
|
+
mkdirSync(join(projectPath, "src", "middlewares"), { recursive: true });
|
|
9957
|
+
const packageJsonString = JSON.stringify(packageJson(actualProjectName), null, 2);
|
|
9958
|
+
writeFileSync(join(projectPath, "package.json"), packageJsonString);
|
|
9959
|
+
writeFileSync(join(projectPath, "src", "index.ts"), indexTs(actualProjectName));
|
|
9960
|
+
writeFileSync(join(projectPath, ".env"), envFile);
|
|
9961
|
+
writeFileSync(join(projectPath, ".gitignore"), gitignore);
|
|
9962
|
+
writeFileSync(join(projectPath, "README.md"), readme(actualProjectName));
|
|
9963
|
+
log(`\u2705 Backend project '${actualProjectName}' created successfully!`, false, verbose);
|
|
9964
|
+
log(`
|
|
9965
|
+
\uD83D\uDCE6 Installing dependencies...`, false, verbose);
|
|
9966
|
+
const installProcess = Bun.spawnSync(["bun", "install"], {
|
|
9967
|
+
cwd: projectPath,
|
|
9968
|
+
stdout: "inherit",
|
|
9969
|
+
stderr: "inherit"
|
|
9970
|
+
});
|
|
9971
|
+
if (installProcess.exitCode === 0) {
|
|
9972
|
+
log(`\u2705 Dependencies installed successfully!`, false, verbose);
|
|
9973
|
+
} else {
|
|
9974
|
+
log(`\u274C Failed to install dependencies`, false, verbose);
|
|
9975
|
+
}
|
|
9937
9976
|
log(`
|
|
9938
9977
|
Next steps:`, true, verbose);
|
|
9939
|
-
|
|
9940
|
-
|
|
9978
|
+
if (!isCurrentDir) {
|
|
9979
|
+
log(` cd ${actualProjectName}`, true, verbose);
|
|
9980
|
+
}
|
|
9941
9981
|
log(` bun run dev`, true, verbose);
|
|
9942
9982
|
}
|
|
9943
9983
|
|
|
@@ -9950,7 +9990,7 @@ function mcpCommand(projectName, verbose) {
|
|
|
9950
9990
|
console.log("Usage: fbi mcp <project-name>");
|
|
9951
9991
|
process.exit(1);
|
|
9952
9992
|
}
|
|
9953
|
-
const projectPath = join2(
|
|
9993
|
+
const projectPath = join2(PWD, projectName);
|
|
9954
9994
|
if (existsSync2(projectPath)) {
|
|
9955
9995
|
console.error(`\u274C Error: Directory '${projectName}' already exists`);
|
|
9956
9996
|
process.exit(1);
|
|
@@ -9960,7 +10000,7 @@ function mcpCommand(projectName, verbose) {
|
|
|
9960
10000
|
mkdirSync2(join2(projectPath, "src"), { recursive: true });
|
|
9961
10001
|
mkdirSync2(join2(projectPath, "src", "tools"), { recursive: true });
|
|
9962
10002
|
mkdirSync2(join2(projectPath, "src", "resources"), { recursive: true });
|
|
9963
|
-
const
|
|
10003
|
+
const packageJson2 = {
|
|
9964
10004
|
name: projectName,
|
|
9965
10005
|
version: "1.0.0",
|
|
9966
10006
|
type: "module",
|
|
@@ -9977,7 +10017,7 @@ function mcpCommand(projectName, verbose) {
|
|
|
9977
10017
|
"@types/bun": "latest"
|
|
9978
10018
|
}
|
|
9979
10019
|
};
|
|
9980
|
-
writeFileSync2(join2(projectPath, "package.json"), JSON.stringify(
|
|
10020
|
+
writeFileSync2(join2(projectPath, "package.json"), JSON.stringify(packageJson2, null, 2));
|
|
9981
10021
|
writeFileSync2(join2(projectPath, "src", "index.ts"), `import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
9982
10022
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9983
10023
|
import dotenv from "dotenv";
|
|
@@ -10035,16 +10075,16 @@ import { existsSync as existsSync3, readFileSync as readFileSync2 } from "fs";
|
|
|
10035
10075
|
import { join as join3 } from "path";
|
|
10036
10076
|
function syncCommand(verbose) {
|
|
10037
10077
|
log(`\uD83D\uDD04 Syncing backend interface with application target...`, false, verbose);
|
|
10038
|
-
const packageJsonPath = join3(
|
|
10078
|
+
const packageJsonPath = join3(PWD, "package.json");
|
|
10039
10079
|
if (!existsSync3(packageJsonPath)) {
|
|
10040
10080
|
console.error("\u274C Error: package.json not found in current directory");
|
|
10041
10081
|
console.log("Make sure you're in a project directory");
|
|
10042
10082
|
process.exit(1);
|
|
10043
10083
|
}
|
|
10044
10084
|
try {
|
|
10045
|
-
const
|
|
10046
|
-
log(`Project: ${
|
|
10047
|
-
log(`Version: ${
|
|
10085
|
+
const packageJson2 = JSON.parse(readFileSync2(packageJsonPath, "utf-8"));
|
|
10086
|
+
log(`Project: ${packageJson2.name}`, true, verbose);
|
|
10087
|
+
log(`Version: ${packageJson2.version}`, true, verbose);
|
|
10048
10088
|
log(`\u2705 Sync completed successfully!`, false, verbose);
|
|
10049
10089
|
} catch (error) {
|
|
10050
10090
|
console.error("\u274C Error reading package.json:", error);
|
|
@@ -10083,9 +10123,10 @@ ${banner_default}
|
|
|
10083
10123
|
}
|
|
10084
10124
|
});
|
|
10085
10125
|
var [command, ...args] = cli.input;
|
|
10126
|
+
console.log({ args });
|
|
10086
10127
|
switch (command) {
|
|
10087
10128
|
case "be":
|
|
10088
|
-
beCommand(args[0] || "", cli.flags.verbose);
|
|
10129
|
+
beCommand(args[0] || "", cli.flags.verbose, args[1]);
|
|
10089
10130
|
break;
|
|
10090
10131
|
case "mcp":
|
|
10091
10132
|
mcpCommand(args[0] || "", cli.flags.verbose);
|