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