@base44-preview/cli 0.0.19-pr.124.f10d1f3 → 0.0.21-pr.112.3b6cf1a
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 +400 -106
- package/package.json +1 -1
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) {
|
|
@@ -5818,6 +5818,97 @@ function handleTupleResult(result, final, index) {
|
|
|
5818
5818
|
if (result.issues.length) final.issues.push(...prefixIssues(index, result.issues));
|
|
5819
5819
|
final.value[index] = result.value;
|
|
5820
5820
|
}
|
|
5821
|
+
const $ZodRecord = /* @__PURE__ */ $constructor("$ZodRecord", (inst, def) => {
|
|
5822
|
+
$ZodType.init(inst, def);
|
|
5823
|
+
inst._zod.parse = (payload, ctx) => {
|
|
5824
|
+
const input = payload.value;
|
|
5825
|
+
if (!isPlainObject$1(input)) {
|
|
5826
|
+
payload.issues.push({
|
|
5827
|
+
expected: "record",
|
|
5828
|
+
code: "invalid_type",
|
|
5829
|
+
input,
|
|
5830
|
+
inst
|
|
5831
|
+
});
|
|
5832
|
+
return payload;
|
|
5833
|
+
}
|
|
5834
|
+
const proms = [];
|
|
5835
|
+
const values = def.keyType._zod.values;
|
|
5836
|
+
if (values) {
|
|
5837
|
+
payload.value = {};
|
|
5838
|
+
const recordKeys = /* @__PURE__ */ new Set();
|
|
5839
|
+
for (const key of values) if (typeof key === "string" || typeof key === "number" || typeof key === "symbol") {
|
|
5840
|
+
recordKeys.add(typeof key === "number" ? key.toString() : key);
|
|
5841
|
+
const result = def.valueType._zod.run({
|
|
5842
|
+
value: input[key],
|
|
5843
|
+
issues: []
|
|
5844
|
+
}, ctx);
|
|
5845
|
+
if (result instanceof Promise) proms.push(result.then((result$1) => {
|
|
5846
|
+
if (result$1.issues.length) payload.issues.push(...prefixIssues(key, result$1.issues));
|
|
5847
|
+
payload.value[key] = result$1.value;
|
|
5848
|
+
}));
|
|
5849
|
+
else {
|
|
5850
|
+
if (result.issues.length) payload.issues.push(...prefixIssues(key, result.issues));
|
|
5851
|
+
payload.value[key] = result.value;
|
|
5852
|
+
}
|
|
5853
|
+
}
|
|
5854
|
+
let unrecognized;
|
|
5855
|
+
for (const key in input) if (!recordKeys.has(key)) {
|
|
5856
|
+
unrecognized = unrecognized ?? [];
|
|
5857
|
+
unrecognized.push(key);
|
|
5858
|
+
}
|
|
5859
|
+
if (unrecognized && unrecognized.length > 0) payload.issues.push({
|
|
5860
|
+
code: "unrecognized_keys",
|
|
5861
|
+
input,
|
|
5862
|
+
inst,
|
|
5863
|
+
keys: unrecognized
|
|
5864
|
+
});
|
|
5865
|
+
} else {
|
|
5866
|
+
payload.value = {};
|
|
5867
|
+
for (const key of Reflect.ownKeys(input)) {
|
|
5868
|
+
if (key === "__proto__") continue;
|
|
5869
|
+
let keyResult = def.keyType._zod.run({
|
|
5870
|
+
value: key,
|
|
5871
|
+
issues: []
|
|
5872
|
+
}, ctx);
|
|
5873
|
+
if (keyResult instanceof Promise) throw new Error("Async schemas not supported in object keys currently");
|
|
5874
|
+
if (typeof key === "string" && number$1.test(key) && keyResult.issues.length && keyResult.issues.some((iss) => iss.code === "invalid_type" && iss.expected === "number")) {
|
|
5875
|
+
const retryResult = def.keyType._zod.run({
|
|
5876
|
+
value: Number(key),
|
|
5877
|
+
issues: []
|
|
5878
|
+
}, ctx);
|
|
5879
|
+
if (retryResult instanceof Promise) throw new Error("Async schemas not supported in object keys currently");
|
|
5880
|
+
if (retryResult.issues.length === 0) keyResult = retryResult;
|
|
5881
|
+
}
|
|
5882
|
+
if (keyResult.issues.length) {
|
|
5883
|
+
if (def.mode === "loose") payload.value[key] = input[key];
|
|
5884
|
+
else payload.issues.push({
|
|
5885
|
+
code: "invalid_key",
|
|
5886
|
+
origin: "record",
|
|
5887
|
+
issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())),
|
|
5888
|
+
input: key,
|
|
5889
|
+
path: [key],
|
|
5890
|
+
inst
|
|
5891
|
+
});
|
|
5892
|
+
continue;
|
|
5893
|
+
}
|
|
5894
|
+
const result = def.valueType._zod.run({
|
|
5895
|
+
value: input[key],
|
|
5896
|
+
issues: []
|
|
5897
|
+
}, ctx);
|
|
5898
|
+
if (result instanceof Promise) proms.push(result.then((result$1) => {
|
|
5899
|
+
if (result$1.issues.length) payload.issues.push(...prefixIssues(key, result$1.issues));
|
|
5900
|
+
payload.value[keyResult.value] = result$1.value;
|
|
5901
|
+
}));
|
|
5902
|
+
else {
|
|
5903
|
+
if (result.issues.length) payload.issues.push(...prefixIssues(key, result.issues));
|
|
5904
|
+
payload.value[keyResult.value] = result.value;
|
|
5905
|
+
}
|
|
5906
|
+
}
|
|
5907
|
+
}
|
|
5908
|
+
if (proms.length) return Promise.all(proms).then(() => payload);
|
|
5909
|
+
return payload;
|
|
5910
|
+
};
|
|
5911
|
+
});
|
|
5821
5912
|
const $ZodEnum = /* @__PURE__ */ $constructor("$ZodEnum", (inst, def) => {
|
|
5822
5913
|
$ZodType.init(inst, def);
|
|
5823
5914
|
const values = getEnumValues(def.entries);
|
|
@@ -6653,7 +6744,7 @@ function initializeContext(params) {
|
|
|
6653
6744
|
external: params?.external ?? void 0
|
|
6654
6745
|
};
|
|
6655
6746
|
}
|
|
6656
|
-
function process$
|
|
6747
|
+
function process$2(schema, ctx, _params = {
|
|
6657
6748
|
path: [],
|
|
6658
6749
|
schemaPath: []
|
|
6659
6750
|
}) {
|
|
@@ -6690,7 +6781,7 @@ function process$3(schema, ctx, _params = {
|
|
|
6690
6781
|
const parent = schema._zod.parent;
|
|
6691
6782
|
if (parent) {
|
|
6692
6783
|
if (!result.ref) result.ref = parent;
|
|
6693
|
-
process$
|
|
6784
|
+
process$2(parent, ctx, params);
|
|
6694
6785
|
ctx.seen.get(parent).isParent = true;
|
|
6695
6786
|
}
|
|
6696
6787
|
}
|
|
@@ -6902,7 +6993,7 @@ const createToJSONSchemaMethod = (schema, processors = {}) => (params) => {
|
|
|
6902
6993
|
...params,
|
|
6903
6994
|
processors
|
|
6904
6995
|
});
|
|
6905
|
-
process$
|
|
6996
|
+
process$2(schema, ctx);
|
|
6906
6997
|
extractDefs(ctx, schema);
|
|
6907
6998
|
return finalize(ctx, schema);
|
|
6908
6999
|
};
|
|
@@ -6914,7 +7005,7 @@ const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params)
|
|
|
6914
7005
|
io,
|
|
6915
7006
|
processors
|
|
6916
7007
|
});
|
|
6917
|
-
process$
|
|
7008
|
+
process$2(schema, ctx);
|
|
6918
7009
|
extractDefs(ctx, schema);
|
|
6919
7010
|
return finalize(ctx, schema);
|
|
6920
7011
|
};
|
|
@@ -7001,7 +7092,7 @@ const arrayProcessor = (schema, ctx, _json, params) => {
|
|
|
7001
7092
|
if (typeof minimum === "number") json.minItems = minimum;
|
|
7002
7093
|
if (typeof maximum === "number") json.maxItems = maximum;
|
|
7003
7094
|
json.type = "array";
|
|
7004
|
-
json.items = process$
|
|
7095
|
+
json.items = process$2(def.element, ctx, {
|
|
7005
7096
|
...params,
|
|
7006
7097
|
path: [...params.path, "items"]
|
|
7007
7098
|
});
|
|
@@ -7012,7 +7103,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
|
|
|
7012
7103
|
json.type = "object";
|
|
7013
7104
|
json.properties = {};
|
|
7014
7105
|
const shape = def.shape;
|
|
7015
|
-
for (const key in shape) json.properties[key] = process$
|
|
7106
|
+
for (const key in shape) json.properties[key] = process$2(shape[key], ctx, {
|
|
7016
7107
|
...params,
|
|
7017
7108
|
path: [
|
|
7018
7109
|
...params.path,
|
|
@@ -7030,7 +7121,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
|
|
|
7030
7121
|
if (def.catchall?._zod.def.type === "never") json.additionalProperties = false;
|
|
7031
7122
|
else if (!def.catchall) {
|
|
7032
7123
|
if (ctx.io === "output") json.additionalProperties = false;
|
|
7033
|
-
} else if (def.catchall) json.additionalProperties = process$
|
|
7124
|
+
} else if (def.catchall) json.additionalProperties = process$2(def.catchall, ctx, {
|
|
7034
7125
|
...params,
|
|
7035
7126
|
path: [...params.path, "additionalProperties"]
|
|
7036
7127
|
});
|
|
@@ -7038,7 +7129,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
|
|
|
7038
7129
|
const unionProcessor = (schema, ctx, json, params) => {
|
|
7039
7130
|
const def = schema._zod.def;
|
|
7040
7131
|
const isExclusive = def.inclusive === false;
|
|
7041
|
-
const options = def.options.map((x$2, i$1) => process$
|
|
7132
|
+
const options = def.options.map((x$2, i$1) => process$2(x$2, ctx, {
|
|
7042
7133
|
...params,
|
|
7043
7134
|
path: [
|
|
7044
7135
|
...params.path,
|
|
@@ -7051,7 +7142,7 @@ const unionProcessor = (schema, ctx, json, params) => {
|
|
|
7051
7142
|
};
|
|
7052
7143
|
const intersectionProcessor = (schema, ctx, json, params) => {
|
|
7053
7144
|
const def = schema._zod.def;
|
|
7054
|
-
const a$1 = process$
|
|
7145
|
+
const a$1 = process$2(def.left, ctx, {
|
|
7055
7146
|
...params,
|
|
7056
7147
|
path: [
|
|
7057
7148
|
...params.path,
|
|
@@ -7059,7 +7150,7 @@ const intersectionProcessor = (schema, ctx, json, params) => {
|
|
|
7059
7150
|
0
|
|
7060
7151
|
]
|
|
7061
7152
|
});
|
|
7062
|
-
const b$2 = process$
|
|
7153
|
+
const b$2 = process$2(def.right, ctx, {
|
|
7063
7154
|
...params,
|
|
7064
7155
|
path: [
|
|
7065
7156
|
...params.path,
|
|
@@ -7076,7 +7167,7 @@ const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
7076
7167
|
json.type = "array";
|
|
7077
7168
|
const prefixPath$1 = ctx.target === "draft-2020-12" ? "prefixItems" : "items";
|
|
7078
7169
|
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$
|
|
7170
|
+
const prefixItems = def.items.map((x$2, i$1) => process$2(x$2, ctx, {
|
|
7080
7171
|
...params,
|
|
7081
7172
|
path: [
|
|
7082
7173
|
...params.path,
|
|
@@ -7084,7 +7175,7 @@ const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
7084
7175
|
i$1
|
|
7085
7176
|
]
|
|
7086
7177
|
}));
|
|
7087
|
-
const rest = def.rest ? process$
|
|
7178
|
+
const rest = def.rest ? process$2(def.rest, ctx, {
|
|
7088
7179
|
...params,
|
|
7089
7180
|
path: [
|
|
7090
7181
|
...params.path,
|
|
@@ -7108,9 +7199,42 @@ const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
7108
7199
|
if (typeof minimum === "number") json.minItems = minimum;
|
|
7109
7200
|
if (typeof maximum === "number") json.maxItems = maximum;
|
|
7110
7201
|
};
|
|
7202
|
+
const recordProcessor = (schema, ctx, _json, params) => {
|
|
7203
|
+
const json = _json;
|
|
7204
|
+
const def = schema._zod.def;
|
|
7205
|
+
json.type = "object";
|
|
7206
|
+
const keyType = def.keyType;
|
|
7207
|
+
const patterns = keyType._zod.bag?.patterns;
|
|
7208
|
+
if (def.mode === "loose" && patterns && patterns.size > 0) {
|
|
7209
|
+
const valueSchema = process$2(def.valueType, ctx, {
|
|
7210
|
+
...params,
|
|
7211
|
+
path: [
|
|
7212
|
+
...params.path,
|
|
7213
|
+
"patternProperties",
|
|
7214
|
+
"*"
|
|
7215
|
+
]
|
|
7216
|
+
});
|
|
7217
|
+
json.patternProperties = {};
|
|
7218
|
+
for (const pattern of patterns) json.patternProperties[pattern.source] = valueSchema;
|
|
7219
|
+
} else {
|
|
7220
|
+
if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") json.propertyNames = process$2(def.keyType, ctx, {
|
|
7221
|
+
...params,
|
|
7222
|
+
path: [...params.path, "propertyNames"]
|
|
7223
|
+
});
|
|
7224
|
+
json.additionalProperties = process$2(def.valueType, ctx, {
|
|
7225
|
+
...params,
|
|
7226
|
+
path: [...params.path, "additionalProperties"]
|
|
7227
|
+
});
|
|
7228
|
+
}
|
|
7229
|
+
const keyValues = keyType._zod.values;
|
|
7230
|
+
if (keyValues) {
|
|
7231
|
+
const validKeyValues = [...keyValues].filter((v$1) => typeof v$1 === "string" || typeof v$1 === "number");
|
|
7232
|
+
if (validKeyValues.length > 0) json.required = validKeyValues;
|
|
7233
|
+
}
|
|
7234
|
+
};
|
|
7111
7235
|
const nullableProcessor = (schema, ctx, json, params) => {
|
|
7112
7236
|
const def = schema._zod.def;
|
|
7113
|
-
const inner = process$
|
|
7237
|
+
const inner = process$2(def.innerType, ctx, params);
|
|
7114
7238
|
const seen = ctx.seen.get(schema);
|
|
7115
7239
|
if (ctx.target === "openapi-3.0") {
|
|
7116
7240
|
seen.ref = def.innerType;
|
|
@@ -7119,27 +7243,27 @@ const nullableProcessor = (schema, ctx, json, params) => {
|
|
|
7119
7243
|
};
|
|
7120
7244
|
const nonoptionalProcessor = (schema, ctx, _json, params) => {
|
|
7121
7245
|
const def = schema._zod.def;
|
|
7122
|
-
process$
|
|
7246
|
+
process$2(def.innerType, ctx, params);
|
|
7123
7247
|
const seen = ctx.seen.get(schema);
|
|
7124
7248
|
seen.ref = def.innerType;
|
|
7125
7249
|
};
|
|
7126
7250
|
const defaultProcessor = (schema, ctx, json, params) => {
|
|
7127
7251
|
const def = schema._zod.def;
|
|
7128
|
-
process$
|
|
7252
|
+
process$2(def.innerType, ctx, params);
|
|
7129
7253
|
const seen = ctx.seen.get(schema);
|
|
7130
7254
|
seen.ref = def.innerType;
|
|
7131
7255
|
json.default = JSON.parse(JSON.stringify(def.defaultValue));
|
|
7132
7256
|
};
|
|
7133
7257
|
const prefaultProcessor = (schema, ctx, json, params) => {
|
|
7134
7258
|
const def = schema._zod.def;
|
|
7135
|
-
process$
|
|
7259
|
+
process$2(def.innerType, ctx, params);
|
|
7136
7260
|
const seen = ctx.seen.get(schema);
|
|
7137
7261
|
seen.ref = def.innerType;
|
|
7138
7262
|
if (ctx.io === "input") json._prefault = JSON.parse(JSON.stringify(def.defaultValue));
|
|
7139
7263
|
};
|
|
7140
7264
|
const catchProcessor = (schema, ctx, json, params) => {
|
|
7141
7265
|
const def = schema._zod.def;
|
|
7142
|
-
process$
|
|
7266
|
+
process$2(def.innerType, ctx, params);
|
|
7143
7267
|
const seen = ctx.seen.get(schema);
|
|
7144
7268
|
seen.ref = def.innerType;
|
|
7145
7269
|
let catchValue;
|
|
@@ -7153,20 +7277,20 @@ const catchProcessor = (schema, ctx, json, params) => {
|
|
|
7153
7277
|
const pipeProcessor = (schema, ctx, _json, params) => {
|
|
7154
7278
|
const def = schema._zod.def;
|
|
7155
7279
|
const innerType = ctx.io === "input" ? def.in._zod.def.type === "transform" ? def.out : def.in : def.out;
|
|
7156
|
-
process$
|
|
7280
|
+
process$2(innerType, ctx, params);
|
|
7157
7281
|
const seen = ctx.seen.get(schema);
|
|
7158
7282
|
seen.ref = innerType;
|
|
7159
7283
|
};
|
|
7160
7284
|
const readonlyProcessor = (schema, ctx, json, params) => {
|
|
7161
7285
|
const def = schema._zod.def;
|
|
7162
|
-
process$
|
|
7286
|
+
process$2(def.innerType, ctx, params);
|
|
7163
7287
|
const seen = ctx.seen.get(schema);
|
|
7164
7288
|
seen.ref = def.innerType;
|
|
7165
7289
|
json.readOnly = true;
|
|
7166
7290
|
};
|
|
7167
7291
|
const optionalProcessor = (schema, ctx, _json, params) => {
|
|
7168
7292
|
const def = schema._zod.def;
|
|
7169
|
-
process$
|
|
7293
|
+
process$2(def.innerType, ctx, params);
|
|
7170
7294
|
const seen = ctx.seen.get(schema);
|
|
7171
7295
|
seen.ref = def.innerType;
|
|
7172
7296
|
};
|
|
@@ -7637,6 +7761,21 @@ function tuple(items, _paramsOrRest, _params) {
|
|
|
7637
7761
|
...normalizeParams(params)
|
|
7638
7762
|
});
|
|
7639
7763
|
}
|
|
7764
|
+
const ZodRecord = /* @__PURE__ */ $constructor("ZodRecord", (inst, def) => {
|
|
7765
|
+
$ZodRecord.init(inst, def);
|
|
7766
|
+
ZodType.init(inst, def);
|
|
7767
|
+
inst._zod.processJSONSchema = (ctx, json, params) => recordProcessor(inst, ctx, json, params);
|
|
7768
|
+
inst.keyType = def.keyType;
|
|
7769
|
+
inst.valueType = def.valueType;
|
|
7770
|
+
});
|
|
7771
|
+
function record(keyType, valueType, params) {
|
|
7772
|
+
return new ZodRecord({
|
|
7773
|
+
type: "record",
|
|
7774
|
+
keyType,
|
|
7775
|
+
valueType,
|
|
7776
|
+
...normalizeParams(params)
|
|
7777
|
+
});
|
|
7778
|
+
}
|
|
7640
7779
|
const ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => {
|
|
7641
7780
|
$ZodEnum.init(inst, def);
|
|
7642
7781
|
ZodType.init(inst, def);
|
|
@@ -7903,6 +8042,7 @@ var AuthValidationError = class extends Error {
|
|
|
7903
8042
|
//#endregion
|
|
7904
8043
|
//#region src/core/consts.ts
|
|
7905
8044
|
const PROJECT_SUBDIR = "base44";
|
|
8045
|
+
const CONFIG_FILE_EXTENSION = "jsonc";
|
|
7906
8046
|
const CONFIG_FILE_EXTENSION_GLOB = "{json,jsonc}";
|
|
7907
8047
|
const FUNCTION_CONFIG_FILE = `function.${CONFIG_FILE_EXTENSION_GLOB}`;
|
|
7908
8048
|
const APP_CONFIG_PATTERN = `**/.app.${CONFIG_FILE_EXTENSION_GLOB}`;
|
|
@@ -16195,7 +16335,7 @@ const createIgnorePredicate = (patterns, cwd, baseDir) => {
|
|
|
16195
16335
|
};
|
|
16196
16336
|
const normalizeOptions$2 = (options = {}) => {
|
|
16197
16337
|
const ignoreOption = options.ignore ? Array.isArray(options.ignore) ? options.ignore : [options.ignore] : [];
|
|
16198
|
-
const cwd = toPath$1(options.cwd) ??
|
|
16338
|
+
const cwd = toPath$1(options.cwd) ?? y.cwd();
|
|
16199
16339
|
const deep = typeof options.deep === "number" ? Math.max(0, options.deep) + 1 : Number.POSITIVE_INFINITY;
|
|
16200
16340
|
return {
|
|
16201
16341
|
cwd,
|
|
@@ -16292,7 +16432,7 @@ const getDirectoryGlob = ({ directoryPath, files, extensions }) => {
|
|
|
16292
16432
|
const extensionGlob = extensions?.length > 0 ? `.${extensions.length > 1 ? `{${extensions.join(",")}}` : extensions[0]}` : "";
|
|
16293
16433
|
return files ? files.map((file) => path.posix.join(directoryPath, `**/${path.extname(file) ? file : `${file}${extensionGlob}`}`)) : [path.posix.join(directoryPath, `**${extensionGlob ? `/*${extensionGlob}` : ""}`)];
|
|
16294
16434
|
};
|
|
16295
|
-
const directoryToGlob = async (directoryPaths, { cwd =
|
|
16435
|
+
const directoryToGlob = async (directoryPaths, { cwd = y.cwd(), files, extensions, fs: fsImplementation } = {}) => {
|
|
16296
16436
|
return (await Promise.all(directoryPaths.map(async (directoryPath) => {
|
|
16297
16437
|
if (shouldExpandGlobstarDirectory(isNegativePattern(directoryPath) ? directoryPath.slice(1) : directoryPath)) return getDirectoryGlob({
|
|
16298
16438
|
directoryPath,
|
|
@@ -16306,7 +16446,7 @@ const directoryToGlob = async (directoryPaths, { cwd = process$1.cwd(), files, e
|
|
|
16306
16446
|
}) : directoryPath;
|
|
16307
16447
|
}))).flat();
|
|
16308
16448
|
};
|
|
16309
|
-
const directoryToGlobSync = (directoryPaths, { cwd =
|
|
16449
|
+
const directoryToGlobSync = (directoryPaths, { cwd = y.cwd(), files, extensions, fs: fsImplementation } = {}) => directoryPaths.flatMap((directoryPath) => {
|
|
16310
16450
|
if (shouldExpandGlobstarDirectory(isNegativePattern(directoryPath) ? directoryPath.slice(1) : directoryPath)) return getDirectoryGlob({
|
|
16311
16451
|
directoryPath,
|
|
16312
16452
|
files,
|
|
@@ -16402,7 +16542,7 @@ const applyIgnoreFilesAndGetFilterSync = (options) => {
|
|
|
16402
16542
|
};
|
|
16403
16543
|
const createFilterFunction = (isIgnored, cwd) => {
|
|
16404
16544
|
const seen = /* @__PURE__ */ new Set();
|
|
16405
|
-
const basePath = cwd ||
|
|
16545
|
+
const basePath = cwd || y.cwd();
|
|
16406
16546
|
const pathCache = /* @__PURE__ */ new Map();
|
|
16407
16547
|
return (fastGlobResult) => {
|
|
16408
16548
|
const pathKey$1 = path.normalize(fastGlobResult.path ?? fastGlobResult);
|
|
@@ -16537,9 +16677,7 @@ const SyncEntitiesResponseSchema = object({
|
|
|
16537
16677
|
//#region src/core/resources/entity/config.ts
|
|
16538
16678
|
async function readEntityFile(entityPath) {
|
|
16539
16679
|
const parsed = await readJsonFile(entityPath);
|
|
16540
|
-
|
|
16541
|
-
if (!result.success) throw new Error(`Invalid entity configuration in ${entityPath}: ${result.error.issues.map((e$1) => e$1.message).join(", ")}`);
|
|
16542
|
-
return result.data;
|
|
16680
|
+
return EntitySchema.parse(parsed);
|
|
16543
16681
|
}
|
|
16544
16682
|
async function readAllEntities(entitiesDir) {
|
|
16545
16683
|
if (!await pathExists(entitiesDir)) return [];
|
|
@@ -16561,8 +16699,8 @@ async function syncEntities(entities) {
|
|
|
16561
16699
|
});
|
|
16562
16700
|
if (!response.ok) {
|
|
16563
16701
|
const errorJson = await response.json();
|
|
16564
|
-
if (response.status === 428) throw new Error(`Failed to delete entity: ${errorJson
|
|
16565
|
-
throw new Error(`Error occurred while syncing entities ${errorJson
|
|
16702
|
+
if (response.status === 428) throw new Error(`Failed to delete entity: ${formatApiError(errorJson)}`);
|
|
16703
|
+
throw new Error(`Error occurred while syncing entities: ${formatApiError(errorJson)}`);
|
|
16566
16704
|
}
|
|
16567
16705
|
return SyncEntitiesResponseSchema.parse(await response.json());
|
|
16568
16706
|
}
|
|
@@ -16684,6 +16822,87 @@ const functionResource = {
|
|
|
16684
16822
|
push: pushFunctions
|
|
16685
16823
|
};
|
|
16686
16824
|
|
|
16825
|
+
//#endregion
|
|
16826
|
+
//#region src/core/resources/agent/schema.ts
|
|
16827
|
+
const AgentConfigSchema = looseObject({ name: string().regex(/^[a-z0-9_]+$/, "Agent name must be lowercase alphanumeric with underscores").min(1).max(100) });
|
|
16828
|
+
const SyncAgentsResponseSchema = object({
|
|
16829
|
+
created: array(string()),
|
|
16830
|
+
updated: array(string()),
|
|
16831
|
+
deleted: array(string())
|
|
16832
|
+
});
|
|
16833
|
+
const AgentConfigApiResponseSchema = looseObject({ name: string() });
|
|
16834
|
+
const ListAgentsResponseSchema = object({
|
|
16835
|
+
items: array(AgentConfigApiResponseSchema),
|
|
16836
|
+
total: number()
|
|
16837
|
+
});
|
|
16838
|
+
|
|
16839
|
+
//#endregion
|
|
16840
|
+
//#region src/core/resources/agent/config.ts
|
|
16841
|
+
async function readAgentFile(agentPath) {
|
|
16842
|
+
const parsed = await readJsonFile(agentPath);
|
|
16843
|
+
return AgentConfigSchema.parse(parsed);
|
|
16844
|
+
}
|
|
16845
|
+
async function readAllAgents(agentsDir) {
|
|
16846
|
+
if (!await pathExists(agentsDir)) return [];
|
|
16847
|
+
const files = await globby(`*.${CONFIG_FILE_EXTENSION_GLOB}`, {
|
|
16848
|
+
cwd: agentsDir,
|
|
16849
|
+
absolute: true
|
|
16850
|
+
});
|
|
16851
|
+
const agents = await Promise.all(files.map((filePath) => readAgentFile(filePath)));
|
|
16852
|
+
const names = /* @__PURE__ */ new Set();
|
|
16853
|
+
for (const agent of agents) {
|
|
16854
|
+
if (names.has(agent.name)) throw new Error(`Duplicate agent name "${agent.name}"`);
|
|
16855
|
+
names.add(agent.name);
|
|
16856
|
+
}
|
|
16857
|
+
return agents;
|
|
16858
|
+
}
|
|
16859
|
+
async function writeAgents(agentsDir, remoteAgents) {
|
|
16860
|
+
const existingAgents = await readAllAgents(agentsDir);
|
|
16861
|
+
const newNames = new Set(remoteAgents.map((a$1) => a$1.name));
|
|
16862
|
+
const toDelete = existingAgents.filter((a$1) => !newNames.has(a$1.name));
|
|
16863
|
+
for (const agent of toDelete) {
|
|
16864
|
+
const files = await globby(`${agent.name}.${CONFIG_FILE_EXTENSION_GLOB}`, {
|
|
16865
|
+
cwd: agentsDir,
|
|
16866
|
+
absolute: true
|
|
16867
|
+
});
|
|
16868
|
+
for (const filePath of files) await deleteFile(filePath);
|
|
16869
|
+
}
|
|
16870
|
+
for (const agent of remoteAgents) await writeJsonFile(join(agentsDir, `${agent.name}.${CONFIG_FILE_EXTENSION}`), agent);
|
|
16871
|
+
return {
|
|
16872
|
+
written: remoteAgents.map((a$1) => a$1.name),
|
|
16873
|
+
deleted: toDelete.map((a$1) => a$1.name)
|
|
16874
|
+
};
|
|
16875
|
+
}
|
|
16876
|
+
|
|
16877
|
+
//#endregion
|
|
16878
|
+
//#region src/core/resources/agent/api.ts
|
|
16879
|
+
async function pushAgents(agents) {
|
|
16880
|
+
const response = await getAppClient().put("agent-configs", {
|
|
16881
|
+
json: agents,
|
|
16882
|
+
throwHttpErrors: false
|
|
16883
|
+
});
|
|
16884
|
+
if (!response.ok) {
|
|
16885
|
+
const errorJson = await response.json();
|
|
16886
|
+
throw new Error(`Error occurred while syncing agents: ${formatApiError(errorJson)}`);
|
|
16887
|
+
}
|
|
16888
|
+
return SyncAgentsResponseSchema.parse(await response.json());
|
|
16889
|
+
}
|
|
16890
|
+
async function fetchAgents() {
|
|
16891
|
+
const response = await getAppClient().get("agent-configs", { throwHttpErrors: false });
|
|
16892
|
+
if (!response.ok) {
|
|
16893
|
+
const errorJson = await response.json();
|
|
16894
|
+
throw new Error(`Error occurred while fetching agents: ${formatApiError(errorJson)}`);
|
|
16895
|
+
}
|
|
16896
|
+
return ListAgentsResponseSchema.parse(await response.json());
|
|
16897
|
+
}
|
|
16898
|
+
|
|
16899
|
+
//#endregion
|
|
16900
|
+
//#region src/core/resources/agent/resource.ts
|
|
16901
|
+
const agentResource = {
|
|
16902
|
+
readAll: readAllAgents,
|
|
16903
|
+
push: pushAgents
|
|
16904
|
+
};
|
|
16905
|
+
|
|
16687
16906
|
//#endregion
|
|
16688
16907
|
//#region src/core/project/schema.ts
|
|
16689
16908
|
const TemplateSchema = object({
|
|
@@ -16704,7 +16923,8 @@ const ProjectConfigSchema = object({
|
|
|
16704
16923
|
description: string().optional(),
|
|
16705
16924
|
site: SiteConfigSchema.optional(),
|
|
16706
16925
|
entitiesDir: string().optional().default("entities"),
|
|
16707
|
-
functionsDir: string().optional().default("functions")
|
|
16926
|
+
functionsDir: string().optional().default("functions"),
|
|
16927
|
+
agentsDir: string().optional().default("agents")
|
|
16708
16928
|
});
|
|
16709
16929
|
const AppConfigSchema = object({ id: string().min(1, "id cannot be empty") });
|
|
16710
16930
|
const CreateProjectResponseSchema = looseObject({ id: string() });
|
|
@@ -16776,7 +16996,11 @@ async function readProjectConfig(projectRoot) {
|
|
|
16776
16996
|
if (!result.success) throw new Error(`Invalid project configuration: ${result.error.message}`);
|
|
16777
16997
|
const project = result.data;
|
|
16778
16998
|
const configDir = dirname(configPath);
|
|
16779
|
-
const [entities, functions] = await Promise.all([
|
|
16999
|
+
const [entities, functions, agents] = await Promise.all([
|
|
17000
|
+
entityResource.readAll(join(configDir, project.entitiesDir)),
|
|
17001
|
+
functionResource.readAll(join(configDir, project.functionsDir)),
|
|
17002
|
+
agentResource.readAll(join(configDir, project.agentsDir))
|
|
17003
|
+
]);
|
|
16780
17004
|
return {
|
|
16781
17005
|
project: {
|
|
16782
17006
|
...project,
|
|
@@ -16784,7 +17008,8 @@ async function readProjectConfig(projectRoot) {
|
|
|
16784
17008
|
configPath
|
|
16785
17009
|
},
|
|
16786
17010
|
entities,
|
|
16787
|
-
functions
|
|
17011
|
+
functions,
|
|
17012
|
+
agents
|
|
16788
17013
|
};
|
|
16789
17014
|
}
|
|
16790
17015
|
|
|
@@ -30469,6 +30694,11 @@ async function readAppConfig(projectRoot) {
|
|
|
30469
30694
|
* Authenticated HTTP client for Base44 API.
|
|
30470
30695
|
* Automatically handles token refresh and retry on 401 responses.
|
|
30471
30696
|
*/
|
|
30697
|
+
function formatApiError(errorJson) {
|
|
30698
|
+
const error = errorJson;
|
|
30699
|
+
const content = error?.message ?? error?.detail ?? errorJson;
|
|
30700
|
+
return typeof content === "string" ? content : JSON.stringify(content, null, 2);
|
|
30701
|
+
}
|
|
30472
30702
|
const retriedRequests = /* @__PURE__ */ new WeakSet();
|
|
30473
30703
|
/**
|
|
30474
30704
|
* Handles 401 responses by refreshing the token and retrying the request.
|
|
@@ -30522,6 +30752,19 @@ function getAppClient() {
|
|
|
30522
30752
|
return base44Client.extend({ prefixUrl: new URL(`/api/apps/${id}/`, getBase44ApiUrl()).href });
|
|
30523
30753
|
}
|
|
30524
30754
|
|
|
30755
|
+
//#endregion
|
|
30756
|
+
//#region src/core/clients/schemas.ts
|
|
30757
|
+
const ApiErrorSchema = object({
|
|
30758
|
+
error_type: string().optional(),
|
|
30759
|
+
message: union([string(), record(string(), unknown())]).optional(),
|
|
30760
|
+
detail: union([
|
|
30761
|
+
string(),
|
|
30762
|
+
record(string(), unknown()),
|
|
30763
|
+
array(unknown())
|
|
30764
|
+
]).optional(),
|
|
30765
|
+
traceback: string().optional()
|
|
30766
|
+
});
|
|
30767
|
+
|
|
30525
30768
|
//#endregion
|
|
30526
30769
|
//#region src/core/auth/api.ts
|
|
30527
30770
|
async function generateDeviceCode() {
|
|
@@ -30771,13 +31014,13 @@ var ansi_styles_default = ansiStyles;
|
|
|
30771
31014
|
|
|
30772
31015
|
//#endregion
|
|
30773
31016
|
//#region node_modules/chalk/source/vendor/supports-color/index.js
|
|
30774
|
-
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args :
|
|
31017
|
+
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : y.argv) {
|
|
30775
31018
|
const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
|
|
30776
31019
|
const position = argv.indexOf(prefix + flag);
|
|
30777
31020
|
const terminatorPosition = argv.indexOf("--");
|
|
30778
31021
|
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
|
|
30779
31022
|
}
|
|
30780
|
-
const { env } =
|
|
31023
|
+
const { env } = y;
|
|
30781
31024
|
let flagForceColor;
|
|
30782
31025
|
if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) flagForceColor = 0;
|
|
30783
31026
|
else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) flagForceColor = 1;
|
|
@@ -30810,7 +31053,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
|
|
30810
31053
|
if (haveStream && !streamIsTTY && forceColor === void 0) return 0;
|
|
30811
31054
|
const min = forceColor || 0;
|
|
30812
31055
|
if (env.TERM === "dumb") return min;
|
|
30813
|
-
if (
|
|
31056
|
+
if (y.platform === "win32") {
|
|
30814
31057
|
const osRelease = os.release().split(".");
|
|
30815
31058
|
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
30816
31059
|
return 1;
|
|
@@ -31349,12 +31592,62 @@ async function pushEntitiesAction() {
|
|
|
31349
31592
|
if (result.created.length > 0) M.success(`Created: ${result.created.join(", ")}`);
|
|
31350
31593
|
if (result.updated.length > 0) M.success(`Updated: ${result.updated.join(", ")}`);
|
|
31351
31594
|
if (result.deleted.length > 0) M.warn(`Deleted: ${result.deleted.join(", ")}`);
|
|
31352
|
-
return {};
|
|
31595
|
+
return { outroMessage: "Entities pushed to Base44" };
|
|
31353
31596
|
}
|
|
31354
31597
|
const entitiesPushCommand = new Command("entities").description("Manage project entities").addCommand(new Command("push").description("Push local entities to Base44").action(async () => {
|
|
31355
31598
|
await runCommand(pushEntitiesAction, { requireAuth: true });
|
|
31356
31599
|
}));
|
|
31357
31600
|
|
|
31601
|
+
//#endregion
|
|
31602
|
+
//#region src/cli/commands/agents/push.ts
|
|
31603
|
+
async function pushAgentsAction() {
|
|
31604
|
+
const { agents } = await readProjectConfig();
|
|
31605
|
+
M.info(agents.length === 0 ? "No local agents found - this will delete all remote agents" : `Found ${agents.length} agents to push`);
|
|
31606
|
+
const result = await runTask("Pushing agents to Base44", async () => {
|
|
31607
|
+
return await pushAgents(agents);
|
|
31608
|
+
}, {
|
|
31609
|
+
successMessage: "Agents pushed successfully",
|
|
31610
|
+
errorMessage: "Failed to push agents"
|
|
31611
|
+
});
|
|
31612
|
+
if (result.created.length > 0) M.success(`Created: ${result.created.join(", ")}`);
|
|
31613
|
+
if (result.updated.length > 0) M.success(`Updated: ${result.updated.join(", ")}`);
|
|
31614
|
+
if (result.deleted.length > 0) M.warn(`Deleted: ${result.deleted.join(", ")}`);
|
|
31615
|
+
return { outroMessage: "Agents pushed to Base44" };
|
|
31616
|
+
}
|
|
31617
|
+
const agentsPushCommand = new Command("push").description("Push local agents to Base44 (replaces all remote agent configs)").action(async () => {
|
|
31618
|
+
await runCommand(pushAgentsAction, { requireAuth: true });
|
|
31619
|
+
});
|
|
31620
|
+
|
|
31621
|
+
//#endregion
|
|
31622
|
+
//#region src/cli/commands/agents/pull.ts
|
|
31623
|
+
async function pullAgentsAction() {
|
|
31624
|
+
const { project } = await readProjectConfig();
|
|
31625
|
+
const agentsDir = join(dirname(project.configPath), project.agentsDir);
|
|
31626
|
+
const remoteAgents = await runTask("Fetching agents from Base44", async () => {
|
|
31627
|
+
return await fetchAgents();
|
|
31628
|
+
}, {
|
|
31629
|
+
successMessage: "Agents fetched successfully",
|
|
31630
|
+
errorMessage: "Failed to fetch agents"
|
|
31631
|
+
});
|
|
31632
|
+
if (remoteAgents.items.length === 0) return { outroMessage: "No agents found on Base44" };
|
|
31633
|
+
const { written, deleted } = await runTask("Writing agent files", async () => {
|
|
31634
|
+
return await writeAgents(agentsDir, remoteAgents.items);
|
|
31635
|
+
}, {
|
|
31636
|
+
successMessage: "Agent files written successfully",
|
|
31637
|
+
errorMessage: "Failed to write agent files"
|
|
31638
|
+
});
|
|
31639
|
+
if (written.length > 0) M.success(`Written: ${written.join(", ")}`);
|
|
31640
|
+
if (deleted.length > 0) M.warn(`Deleted: ${deleted.join(", ")}`);
|
|
31641
|
+
return { outroMessage: `Pulled ${remoteAgents.total} agents to ${agentsDir}` };
|
|
31642
|
+
}
|
|
31643
|
+
const agentsPullCommand = new Command("pull").description("Pull agents from Base44 to local files (replaces all local agent configs)").action(async () => {
|
|
31644
|
+
await runCommand(pullAgentsAction, { requireAuth: true });
|
|
31645
|
+
});
|
|
31646
|
+
|
|
31647
|
+
//#endregion
|
|
31648
|
+
//#region src/cli/commands/agents/index.ts
|
|
31649
|
+
const agentsCommand = new Command("agents").description("Manage project agents").addCommand(agentsPushCommand).addCommand(agentsPullCommand);
|
|
31650
|
+
|
|
31358
31651
|
//#endregion
|
|
31359
31652
|
//#region src/cli/commands/functions/deploy.ts
|
|
31360
31653
|
async function deployFunctionsAction() {
|
|
@@ -31373,7 +31666,7 @@ async function deployFunctionsAction() {
|
|
|
31373
31666
|
const errorMessages = result.errors.map((e$1) => `'${e$1.name}' function: ${e$1.message}`).join("\n");
|
|
31374
31667
|
throw new Error(`Function deployment errors:\n${errorMessages}`);
|
|
31375
31668
|
}
|
|
31376
|
-
return {};
|
|
31669
|
+
return { outroMessage: "Functions deployed to Base44" };
|
|
31377
31670
|
}
|
|
31378
31671
|
const functionsDeployCommand = new Command("functions").description("Manage project functions").addCommand(new Command("deploy").description("Deploy local functions to Base44").action(async () => {
|
|
31379
31672
|
await runCommand(deployFunctionsAction, { requireAuth: true });
|
|
@@ -31549,9 +31842,9 @@ const getSubprocessResult = ({ stdout: stdout$1 }) => {
|
|
|
31549
31842
|
//#region node_modules/execa/lib/utils/standard-stream.js
|
|
31550
31843
|
const isStandardStream = (stream) => STANDARD_STREAMS.includes(stream);
|
|
31551
31844
|
const STANDARD_STREAMS = [
|
|
31552
|
-
|
|
31553
|
-
|
|
31554
|
-
|
|
31845
|
+
y.stdin,
|
|
31846
|
+
y.stdout,
|
|
31847
|
+
y.stderr
|
|
31555
31848
|
];
|
|
31556
31849
|
const STANDARD_STREAMS_ALIASES = [
|
|
31557
31850
|
"stdin",
|
|
@@ -31676,9 +31969,9 @@ const NO_ESCAPE_REGEXP = /^[\w./-]+$/;
|
|
|
31676
31969
|
//#endregion
|
|
31677
31970
|
//#region node_modules/is-unicode-supported/index.js
|
|
31678
31971
|
function isUnicodeSupported() {
|
|
31679
|
-
const { env: env$1 } =
|
|
31972
|
+
const { env: env$1 } = y;
|
|
31680
31973
|
const { TERM, TERM_PROGRAM } = env$1;
|
|
31681
|
-
if (
|
|
31974
|
+
if (y.platform !== "win32") return TERM !== "linux";
|
|
31682
31975
|
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";
|
|
31683
31976
|
}
|
|
31684
31977
|
|
|
@@ -32605,7 +32898,7 @@ const TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;
|
|
|
32605
32898
|
|
|
32606
32899
|
//#endregion
|
|
32607
32900
|
//#region node_modules/npm-run-path/index.js
|
|
32608
|
-
const npmRunPath = ({ cwd =
|
|
32901
|
+
const npmRunPath = ({ cwd = y.cwd(), path: pathOption = y.env[pathKey()], preferLocal = true, execPath: execPath$1 = y.execPath, addExecPath = true } = {}) => {
|
|
32609
32902
|
const cwdPath = path.resolve(toPath(cwd));
|
|
32610
32903
|
const result = [];
|
|
32611
32904
|
const pathParts = pathOption.split(path.delimiter);
|
|
@@ -32623,7 +32916,7 @@ const applyExecPath = (result, pathParts, execPath$1, cwdPath) => {
|
|
|
32623
32916
|
const pathPart = path.resolve(cwdPath, toPath(execPath$1), "..");
|
|
32624
32917
|
if (!pathParts.includes(pathPart)) result.push(pathPart);
|
|
32625
32918
|
};
|
|
32626
|
-
const npmRunPathEnv = ({ env: env$1 =
|
|
32919
|
+
const npmRunPathEnv = ({ env: env$1 = y.env, ...options } = {}) => {
|
|
32627
32920
|
env$1 = { ...env$1 };
|
|
32628
32921
|
const pathName = pathKey({ env: env$1 });
|
|
32629
32922
|
options.path = env$1[pathName];
|
|
@@ -33758,7 +34051,7 @@ const normalizeCwd = (cwd = getDefaultCwd()) => {
|
|
|
33758
34051
|
};
|
|
33759
34052
|
const getDefaultCwd = () => {
|
|
33760
34053
|
try {
|
|
33761
|
-
return
|
|
34054
|
+
return y.cwd();
|
|
33762
34055
|
} catch (error) {
|
|
33763
34056
|
error.message = `The current directory does not exist.\n${error.message}`;
|
|
33764
34057
|
throw error;
|
|
@@ -33793,7 +34086,7 @@ const normalizeOptions = (filePath, rawArguments, rawOptions) => {
|
|
|
33793
34086
|
options.killSignal = normalizeKillSignal(options.killSignal);
|
|
33794
34087
|
options.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);
|
|
33795
34088
|
options.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);
|
|
33796
|
-
if (
|
|
34089
|
+
if (y.platform === "win32" && path.basename(file, ".exe") === "cmd") commandArguments.unshift("/q");
|
|
33797
34090
|
return {
|
|
33798
34091
|
file,
|
|
33799
34092
|
commandArguments,
|
|
@@ -33820,7 +34113,7 @@ const addDefaultOptions = ({ extendEnv = true, preferLocal = false, cwd, localDi
|
|
|
33820
34113
|
});
|
|
33821
34114
|
const getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath }) => {
|
|
33822
34115
|
const env$1 = extendEnv ? {
|
|
33823
|
-
...
|
|
34116
|
+
...y.env,
|
|
33824
34117
|
...envOption
|
|
33825
34118
|
} : envOption;
|
|
33826
34119
|
if (preferLocal || node) return npmRunPathEnv({
|
|
@@ -34820,12 +35113,12 @@ const guessStreamDirection = {
|
|
|
34820
35113
|
}
|
|
34821
35114
|
};
|
|
34822
35115
|
const getStandardStreamDirection = (value) => {
|
|
34823
|
-
if ([0,
|
|
35116
|
+
if ([0, y.stdin].includes(value)) return "input";
|
|
34824
35117
|
if ([
|
|
34825
35118
|
1,
|
|
34826
35119
|
2,
|
|
34827
|
-
|
|
34828
|
-
|
|
35120
|
+
y.stdout,
|
|
35121
|
+
y.stderr
|
|
34829
35122
|
].includes(value)) return "output";
|
|
34830
35123
|
};
|
|
34831
35124
|
const DEFAULT_DIRECTION = "output";
|
|
@@ -35889,9 +36182,9 @@ const addIpcMethods = (subprocess, { ipc }) => {
|
|
|
35889
36182
|
Object.assign(subprocess, getIpcMethods(subprocess, false, ipc));
|
|
35890
36183
|
};
|
|
35891
36184
|
const getIpcExport = () => {
|
|
35892
|
-
const anyProcess =
|
|
36185
|
+
const anyProcess = y;
|
|
35893
36186
|
const isSubprocess = true;
|
|
35894
|
-
const ipc =
|
|
36187
|
+
const ipc = y.channel !== void 0;
|
|
35895
36188
|
return {
|
|
35896
36189
|
...getIpcMethods(anyProcess, isSubprocess, ipc),
|
|
35897
36190
|
getCancelSignal: getCancelSignal$1.bind(void 0, {
|
|
@@ -36133,7 +36426,7 @@ if (process.platform === "linux") signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SI
|
|
|
36133
36426
|
|
|
36134
36427
|
//#endregion
|
|
36135
36428
|
//#region node_modules/signal-exit/dist/mjs/index.js
|
|
36136
|
-
const processOk = (process$
|
|
36429
|
+
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";
|
|
36137
36430
|
const kExitEmitter = Symbol.for("signal-exit emitter");
|
|
36138
36431
|
const global$1 = globalThis;
|
|
36139
36432
|
const ObjectDefineProperty = Object.defineProperty.bind(Object);
|
|
@@ -36201,7 +36494,7 @@ var SignalExitFallback = class extends SignalExitBase {
|
|
|
36201
36494
|
};
|
|
36202
36495
|
var SignalExit = class extends SignalExitBase {
|
|
36203
36496
|
/* c8 ignore start */
|
|
36204
|
-
#hupSig = process$
|
|
36497
|
+
#hupSig = process$1.platform === "win32" ? "SIGINT" : "SIGHUP";
|
|
36205
36498
|
/* c8 ignore stop */
|
|
36206
36499
|
#emitter = new Emitter();
|
|
36207
36500
|
#process;
|
|
@@ -36209,15 +36502,15 @@ var SignalExit = class extends SignalExitBase {
|
|
|
36209
36502
|
#originalProcessReallyExit;
|
|
36210
36503
|
#sigListeners = {};
|
|
36211
36504
|
#loaded = false;
|
|
36212
|
-
constructor(process$
|
|
36505
|
+
constructor(process$4) {
|
|
36213
36506
|
super();
|
|
36214
|
-
this.#process = process$
|
|
36507
|
+
this.#process = process$4;
|
|
36215
36508
|
this.#sigListeners = {};
|
|
36216
36509
|
for (const sig of signals) this.#sigListeners[sig] = () => {
|
|
36217
36510
|
const listeners = this.#process.listeners(sig);
|
|
36218
36511
|
let { count: count$1 } = this.#emitter;
|
|
36219
36512
|
/* c8 ignore start */
|
|
36220
|
-
const p$1 = process$
|
|
36513
|
+
const p$1 = process$4;
|
|
36221
36514
|
if (typeof p$1.__signal_exit_emitter__ === "object" && typeof p$1.__signal_exit_emitter__.count === "number") count$1 += p$1.__signal_exit_emitter__.count;
|
|
36222
36515
|
/* c8 ignore stop */
|
|
36223
36516
|
if (listeners.length === count$1) {
|
|
@@ -36225,11 +36518,11 @@ var SignalExit = class extends SignalExitBase {
|
|
|
36225
36518
|
const ret = this.#emitter.emit("exit", null, sig);
|
|
36226
36519
|
/* c8 ignore start */
|
|
36227
36520
|
const s = sig === "SIGHUP" ? this.#hupSig : sig;
|
|
36228
|
-
if (!ret) process$
|
|
36521
|
+
if (!ret) process$4.kill(process$4.pid, s);
|
|
36229
36522
|
}
|
|
36230
36523
|
};
|
|
36231
|
-
this.#originalProcessReallyExit = process$
|
|
36232
|
-
this.#originalProcessEmit = process$
|
|
36524
|
+
this.#originalProcessReallyExit = process$4.reallyExit;
|
|
36525
|
+
this.#originalProcessEmit = process$4.emit;
|
|
36233
36526
|
}
|
|
36234
36527
|
onExit(cb, opts) {
|
|
36235
36528
|
/* c8 ignore start */
|
|
@@ -36296,8 +36589,8 @@ var SignalExit = class extends SignalExitBase {
|
|
|
36296
36589
|
} else return og.call(this.#process, ev, ...args);
|
|
36297
36590
|
}
|
|
36298
36591
|
};
|
|
36299
|
-
const process$
|
|
36300
|
-
const { onExit, load, unload } = signalExitWrap(processOk(process$
|
|
36592
|
+
const process$1 = globalThis.process;
|
|
36593
|
+
const { onExit, load, unload } = signalExitWrap(processOk(process$1) ? new SignalExit(process$1) : new SignalExitFallback());
|
|
36301
36594
|
|
|
36302
36595
|
//#endregion
|
|
36303
36596
|
//#region node_modules/execa/lib/terminate/cleanup.js
|
|
@@ -38251,7 +38544,7 @@ function isInsideContainer() {
|
|
|
38251
38544
|
//#endregion
|
|
38252
38545
|
//#region node_modules/is-wsl/index.js
|
|
38253
38546
|
const isWsl = () => {
|
|
38254
|
-
if (
|
|
38547
|
+
if (y.platform !== "linux") return false;
|
|
38255
38548
|
if (os.release().toLowerCase().includes("microsoft")) {
|
|
38256
38549
|
if (isInsideContainer()) return false;
|
|
38257
38550
|
return true;
|
|
@@ -38262,12 +38555,12 @@ const isWsl = () => {
|
|
|
38262
38555
|
return false;
|
|
38263
38556
|
}
|
|
38264
38557
|
};
|
|
38265
|
-
var is_wsl_default =
|
|
38558
|
+
var is_wsl_default = y.env.__IS_WSL_TEST__ ? isWsl : isWsl();
|
|
38266
38559
|
|
|
38267
38560
|
//#endregion
|
|
38268
38561
|
//#region node_modules/powershell-utils/index.js
|
|
38269
38562
|
const execFile$2 = promisify(childProcess.execFile);
|
|
38270
|
-
const powerShellPath$1 = () => `${
|
|
38563
|
+
const powerShellPath$1 = () => `${y.env.SYSTEMROOT || y.env.windir || String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;
|
|
38271
38564
|
const executePowerShell = async (command, options = {}) => {
|
|
38272
38565
|
const { powerShellPath: psPath, ...execFileOptions } = options;
|
|
38273
38566
|
const encodedCommand = executePowerShell.encodeCommand(command);
|
|
@@ -38378,7 +38671,7 @@ function defineLazyProperty(object$1, propertyName, valueGetter) {
|
|
|
38378
38671
|
//#region node_modules/default-browser-id/index.js
|
|
38379
38672
|
const execFileAsync$3 = promisify(execFile);
|
|
38380
38673
|
async function defaultBrowserId() {
|
|
38381
|
-
if (
|
|
38674
|
+
if (y.platform !== "darwin") throw new Error("macOS only");
|
|
38382
38675
|
const { stdout: stdout$1 } = await execFileAsync$3("defaults", [
|
|
38383
38676
|
"read",
|
|
38384
38677
|
"com.apple.LaunchServices/com.apple.launchservices.secure",
|
|
@@ -38393,7 +38686,7 @@ async function defaultBrowserId() {
|
|
|
38393
38686
|
//#region node_modules/run-applescript/index.js
|
|
38394
38687
|
const execFileAsync$2 = promisify(execFile);
|
|
38395
38688
|
async function runAppleScript(script, { humanReadableOutput = true, signal } = {}) {
|
|
38396
|
-
if (
|
|
38689
|
+
if (y.platform !== "darwin") throw new Error("macOS only");
|
|
38397
38690
|
const outputArguments = humanReadableOutput ? [] : ["-ss"];
|
|
38398
38691
|
const execOptions = {};
|
|
38399
38692
|
if (signal) execOptions.signal = signal;
|
|
@@ -38502,14 +38795,14 @@ async function defaultBrowser$1(_execFileAsync = execFileAsync$1) {
|
|
|
38502
38795
|
const execFileAsync = promisify(execFile);
|
|
38503
38796
|
const titleize = (string$2) => string$2.toLowerCase().replaceAll(/(?:^|\s|-)\S/g, (x$2) => x$2.toUpperCase());
|
|
38504
38797
|
async function defaultBrowser() {
|
|
38505
|
-
if (
|
|
38798
|
+
if (y.platform === "darwin") {
|
|
38506
38799
|
const id = await defaultBrowserId();
|
|
38507
38800
|
return {
|
|
38508
38801
|
name: await bundleName(id),
|
|
38509
38802
|
id
|
|
38510
38803
|
};
|
|
38511
38804
|
}
|
|
38512
|
-
if (
|
|
38805
|
+
if (y.platform === "linux") {
|
|
38513
38806
|
const { stdout: stdout$1 } = await execFileAsync("xdg-mime", [
|
|
38514
38807
|
"query",
|
|
38515
38808
|
"default",
|
|
@@ -38521,13 +38814,13 @@ async function defaultBrowser() {
|
|
|
38521
38814
|
id
|
|
38522
38815
|
};
|
|
38523
38816
|
}
|
|
38524
|
-
if (
|
|
38817
|
+
if (y.platform === "win32") return defaultBrowser$1();
|
|
38525
38818
|
throw new Error("Only macOS, Linux, and Windows are supported");
|
|
38526
38819
|
}
|
|
38527
38820
|
|
|
38528
38821
|
//#endregion
|
|
38529
38822
|
//#region node_modules/is-in-ssh/index.js
|
|
38530
|
-
const isInSsh = Boolean(
|
|
38823
|
+
const isInSsh = Boolean(y.env.SSH_CONNECTION || y.env.SSH_CLIENT || y.env.SSH_TTY);
|
|
38531
38824
|
var is_in_ssh_default = isInSsh;
|
|
38532
38825
|
|
|
38533
38826
|
//#endregion
|
|
@@ -38535,7 +38828,7 @@ var is_in_ssh_default = isInSsh;
|
|
|
38535
38828
|
const fallbackAttemptSymbol = Symbol("fallbackAttempt");
|
|
38536
38829
|
const __dirname = import.meta.url ? path.dirname(fileURLToPath(import.meta.url)) : "";
|
|
38537
38830
|
const localXdgOpenPath = path.join(__dirname, "xdg-open");
|
|
38538
|
-
const { platform: platform$1, arch } =
|
|
38831
|
+
const { platform: platform$1, arch } = y;
|
|
38539
38832
|
const tryEachApp = async (apps$1, opener) => {
|
|
38540
38833
|
if (apps$1.length === 0) return;
|
|
38541
38834
|
const errors = [];
|
|
@@ -38648,7 +38941,7 @@ const baseOpen = async (options) => {
|
|
|
38648
38941
|
await fs$1.access(localXdgOpenPath, constants$1.X_OK);
|
|
38649
38942
|
exeLocalXdgOpen = true;
|
|
38650
38943
|
} catch {}
|
|
38651
|
-
command =
|
|
38944
|
+
command = y.versions.electron ?? (platform$1 === "android" || isBundled || !exeLocalXdgOpen) ? "xdg-open" : localXdgOpenPath;
|
|
38652
38945
|
}
|
|
38653
38946
|
if (appArguments.length > 0) cliArguments.push(...appArguments);
|
|
38654
38947
|
if (!options.wait) {
|
|
@@ -38931,7 +39224,7 @@ const siteDeployCommand = new Command("site").description("Manage site deploymen
|
|
|
38931
39224
|
|
|
38932
39225
|
//#endregion
|
|
38933
39226
|
//#region package.json
|
|
38934
|
-
var version = "0.0.
|
|
39227
|
+
var version = "0.0.21";
|
|
38935
39228
|
|
|
38936
39229
|
//#endregion
|
|
38937
39230
|
//#region src/cli/program.ts
|
|
@@ -38946,6 +39239,7 @@ program.addCommand(dashboardCommand);
|
|
|
38946
39239
|
program.addCommand(deployCommand);
|
|
38947
39240
|
program.addCommand(linkCommand);
|
|
38948
39241
|
program.addCommand(entitiesPushCommand);
|
|
39242
|
+
program.addCommand(agentsCommand);
|
|
38949
39243
|
program.addCommand(functionsDeployCommand);
|
|
38950
39244
|
program.addCommand(siteDeployCommand);
|
|
38951
39245
|
|