@base44-preview/cli 0.0.19-pr.112.97f2721 → 0.0.19-pr.112.bf45693
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +133 -134
- package/dist/templates/templates.json +6 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,14 +3,14 @@ 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 process$1, { 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";
|
|
10
10
|
import Stream, { Duplex, PassThrough, Readable, Transform, Writable, getDefaultHighWaterMark } from "node:stream";
|
|
11
11
|
import os, { constants, homedir, tmpdir } from "node:os";
|
|
12
12
|
import { fileURLToPath } from "node:url";
|
|
13
|
-
import fs$1, { access, constants as constants$1, copyFile, mkdir, readFile, unlink, writeFile } from "node:fs/promises";
|
|
13
|
+
import fs$1, { access, constants as constants$1, copyFile, mkdir, readFile, readdir, unlink, writeFile } from "node:fs/promises";
|
|
14
14
|
import { finished } from "node:stream/promises";
|
|
15
15
|
import path$1, { dirname as dirname$1, parse } from "path";
|
|
16
16
|
import EE, { EventEmitter as EventEmitter$1 } from "events";
|
|
@@ -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$4 = __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$4.stdout.write(str),
|
|
948
|
+
writeErr: (str) => process$4.stderr.write(str),
|
|
949
|
+
getOutHelpWidth: () => process$4.stdout.isTTY ? process$4.stdout.columns : void 0,
|
|
950
|
+
getErrHelpWidth: () => process$4.stderr.isTTY ? process$4.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$4.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$4.versions?.electron) parseOptions.from = "electron";
|
|
1644
|
+
const execArgv$1 = process$4.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$4.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$4.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$4.platform !== "win32") if (launchWithNode) {
|
|
1772
1772
|
args.unshift(executableFile);
|
|
1773
|
-
args = incrementNodeInspectorPort(process$
|
|
1774
|
-
proc$1 = childProcess$1.spawn(process$
|
|
1773
|
+
args = incrementNodeInspectorPort(process$4.execArgv).concat(args);
|
|
1774
|
+
proc$1 = childProcess$1.spawn(process$4.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$4.execArgv).concat(args);
|
|
1779
|
+
proc$1 = childProcess$1.spawn(process$4.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$4.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$4.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$4.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$4.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$4.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$4.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$1) {
|
|
2715
|
+
if (!y$1) return `${CSI}${x$2 + 1}G`;
|
|
2716
|
+
return `${CSI}${y$1 + 1};${x$2 + 1}H`;
|
|
2717
2717
|
},
|
|
2718
|
-
move(x$2, y$
|
|
2718
|
+
move(x$2, y$1) {
|
|
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$1 < 0) ret += `${CSI}${-y$1}A`;
|
|
2723
|
+
else if (y$1 > 0) ret += `${CSI}${y$1}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
|
|
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) => {
|
|
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
|
|
3039
|
+
i$1 ? n$1 === y && (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$1 = "\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
|
|
3081
|
+
const { groups: c$1 } = (/* @__PURE__ */ new RegExp(`(?:\\${V$1}(?<code>\\d+)m|\\${_$1}(?<uri>.*)${y})`)).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 process$1.platform !== "win32" ? process$1.env.TERM !== "linux" : !!process$1.env.CI || !!process$1.env.WT_SESSION || !!process$1.env.TERMINUS_SUBLIME || process$1.env.ConEmuTask === "{cmd::Cmder}" || process$1.env.TERM_PROGRAM === "Terminus-Sublime" || process$1.env.TERM_PROGRAM === "vscode" || process$1.env.TERM === "xterm-256color" || process$1.env.TERM === "alacritty" || process$1.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$3(schema, ctx, _params = {
|
|
6657
6657
|
path: [],
|
|
6658
6658
|
schemaPath: []
|
|
6659
6659
|
}) {
|
|
@@ -6690,7 +6690,7 @@ function process$2(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(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$3(def.innerType, ctx, params);
|
|
7170
7170
|
const seen = ctx.seen.get(schema);
|
|
7171
7171
|
seen.ref = def.innerType;
|
|
7172
7172
|
};
|
|
@@ -7906,7 +7906,7 @@ const PROJECT_SUBDIR = "base44";
|
|
|
7906
7906
|
const CONFIG_FILE_EXTENSION = "json";
|
|
7907
7907
|
const CONFIG_FILE_EXTENSION_GLOB = "{json,jsonc}";
|
|
7908
7908
|
const FUNCTION_CONFIG_FILE = `function.${CONFIG_FILE_EXTENSION_GLOB}`;
|
|
7909
|
-
const APP_CONFIG_PATTERN =
|
|
7909
|
+
const APP_CONFIG_PATTERN = `**/.app.${CONFIG_FILE_EXTENSION_GLOB}`;
|
|
7910
7910
|
const PROJECT_CONFIG_PATTERNS = [`${PROJECT_SUBDIR}/config.${CONFIG_FILE_EXTENSION_GLOB}`, `config.${CONFIG_FILE_EXTENSION_GLOB}`];
|
|
7911
7911
|
const AUTH_CLIENT_ID = "base44_cli";
|
|
7912
7912
|
|
|
@@ -9782,6 +9782,9 @@ async function deleteFile(filePath) {
|
|
|
9782
9782
|
if (!await pathExists(filePath)) return;
|
|
9783
9783
|
await unlink(filePath);
|
|
9784
9784
|
}
|
|
9785
|
+
async function isDirEmpty(dir = process.cwd()) {
|
|
9786
|
+
return (await readdir(dir)).length === 0;
|
|
9787
|
+
}
|
|
9785
9788
|
|
|
9786
9789
|
//#endregion
|
|
9787
9790
|
//#region src/core/auth/config.ts
|
|
@@ -16193,7 +16196,7 @@ const createIgnorePredicate = (patterns, cwd, baseDir) => {
|
|
|
16193
16196
|
};
|
|
16194
16197
|
const normalizeOptions$2 = (options = {}) => {
|
|
16195
16198
|
const ignoreOption = options.ignore ? Array.isArray(options.ignore) ? options.ignore : [options.ignore] : [];
|
|
16196
|
-
const cwd = toPath$1(options.cwd) ??
|
|
16199
|
+
const cwd = toPath$1(options.cwd) ?? process$1.cwd();
|
|
16197
16200
|
const deep = typeof options.deep === "number" ? Math.max(0, options.deep) + 1 : Number.POSITIVE_INFINITY;
|
|
16198
16201
|
return {
|
|
16199
16202
|
cwd,
|
|
@@ -16290,7 +16293,7 @@ const getDirectoryGlob = ({ directoryPath, files, extensions }) => {
|
|
|
16290
16293
|
const extensionGlob = extensions?.length > 0 ? `.${extensions.length > 1 ? `{${extensions.join(",")}}` : extensions[0]}` : "";
|
|
16291
16294
|
return files ? files.map((file) => path.posix.join(directoryPath, `**/${path.extname(file) ? file : `${file}${extensionGlob}`}`)) : [path.posix.join(directoryPath, `**${extensionGlob ? `/*${extensionGlob}` : ""}`)];
|
|
16292
16295
|
};
|
|
16293
|
-
const directoryToGlob = async (directoryPaths, { cwd =
|
|
16296
|
+
const directoryToGlob = async (directoryPaths, { cwd = process$1.cwd(), files, extensions, fs: fsImplementation } = {}) => {
|
|
16294
16297
|
return (await Promise.all(directoryPaths.map(async (directoryPath) => {
|
|
16295
16298
|
if (shouldExpandGlobstarDirectory(isNegativePattern(directoryPath) ? directoryPath.slice(1) : directoryPath)) return getDirectoryGlob({
|
|
16296
16299
|
directoryPath,
|
|
@@ -16304,7 +16307,7 @@ const directoryToGlob = async (directoryPaths, { cwd = y.cwd(), files, extension
|
|
|
16304
16307
|
}) : directoryPath;
|
|
16305
16308
|
}))).flat();
|
|
16306
16309
|
};
|
|
16307
|
-
const directoryToGlobSync = (directoryPaths, { cwd =
|
|
16310
|
+
const directoryToGlobSync = (directoryPaths, { cwd = process$1.cwd(), files, extensions, fs: fsImplementation } = {}) => directoryPaths.flatMap((directoryPath) => {
|
|
16308
16311
|
if (shouldExpandGlobstarDirectory(isNegativePattern(directoryPath) ? directoryPath.slice(1) : directoryPath)) return getDirectoryGlob({
|
|
16309
16312
|
directoryPath,
|
|
16310
16313
|
files,
|
|
@@ -16400,7 +16403,7 @@ const applyIgnoreFilesAndGetFilterSync = (options) => {
|
|
|
16400
16403
|
};
|
|
16401
16404
|
const createFilterFunction = (isIgnored, cwd) => {
|
|
16402
16405
|
const seen = /* @__PURE__ */ new Set();
|
|
16403
|
-
const basePath = cwd ||
|
|
16406
|
+
const basePath = cwd || process$1.cwd();
|
|
16404
16407
|
const pathCache = /* @__PURE__ */ new Map();
|
|
16405
16408
|
return (fastGlobResult) => {
|
|
16406
16409
|
const pathKey$1 = path.normalize(fastGlobResult.path ?? fastGlobResult);
|
|
@@ -30894,13 +30897,13 @@ var ansi_styles_default = ansiStyles;
|
|
|
30894
30897
|
|
|
30895
30898
|
//#endregion
|
|
30896
30899
|
//#region node_modules/chalk/source/vendor/supports-color/index.js
|
|
30897
|
-
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args :
|
|
30900
|
+
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process$1.argv) {
|
|
30898
30901
|
const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
|
|
30899
30902
|
const position = argv.indexOf(prefix + flag);
|
|
30900
30903
|
const terminatorPosition = argv.indexOf("--");
|
|
30901
30904
|
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
|
|
30902
30905
|
}
|
|
30903
|
-
const { env } =
|
|
30906
|
+
const { env } = process$1;
|
|
30904
30907
|
let flagForceColor;
|
|
30905
30908
|
if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) flagForceColor = 0;
|
|
30906
30909
|
else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) flagForceColor = 1;
|
|
@@ -30933,7 +30936,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
|
|
30933
30936
|
if (haveStream && !streamIsTTY && forceColor === void 0) return 0;
|
|
30934
30937
|
const min = forceColor || 0;
|
|
30935
30938
|
if (env.TERM === "dumb") return min;
|
|
30936
|
-
if (
|
|
30939
|
+
if (process$1.platform === "win32") {
|
|
30937
30940
|
const osRelease = os.release().split(".");
|
|
30938
30941
|
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
30939
30942
|
return 1;
|
|
@@ -31719,9 +31722,9 @@ const getSubprocessResult = ({ stdout: stdout$1 }) => {
|
|
|
31719
31722
|
//#region node_modules/execa/lib/utils/standard-stream.js
|
|
31720
31723
|
const isStandardStream = (stream) => STANDARD_STREAMS.includes(stream);
|
|
31721
31724
|
const STANDARD_STREAMS = [
|
|
31722
|
-
|
|
31723
|
-
|
|
31724
|
-
|
|
31725
|
+
process$1.stdin,
|
|
31726
|
+
process$1.stdout,
|
|
31727
|
+
process$1.stderr
|
|
31725
31728
|
];
|
|
31726
31729
|
const STANDARD_STREAMS_ALIASES = [
|
|
31727
31730
|
"stdin",
|
|
@@ -31846,9 +31849,9 @@ const NO_ESCAPE_REGEXP = /^[\w./-]+$/;
|
|
|
31846
31849
|
//#endregion
|
|
31847
31850
|
//#region node_modules/is-unicode-supported/index.js
|
|
31848
31851
|
function isUnicodeSupported() {
|
|
31849
|
-
const { env: env$1 } =
|
|
31852
|
+
const { env: env$1 } = process$1;
|
|
31850
31853
|
const { TERM, TERM_PROGRAM } = env$1;
|
|
31851
|
-
if (
|
|
31854
|
+
if (process$1.platform !== "win32") return TERM !== "linux";
|
|
31852
31855
|
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";
|
|
31853
31856
|
}
|
|
31854
31857
|
|
|
@@ -32775,7 +32778,7 @@ const TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;
|
|
|
32775
32778
|
|
|
32776
32779
|
//#endregion
|
|
32777
32780
|
//#region node_modules/npm-run-path/index.js
|
|
32778
|
-
const npmRunPath = ({ cwd =
|
|
32781
|
+
const npmRunPath = ({ cwd = process$1.cwd(), path: pathOption = process$1.env[pathKey()], preferLocal = true, execPath: execPath$1 = process$1.execPath, addExecPath = true } = {}) => {
|
|
32779
32782
|
const cwdPath = path.resolve(toPath(cwd));
|
|
32780
32783
|
const result = [];
|
|
32781
32784
|
const pathParts = pathOption.split(path.delimiter);
|
|
@@ -32793,7 +32796,7 @@ const applyExecPath = (result, pathParts, execPath$1, cwdPath) => {
|
|
|
32793
32796
|
const pathPart = path.resolve(cwdPath, toPath(execPath$1), "..");
|
|
32794
32797
|
if (!pathParts.includes(pathPart)) result.push(pathPart);
|
|
32795
32798
|
};
|
|
32796
|
-
const npmRunPathEnv = ({ env: env$1 =
|
|
32799
|
+
const npmRunPathEnv = ({ env: env$1 = process$1.env, ...options } = {}) => {
|
|
32797
32800
|
env$1 = { ...env$1 };
|
|
32798
32801
|
const pathName = pathKey({ env: env$1 });
|
|
32799
32802
|
options.path = env$1[pathName];
|
|
@@ -33928,7 +33931,7 @@ const normalizeCwd = (cwd = getDefaultCwd()) => {
|
|
|
33928
33931
|
};
|
|
33929
33932
|
const getDefaultCwd = () => {
|
|
33930
33933
|
try {
|
|
33931
|
-
return
|
|
33934
|
+
return process$1.cwd();
|
|
33932
33935
|
} catch (error) {
|
|
33933
33936
|
error.message = `The current directory does not exist.\n${error.message}`;
|
|
33934
33937
|
throw error;
|
|
@@ -33963,7 +33966,7 @@ const normalizeOptions = (filePath, rawArguments, rawOptions) => {
|
|
|
33963
33966
|
options.killSignal = normalizeKillSignal(options.killSignal);
|
|
33964
33967
|
options.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);
|
|
33965
33968
|
options.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);
|
|
33966
|
-
if (
|
|
33969
|
+
if (process$1.platform === "win32" && path.basename(file, ".exe") === "cmd") commandArguments.unshift("/q");
|
|
33967
33970
|
return {
|
|
33968
33971
|
file,
|
|
33969
33972
|
commandArguments,
|
|
@@ -33990,7 +33993,7 @@ const addDefaultOptions = ({ extendEnv = true, preferLocal = false, cwd, localDi
|
|
|
33990
33993
|
});
|
|
33991
33994
|
const getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath }) => {
|
|
33992
33995
|
const env$1 = extendEnv ? {
|
|
33993
|
-
...
|
|
33996
|
+
...process$1.env,
|
|
33994
33997
|
...envOption
|
|
33995
33998
|
} : envOption;
|
|
33996
33999
|
if (preferLocal || node) return npmRunPathEnv({
|
|
@@ -34990,12 +34993,12 @@ const guessStreamDirection = {
|
|
|
34990
34993
|
}
|
|
34991
34994
|
};
|
|
34992
34995
|
const getStandardStreamDirection = (value) => {
|
|
34993
|
-
if ([0,
|
|
34996
|
+
if ([0, process$1.stdin].includes(value)) return "input";
|
|
34994
34997
|
if ([
|
|
34995
34998
|
1,
|
|
34996
34999
|
2,
|
|
34997
|
-
|
|
34998
|
-
|
|
35000
|
+
process$1.stdout,
|
|
35001
|
+
process$1.stderr
|
|
34999
35002
|
].includes(value)) return "output";
|
|
35000
35003
|
};
|
|
35001
35004
|
const DEFAULT_DIRECTION = "output";
|
|
@@ -36059,9 +36062,9 @@ const addIpcMethods = (subprocess, { ipc }) => {
|
|
|
36059
36062
|
Object.assign(subprocess, getIpcMethods(subprocess, false, ipc));
|
|
36060
36063
|
};
|
|
36061
36064
|
const getIpcExport = () => {
|
|
36062
|
-
const anyProcess =
|
|
36065
|
+
const anyProcess = process$1;
|
|
36063
36066
|
const isSubprocess = true;
|
|
36064
|
-
const ipc =
|
|
36067
|
+
const ipc = process$1.channel !== void 0;
|
|
36065
36068
|
return {
|
|
36066
36069
|
...getIpcMethods(anyProcess, isSubprocess, ipc),
|
|
36067
36070
|
getCancelSignal: getCancelSignal$1.bind(void 0, {
|
|
@@ -36303,7 +36306,7 @@ if (process.platform === "linux") signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SI
|
|
|
36303
36306
|
|
|
36304
36307
|
//#endregion
|
|
36305
36308
|
//#region node_modules/signal-exit/dist/mjs/index.js
|
|
36306
|
-
const processOk = (process$
|
|
36309
|
+
const processOk = (process$5) => !!process$5 && typeof process$5 === "object" && typeof process$5.removeListener === "function" && typeof process$5.emit === "function" && typeof process$5.reallyExit === "function" && typeof process$5.listeners === "function" && typeof process$5.kill === "function" && typeof process$5.pid === "number" && typeof process$5.on === "function";
|
|
36307
36310
|
const kExitEmitter = Symbol.for("signal-exit emitter");
|
|
36308
36311
|
const global$1 = globalThis;
|
|
36309
36312
|
const ObjectDefineProperty = Object.defineProperty.bind(Object);
|
|
@@ -36371,7 +36374,7 @@ var SignalExitFallback = class extends SignalExitBase {
|
|
|
36371
36374
|
};
|
|
36372
36375
|
var SignalExit = class extends SignalExitBase {
|
|
36373
36376
|
/* c8 ignore start */
|
|
36374
|
-
#hupSig = process$
|
|
36377
|
+
#hupSig = process$2.platform === "win32" ? "SIGINT" : "SIGHUP";
|
|
36375
36378
|
/* c8 ignore stop */
|
|
36376
36379
|
#emitter = new Emitter();
|
|
36377
36380
|
#process;
|
|
@@ -36379,15 +36382,15 @@ var SignalExit = class extends SignalExitBase {
|
|
|
36379
36382
|
#originalProcessReallyExit;
|
|
36380
36383
|
#sigListeners = {};
|
|
36381
36384
|
#loaded = false;
|
|
36382
|
-
constructor(process$
|
|
36385
|
+
constructor(process$5) {
|
|
36383
36386
|
super();
|
|
36384
|
-
this.#process = process$
|
|
36387
|
+
this.#process = process$5;
|
|
36385
36388
|
this.#sigListeners = {};
|
|
36386
36389
|
for (const sig of signals) this.#sigListeners[sig] = () => {
|
|
36387
36390
|
const listeners = this.#process.listeners(sig);
|
|
36388
36391
|
let { count: count$1 } = this.#emitter;
|
|
36389
36392
|
/* c8 ignore start */
|
|
36390
|
-
const p$1 = process$
|
|
36393
|
+
const p$1 = process$5;
|
|
36391
36394
|
if (typeof p$1.__signal_exit_emitter__ === "object" && typeof p$1.__signal_exit_emitter__.count === "number") count$1 += p$1.__signal_exit_emitter__.count;
|
|
36392
36395
|
/* c8 ignore stop */
|
|
36393
36396
|
if (listeners.length === count$1) {
|
|
@@ -36395,11 +36398,11 @@ var SignalExit = class extends SignalExitBase {
|
|
|
36395
36398
|
const ret = this.#emitter.emit("exit", null, sig);
|
|
36396
36399
|
/* c8 ignore start */
|
|
36397
36400
|
const s = sig === "SIGHUP" ? this.#hupSig : sig;
|
|
36398
|
-
if (!ret) process$
|
|
36401
|
+
if (!ret) process$5.kill(process$5.pid, s);
|
|
36399
36402
|
}
|
|
36400
36403
|
};
|
|
36401
|
-
this.#originalProcessReallyExit = process$
|
|
36402
|
-
this.#originalProcessEmit = process$
|
|
36404
|
+
this.#originalProcessReallyExit = process$5.reallyExit;
|
|
36405
|
+
this.#originalProcessEmit = process$5.emit;
|
|
36403
36406
|
}
|
|
36404
36407
|
onExit(cb, opts) {
|
|
36405
36408
|
/* c8 ignore start */
|
|
@@ -36466,8 +36469,8 @@ var SignalExit = class extends SignalExitBase {
|
|
|
36466
36469
|
} else return og.call(this.#process, ev, ...args);
|
|
36467
36470
|
}
|
|
36468
36471
|
};
|
|
36469
|
-
const process$
|
|
36470
|
-
const { onExit, load, unload } = signalExitWrap(processOk(process$
|
|
36472
|
+
const process$2 = globalThis.process;
|
|
36473
|
+
const { onExit, load, unload } = signalExitWrap(processOk(process$2) ? new SignalExit(process$2) : new SignalExitFallback());
|
|
36471
36474
|
|
|
36472
36475
|
//#endregion
|
|
36473
36476
|
//#region node_modules/execa/lib/terminate/cleanup.js
|
|
@@ -38228,9 +38231,8 @@ async function getTemplateById(templateId) {
|
|
|
38228
38231
|
return template;
|
|
38229
38232
|
}
|
|
38230
38233
|
function validateNonInteractiveFlags$1(command) {
|
|
38231
|
-
const {
|
|
38232
|
-
|
|
38233
|
-
if (providedCount > 0 && providedCount < 2) command.error("Non-interactive mode requires all flags: --name, --path");
|
|
38234
|
+
const { path: path$16 } = command.opts();
|
|
38235
|
+
if (path$16 && !command.args.length) command.error("Non-interactive mode requires all flags: --name, --path");
|
|
38234
38236
|
}
|
|
38235
38237
|
async function chooseCreate(options) {
|
|
38236
38238
|
if (!!(options.name && options.path)) await runCommand(() => createNonInteractive(options), {
|
|
@@ -38254,19 +38256,18 @@ async function createInteractive(options) {
|
|
|
38254
38256
|
message: "Pick a template",
|
|
38255
38257
|
options: templateOptions
|
|
38256
38258
|
}),
|
|
38257
|
-
name: () =>
|
|
38258
|
-
|
|
38259
|
-
|
|
38260
|
-
|
|
38261
|
-
|
|
38262
|
-
|
|
38263
|
-
|
|
38264
|
-
|
|
38265
|
-
|
|
38266
|
-
|
|
38267
|
-
}),
|
|
38259
|
+
name: () => {
|
|
38260
|
+
return options.name ? Promise.resolve(options.name) : he({
|
|
38261
|
+
message: "What is the name of your project?",
|
|
38262
|
+
placeholder: basename(process.cwd()),
|
|
38263
|
+
initialValue: basename(process.cwd()),
|
|
38264
|
+
validate: (value) => {
|
|
38265
|
+
if (!value || value.trim().length === 0) return "Every project deserves a name";
|
|
38266
|
+
}
|
|
38267
|
+
});
|
|
38268
|
+
},
|
|
38268
38269
|
projectPath: async ({ results }) => {
|
|
38269
|
-
const suggestedPath = `./${(0, import_lodash.default)(results.name)}`;
|
|
38270
|
+
const suggestedPath = await isDirEmpty() ? `./` : `./${(0, import_lodash.default)(results.name)}`;
|
|
38270
38271
|
return he({
|
|
38271
38272
|
message: "Where should we create your project?",
|
|
38272
38273
|
placeholder: suggestedPath,
|
|
@@ -38277,7 +38278,6 @@ async function createInteractive(options) {
|
|
|
38277
38278
|
return await executeCreate({
|
|
38278
38279
|
template: result.template,
|
|
38279
38280
|
name: result.name,
|
|
38280
|
-
description: result.description || void 0,
|
|
38281
38281
|
projectPath: result.projectPath,
|
|
38282
38282
|
deploy: options.deploy,
|
|
38283
38283
|
skills: options.skills,
|
|
@@ -38288,7 +38288,6 @@ async function createNonInteractive(options) {
|
|
|
38288
38288
|
return await executeCreate({
|
|
38289
38289
|
template: await getTemplateById(options.template ?? DEFAULT_TEMPLATE_ID),
|
|
38290
38290
|
name: options.name,
|
|
38291
|
-
description: options.description,
|
|
38292
38291
|
projectPath: options.path,
|
|
38293
38292
|
deploy: options.deploy,
|
|
38294
38293
|
skills: options.skills,
|
|
@@ -38355,32 +38354,32 @@ async function executeCreate({ template, name: rawName, description, projectPath
|
|
|
38355
38354
|
finalAppUrl = appUrl;
|
|
38356
38355
|
}
|
|
38357
38356
|
}
|
|
38358
|
-
|
|
38359
|
-
|
|
38360
|
-
|
|
38361
|
-
|
|
38362
|
-
|
|
38363
|
-
|
|
38364
|
-
|
|
38365
|
-
|
|
38366
|
-
|
|
38367
|
-
|
|
38368
|
-
|
|
38369
|
-
|
|
38370
|
-
|
|
38371
|
-
|
|
38357
|
+
if (skills ?? true) try {
|
|
38358
|
+
await runTask("Installing AI agent skills...", async () => {
|
|
38359
|
+
await execa("npx", [
|
|
38360
|
+
"-y",
|
|
38361
|
+
"add-skill",
|
|
38362
|
+
"base44/skills",
|
|
38363
|
+
"-y"
|
|
38364
|
+
], {
|
|
38365
|
+
cwd: resolvedPath,
|
|
38366
|
+
shell: true
|
|
38367
|
+
});
|
|
38368
|
+
}, {
|
|
38369
|
+
successMessage: theme.colors.base44Orange("AI agent skills added successfully"),
|
|
38370
|
+
errorMessage: "Failed to add AI agent skills - you can add them later with: npx add-skill base44/skills"
|
|
38372
38371
|
});
|
|
38373
|
-
}
|
|
38374
|
-
successMessage: theme.colors.base44Orange("AI agent skills added successfully"),
|
|
38375
|
-
errorMessage: "Failed to add AI agent skills - you can add them later with: npx add-skill base44/skills"
|
|
38376
|
-
});
|
|
38372
|
+
} catch {}
|
|
38377
38373
|
M.message(`${theme.styles.header("Project")}: ${theme.colors.base44Orange(name$1)}`);
|
|
38378
38374
|
M.message(`${theme.styles.header("Dashboard")}: ${theme.colors.links(getDashboardUrl(projectId))}`);
|
|
38379
38375
|
if (finalAppUrl) M.message(`${theme.styles.header("Site")}: ${theme.colors.links(finalAppUrl)}`);
|
|
38380
38376
|
return { outroMessage: "Your project is set up and ready to use" };
|
|
38381
38377
|
}
|
|
38382
|
-
const createCommand = new Command("create").description("Create a new Base44 project").
|
|
38383
|
-
await chooseCreate(
|
|
38378
|
+
const createCommand = new Command("create").description("Create a new Base44 project").addArgument(new Argument("name", "Project name").argOptional()).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 (name$1, options) => {
|
|
38379
|
+
await chooseCreate({
|
|
38380
|
+
name: name$1,
|
|
38381
|
+
...options
|
|
38382
|
+
});
|
|
38384
38383
|
});
|
|
38385
38384
|
|
|
38386
38385
|
//#endregion
|
|
@@ -38425,7 +38424,7 @@ function isInsideContainer() {
|
|
|
38425
38424
|
//#endregion
|
|
38426
38425
|
//#region node_modules/is-wsl/index.js
|
|
38427
38426
|
const isWsl = () => {
|
|
38428
|
-
if (
|
|
38427
|
+
if (process$1.platform !== "linux") return false;
|
|
38429
38428
|
if (os.release().toLowerCase().includes("microsoft")) {
|
|
38430
38429
|
if (isInsideContainer()) return false;
|
|
38431
38430
|
return true;
|
|
@@ -38436,12 +38435,12 @@ const isWsl = () => {
|
|
|
38436
38435
|
return false;
|
|
38437
38436
|
}
|
|
38438
38437
|
};
|
|
38439
|
-
var is_wsl_default =
|
|
38438
|
+
var is_wsl_default = process$1.env.__IS_WSL_TEST__ ? isWsl : isWsl();
|
|
38440
38439
|
|
|
38441
38440
|
//#endregion
|
|
38442
38441
|
//#region node_modules/powershell-utils/index.js
|
|
38443
38442
|
const execFile$2 = promisify(childProcess.execFile);
|
|
38444
|
-
const powerShellPath$1 = () => `${
|
|
38443
|
+
const powerShellPath$1 = () => `${process$1.env.SYSTEMROOT || process$1.env.windir || String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;
|
|
38445
38444
|
const executePowerShell = async (command, options = {}) => {
|
|
38446
38445
|
const { powerShellPath: psPath, ...execFileOptions } = options;
|
|
38447
38446
|
const encodedCommand = executePowerShell.encodeCommand(command);
|
|
@@ -38552,7 +38551,7 @@ function defineLazyProperty(object$1, propertyName, valueGetter) {
|
|
|
38552
38551
|
//#region node_modules/default-browser-id/index.js
|
|
38553
38552
|
const execFileAsync$3 = promisify(execFile);
|
|
38554
38553
|
async function defaultBrowserId() {
|
|
38555
|
-
if (
|
|
38554
|
+
if (process$1.platform !== "darwin") throw new Error("macOS only");
|
|
38556
38555
|
const { stdout: stdout$1 } = await execFileAsync$3("defaults", [
|
|
38557
38556
|
"read",
|
|
38558
38557
|
"com.apple.LaunchServices/com.apple.launchservices.secure",
|
|
@@ -38567,7 +38566,7 @@ async function defaultBrowserId() {
|
|
|
38567
38566
|
//#region node_modules/run-applescript/index.js
|
|
38568
38567
|
const execFileAsync$2 = promisify(execFile);
|
|
38569
38568
|
async function runAppleScript(script, { humanReadableOutput = true, signal } = {}) {
|
|
38570
|
-
if (
|
|
38569
|
+
if (process$1.platform !== "darwin") throw new Error("macOS only");
|
|
38571
38570
|
const outputArguments = humanReadableOutput ? [] : ["-ss"];
|
|
38572
38571
|
const execOptions = {};
|
|
38573
38572
|
if (signal) execOptions.signal = signal;
|
|
@@ -38676,14 +38675,14 @@ async function defaultBrowser$1(_execFileAsync = execFileAsync$1) {
|
|
|
38676
38675
|
const execFileAsync = promisify(execFile);
|
|
38677
38676
|
const titleize = (string$2) => string$2.toLowerCase().replaceAll(/(?:^|\s|-)\S/g, (x$2) => x$2.toUpperCase());
|
|
38678
38677
|
async function defaultBrowser() {
|
|
38679
|
-
if (
|
|
38678
|
+
if (process$1.platform === "darwin") {
|
|
38680
38679
|
const id = await defaultBrowserId();
|
|
38681
38680
|
return {
|
|
38682
38681
|
name: await bundleName(id),
|
|
38683
38682
|
id
|
|
38684
38683
|
};
|
|
38685
38684
|
}
|
|
38686
|
-
if (
|
|
38685
|
+
if (process$1.platform === "linux") {
|
|
38687
38686
|
const { stdout: stdout$1 } = await execFileAsync("xdg-mime", [
|
|
38688
38687
|
"query",
|
|
38689
38688
|
"default",
|
|
@@ -38695,13 +38694,13 @@ async function defaultBrowser() {
|
|
|
38695
38694
|
id
|
|
38696
38695
|
};
|
|
38697
38696
|
}
|
|
38698
|
-
if (
|
|
38697
|
+
if (process$1.platform === "win32") return defaultBrowser$1();
|
|
38699
38698
|
throw new Error("Only macOS, Linux, and Windows are supported");
|
|
38700
38699
|
}
|
|
38701
38700
|
|
|
38702
38701
|
//#endregion
|
|
38703
38702
|
//#region node_modules/is-in-ssh/index.js
|
|
38704
|
-
const isInSsh = Boolean(
|
|
38703
|
+
const isInSsh = Boolean(process$1.env.SSH_CONNECTION || process$1.env.SSH_CLIENT || process$1.env.SSH_TTY);
|
|
38705
38704
|
var is_in_ssh_default = isInSsh;
|
|
38706
38705
|
|
|
38707
38706
|
//#endregion
|
|
@@ -38709,7 +38708,7 @@ var is_in_ssh_default = isInSsh;
|
|
|
38709
38708
|
const fallbackAttemptSymbol = Symbol("fallbackAttempt");
|
|
38710
38709
|
const __dirname = import.meta.url ? path.dirname(fileURLToPath(import.meta.url)) : "";
|
|
38711
38710
|
const localXdgOpenPath = path.join(__dirname, "xdg-open");
|
|
38712
|
-
const { platform: platform$1, arch } =
|
|
38711
|
+
const { platform: platform$1, arch } = process$1;
|
|
38713
38712
|
const tryEachApp = async (apps$1, opener) => {
|
|
38714
38713
|
if (apps$1.length === 0) return;
|
|
38715
38714
|
const errors = [];
|
|
@@ -38822,7 +38821,7 @@ const baseOpen = async (options) => {
|
|
|
38822
38821
|
await fs$1.access(localXdgOpenPath, constants$1.X_OK);
|
|
38823
38822
|
exeLocalXdgOpen = true;
|
|
38824
38823
|
} catch {}
|
|
38825
|
-
command =
|
|
38824
|
+
command = process$1.versions.electron ?? (platform$1 === "android" || isBundled || !exeLocalXdgOpen) ? "xdg-open" : localXdgOpenPath;
|
|
38826
38825
|
}
|
|
38827
38826
|
if (appArguments.length > 0) cliArguments.push(...appArguments);
|
|
38828
38827
|
if (!options.wait) {
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"templates": [
|
|
3
|
-
{
|
|
4
|
-
"id": "backend-only",
|
|
5
|
-
"name": "Create a basic project",
|
|
6
|
-
"description": "Minimal Base44 backend for defining your data models and logic",
|
|
7
|
-
"path": "backend-only"
|
|
8
|
-
},
|
|
9
3
|
{
|
|
10
4
|
"id": "backend-and-client",
|
|
11
5
|
"name": "Start from a template",
|
|
12
6
|
"description": "Full-stack example with a Base44 backend and a Vite + React client application",
|
|
13
7
|
"path": "backend-and-client"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "backend-only",
|
|
11
|
+
"name": "Create a basic project",
|
|
12
|
+
"description": "Minimal Base44 backend for defining your data models and logic",
|
|
13
|
+
"path": "backend-only"
|
|
14
14
|
}
|
|
15
15
|
]
|
|
16
16
|
}
|