@base44-preview/cli 0.0.36-pr.356.36d8c62 → 0.0.37-pr.357.020ced4
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/cli/index.js +118 -13
- package/dist/cli/index.js.map +5 -4
- package/dist/deno-runtime/exec.js +28 -0
- package/dist/deno-runtime/exec.js.map +10 -0
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -210244,7 +210244,7 @@ var require_dist5 = __commonJS((exports, module) => {
|
|
|
210244
210244
|
});
|
|
210245
210245
|
module.exports = __toCommonJS(src_exports);
|
|
210246
210246
|
var import_promises19 = __require("node:fs/promises");
|
|
210247
|
-
var
|
|
210247
|
+
var import_node_fs20 = __require("node:fs");
|
|
210248
210248
|
var DEVIN_LOCAL_PATH = "/opt/.devin";
|
|
210249
210249
|
var CURSOR2 = "cursor";
|
|
210250
210250
|
var CURSOR_CLI = "cursor-cli";
|
|
@@ -210301,7 +210301,7 @@ var require_dist5 = __commonJS((exports, module) => {
|
|
|
210301
210301
|
return { isAgent: true, agent: { name: REPLIT } };
|
|
210302
210302
|
}
|
|
210303
210303
|
try {
|
|
210304
|
-
await (0, import_promises19.access)(DEVIN_LOCAL_PATH,
|
|
210304
|
+
await (0, import_promises19.access)(DEVIN_LOCAL_PATH, import_node_fs20.constants.F_OK);
|
|
210305
210305
|
return { isAgent: true, agent: { name: DEVIN } };
|
|
210306
210306
|
} catch (error48) {}
|
|
210307
210307
|
return { isAgent: false, agent: undefined };
|
|
@@ -241534,7 +241534,7 @@ var {
|
|
|
241534
241534
|
// package.json
|
|
241535
241535
|
var package_default = {
|
|
241536
241536
|
name: "base44",
|
|
241537
|
-
version: "0.0.
|
|
241537
|
+
version: "0.0.37",
|
|
241538
241538
|
description: "Base44 CLI - Unified interface for managing Base44 applications",
|
|
241539
241539
|
type: "module",
|
|
241540
241540
|
bin: {
|
|
@@ -244352,8 +244352,112 @@ function getDevCommand(context) {
|
|
|
244352
244352
|
});
|
|
244353
244353
|
}
|
|
244354
244354
|
|
|
244355
|
+
// src/cli/commands/exec.ts
|
|
244356
|
+
import { spawn as spawn3, spawnSync as spawnSync3 } from "node:child_process";
|
|
244357
|
+
import { unlinkSync, writeFileSync as writeFileSync2 } from "node:fs";
|
|
244358
|
+
import { tmpdir as tmpdir2 } from "node:os";
|
|
244359
|
+
import { dirname as dirname12, join as join16, resolve as resolve6 } from "node:path";
|
|
244360
|
+
import { fileURLToPath as fileURLToPath8 } from "node:url";
|
|
244361
|
+
var __dirname6 = dirname12(fileURLToPath8(import.meta.url));
|
|
244362
|
+
var EXEC_WRAPPER_PATH = join16(__dirname6, "../deno-runtime/exec.js");
|
|
244363
|
+
function verifyDenoIsInstalled() {
|
|
244364
|
+
const result = spawnSync3("deno", ["--version"]);
|
|
244365
|
+
if (result.error) {
|
|
244366
|
+
throw new DependencyNotFoundError("Deno is required to run scripts with exec", {
|
|
244367
|
+
hints: [
|
|
244368
|
+
{
|
|
244369
|
+
message: "Install Deno: https://docs.deno.com/runtime/getting-started/installation/"
|
|
244370
|
+
}
|
|
244371
|
+
]
|
|
244372
|
+
});
|
|
244373
|
+
}
|
|
244374
|
+
}
|
|
244375
|
+
function readStdin() {
|
|
244376
|
+
return new Promise((resolve7, reject) => {
|
|
244377
|
+
let data = "";
|
|
244378
|
+
process.stdin.setEncoding("utf-8");
|
|
244379
|
+
process.stdin.on("data", (chunk) => {
|
|
244380
|
+
data += chunk;
|
|
244381
|
+
});
|
|
244382
|
+
process.stdin.on("end", () => resolve7(data));
|
|
244383
|
+
process.stdin.on("error", reject);
|
|
244384
|
+
});
|
|
244385
|
+
}
|
|
244386
|
+
async function execAction(scriptArg, options8, extraArgs) {
|
|
244387
|
+
verifyDenoIsInstalled();
|
|
244388
|
+
let scriptPath;
|
|
244389
|
+
let tempFile = null;
|
|
244390
|
+
const isStdinPipe = !process.stdin.isTTY;
|
|
244391
|
+
const hasFile = scriptArg !== undefined;
|
|
244392
|
+
const hasEval = options8.eval !== undefined;
|
|
244393
|
+
const modeCount = [hasFile, hasEval, isStdinPipe].filter(Boolean).length;
|
|
244394
|
+
if (modeCount === 0) {
|
|
244395
|
+
throw new InvalidInputError("No script provided. Pass a file path, use -e for inline code, or pipe from stdin.", {
|
|
244396
|
+
hints: [
|
|
244397
|
+
{ message: "File: base44 exec ./script.ts" },
|
|
244398
|
+
{ message: 'Eval: base44 exec -e "console.log(1)"' },
|
|
244399
|
+
{ message: "Stdin: echo 'code' | base44 exec" }
|
|
244400
|
+
]
|
|
244401
|
+
});
|
|
244402
|
+
}
|
|
244403
|
+
if (modeCount > 1) {
|
|
244404
|
+
throw new InvalidInputError("Multiple input modes detected. Provide only one of: file path, -e flag, or stdin.");
|
|
244405
|
+
}
|
|
244406
|
+
if (hasFile) {
|
|
244407
|
+
scriptPath = `file://${resolve6(scriptArg)}`;
|
|
244408
|
+
} else {
|
|
244409
|
+
const code2 = hasEval ? options8.eval : await readStdin();
|
|
244410
|
+
tempFile = join16(tmpdir2(), `base44-exec-${Date.now()}.ts`);
|
|
244411
|
+
writeFileSync2(tempFile, code2, "utf-8");
|
|
244412
|
+
scriptPath = `file://${tempFile}`;
|
|
244413
|
+
}
|
|
244414
|
+
const appConfig = getAppConfig();
|
|
244415
|
+
let appUserToken;
|
|
244416
|
+
try {
|
|
244417
|
+
const response = await getAppClient().get("auth/token").json();
|
|
244418
|
+
appUserToken = response.token;
|
|
244419
|
+
} catch (error48) {
|
|
244420
|
+
throw await ApiError.fromHttpError(error48, "exchanging platform token for app user token");
|
|
244421
|
+
}
|
|
244422
|
+
try {
|
|
244423
|
+
const exitCode = await new Promise((resolvePromise) => {
|
|
244424
|
+
const child = spawn3("deno", ["run", "--allow-all", EXEC_WRAPPER_PATH, ...extraArgs], {
|
|
244425
|
+
env: {
|
|
244426
|
+
...process.env,
|
|
244427
|
+
SCRIPT_PATH: scriptPath,
|
|
244428
|
+
BASE44_APP_ID: appConfig.id,
|
|
244429
|
+
BASE44_ACCESS_TOKEN: appUserToken,
|
|
244430
|
+
BASE44_API_URL: getBase44ApiUrl()
|
|
244431
|
+
},
|
|
244432
|
+
stdio: "inherit"
|
|
244433
|
+
});
|
|
244434
|
+
child.on("close", (code2) => {
|
|
244435
|
+
resolvePromise(code2 ?? 1);
|
|
244436
|
+
});
|
|
244437
|
+
});
|
|
244438
|
+
if (exitCode !== 0) {
|
|
244439
|
+
process.exitCode = exitCode;
|
|
244440
|
+
}
|
|
244441
|
+
} finally {
|
|
244442
|
+
if (tempFile) {
|
|
244443
|
+
try {
|
|
244444
|
+
unlinkSync(tempFile);
|
|
244445
|
+
} catch {}
|
|
244446
|
+
}
|
|
244447
|
+
}
|
|
244448
|
+
return {};
|
|
244449
|
+
}
|
|
244450
|
+
function getExecCommand(context) {
|
|
244451
|
+
const cmd = new Command("exec").description("Run a script with the Base44 SDK pre-authenticated as the current user").argument("[script]", "Path to a .ts or .js script file").option("-e, --eval <code>", "Evaluate inline code").allowUnknownOption(true).action(async (script, options8) => {
|
|
244452
|
+
const dashIndex = process.argv.indexOf("--");
|
|
244453
|
+
const extraArgs = dashIndex !== -1 ? process.argv.slice(dashIndex + 1) : [];
|
|
244454
|
+
await runCommand(() => execAction(script, options8, extraArgs), { requireAuth: true }, context);
|
|
244455
|
+
});
|
|
244456
|
+
return cmd;
|
|
244457
|
+
}
|
|
244458
|
+
|
|
244355
244459
|
// src/cli/commands/project/eject.ts
|
|
244356
|
-
import { resolve as
|
|
244460
|
+
import { resolve as resolve7 } from "node:path";
|
|
244357
244461
|
var import_lodash2 = __toESM(require_lodash(), 1);
|
|
244358
244462
|
async function eject(options8) {
|
|
244359
244463
|
const projects = await listProjects();
|
|
@@ -244402,7 +244506,7 @@ async function eject(options8) {
|
|
|
244402
244506
|
Ne("Operation cancelled.");
|
|
244403
244507
|
throw new CLIExitError(0);
|
|
244404
244508
|
}
|
|
244405
|
-
const resolvedPath =
|
|
244509
|
+
const resolvedPath = resolve7(selectedPath);
|
|
244406
244510
|
await runTask("Downloading your project's code...", async (updateMessage) => {
|
|
244407
244511
|
await createProjectFilesForExistingProject({
|
|
244408
244512
|
projectId,
|
|
@@ -244468,6 +244572,7 @@ function createProgram(context) {
|
|
|
244468
244572
|
program2.addCommand(getSecretsCommand(context));
|
|
244469
244573
|
program2.addCommand(getSiteCommand(context));
|
|
244470
244574
|
program2.addCommand(getTypesCommand(context));
|
|
244575
|
+
program2.addCommand(getExecCommand(context));
|
|
244471
244576
|
program2.addCommand(getDevCommand(context), { hidden: true });
|
|
244472
244577
|
program2.addCommand(getLogsCommand(context), { hidden: true });
|
|
244473
244578
|
return program2;
|
|
@@ -244478,7 +244583,7 @@ var import_detect_agent = __toESM(require_dist5(), 1);
|
|
|
244478
244583
|
import { release, type } from "node:os";
|
|
244479
244584
|
|
|
244480
244585
|
// node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
|
|
244481
|
-
import { dirname as
|
|
244586
|
+
import { dirname as dirname13, posix, sep } from "path";
|
|
244482
244587
|
function createModulerModifier() {
|
|
244483
244588
|
const getModuleFromFileName = createGetModuleFromFilename();
|
|
244484
244589
|
return async (frames) => {
|
|
@@ -244487,7 +244592,7 @@ function createModulerModifier() {
|
|
|
244487
244592
|
return frames;
|
|
244488
244593
|
};
|
|
244489
244594
|
}
|
|
244490
|
-
function createGetModuleFromFilename(basePath = process.argv[1] ?
|
|
244595
|
+
function createGetModuleFromFilename(basePath = process.argv[1] ? dirname13(process.argv[1]) : process.cwd(), isWindows4 = sep === "\\") {
|
|
244491
244596
|
const normalizedBase = isWindows4 ? normalizeWindowsPath2(basePath) : basePath;
|
|
244492
244597
|
return (filename) => {
|
|
244493
244598
|
if (!filename)
|
|
@@ -246765,14 +246870,14 @@ async function addSourceContext(frames) {
|
|
|
246765
246870
|
return frames;
|
|
246766
246871
|
}
|
|
246767
246872
|
function getContextLinesFromFile(path19, ranges, output) {
|
|
246768
|
-
return new Promise((
|
|
246873
|
+
return new Promise((resolve8) => {
|
|
246769
246874
|
const stream = createReadStream2(path19);
|
|
246770
246875
|
const lineReaded = createInterface2({
|
|
246771
246876
|
input: stream
|
|
246772
246877
|
});
|
|
246773
246878
|
function destroyStreamAndResolve() {
|
|
246774
246879
|
stream.destroy();
|
|
246775
|
-
|
|
246880
|
+
resolve8();
|
|
246776
246881
|
}
|
|
246777
246882
|
let lineNumber = 0;
|
|
246778
246883
|
let currentRangeIndex = 0;
|
|
@@ -247884,15 +247989,15 @@ class PostHogBackendClient extends PostHogCoreStateless {
|
|
|
247884
247989
|
return true;
|
|
247885
247990
|
if (this.featureFlagsPoller === undefined)
|
|
247886
247991
|
return false;
|
|
247887
|
-
return new Promise((
|
|
247992
|
+
return new Promise((resolve8) => {
|
|
247888
247993
|
const timeout3 = setTimeout(() => {
|
|
247889
247994
|
cleanup();
|
|
247890
|
-
|
|
247995
|
+
resolve8(false);
|
|
247891
247996
|
}, timeoutMs);
|
|
247892
247997
|
const cleanup = this._events.on("localEvaluationFlagsLoaded", (count2) => {
|
|
247893
247998
|
clearTimeout(timeout3);
|
|
247894
247999
|
cleanup();
|
|
247895
|
-
|
|
248000
|
+
resolve8(count2 > 0);
|
|
247896
248001
|
});
|
|
247897
248002
|
});
|
|
247898
248003
|
}
|
|
@@ -248705,4 +248810,4 @@ export {
|
|
|
248705
248810
|
CLIExitError
|
|
248706
248811
|
};
|
|
248707
248812
|
|
|
248708
|
-
//# debugId=
|
|
248813
|
+
//# debugId=2C074684B8F8F66564756E2164756E21
|