@base44-preview/cli 0.0.36-pr.356.36d8c62 → 0.0.37-pr.357.32b66d6
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 +121 -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,115 @@ 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 { copyFileSync, 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 hasFile = scriptArg !== undefined;
|
|
244391
|
+
const hasEval = options8.eval !== undefined;
|
|
244392
|
+
const isStdinPipe = !hasFile && !hasEval && !process.stdin.isTTY;
|
|
244393
|
+
if (hasFile && hasEval) {
|
|
244394
|
+
throw new InvalidInputError("Cannot use both a file path and -e flag. Provide only one input mode.");
|
|
244395
|
+
}
|
|
244396
|
+
if (!hasFile && !hasEval && !isStdinPipe) {
|
|
244397
|
+
throw new InvalidInputError("No script provided. Pass a file path, use -e for inline code, or pipe from stdin.", {
|
|
244398
|
+
hints: [
|
|
244399
|
+
{ message: "File: base44 exec ./script.ts" },
|
|
244400
|
+
{ message: 'Eval: base44 exec -e "console.log(1)"' },
|
|
244401
|
+
{ message: "Stdin: echo 'code' | base44 exec" }
|
|
244402
|
+
]
|
|
244403
|
+
});
|
|
244404
|
+
}
|
|
244405
|
+
if (hasFile) {
|
|
244406
|
+
scriptPath = `file://${resolve6(scriptArg)}`;
|
|
244407
|
+
} else {
|
|
244408
|
+
const code2 = hasEval ? options8.eval : await readStdin();
|
|
244409
|
+
tempFile = join16(tmpdir2(), `base44-exec-${Date.now()}.ts`);
|
|
244410
|
+
writeFileSync2(tempFile, code2, "utf-8");
|
|
244411
|
+
scriptPath = `file://${tempFile}`;
|
|
244412
|
+
}
|
|
244413
|
+
const appConfig = getAppConfig();
|
|
244414
|
+
let appUserToken;
|
|
244415
|
+
try {
|
|
244416
|
+
const response = await getAppClient().get("auth/token").json();
|
|
244417
|
+
appUserToken = response.token;
|
|
244418
|
+
} catch (error48) {
|
|
244419
|
+
throw await ApiError.fromHttpError(error48, "exchanging platform token for app user token");
|
|
244420
|
+
}
|
|
244421
|
+
const tempWrapper = join16(tmpdir2(), `base44-exec-wrapper-${Date.now()}.js`);
|
|
244422
|
+
copyFileSync(EXEC_WRAPPER_PATH, tempWrapper);
|
|
244423
|
+
try {
|
|
244424
|
+
const exitCode = await new Promise((resolvePromise) => {
|
|
244425
|
+
const child = spawn3("deno", ["run", "--allow-all", "--node-modules-dir=auto", tempWrapper, ...extraArgs], {
|
|
244426
|
+
env: {
|
|
244427
|
+
...process.env,
|
|
244428
|
+
SCRIPT_PATH: scriptPath,
|
|
244429
|
+
BASE44_APP_ID: appConfig.id,
|
|
244430
|
+
BASE44_ACCESS_TOKEN: appUserToken,
|
|
244431
|
+
BASE44_API_URL: getBase44ApiUrl()
|
|
244432
|
+
},
|
|
244433
|
+
stdio: "inherit"
|
|
244434
|
+
});
|
|
244435
|
+
child.on("close", (code2) => {
|
|
244436
|
+
resolvePromise(code2 ?? 1);
|
|
244437
|
+
});
|
|
244438
|
+
});
|
|
244439
|
+
if (exitCode !== 0) {
|
|
244440
|
+
process.exitCode = exitCode;
|
|
244441
|
+
}
|
|
244442
|
+
} finally {
|
|
244443
|
+
for (const f7 of [tempFile, tempWrapper]) {
|
|
244444
|
+
if (f7) {
|
|
244445
|
+
try {
|
|
244446
|
+
unlinkSync(f7);
|
|
244447
|
+
} catch {}
|
|
244448
|
+
}
|
|
244449
|
+
}
|
|
244450
|
+
}
|
|
244451
|
+
return {};
|
|
244452
|
+
}
|
|
244453
|
+
function getExecCommand(context) {
|
|
244454
|
+
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) => {
|
|
244455
|
+
const dashIndex = process.argv.indexOf("--");
|
|
244456
|
+
const extraArgs = dashIndex !== -1 ? process.argv.slice(dashIndex + 1) : [];
|
|
244457
|
+
await runCommand(() => execAction(script, options8, extraArgs), { requireAuth: true }, context);
|
|
244458
|
+
});
|
|
244459
|
+
return cmd;
|
|
244460
|
+
}
|
|
244461
|
+
|
|
244355
244462
|
// src/cli/commands/project/eject.ts
|
|
244356
|
-
import { resolve as
|
|
244463
|
+
import { resolve as resolve7 } from "node:path";
|
|
244357
244464
|
var import_lodash2 = __toESM(require_lodash(), 1);
|
|
244358
244465
|
async function eject(options8) {
|
|
244359
244466
|
const projects = await listProjects();
|
|
@@ -244402,7 +244509,7 @@ async function eject(options8) {
|
|
|
244402
244509
|
Ne("Operation cancelled.");
|
|
244403
244510
|
throw new CLIExitError(0);
|
|
244404
244511
|
}
|
|
244405
|
-
const resolvedPath =
|
|
244512
|
+
const resolvedPath = resolve7(selectedPath);
|
|
244406
244513
|
await runTask("Downloading your project's code...", async (updateMessage) => {
|
|
244407
244514
|
await createProjectFilesForExistingProject({
|
|
244408
244515
|
projectId,
|
|
@@ -244468,6 +244575,7 @@ function createProgram(context) {
|
|
|
244468
244575
|
program2.addCommand(getSecretsCommand(context));
|
|
244469
244576
|
program2.addCommand(getSiteCommand(context));
|
|
244470
244577
|
program2.addCommand(getTypesCommand(context));
|
|
244578
|
+
program2.addCommand(getExecCommand(context));
|
|
244471
244579
|
program2.addCommand(getDevCommand(context), { hidden: true });
|
|
244472
244580
|
program2.addCommand(getLogsCommand(context), { hidden: true });
|
|
244473
244581
|
return program2;
|
|
@@ -244478,7 +244586,7 @@ var import_detect_agent = __toESM(require_dist5(), 1);
|
|
|
244478
244586
|
import { release, type } from "node:os";
|
|
244479
244587
|
|
|
244480
244588
|
// node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
|
|
244481
|
-
import { dirname as
|
|
244589
|
+
import { dirname as dirname13, posix, sep } from "path";
|
|
244482
244590
|
function createModulerModifier() {
|
|
244483
244591
|
const getModuleFromFileName = createGetModuleFromFilename();
|
|
244484
244592
|
return async (frames) => {
|
|
@@ -244487,7 +244595,7 @@ function createModulerModifier() {
|
|
|
244487
244595
|
return frames;
|
|
244488
244596
|
};
|
|
244489
244597
|
}
|
|
244490
|
-
function createGetModuleFromFilename(basePath = process.argv[1] ?
|
|
244598
|
+
function createGetModuleFromFilename(basePath = process.argv[1] ? dirname13(process.argv[1]) : process.cwd(), isWindows4 = sep === "\\") {
|
|
244491
244599
|
const normalizedBase = isWindows4 ? normalizeWindowsPath2(basePath) : basePath;
|
|
244492
244600
|
return (filename) => {
|
|
244493
244601
|
if (!filename)
|
|
@@ -246765,14 +246873,14 @@ async function addSourceContext(frames) {
|
|
|
246765
246873
|
return frames;
|
|
246766
246874
|
}
|
|
246767
246875
|
function getContextLinesFromFile(path19, ranges, output) {
|
|
246768
|
-
return new Promise((
|
|
246876
|
+
return new Promise((resolve8) => {
|
|
246769
246877
|
const stream = createReadStream2(path19);
|
|
246770
246878
|
const lineReaded = createInterface2({
|
|
246771
246879
|
input: stream
|
|
246772
246880
|
});
|
|
246773
246881
|
function destroyStreamAndResolve() {
|
|
246774
246882
|
stream.destroy();
|
|
246775
|
-
|
|
246883
|
+
resolve8();
|
|
246776
246884
|
}
|
|
246777
246885
|
let lineNumber = 0;
|
|
246778
246886
|
let currentRangeIndex = 0;
|
|
@@ -247884,15 +247992,15 @@ class PostHogBackendClient extends PostHogCoreStateless {
|
|
|
247884
247992
|
return true;
|
|
247885
247993
|
if (this.featureFlagsPoller === undefined)
|
|
247886
247994
|
return false;
|
|
247887
|
-
return new Promise((
|
|
247995
|
+
return new Promise((resolve8) => {
|
|
247888
247996
|
const timeout3 = setTimeout(() => {
|
|
247889
247997
|
cleanup();
|
|
247890
|
-
|
|
247998
|
+
resolve8(false);
|
|
247891
247999
|
}, timeoutMs);
|
|
247892
248000
|
const cleanup = this._events.on("localEvaluationFlagsLoaded", (count2) => {
|
|
247893
248001
|
clearTimeout(timeout3);
|
|
247894
248002
|
cleanup();
|
|
247895
|
-
|
|
248003
|
+
resolve8(count2 > 0);
|
|
247896
248004
|
});
|
|
247897
248005
|
});
|
|
247898
248006
|
}
|
|
@@ -248705,4 +248813,4 @@ export {
|
|
|
248705
248813
|
CLIExitError
|
|
248706
248814
|
};
|
|
248707
248815
|
|
|
248708
|
-
//# debugId=
|
|
248816
|
+
//# debugId=D8A2BAE36472B6C264756E2164756E21
|