@base44-preview/cli 0.0.17-pr.111.518a0e3 → 0.0.17-pr.19.1b258d9
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/bin/dev.cmd +2 -0
- package/bin/run.cmd +2 -0
- package/dist/index.js +139 -107
- package/package.json +5 -2
package/bin/dev.cmd
ADDED
package/bin/run.cmd
ADDED
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { EventEmitter, addAbortListener, on, once, setMaxListeners } from "node:
|
|
|
3
3
|
import childProcess, { ChildProcess, execFile, spawn, spawnSync } from "node:child_process";
|
|
4
4
|
import path, { basename, dirname, join, posix, resolve, win32 } from "node:path";
|
|
5
5
|
import fs, { appendFileSync, createReadStream, createWriteStream, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
6
|
-
import
|
|
6
|
+
import y, { execArgv, execPath, hrtime, platform, stdin, stdout } from "node:process";
|
|
7
7
|
import { aborted, callbackify, debuglog, inspect, promisify, stripVTControlCharacters } from "node:util";
|
|
8
8
|
import * as g from "node:readline";
|
|
9
9
|
import O from "node:readline";
|
|
@@ -893,7 +893,7 @@ var require_command = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
893
893
|
const childProcess$1 = __require("node:child_process");
|
|
894
894
|
const path$15 = __require("node:path");
|
|
895
895
|
const fs$10 = __require("node:fs");
|
|
896
|
-
const process$
|
|
896
|
+
const process$3 = __require("node:process");
|
|
897
897
|
const { Argument, humanReadableArgName } = require_argument();
|
|
898
898
|
const { CommanderError } = require_error$1();
|
|
899
899
|
const { Help } = require_help();
|
|
@@ -944,10 +944,10 @@ var require_command = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
944
944
|
this._showHelpAfterError = false;
|
|
945
945
|
this._showSuggestionAfterError = true;
|
|
946
946
|
this._outputConfiguration = {
|
|
947
|
-
writeOut: (str) => process$
|
|
948
|
-
writeErr: (str) => process$
|
|
949
|
-
getOutHelpWidth: () => process$
|
|
950
|
-
getErrHelpWidth: () => process$
|
|
947
|
+
writeOut: (str) => process$3.stdout.write(str),
|
|
948
|
+
writeErr: (str) => process$3.stderr.write(str),
|
|
949
|
+
getOutHelpWidth: () => process$3.stdout.isTTY ? process$3.stdout.columns : void 0,
|
|
950
|
+
getErrHelpWidth: () => process$3.stderr.isTTY ? process$3.stderr.columns : void 0,
|
|
951
951
|
outputError: (str, write) => write(str)
|
|
952
952
|
};
|
|
953
953
|
this._hidden = false;
|
|
@@ -1301,7 +1301,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1301
1301
|
*/
|
|
1302
1302
|
_exit(exitCode, code$1, message) {
|
|
1303
1303
|
if (this._exitCallback) this._exitCallback(new CommanderError(exitCode, code$1, message));
|
|
1304
|
-
process$
|
|
1304
|
+
process$3.exit(exitCode);
|
|
1305
1305
|
}
|
|
1306
1306
|
/**
|
|
1307
1307
|
* Register callback `fn` for the command.
|
|
@@ -1640,11 +1640,11 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1640
1640
|
if (argv !== void 0 && !Array.isArray(argv)) throw new Error("first parameter to parse must be array or undefined");
|
|
1641
1641
|
parseOptions = parseOptions || {};
|
|
1642
1642
|
if (argv === void 0 && parseOptions.from === void 0) {
|
|
1643
|
-
if (process$
|
|
1644
|
-
const execArgv$1 = process$
|
|
1643
|
+
if (process$3.versions?.electron) parseOptions.from = "electron";
|
|
1644
|
+
const execArgv$1 = process$3.execArgv ?? [];
|
|
1645
1645
|
if (execArgv$1.includes("-e") || execArgv$1.includes("--eval") || execArgv$1.includes("-p") || execArgv$1.includes("--print")) parseOptions.from = "eval";
|
|
1646
1646
|
}
|
|
1647
|
-
if (argv === void 0) argv = process$
|
|
1647
|
+
if (argv === void 0) argv = process$3.argv;
|
|
1648
1648
|
this.rawArgs = argv.slice();
|
|
1649
1649
|
let userArgs;
|
|
1650
1650
|
switch (parseOptions.from) {
|
|
@@ -1654,7 +1654,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1654
1654
|
userArgs = argv.slice(2);
|
|
1655
1655
|
break;
|
|
1656
1656
|
case "electron":
|
|
1657
|
-
if (process$
|
|
1657
|
+
if (process$3.defaultApp) {
|
|
1658
1658
|
this._scriptPath = argv[1];
|
|
1659
1659
|
userArgs = argv.slice(2);
|
|
1660
1660
|
} else userArgs = argv.slice(1);
|
|
@@ -1768,15 +1768,15 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1768
1768
|
}
|
|
1769
1769
|
launchWithNode = sourceExt.includes(path$15.extname(executableFile));
|
|
1770
1770
|
let proc$1;
|
|
1771
|
-
if (process$
|
|
1771
|
+
if (process$3.platform !== "win32") if (launchWithNode) {
|
|
1772
1772
|
args.unshift(executableFile);
|
|
1773
|
-
args = incrementNodeInspectorPort(process$
|
|
1774
|
-
proc$1 = childProcess$1.spawn(process$
|
|
1773
|
+
args = incrementNodeInspectorPort(process$3.execArgv).concat(args);
|
|
1774
|
+
proc$1 = childProcess$1.spawn(process$3.argv[0], args, { stdio: "inherit" });
|
|
1775
1775
|
} else proc$1 = childProcess$1.spawn(executableFile, args, { stdio: "inherit" });
|
|
1776
1776
|
else {
|
|
1777
1777
|
args.unshift(executableFile);
|
|
1778
|
-
args = incrementNodeInspectorPort(process$
|
|
1779
|
-
proc$1 = childProcess$1.spawn(process$
|
|
1778
|
+
args = incrementNodeInspectorPort(process$3.execArgv).concat(args);
|
|
1779
|
+
proc$1 = childProcess$1.spawn(process$3.execPath, args, { stdio: "inherit" });
|
|
1780
1780
|
}
|
|
1781
1781
|
if (!proc$1.killed) [
|
|
1782
1782
|
"SIGUSR1",
|
|
@@ -1785,14 +1785,14 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1785
1785
|
"SIGINT",
|
|
1786
1786
|
"SIGHUP"
|
|
1787
1787
|
].forEach((signal) => {
|
|
1788
|
-
process$
|
|
1788
|
+
process$3.on(signal, () => {
|
|
1789
1789
|
if (proc$1.killed === false && proc$1.exitCode === null) proc$1.kill(signal);
|
|
1790
1790
|
});
|
|
1791
1791
|
});
|
|
1792
1792
|
const exitCallback = this._exitCallback;
|
|
1793
1793
|
proc$1.on("close", (code$1) => {
|
|
1794
1794
|
code$1 = code$1 ?? 1;
|
|
1795
|
-
if (!exitCallback) process$
|
|
1795
|
+
if (!exitCallback) process$3.exit(code$1);
|
|
1796
1796
|
else exitCallback(new CommanderError(code$1, "commander.executeSubCommandAsync", "(close)"));
|
|
1797
1797
|
});
|
|
1798
1798
|
proc$1.on("error", (err) => {
|
|
@@ -1804,7 +1804,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1804
1804
|
- ${executableDirMessage}`;
|
|
1805
1805
|
throw new Error(executableMissing);
|
|
1806
1806
|
} else if (err.code === "EACCES") throw new Error(`'${executableFile}' not executable`);
|
|
1807
|
-
if (!exitCallback) process$
|
|
1807
|
+
if (!exitCallback) process$3.exit(1);
|
|
1808
1808
|
else {
|
|
1809
1809
|
const wrappedError = new CommanderError(1, "commander.executeSubCommandAsync", "(error)");
|
|
1810
1810
|
wrappedError.nestedError = err;
|
|
@@ -2210,13 +2210,13 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2210
2210
|
*/
|
|
2211
2211
|
_parseOptionsEnv() {
|
|
2212
2212
|
this.options.forEach((option) => {
|
|
2213
|
-
if (option.envVar && option.envVar in process$
|
|
2213
|
+
if (option.envVar && option.envVar in process$3.env) {
|
|
2214
2214
|
const optionKey = option.attributeName();
|
|
2215
2215
|
if (this.getOptionValue(optionKey) === void 0 || [
|
|
2216
2216
|
"default",
|
|
2217
2217
|
"config",
|
|
2218
2218
|
"env"
|
|
2219
|
-
].includes(this.getOptionValueSource(optionKey))) if (option.required || option.optional) this.emit(`optionEnv:${option.name()}`, process$
|
|
2219
|
+
].includes(this.getOptionValueSource(optionKey))) if (option.required || option.optional) this.emit(`optionEnv:${option.name()}`, process$3.env[option.envVar]);
|
|
2220
2220
|
else this.emit(`optionEnv:${option.name()}`);
|
|
2221
2221
|
}
|
|
2222
2222
|
});
|
|
@@ -2595,7 +2595,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2595
2595
|
*/
|
|
2596
2596
|
help(contextOptions) {
|
|
2597
2597
|
this.outputHelp(contextOptions);
|
|
2598
|
-
let exitCode = process$
|
|
2598
|
+
let exitCode = process$3.exitCode || 0;
|
|
2599
2599
|
if (exitCode === 0 && contextOptions && typeof contextOptions !== "function" && contextOptions.error) exitCode = 1;
|
|
2600
2600
|
this._exit(exitCode, "commander.help", "(outputHelp)");
|
|
2601
2601
|
}
|
|
@@ -2711,16 +2711,16 @@ var require_src = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
2711
2711
|
const CSI = `${ESC}[`;
|
|
2712
2712
|
const beep = "\x07";
|
|
2713
2713
|
const cursor = {
|
|
2714
|
-
to(x$2, y$
|
|
2715
|
-
if (!y$
|
|
2716
|
-
return `${CSI}${y$
|
|
2714
|
+
to(x$2, y$2) {
|
|
2715
|
+
if (!y$2) return `${CSI}${x$2 + 1}G`;
|
|
2716
|
+
return `${CSI}${y$2 + 1};${x$2 + 1}H`;
|
|
2717
2717
|
},
|
|
2718
|
-
move(x$2, y$
|
|
2718
|
+
move(x$2, y$2) {
|
|
2719
2719
|
let ret = "";
|
|
2720
2720
|
if (x$2 < 0) ret += `${CSI}${-x$2}D`;
|
|
2721
2721
|
else if (x$2 > 0) ret += `${CSI}${x$2}C`;
|
|
2722
|
-
if (y$
|
|
2723
|
-
else if (y$
|
|
2722
|
+
if (y$2 < 0) ret += `${CSI}${-y$2}A`;
|
|
2723
|
+
else if (y$2 > 0) ret += `${CSI}${y$2}B`;
|
|
2724
2724
|
return ret;
|
|
2725
2725
|
},
|
|
2726
2726
|
up: (count$1 = 1) => `${CSI}${count$1}A`,
|
|
@@ -3030,13 +3030,13 @@ function rD() {
|
|
|
3030
3030
|
}
|
|
3031
3031
|
}), r;
|
|
3032
3032
|
}
|
|
3033
|
-
const ED = rD(), d$1 = new Set(["\x1B", ""]), oD = 39, y = "\x07", V$1 = "[", nD = "]", G$1 = "m", _$1 = `${nD}8;;`, z = (e$1) => `${d$1.values().next().value}${V$1}${e$1}${G$1}`, K$1 = (e$1) => `${d$1.values().next().value}${_$1}${e$1}${y}`, aD = (e$1) => e$1.split(" ").map((u$2) => p(u$2)), k$1 = (e$1, u$2, t) => {
|
|
3033
|
+
const ED = rD(), d$1 = new Set(["\x1B", ""]), oD = 39, y$1 = "\x07", V$1 = "[", nD = "]", G$1 = "m", _$1 = `${nD}8;;`, z = (e$1) => `${d$1.values().next().value}${V$1}${e$1}${G$1}`, K$1 = (e$1) => `${d$1.values().next().value}${_$1}${e$1}${y$1}`, aD = (e$1) => e$1.split(" ").map((u$2) => p(u$2)), k$1 = (e$1, u$2, t) => {
|
|
3034
3034
|
const F$1 = [...u$2];
|
|
3035
3035
|
let s = !1, i$1 = !1, D$1 = p(P$1(e$1[e$1.length - 1]));
|
|
3036
3036
|
for (const [C$1, n$1] of F$1.entries()) {
|
|
3037
3037
|
const E = p(n$1);
|
|
3038
3038
|
if (D$1 + E <= t ? e$1[e$1.length - 1] += n$1 : (e$1.push(n$1), D$1 = 0), d$1.has(n$1) && (s = !0, i$1 = F$1.slice(C$1 + 1).join("").startsWith(_$1)), s) {
|
|
3039
|
-
i$1 ? n$1 === y && (s = !1, i$1 = !1) : n$1 === G$1 && (s = !1);
|
|
3039
|
+
i$1 ? n$1 === y$1 && (s = !1, i$1 = !1) : n$1 === G$1 && (s = !1);
|
|
3040
3040
|
continue;
|
|
3041
3041
|
}
|
|
3042
3042
|
D$1 += E, D$1 === t && C$1 < F$1.length - 1 && (e$1.push(""), D$1 = 0);
|
|
@@ -3078,7 +3078,7 @@ const ED = rD(), d$1 = new Set(["\x1B", ""]), oD = 39, y = "\x07", V$1 = "[",
|
|
|
3078
3078
|
`)];
|
|
3079
3079
|
for (const [E, a$1] of n$1.entries()) {
|
|
3080
3080
|
if (F$1 += a$1, d$1.has(a$1)) {
|
|
3081
|
-
const { groups: c$1 } = (/* @__PURE__ */ new RegExp(`(?:\\${V$1}(?<code>\\d+)m|\\${_$1}(?<uri>.*)${y})`)).exec(n$1.slice(E).join("")) || { groups: {} };
|
|
3081
|
+
const { groups: c$1 } = (/* @__PURE__ */ new RegExp(`(?:\\${V$1}(?<code>\\d+)m|\\${_$1}(?<uri>.*)${y$1})`)).exec(n$1.slice(E).join("")) || { groups: {} };
|
|
3082
3082
|
if (c$1.code !== void 0) {
|
|
3083
3083
|
const f = Number.parseFloat(c$1.code);
|
|
3084
3084
|
s = f === oD ? void 0 : f;
|
|
@@ -3479,7 +3479,7 @@ var RD = class extends x$1 {
|
|
|
3479
3479
|
//#endregion
|
|
3480
3480
|
//#region node_modules/@clack/prompts/dist/index.mjs
|
|
3481
3481
|
function ce() {
|
|
3482
|
-
return
|
|
3482
|
+
return y.platform !== "win32" ? y.env.TERM !== "linux" : !!y.env.CI || !!y.env.WT_SESSION || !!y.env.TERMINUS_SUBLIME || y.env.ConEmuTask === "{cmd::Cmder}" || y.env.TERM_PROGRAM === "Terminus-Sublime" || y.env.TERM_PROGRAM === "vscode" || y.env.TERM === "xterm-256color" || y.env.TERM === "alacritty" || y.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
|
|
3483
3483
|
}
|
|
3484
3484
|
const V = ce(), u$1 = (t, n$1) => V ? t : n$1, le = u$1("◆", "*"), L = u$1("■", "x"), W = u$1("▲", "x"), C = u$1("◇", "o"), ue = u$1("┌", "T"), o$1 = u$1("│", "|"), d = u$1("└", "—"), k = u$1("●", ">"), P = u$1("○", " "), A = u$1("◻", "[•]"), T = u$1("◼", "[+]"), F = u$1("◻", "[ ]"), $e = u$1("▪", "•"), _ = u$1("─", "-"), me = u$1("╮", "+"), de = u$1("├", "+"), pe = u$1("╯", "+"), q = u$1("●", "•"), D = u$1("◆", "*"), U = u$1("▲", "!"), K = u$1("■", "x"), b = (t) => {
|
|
3485
3485
|
switch (t) {
|
|
@@ -6653,7 +6653,7 @@ function initializeContext(params) {
|
|
|
6653
6653
|
external: params?.external ?? void 0
|
|
6654
6654
|
};
|
|
6655
6655
|
}
|
|
6656
|
-
function process$
|
|
6656
|
+
function process$2(schema, ctx, _params = {
|
|
6657
6657
|
path: [],
|
|
6658
6658
|
schemaPath: []
|
|
6659
6659
|
}) {
|
|
@@ -6690,7 +6690,7 @@ function process$3(schema, ctx, _params = {
|
|
|
6690
6690
|
const parent = schema._zod.parent;
|
|
6691
6691
|
if (parent) {
|
|
6692
6692
|
if (!result.ref) result.ref = parent;
|
|
6693
|
-
process$
|
|
6693
|
+
process$2(parent, ctx, params);
|
|
6694
6694
|
ctx.seen.get(parent).isParent = true;
|
|
6695
6695
|
}
|
|
6696
6696
|
}
|
|
@@ -6902,7 +6902,7 @@ const createToJSONSchemaMethod = (schema, processors = {}) => (params) => {
|
|
|
6902
6902
|
...params,
|
|
6903
6903
|
processors
|
|
6904
6904
|
});
|
|
6905
|
-
process$
|
|
6905
|
+
process$2(schema, ctx);
|
|
6906
6906
|
extractDefs(ctx, schema);
|
|
6907
6907
|
return finalize(ctx, schema);
|
|
6908
6908
|
};
|
|
@@ -6914,7 +6914,7 @@ const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params)
|
|
|
6914
6914
|
io,
|
|
6915
6915
|
processors
|
|
6916
6916
|
});
|
|
6917
|
-
process$
|
|
6917
|
+
process$2(schema, ctx);
|
|
6918
6918
|
extractDefs(ctx, schema);
|
|
6919
6919
|
return finalize(ctx, schema);
|
|
6920
6920
|
};
|
|
@@ -7001,7 +7001,7 @@ const arrayProcessor = (schema, ctx, _json, params) => {
|
|
|
7001
7001
|
if (typeof minimum === "number") json.minItems = minimum;
|
|
7002
7002
|
if (typeof maximum === "number") json.maxItems = maximum;
|
|
7003
7003
|
json.type = "array";
|
|
7004
|
-
json.items = process$
|
|
7004
|
+
json.items = process$2(def.element, ctx, {
|
|
7005
7005
|
...params,
|
|
7006
7006
|
path: [...params.path, "items"]
|
|
7007
7007
|
});
|
|
@@ -7012,7 +7012,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
|
|
|
7012
7012
|
json.type = "object";
|
|
7013
7013
|
json.properties = {};
|
|
7014
7014
|
const shape = def.shape;
|
|
7015
|
-
for (const key in shape) json.properties[key] = process$
|
|
7015
|
+
for (const key in shape) json.properties[key] = process$2(shape[key], ctx, {
|
|
7016
7016
|
...params,
|
|
7017
7017
|
path: [
|
|
7018
7018
|
...params.path,
|
|
@@ -7030,7 +7030,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
|
|
|
7030
7030
|
if (def.catchall?._zod.def.type === "never") json.additionalProperties = false;
|
|
7031
7031
|
else if (!def.catchall) {
|
|
7032
7032
|
if (ctx.io === "output") json.additionalProperties = false;
|
|
7033
|
-
} else if (def.catchall) json.additionalProperties = process$
|
|
7033
|
+
} else if (def.catchall) json.additionalProperties = process$2(def.catchall, ctx, {
|
|
7034
7034
|
...params,
|
|
7035
7035
|
path: [...params.path, "additionalProperties"]
|
|
7036
7036
|
});
|
|
@@ -7038,7 +7038,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
|
|
|
7038
7038
|
const unionProcessor = (schema, ctx, json, params) => {
|
|
7039
7039
|
const def = schema._zod.def;
|
|
7040
7040
|
const isExclusive = def.inclusive === false;
|
|
7041
|
-
const options = def.options.map((x$2, i$1) => process$
|
|
7041
|
+
const options = def.options.map((x$2, i$1) => process$2(x$2, ctx, {
|
|
7042
7042
|
...params,
|
|
7043
7043
|
path: [
|
|
7044
7044
|
...params.path,
|
|
@@ -7051,7 +7051,7 @@ const unionProcessor = (schema, ctx, json, params) => {
|
|
|
7051
7051
|
};
|
|
7052
7052
|
const intersectionProcessor = (schema, ctx, json, params) => {
|
|
7053
7053
|
const def = schema._zod.def;
|
|
7054
|
-
const a$1 = process$
|
|
7054
|
+
const a$1 = process$2(def.left, ctx, {
|
|
7055
7055
|
...params,
|
|
7056
7056
|
path: [
|
|
7057
7057
|
...params.path,
|
|
@@ -7059,7 +7059,7 @@ const intersectionProcessor = (schema, ctx, json, params) => {
|
|
|
7059
7059
|
0
|
|
7060
7060
|
]
|
|
7061
7061
|
});
|
|
7062
|
-
const b$2 = process$
|
|
7062
|
+
const b$2 = process$2(def.right, ctx, {
|
|
7063
7063
|
...params,
|
|
7064
7064
|
path: [
|
|
7065
7065
|
...params.path,
|
|
@@ -7076,7 +7076,7 @@ const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
7076
7076
|
json.type = "array";
|
|
7077
7077
|
const prefixPath$1 = ctx.target === "draft-2020-12" ? "prefixItems" : "items";
|
|
7078
7078
|
const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems";
|
|
7079
|
-
const prefixItems = def.items.map((x$2, i$1) => process$
|
|
7079
|
+
const prefixItems = def.items.map((x$2, i$1) => process$2(x$2, ctx, {
|
|
7080
7080
|
...params,
|
|
7081
7081
|
path: [
|
|
7082
7082
|
...params.path,
|
|
@@ -7084,7 +7084,7 @@ const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
7084
7084
|
i$1
|
|
7085
7085
|
]
|
|
7086
7086
|
}));
|
|
7087
|
-
const rest = def.rest ? process$
|
|
7087
|
+
const rest = def.rest ? process$2(def.rest, ctx, {
|
|
7088
7088
|
...params,
|
|
7089
7089
|
path: [
|
|
7090
7090
|
...params.path,
|
|
@@ -7110,7 +7110,7 @@ const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
7110
7110
|
};
|
|
7111
7111
|
const nullableProcessor = (schema, ctx, json, params) => {
|
|
7112
7112
|
const def = schema._zod.def;
|
|
7113
|
-
const inner = process$
|
|
7113
|
+
const inner = process$2(def.innerType, ctx, params);
|
|
7114
7114
|
const seen = ctx.seen.get(schema);
|
|
7115
7115
|
if (ctx.target === "openapi-3.0") {
|
|
7116
7116
|
seen.ref = def.innerType;
|
|
@@ -7119,27 +7119,27 @@ const nullableProcessor = (schema, ctx, json, params) => {
|
|
|
7119
7119
|
};
|
|
7120
7120
|
const nonoptionalProcessor = (schema, ctx, _json, params) => {
|
|
7121
7121
|
const def = schema._zod.def;
|
|
7122
|
-
process$
|
|
7122
|
+
process$2(def.innerType, ctx, params);
|
|
7123
7123
|
const seen = ctx.seen.get(schema);
|
|
7124
7124
|
seen.ref = def.innerType;
|
|
7125
7125
|
};
|
|
7126
7126
|
const defaultProcessor = (schema, ctx, json, params) => {
|
|
7127
7127
|
const def = schema._zod.def;
|
|
7128
|
-
process$
|
|
7128
|
+
process$2(def.innerType, ctx, params);
|
|
7129
7129
|
const seen = ctx.seen.get(schema);
|
|
7130
7130
|
seen.ref = def.innerType;
|
|
7131
7131
|
json.default = JSON.parse(JSON.stringify(def.defaultValue));
|
|
7132
7132
|
};
|
|
7133
7133
|
const prefaultProcessor = (schema, ctx, json, params) => {
|
|
7134
7134
|
const def = schema._zod.def;
|
|
7135
|
-
process$
|
|
7135
|
+
process$2(def.innerType, ctx, params);
|
|
7136
7136
|
const seen = ctx.seen.get(schema);
|
|
7137
7137
|
seen.ref = def.innerType;
|
|
7138
7138
|
if (ctx.io === "input") json._prefault = JSON.parse(JSON.stringify(def.defaultValue));
|
|
7139
7139
|
};
|
|
7140
7140
|
const catchProcessor = (schema, ctx, json, params) => {
|
|
7141
7141
|
const def = schema._zod.def;
|
|
7142
|
-
process$
|
|
7142
|
+
process$2(def.innerType, ctx, params);
|
|
7143
7143
|
const seen = ctx.seen.get(schema);
|
|
7144
7144
|
seen.ref = def.innerType;
|
|
7145
7145
|
let catchValue;
|
|
@@ -7153,20 +7153,20 @@ const catchProcessor = (schema, ctx, json, params) => {
|
|
|
7153
7153
|
const pipeProcessor = (schema, ctx, _json, params) => {
|
|
7154
7154
|
const def = schema._zod.def;
|
|
7155
7155
|
const innerType = ctx.io === "input" ? def.in._zod.def.type === "transform" ? def.out : def.in : def.out;
|
|
7156
|
-
process$
|
|
7156
|
+
process$2(innerType, ctx, params);
|
|
7157
7157
|
const seen = ctx.seen.get(schema);
|
|
7158
7158
|
seen.ref = innerType;
|
|
7159
7159
|
};
|
|
7160
7160
|
const readonlyProcessor = (schema, ctx, json, params) => {
|
|
7161
7161
|
const def = schema._zod.def;
|
|
7162
|
-
process$
|
|
7162
|
+
process$2(def.innerType, ctx, params);
|
|
7163
7163
|
const seen = ctx.seen.get(schema);
|
|
7164
7164
|
seen.ref = def.innerType;
|
|
7165
7165
|
json.readOnly = true;
|
|
7166
7166
|
};
|
|
7167
7167
|
const optionalProcessor = (schema, ctx, _json, params) => {
|
|
7168
7168
|
const def = schema._zod.def;
|
|
7169
|
-
process$
|
|
7169
|
+
process$2(def.innerType, ctx, params);
|
|
7170
7170
|
const seen = ctx.seen.get(schema);
|
|
7171
7171
|
seen.ref = def.innerType;
|
|
7172
7172
|
};
|
|
@@ -16192,7 +16192,7 @@ const createIgnorePredicate = (patterns, cwd, baseDir) => {
|
|
|
16192
16192
|
};
|
|
16193
16193
|
const normalizeOptions$2 = (options = {}) => {
|
|
16194
16194
|
const ignoreOption = options.ignore ? Array.isArray(options.ignore) ? options.ignore : [options.ignore] : [];
|
|
16195
|
-
const cwd = toPath$1(options.cwd) ??
|
|
16195
|
+
const cwd = toPath$1(options.cwd) ?? y.cwd();
|
|
16196
16196
|
const deep = typeof options.deep === "number" ? Math.max(0, options.deep) + 1 : Number.POSITIVE_INFINITY;
|
|
16197
16197
|
return {
|
|
16198
16198
|
cwd,
|
|
@@ -16289,7 +16289,7 @@ const getDirectoryGlob = ({ directoryPath, files, extensions }) => {
|
|
|
16289
16289
|
const extensionGlob = extensions?.length > 0 ? `.${extensions.length > 1 ? `{${extensions.join(",")}}` : extensions[0]}` : "";
|
|
16290
16290
|
return files ? files.map((file) => path.posix.join(directoryPath, `**/${path.extname(file) ? file : `${file}${extensionGlob}`}`)) : [path.posix.join(directoryPath, `**${extensionGlob ? `/*${extensionGlob}` : ""}`)];
|
|
16291
16291
|
};
|
|
16292
|
-
const directoryToGlob = async (directoryPaths, { cwd =
|
|
16292
|
+
const directoryToGlob = async (directoryPaths, { cwd = y.cwd(), files, extensions, fs: fsImplementation } = {}) => {
|
|
16293
16293
|
return (await Promise.all(directoryPaths.map(async (directoryPath) => {
|
|
16294
16294
|
if (shouldExpandGlobstarDirectory(isNegativePattern(directoryPath) ? directoryPath.slice(1) : directoryPath)) return getDirectoryGlob({
|
|
16295
16295
|
directoryPath,
|
|
@@ -16303,7 +16303,7 @@ const directoryToGlob = async (directoryPaths, { cwd = process$1.cwd(), files, e
|
|
|
16303
16303
|
}) : directoryPath;
|
|
16304
16304
|
}))).flat();
|
|
16305
16305
|
};
|
|
16306
|
-
const directoryToGlobSync = (directoryPaths, { cwd =
|
|
16306
|
+
const directoryToGlobSync = (directoryPaths, { cwd = y.cwd(), files, extensions, fs: fsImplementation } = {}) => directoryPaths.flatMap((directoryPath) => {
|
|
16307
16307
|
if (shouldExpandGlobstarDirectory(isNegativePattern(directoryPath) ? directoryPath.slice(1) : directoryPath)) return getDirectoryGlob({
|
|
16308
16308
|
directoryPath,
|
|
16309
16309
|
files,
|
|
@@ -16399,7 +16399,7 @@ const applyIgnoreFilesAndGetFilterSync = (options) => {
|
|
|
16399
16399
|
};
|
|
16400
16400
|
const createFilterFunction = (isIgnored, cwd) => {
|
|
16401
16401
|
const seen = /* @__PURE__ */ new Set();
|
|
16402
|
-
const basePath = cwd ||
|
|
16402
|
+
const basePath = cwd || y.cwd();
|
|
16403
16403
|
const pathCache = /* @__PURE__ */ new Map();
|
|
16404
16404
|
return (fastGlobResult) => {
|
|
16405
16405
|
const pathKey$1 = path.normalize(fastGlobResult.path ?? fastGlobResult);
|
|
@@ -30402,11 +30402,31 @@ async function deployAll(projectData) {
|
|
|
30402
30402
|
//#region src/core/project/app-config.ts
|
|
30403
30403
|
let cache = null;
|
|
30404
30404
|
/**
|
|
30405
|
+
* Load app config from BASE44_CLI_TEST_OVERRIDES env var.
|
|
30406
|
+
* @returns true if override was applied, false otherwise
|
|
30407
|
+
*/
|
|
30408
|
+
function loadFromTestOverrides() {
|
|
30409
|
+
const overrides = process.env.BASE44_CLI_TEST_OVERRIDES;
|
|
30410
|
+
if (!overrides) return false;
|
|
30411
|
+
try {
|
|
30412
|
+
const data = JSON.parse(overrides);
|
|
30413
|
+
if (data.appConfig?.id && data.appConfig?.projectRoot) {
|
|
30414
|
+
cache = {
|
|
30415
|
+
id: data.appConfig.id,
|
|
30416
|
+
projectRoot: data.appConfig.projectRoot
|
|
30417
|
+
};
|
|
30418
|
+
return true;
|
|
30419
|
+
}
|
|
30420
|
+
} catch {}
|
|
30421
|
+
return false;
|
|
30422
|
+
}
|
|
30423
|
+
/**
|
|
30405
30424
|
* Initialize app config by reading from .app.jsonc.
|
|
30406
30425
|
* Must be called before using getAppConfig().
|
|
30407
30426
|
* @throws Error if no project found or .app.jsonc missing
|
|
30408
30427
|
*/
|
|
30409
30428
|
async function initAppConfig() {
|
|
30429
|
+
if (loadFromTestOverrides()) return;
|
|
30410
30430
|
if (cache) return;
|
|
30411
30431
|
const projectRoot = await findProjectRoot();
|
|
30412
30432
|
if (!projectRoot) throw new Error("No Base44 project found. Run this command from a project directory with a config.jsonc file.");
|
|
@@ -30768,13 +30788,13 @@ var ansi_styles_default = ansiStyles;
|
|
|
30768
30788
|
|
|
30769
30789
|
//#endregion
|
|
30770
30790
|
//#region node_modules/chalk/source/vendor/supports-color/index.js
|
|
30771
|
-
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args :
|
|
30791
|
+
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : y.argv) {
|
|
30772
30792
|
const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
|
|
30773
30793
|
const position = argv.indexOf(prefix + flag);
|
|
30774
30794
|
const terminatorPosition = argv.indexOf("--");
|
|
30775
30795
|
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
|
|
30776
30796
|
}
|
|
30777
|
-
const { env } =
|
|
30797
|
+
const { env } = y;
|
|
30778
30798
|
let flagForceColor;
|
|
30779
30799
|
if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) flagForceColor = 0;
|
|
30780
30800
|
else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) flagForceColor = 1;
|
|
@@ -30807,7 +30827,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
|
|
30807
30827
|
if (haveStream && !streamIsTTY && forceColor === void 0) return 0;
|
|
30808
30828
|
const min = forceColor || 0;
|
|
30809
30829
|
if (env.TERM === "dumb") return min;
|
|
30810
|
-
if (
|
|
30830
|
+
if (y.platform === "win32") {
|
|
30811
30831
|
const osRelease = os.release().split(".");
|
|
30812
30832
|
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
30813
30833
|
return 1;
|
|
@@ -31336,7 +31356,8 @@ const logoutCommand = new Command("logout").description("Logout from current dev
|
|
|
31336
31356
|
async function pushEntitiesAction() {
|
|
31337
31357
|
const { entities } = await readProjectConfig();
|
|
31338
31358
|
if (entities.length === 0) return { outroMessage: "No entities found in project" };
|
|
31339
|
-
|
|
31359
|
+
const entityNames = entities.map((e$1) => e$1.name).join(", ");
|
|
31360
|
+
M.info(`Found ${entities.length} entities to push: ${entityNames}`);
|
|
31340
31361
|
const result = await runTask("Pushing entities to Base44", async () => {
|
|
31341
31362
|
return await pushEntities(entities);
|
|
31342
31363
|
}, {
|
|
@@ -31546,9 +31567,9 @@ const getSubprocessResult = ({ stdout: stdout$1 }) => {
|
|
|
31546
31567
|
//#region node_modules/execa/lib/utils/standard-stream.js
|
|
31547
31568
|
const isStandardStream = (stream) => STANDARD_STREAMS.includes(stream);
|
|
31548
31569
|
const STANDARD_STREAMS = [
|
|
31549
|
-
|
|
31550
|
-
|
|
31551
|
-
|
|
31570
|
+
y.stdin,
|
|
31571
|
+
y.stdout,
|
|
31572
|
+
y.stderr
|
|
31552
31573
|
];
|
|
31553
31574
|
const STANDARD_STREAMS_ALIASES = [
|
|
31554
31575
|
"stdin",
|
|
@@ -31673,9 +31694,9 @@ const NO_ESCAPE_REGEXP = /^[\w./-]+$/;
|
|
|
31673
31694
|
//#endregion
|
|
31674
31695
|
//#region node_modules/is-unicode-supported/index.js
|
|
31675
31696
|
function isUnicodeSupported() {
|
|
31676
|
-
const { env: env$1 } =
|
|
31697
|
+
const { env: env$1 } = y;
|
|
31677
31698
|
const { TERM, TERM_PROGRAM } = env$1;
|
|
31678
|
-
if (
|
|
31699
|
+
if (y.platform !== "win32") return TERM !== "linux";
|
|
31679
31700
|
return Boolean(env$1.WT_SESSION) || Boolean(env$1.TERMINUS_SUBLIME) || env$1.ConEmuTask === "{cmd::Cmder}" || TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env$1.TERMINAL_EMULATOR === "JetBrains-JediTerm";
|
|
31680
31701
|
}
|
|
31681
31702
|
|
|
@@ -32602,7 +32623,7 @@ const TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;
|
|
|
32602
32623
|
|
|
32603
32624
|
//#endregion
|
|
32604
32625
|
//#region node_modules/npm-run-path/index.js
|
|
32605
|
-
const npmRunPath = ({ cwd =
|
|
32626
|
+
const npmRunPath = ({ cwd = y.cwd(), path: pathOption = y.env[pathKey()], preferLocal = true, execPath: execPath$1 = y.execPath, addExecPath = true } = {}) => {
|
|
32606
32627
|
const cwdPath = path.resolve(toPath(cwd));
|
|
32607
32628
|
const result = [];
|
|
32608
32629
|
const pathParts = pathOption.split(path.delimiter);
|
|
@@ -32620,7 +32641,7 @@ const applyExecPath = (result, pathParts, execPath$1, cwdPath) => {
|
|
|
32620
32641
|
const pathPart = path.resolve(cwdPath, toPath(execPath$1), "..");
|
|
32621
32642
|
if (!pathParts.includes(pathPart)) result.push(pathPart);
|
|
32622
32643
|
};
|
|
32623
|
-
const npmRunPathEnv = ({ env: env$1 =
|
|
32644
|
+
const npmRunPathEnv = ({ env: env$1 = y.env, ...options } = {}) => {
|
|
32624
32645
|
env$1 = { ...env$1 };
|
|
32625
32646
|
const pathName = pathKey({ env: env$1 });
|
|
32626
32647
|
options.path = env$1[pathName];
|
|
@@ -33755,7 +33776,7 @@ const normalizeCwd = (cwd = getDefaultCwd()) => {
|
|
|
33755
33776
|
};
|
|
33756
33777
|
const getDefaultCwd = () => {
|
|
33757
33778
|
try {
|
|
33758
|
-
return
|
|
33779
|
+
return y.cwd();
|
|
33759
33780
|
} catch (error) {
|
|
33760
33781
|
error.message = `The current directory does not exist.\n${error.message}`;
|
|
33761
33782
|
throw error;
|
|
@@ -33790,7 +33811,7 @@ const normalizeOptions = (filePath, rawArguments, rawOptions) => {
|
|
|
33790
33811
|
options.killSignal = normalizeKillSignal(options.killSignal);
|
|
33791
33812
|
options.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);
|
|
33792
33813
|
options.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);
|
|
33793
|
-
if (
|
|
33814
|
+
if (y.platform === "win32" && path.basename(file, ".exe") === "cmd") commandArguments.unshift("/q");
|
|
33794
33815
|
return {
|
|
33795
33816
|
file,
|
|
33796
33817
|
commandArguments,
|
|
@@ -33817,7 +33838,7 @@ const addDefaultOptions = ({ extendEnv = true, preferLocal = false, cwd, localDi
|
|
|
33817
33838
|
});
|
|
33818
33839
|
const getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath }) => {
|
|
33819
33840
|
const env$1 = extendEnv ? {
|
|
33820
|
-
...
|
|
33841
|
+
...y.env,
|
|
33821
33842
|
...envOption
|
|
33822
33843
|
} : envOption;
|
|
33823
33844
|
if (preferLocal || node) return npmRunPathEnv({
|
|
@@ -34817,12 +34838,12 @@ const guessStreamDirection = {
|
|
|
34817
34838
|
}
|
|
34818
34839
|
};
|
|
34819
34840
|
const getStandardStreamDirection = (value) => {
|
|
34820
|
-
if ([0,
|
|
34841
|
+
if ([0, y.stdin].includes(value)) return "input";
|
|
34821
34842
|
if ([
|
|
34822
34843
|
1,
|
|
34823
34844
|
2,
|
|
34824
|
-
|
|
34825
|
-
|
|
34845
|
+
y.stdout,
|
|
34846
|
+
y.stderr
|
|
34826
34847
|
].includes(value)) return "output";
|
|
34827
34848
|
};
|
|
34828
34849
|
const DEFAULT_DIRECTION = "output";
|
|
@@ -35886,9 +35907,9 @@ const addIpcMethods = (subprocess, { ipc }) => {
|
|
|
35886
35907
|
Object.assign(subprocess, getIpcMethods(subprocess, false, ipc));
|
|
35887
35908
|
};
|
|
35888
35909
|
const getIpcExport = () => {
|
|
35889
|
-
const anyProcess =
|
|
35910
|
+
const anyProcess = y;
|
|
35890
35911
|
const isSubprocess = true;
|
|
35891
|
-
const ipc =
|
|
35912
|
+
const ipc = y.channel !== void 0;
|
|
35892
35913
|
return {
|
|
35893
35914
|
...getIpcMethods(anyProcess, isSubprocess, ipc),
|
|
35894
35915
|
getCancelSignal: getCancelSignal$1.bind(void 0, {
|
|
@@ -36130,7 +36151,7 @@ if (process.platform === "linux") signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SI
|
|
|
36130
36151
|
|
|
36131
36152
|
//#endregion
|
|
36132
36153
|
//#region node_modules/signal-exit/dist/mjs/index.js
|
|
36133
|
-
const processOk = (process$
|
|
36154
|
+
const processOk = (process$4) => !!process$4 && typeof process$4 === "object" && typeof process$4.removeListener === "function" && typeof process$4.emit === "function" && typeof process$4.reallyExit === "function" && typeof process$4.listeners === "function" && typeof process$4.kill === "function" && typeof process$4.pid === "number" && typeof process$4.on === "function";
|
|
36134
36155
|
const kExitEmitter = Symbol.for("signal-exit emitter");
|
|
36135
36156
|
const global$1 = globalThis;
|
|
36136
36157
|
const ObjectDefineProperty = Object.defineProperty.bind(Object);
|
|
@@ -36198,7 +36219,7 @@ var SignalExitFallback = class extends SignalExitBase {
|
|
|
36198
36219
|
};
|
|
36199
36220
|
var SignalExit = class extends SignalExitBase {
|
|
36200
36221
|
/* c8 ignore start */
|
|
36201
|
-
#hupSig = process$
|
|
36222
|
+
#hupSig = process$1.platform === "win32" ? "SIGINT" : "SIGHUP";
|
|
36202
36223
|
/* c8 ignore stop */
|
|
36203
36224
|
#emitter = new Emitter();
|
|
36204
36225
|
#process;
|
|
@@ -36206,15 +36227,15 @@ var SignalExit = class extends SignalExitBase {
|
|
|
36206
36227
|
#originalProcessReallyExit;
|
|
36207
36228
|
#sigListeners = {};
|
|
36208
36229
|
#loaded = false;
|
|
36209
|
-
constructor(process$
|
|
36230
|
+
constructor(process$4) {
|
|
36210
36231
|
super();
|
|
36211
|
-
this.#process = process$
|
|
36232
|
+
this.#process = process$4;
|
|
36212
36233
|
this.#sigListeners = {};
|
|
36213
36234
|
for (const sig of signals) this.#sigListeners[sig] = () => {
|
|
36214
36235
|
const listeners = this.#process.listeners(sig);
|
|
36215
36236
|
let { count: count$1 } = this.#emitter;
|
|
36216
36237
|
/* c8 ignore start */
|
|
36217
|
-
const p$1 = process$
|
|
36238
|
+
const p$1 = process$4;
|
|
36218
36239
|
if (typeof p$1.__signal_exit_emitter__ === "object" && typeof p$1.__signal_exit_emitter__.count === "number") count$1 += p$1.__signal_exit_emitter__.count;
|
|
36219
36240
|
/* c8 ignore stop */
|
|
36220
36241
|
if (listeners.length === count$1) {
|
|
@@ -36222,11 +36243,11 @@ var SignalExit = class extends SignalExitBase {
|
|
|
36222
36243
|
const ret = this.#emitter.emit("exit", null, sig);
|
|
36223
36244
|
/* c8 ignore start */
|
|
36224
36245
|
const s = sig === "SIGHUP" ? this.#hupSig : sig;
|
|
36225
|
-
if (!ret) process$
|
|
36246
|
+
if (!ret) process$4.kill(process$4.pid, s);
|
|
36226
36247
|
}
|
|
36227
36248
|
};
|
|
36228
|
-
this.#originalProcessReallyExit = process$
|
|
36229
|
-
this.#originalProcessEmit = process$
|
|
36249
|
+
this.#originalProcessReallyExit = process$4.reallyExit;
|
|
36250
|
+
this.#originalProcessEmit = process$4.emit;
|
|
36230
36251
|
}
|
|
36231
36252
|
onExit(cb, opts) {
|
|
36232
36253
|
/* c8 ignore start */
|
|
@@ -36293,8 +36314,8 @@ var SignalExit = class extends SignalExitBase {
|
|
|
36293
36314
|
} else return og.call(this.#process, ev, ...args);
|
|
36294
36315
|
}
|
|
36295
36316
|
};
|
|
36296
|
-
const process$
|
|
36297
|
-
const { onExit, load, unload } = signalExitWrap(processOk(process$
|
|
36317
|
+
const process$1 = globalThis.process;
|
|
36318
|
+
const { onExit, load, unload } = signalExitWrap(processOk(process$1) ? new SignalExit(process$1) : new SignalExitFallback());
|
|
36298
36319
|
|
|
36299
36320
|
//#endregion
|
|
36300
36321
|
//#region node_modules/execa/lib/terminate/cleanup.js
|
|
@@ -38045,7 +38066,13 @@ var require_lodash = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
38045
38066
|
//#region src/cli/commands/project/create.ts
|
|
38046
38067
|
var import_lodash = /* @__PURE__ */ __toESM(require_lodash(), 1);
|
|
38047
38068
|
const DEFAULT_TEMPLATE_ID = "backend-only";
|
|
38048
|
-
const SUPPORTED_AGENTS = [
|
|
38069
|
+
const SUPPORTED_AGENTS = [{
|
|
38070
|
+
value: "cursor",
|
|
38071
|
+
label: "Cursor"
|
|
38072
|
+
}, {
|
|
38073
|
+
value: "claude-code",
|
|
38074
|
+
label: "Claude Code"
|
|
38075
|
+
}];
|
|
38049
38076
|
async function getTemplateById(templateId) {
|
|
38050
38077
|
const templates = await listTemplates();
|
|
38051
38078
|
const template = templates.find((t) => t.id === templateId);
|
|
@@ -38183,15 +38210,20 @@ async function executeCreate({ template, name: rawName, description, projectPath
|
|
|
38183
38210
|
finalAppUrl = appUrl;
|
|
38184
38211
|
}
|
|
38185
38212
|
}
|
|
38186
|
-
let
|
|
38213
|
+
let selectedAgents = [];
|
|
38187
38214
|
if (isInteractive) {
|
|
38188
|
-
const result = await
|
|
38189
|
-
|
|
38190
|
-
|
|
38191
|
-
|
|
38192
|
-
|
|
38193
|
-
|
|
38194
|
-
|
|
38215
|
+
const result = await fe({
|
|
38216
|
+
message: "Add AI agent skills? (Select agents to configure)",
|
|
38217
|
+
options: SUPPORTED_AGENTS,
|
|
38218
|
+
initialValues: SUPPORTED_AGENTS.map((agent) => agent.value),
|
|
38219
|
+
required: false
|
|
38220
|
+
});
|
|
38221
|
+
if (!pD(result)) selectedAgents = result;
|
|
38222
|
+
} else if (skills) selectedAgents = SUPPORTED_AGENTS.map((agent) => agent.value);
|
|
38223
|
+
if (selectedAgents.length > 0) {
|
|
38224
|
+
const agentArgs = selectedAgents.flatMap((agent) => ["-a", agent]);
|
|
38225
|
+
M.step(`Installing skills for: ${selectedAgents.join(", ")}`);
|
|
38226
|
+
await runTask(`Installing skills for: ${selectedAgents.join(", ")}`, async () => {
|
|
38195
38227
|
await execa("npx", [
|
|
38196
38228
|
"-y",
|
|
38197
38229
|
"add-skill",
|
|
@@ -38216,7 +38248,7 @@ async function executeCreate({ template, name: rawName, description, projectPath
|
|
|
38216
38248
|
if (finalAppUrl) M.message(`${theme.styles.header("Site")}: ${theme.colors.links(finalAppUrl)}`);
|
|
38217
38249
|
return { outroMessage: "Your project is set up and ready to use" };
|
|
38218
38250
|
}
|
|
38219
|
-
const createCommand = new Command("create").description("Create a new Base44 project").option("-n, --name <name>", "Project name").option("-d, --description <description>", "Project description").option("-p, --path <path>", "Path where to create the project").option("-t, --template <id>", "Template ID (e.g., backend-only, backend-and-client)").option("--deploy", "Build and deploy the site").option("--skills", "Add AI agent skills").hook("preAction", validateNonInteractiveFlags$1).action(async (options) => {
|
|
38251
|
+
const createCommand = new Command("create").description("Create a new Base44 project").option("-n, --name <name>", "Project name").option("-d, --description <description>", "Project description").option("-p, --path <path>", "Path where to create the project").option("-t, --template <id>", "Template ID (e.g., backend-only, backend-and-client)").option("--deploy", "Build and deploy the site").option("--skills", "Add AI agent skills (Cursor, Claude Code)").hook("preAction", validateNonInteractiveFlags$1).action(async (options) => {
|
|
38220
38252
|
await chooseCreate(options);
|
|
38221
38253
|
});
|
|
38222
38254
|
|
|
@@ -38262,7 +38294,7 @@ function isInsideContainer() {
|
|
|
38262
38294
|
//#endregion
|
|
38263
38295
|
//#region node_modules/is-wsl/index.js
|
|
38264
38296
|
const isWsl = () => {
|
|
38265
|
-
if (
|
|
38297
|
+
if (y.platform !== "linux") return false;
|
|
38266
38298
|
if (os.release().toLowerCase().includes("microsoft")) {
|
|
38267
38299
|
if (isInsideContainer()) return false;
|
|
38268
38300
|
return true;
|
|
@@ -38273,12 +38305,12 @@ const isWsl = () => {
|
|
|
38273
38305
|
return false;
|
|
38274
38306
|
}
|
|
38275
38307
|
};
|
|
38276
|
-
var is_wsl_default =
|
|
38308
|
+
var is_wsl_default = y.env.__IS_WSL_TEST__ ? isWsl : isWsl();
|
|
38277
38309
|
|
|
38278
38310
|
//#endregion
|
|
38279
38311
|
//#region node_modules/powershell-utils/index.js
|
|
38280
38312
|
const execFile$2 = promisify(childProcess.execFile);
|
|
38281
|
-
const powerShellPath$1 = () => `${
|
|
38313
|
+
const powerShellPath$1 = () => `${y.env.SYSTEMROOT || y.env.windir || String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;
|
|
38282
38314
|
const executePowerShell = async (command, options = {}) => {
|
|
38283
38315
|
const { powerShellPath: psPath, ...execFileOptions } = options;
|
|
38284
38316
|
const encodedCommand = executePowerShell.encodeCommand(command);
|
|
@@ -38389,7 +38421,7 @@ function defineLazyProperty(object$1, propertyName, valueGetter) {
|
|
|
38389
38421
|
//#region node_modules/default-browser-id/index.js
|
|
38390
38422
|
const execFileAsync$3 = promisify(execFile);
|
|
38391
38423
|
async function defaultBrowserId() {
|
|
38392
|
-
if (
|
|
38424
|
+
if (y.platform !== "darwin") throw new Error("macOS only");
|
|
38393
38425
|
const { stdout: stdout$1 } = await execFileAsync$3("defaults", [
|
|
38394
38426
|
"read",
|
|
38395
38427
|
"com.apple.LaunchServices/com.apple.launchservices.secure",
|
|
@@ -38404,7 +38436,7 @@ async function defaultBrowserId() {
|
|
|
38404
38436
|
//#region node_modules/run-applescript/index.js
|
|
38405
38437
|
const execFileAsync$2 = promisify(execFile);
|
|
38406
38438
|
async function runAppleScript(script, { humanReadableOutput = true, signal } = {}) {
|
|
38407
|
-
if (
|
|
38439
|
+
if (y.platform !== "darwin") throw new Error("macOS only");
|
|
38408
38440
|
const outputArguments = humanReadableOutput ? [] : ["-ss"];
|
|
38409
38441
|
const execOptions = {};
|
|
38410
38442
|
if (signal) execOptions.signal = signal;
|
|
@@ -38513,14 +38545,14 @@ async function defaultBrowser$1(_execFileAsync = execFileAsync$1) {
|
|
|
38513
38545
|
const execFileAsync = promisify(execFile);
|
|
38514
38546
|
const titleize = (string$2) => string$2.toLowerCase().replaceAll(/(?:^|\s|-)\S/g, (x$2) => x$2.toUpperCase());
|
|
38515
38547
|
async function defaultBrowser() {
|
|
38516
|
-
if (
|
|
38548
|
+
if (y.platform === "darwin") {
|
|
38517
38549
|
const id = await defaultBrowserId();
|
|
38518
38550
|
return {
|
|
38519
38551
|
name: await bundleName(id),
|
|
38520
38552
|
id
|
|
38521
38553
|
};
|
|
38522
38554
|
}
|
|
38523
|
-
if (
|
|
38555
|
+
if (y.platform === "linux") {
|
|
38524
38556
|
const { stdout: stdout$1 } = await execFileAsync("xdg-mime", [
|
|
38525
38557
|
"query",
|
|
38526
38558
|
"default",
|
|
@@ -38532,13 +38564,13 @@ async function defaultBrowser() {
|
|
|
38532
38564
|
id
|
|
38533
38565
|
};
|
|
38534
38566
|
}
|
|
38535
|
-
if (
|
|
38567
|
+
if (y.platform === "win32") return defaultBrowser$1();
|
|
38536
38568
|
throw new Error("Only macOS, Linux, and Windows are supported");
|
|
38537
38569
|
}
|
|
38538
38570
|
|
|
38539
38571
|
//#endregion
|
|
38540
38572
|
//#region node_modules/is-in-ssh/index.js
|
|
38541
|
-
const isInSsh = Boolean(
|
|
38573
|
+
const isInSsh = Boolean(y.env.SSH_CONNECTION || y.env.SSH_CLIENT || y.env.SSH_TTY);
|
|
38542
38574
|
var is_in_ssh_default = isInSsh;
|
|
38543
38575
|
|
|
38544
38576
|
//#endregion
|
|
@@ -38546,7 +38578,7 @@ var is_in_ssh_default = isInSsh;
|
|
|
38546
38578
|
const fallbackAttemptSymbol = Symbol("fallbackAttempt");
|
|
38547
38579
|
const __dirname = import.meta.url ? path.dirname(fileURLToPath(import.meta.url)) : "";
|
|
38548
38580
|
const localXdgOpenPath = path.join(__dirname, "xdg-open");
|
|
38549
|
-
const { platform: platform$1, arch } =
|
|
38581
|
+
const { platform: platform$1, arch } = y;
|
|
38550
38582
|
const tryEachApp = async (apps$1, opener) => {
|
|
38551
38583
|
if (apps$1.length === 0) return;
|
|
38552
38584
|
const errors = [];
|
|
@@ -38659,7 +38691,7 @@ const baseOpen = async (options) => {
|
|
|
38659
38691
|
await fs$1.access(localXdgOpenPath, constants$1.X_OK);
|
|
38660
38692
|
exeLocalXdgOpen = true;
|
|
38661
38693
|
} catch {}
|
|
38662
|
-
command =
|
|
38694
|
+
command = y.versions.electron ?? (platform$1 === "android" || isBundled || !exeLocalXdgOpen) ? "xdg-open" : localXdgOpenPath;
|
|
38663
38695
|
}
|
|
38664
38696
|
if (appArguments.length > 0) cliArguments.push(...appArguments);
|
|
38665
38697
|
if (!options.wait) {
|
|
@@ -38763,7 +38795,7 @@ var open_default = open;
|
|
|
38763
38795
|
//#region src/cli/commands/project/dashboard.ts
|
|
38764
38796
|
async function openDashboard() {
|
|
38765
38797
|
const dashboardUrl = getDashboardUrl();
|
|
38766
|
-
await open_default(dashboardUrl);
|
|
38798
|
+
if (!process.env.CI) await open_default(dashboardUrl);
|
|
38767
38799
|
return { outroMessage: `Dashboard opened at ${dashboardUrl}` };
|
|
38768
38800
|
}
|
|
38769
38801
|
const dashboardCommand = new Command("dashboard").description("Open the app dashboard in your browser").action(async () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@base44-preview/cli",
|
|
3
|
-
"version": "0.0.17-pr.
|
|
3
|
+
"version": "0.0.17-pr.19.1b258d9",
|
|
4
4
|
"description": "Base44 CLI - Unified interface for managing Base44 applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"dev": "./bin/dev.js",
|
|
17
17
|
"start": "./bin/run.js",
|
|
18
18
|
"clean": "rm -rf dist",
|
|
19
|
-
"lint": "eslint src",
|
|
19
|
+
"lint": "eslint src tests",
|
|
20
20
|
"test": "vitest run",
|
|
21
21
|
"test:watch": "vitest"
|
|
22
22
|
},
|
|
@@ -52,9 +52,12 @@
|
|
|
52
52
|
"json5": "^2.2.3",
|
|
53
53
|
"ky": "^1.14.2",
|
|
54
54
|
"lodash.kebabcase": "^4.1.1",
|
|
55
|
+
"msw": "^2.12.7",
|
|
55
56
|
"open": "^11.0.0",
|
|
56
57
|
"p-wait-for": "^6.0.0",
|
|
58
|
+
"strip-ansi": "^7.1.2",
|
|
57
59
|
"tar": "^7.5.4",
|
|
60
|
+
"tmp-promise": "^3.0.3",
|
|
58
61
|
"tsdown": "^0.12.4",
|
|
59
62
|
"tsx": "^4.19.2",
|
|
60
63
|
"typescript": "^5.7.2",
|