@base44-preview/cli 0.0.44-pr.419.4194a5c → 0.0.45-pr.357.80ca1b5

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 CHANGED
@@ -168535,8 +168535,8 @@ var require_executor = __commonJS((exports, module) => {
168535
168535
  }
168536
168536
  resetBuffer() {
168537
168537
  this.buffer = new Waterfall;
168538
- this.buffer.chain(new Promise((resolve6) => {
168539
- this._triggerBuffer = resolve6;
168538
+ this.buffer.chain(new Promise((resolve7) => {
168539
+ this._triggerBuffer = resolve7;
168540
168540
  }));
168541
168541
  if (this.ready)
168542
168542
  this._triggerBuffer();
@@ -169556,7 +169556,7 @@ var require_storage = __commonJS((exports, module) => {
169556
169556
  throw e8;
169557
169557
  }
169558
169558
  };
169559
- var writeFileLinesAsync = (filename, lines, mode = DEFAULT_FILE_MODE) => new Promise((resolve6, reject) => {
169559
+ var writeFileLinesAsync = (filename, lines, mode = DEFAULT_FILE_MODE) => new Promise((resolve7, reject) => {
169560
169560
  try {
169561
169561
  const stream = writeFileStream(filename, { mode });
169562
169562
  const readable2 = Readable6.from(lines);
@@ -169573,7 +169573,7 @@ var require_storage = __commonJS((exports, module) => {
169573
169573
  if (err)
169574
169574
  reject(err);
169575
169575
  else
169576
- resolve6();
169576
+ resolve7();
169577
169577
  });
169578
169578
  });
169579
169579
  readable2.on("error", (err) => {
@@ -169744,7 +169744,7 @@ var require_persistence = __commonJS((exports, module) => {
169744
169744
  return { data: tdata, indexes };
169745
169745
  }
169746
169746
  treatRawStreamAsync(rawStream) {
169747
- return new Promise((resolve6, reject) => {
169747
+ return new Promise((resolve7, reject) => {
169748
169748
  const dataById = {};
169749
169749
  const indexes = {};
169750
169750
  let corruptItems = 0;
@@ -169787,7 +169787,7 @@ var require_persistence = __commonJS((exports, module) => {
169787
169787
  }
169788
169788
  }
169789
169789
  const data = Object.values(dataById);
169790
- resolve6({ data, indexes });
169790
+ resolve7({ data, indexes });
169791
169791
  });
169792
169792
  lineStream.on("error", function(err) {
169793
169793
  reject(err, null);
@@ -195398,13 +195398,13 @@ var require_broadcast_operator = __commonJS((exports) => {
195398
195398
  return true;
195399
195399
  }
195400
195400
  emitWithAck(ev2, ...args) {
195401
- return new Promise((resolve6, reject) => {
195401
+ return new Promise((resolve7, reject) => {
195402
195402
  args.push((err, responses) => {
195403
195403
  if (err) {
195404
195404
  err.responses = responses;
195405
195405
  return reject(err);
195406
195406
  } else {
195407
- return resolve6(responses);
195407
+ return resolve7(responses);
195408
195408
  }
195409
195409
  });
195410
195410
  this.emit(ev2, ...args);
@@ -195592,12 +195592,12 @@ var require_socket2 = __commonJS((exports) => {
195592
195592
  }
195593
195593
  emitWithAck(ev2, ...args) {
195594
195594
  const withErr = this.flags.timeout !== undefined;
195595
- return new Promise((resolve6, reject) => {
195595
+ return new Promise((resolve7, reject) => {
195596
195596
  args.push((arg1, arg2) => {
195597
195597
  if (withErr) {
195598
- return arg1 ? reject(arg1) : resolve6(arg2);
195598
+ return arg1 ? reject(arg1) : resolve7(arg2);
195599
195599
  } else {
195600
- return resolve6(arg1);
195600
+ return resolve7(arg1);
195601
195601
  }
195602
195602
  });
195603
195603
  this.emit(ev2, ...args);
@@ -196052,13 +196052,13 @@ var require_namespace = __commonJS((exports) => {
196052
196052
  return true;
196053
196053
  }
196054
196054
  serverSideEmitWithAck(ev2, ...args) {
196055
- return new Promise((resolve6, reject) => {
196055
+ return new Promise((resolve7, reject) => {
196056
196056
  args.push((err, responses) => {
196057
196057
  if (err) {
196058
196058
  err.responses = responses;
196059
196059
  return reject(err);
196060
196060
  } else {
196061
- return resolve6(responses);
196061
+ return resolve7(responses);
196062
196062
  }
196063
196063
  });
196064
196064
  this.serverSideEmit(ev2, ...args);
@@ -196742,7 +196742,7 @@ var require_cluster_adapter = __commonJS((exports) => {
196742
196742
  return localSockets;
196743
196743
  }
196744
196744
  const requestId = randomId();
196745
- return new Promise((resolve6, reject) => {
196745
+ return new Promise((resolve7, reject) => {
196746
196746
  const timeout3 = setTimeout(() => {
196747
196747
  const storedRequest2 = this.requests.get(requestId);
196748
196748
  if (storedRequest2) {
@@ -196752,7 +196752,7 @@ var require_cluster_adapter = __commonJS((exports) => {
196752
196752
  }, opts.flags.timeout || DEFAULT_TIMEOUT);
196753
196753
  const storedRequest = {
196754
196754
  type: MessageType.FETCH_SOCKETS,
196755
- resolve: resolve6,
196755
+ resolve: resolve7,
196756
196756
  timeout: timeout3,
196757
196757
  current: 0,
196758
196758
  expected: expectedResponseCount,
@@ -196962,7 +196962,7 @@ var require_cluster_adapter = __commonJS((exports) => {
196962
196962
  return localSockets;
196963
196963
  }
196964
196964
  const requestId = randomId();
196965
- return new Promise((resolve6, reject) => {
196965
+ return new Promise((resolve7, reject) => {
196966
196966
  const timeout3 = setTimeout(() => {
196967
196967
  const storedRequest2 = this.customRequests.get(requestId);
196968
196968
  if (storedRequest2) {
@@ -196972,7 +196972,7 @@ var require_cluster_adapter = __commonJS((exports) => {
196972
196972
  }, opts.flags.timeout || DEFAULT_TIMEOUT);
196973
196973
  const storedRequest = {
196974
196974
  type: MessageType.FETCH_SOCKETS,
196975
- resolve: resolve6,
196975
+ resolve: resolve7,
196976
196976
  timeout: timeout3,
196977
196977
  missingUids: new Set([...this.nodesMap.keys()]),
196978
196978
  responses: localSockets
@@ -197701,13 +197701,13 @@ var require_dist4 = __commonJS((exports, module) => {
197701
197701
  this.engine.close();
197702
197702
  (0, uws_1.restoreAdapter)();
197703
197703
  if (this.httpServer) {
197704
- return new Promise((resolve6) => {
197704
+ return new Promise((resolve7) => {
197705
197705
  this.httpServer.close((err) => {
197706
197706
  fn9 && fn9(err);
197707
197707
  if (err) {
197708
197708
  debug("server was not running");
197709
197709
  }
197710
- resolve6();
197710
+ resolve7();
197711
197711
  });
197712
197712
  });
197713
197713
  } else {
@@ -212426,14 +212426,14 @@ var require_async_iterator = __commonJS((exports, module) => {
212426
212426
  };
212427
212427
  }
212428
212428
  function readAndResolve(iter) {
212429
- var resolve6 = iter[kLastResolve];
212430
- if (resolve6 !== null) {
212429
+ var resolve7 = iter[kLastResolve];
212430
+ if (resolve7 !== null) {
212431
212431
  var data = iter[kStream].read();
212432
212432
  if (data !== null) {
212433
212433
  iter[kLastPromise] = null;
212434
212434
  iter[kLastResolve] = null;
212435
212435
  iter[kLastReject] = null;
212436
- resolve6(createIterResult(data, false));
212436
+ resolve7(createIterResult(data, false));
212437
212437
  }
212438
212438
  }
212439
212439
  }
@@ -212441,13 +212441,13 @@ var require_async_iterator = __commonJS((exports, module) => {
212441
212441
  process.nextTick(readAndResolve, iter);
212442
212442
  }
212443
212443
  function wrapForNext(lastPromise, iter) {
212444
- return function(resolve6, reject) {
212444
+ return function(resolve7, reject) {
212445
212445
  lastPromise.then(function() {
212446
212446
  if (iter[kEnded]) {
212447
- resolve6(createIterResult(undefined, true));
212447
+ resolve7(createIterResult(undefined, true));
212448
212448
  return;
212449
212449
  }
212450
- iter[kHandlePromise](resolve6, reject);
212450
+ iter[kHandlePromise](resolve7, reject);
212451
212451
  }, reject);
212452
212452
  };
212453
212453
  }
@@ -212466,12 +212466,12 @@ var require_async_iterator = __commonJS((exports, module) => {
212466
212466
  return Promise.resolve(createIterResult(undefined, true));
212467
212467
  }
212468
212468
  if (this[kStream].destroyed) {
212469
- return new Promise(function(resolve6, reject) {
212469
+ return new Promise(function(resolve7, reject) {
212470
212470
  process.nextTick(function() {
212471
212471
  if (_this[kError]) {
212472
212472
  reject(_this[kError]);
212473
212473
  } else {
212474
- resolve6(createIterResult(undefined, true));
212474
+ resolve7(createIterResult(undefined, true));
212475
212475
  }
212476
212476
  });
212477
212477
  });
@@ -212494,13 +212494,13 @@ var require_async_iterator = __commonJS((exports, module) => {
212494
212494
  return this;
212495
212495
  }), _defineProperty(_Object$setPrototypeO, "return", function _return() {
212496
212496
  var _this2 = this;
212497
- return new Promise(function(resolve6, reject) {
212497
+ return new Promise(function(resolve7, reject) {
212498
212498
  _this2[kStream].destroy(null, function(err) {
212499
212499
  if (err) {
212500
212500
  reject(err);
212501
212501
  return;
212502
212502
  }
212503
- resolve6(createIterResult(undefined, true));
212503
+ resolve7(createIterResult(undefined, true));
212504
212504
  });
212505
212505
  });
212506
212506
  }), _Object$setPrototypeO), AsyncIteratorPrototype);
@@ -212522,15 +212522,15 @@ var require_async_iterator = __commonJS((exports, module) => {
212522
212522
  value: stream._readableState.endEmitted,
212523
212523
  writable: true
212524
212524
  }), _defineProperty(_Object$create, kHandlePromise, {
212525
- value: function value(resolve6, reject) {
212525
+ value: function value(resolve7, reject) {
212526
212526
  var data = iterator[kStream].read();
212527
212527
  if (data) {
212528
212528
  iterator[kLastPromise] = null;
212529
212529
  iterator[kLastResolve] = null;
212530
212530
  iterator[kLastReject] = null;
212531
- resolve6(createIterResult(data, false));
212531
+ resolve7(createIterResult(data, false));
212532
212532
  } else {
212533
- iterator[kLastResolve] = resolve6;
212533
+ iterator[kLastResolve] = resolve7;
212534
212534
  iterator[kLastReject] = reject;
212535
212535
  }
212536
212536
  },
@@ -212549,12 +212549,12 @@ var require_async_iterator = __commonJS((exports, module) => {
212549
212549
  iterator[kError] = err;
212550
212550
  return;
212551
212551
  }
212552
- var resolve6 = iterator[kLastResolve];
212553
- if (resolve6 !== null) {
212552
+ var resolve7 = iterator[kLastResolve];
212553
+ if (resolve7 !== null) {
212554
212554
  iterator[kLastPromise] = null;
212555
212555
  iterator[kLastResolve] = null;
212556
212556
  iterator[kLastReject] = null;
212557
- resolve6(createIterResult(undefined, true));
212557
+ resolve7(createIterResult(undefined, true));
212558
212558
  }
212559
212559
  iterator[kEnded] = true;
212560
212560
  });
@@ -212566,7 +212566,7 @@ var require_async_iterator = __commonJS((exports, module) => {
212566
212566
 
212567
212567
  // ../../node_modules/readable-stream/lib/internal/streams/from.js
212568
212568
  var require_from = __commonJS((exports, module) => {
212569
- function asyncGeneratorStep(gen, resolve6, reject, _next, _throw, key2, arg) {
212569
+ function asyncGeneratorStep(gen, resolve7, reject, _next, _throw, key2, arg) {
212570
212570
  try {
212571
212571
  var info = gen[key2](arg);
212572
212572
  var value = info.value;
@@ -212575,7 +212575,7 @@ var require_from = __commonJS((exports, module) => {
212575
212575
  return;
212576
212576
  }
212577
212577
  if (info.done) {
212578
- resolve6(value);
212578
+ resolve7(value);
212579
212579
  } else {
212580
212580
  Promise.resolve(value).then(_next, _throw);
212581
212581
  }
@@ -212583,13 +212583,13 @@ var require_from = __commonJS((exports, module) => {
212583
212583
  function _asyncToGenerator(fn9) {
212584
212584
  return function() {
212585
212585
  var self2 = this, args = arguments;
212586
- return new Promise(function(resolve6, reject) {
212586
+ return new Promise(function(resolve7, reject) {
212587
212587
  var gen = fn9.apply(self2, args);
212588
212588
  function _next(value) {
212589
- asyncGeneratorStep(gen, resolve6, reject, _next, _throw, "next", value);
212589
+ asyncGeneratorStep(gen, resolve7, reject, _next, _throw, "next", value);
212590
212590
  }
212591
212591
  function _throw(err) {
212592
- asyncGeneratorStep(gen, resolve6, reject, _next, _throw, "throw", err);
212592
+ asyncGeneratorStep(gen, resolve7, reject, _next, _throw, "throw", err);
212593
212593
  }
212594
212594
  _next(undefined);
212595
212595
  });
@@ -214717,7 +214717,7 @@ var require_dist5 = __commonJS((exports, module) => {
214717
214717
  });
214718
214718
  module.exports = __toCommonJS(src_exports);
214719
214719
  var import_promises22 = __require("node:fs/promises");
214720
- var import_node_fs22 = __require("node:fs");
214720
+ var import_node_fs23 = __require("node:fs");
214721
214721
  var DEVIN_LOCAL_PATH = "/opt/.devin";
214722
214722
  var CURSOR2 = "cursor";
214723
214723
  var CURSOR_CLI = "cursor-cli";
@@ -214774,7 +214774,7 @@ var require_dist5 = __commonJS((exports, module) => {
214774
214774
  return { isAgent: true, agent: { name: REPLIT } };
214775
214775
  }
214776
214776
  try {
214777
- await (0, import_promises22.access)(DEVIN_LOCAL_PATH, import_node_fs22.constants.F_OK);
214777
+ await (0, import_promises22.access)(DEVIN_LOCAL_PATH, import_node_fs23.constants.F_OK);
214778
214778
  return { isAgent: true, agent: { name: DEVIN } };
214779
214779
  } catch (error48) {}
214780
214780
  return { isAgent: false, agent: undefined };
@@ -214782,8 +214782,8 @@ var require_dist5 = __commonJS((exports, module) => {
214782
214782
  });
214783
214783
 
214784
214784
  // src/cli/index.ts
214785
- import { dirname as dirname16, join as join21 } from "node:path";
214786
- import { fileURLToPath as fileURLToPath6 } from "node:url";
214785
+ import { dirname as dirname17, join as join22 } from "node:path";
214786
+ import { fileURLToPath as fileURLToPath7 } from "node:url";
214787
214787
 
214788
214788
  // ../../node_modules/commander/esm.mjs
214789
214789
  var import__ = __toESM(require_commander(), 1);
@@ -238710,7 +238710,7 @@ import { join as join8 } from "node:path";
238710
238710
  // package.json
238711
238711
  var package_default = {
238712
238712
  name: "base44",
238713
- version: "0.0.44",
238713
+ version: "0.0.45",
238714
238714
  description: "Base44 CLI - Unified interface for managing Base44 applications",
238715
238715
  type: "module",
238716
238716
  bin: {
@@ -238807,7 +238807,7 @@ function getTemplatesIndexPath() {
238807
238807
  return join8(ASSETS_DIR, "templates", "templates.json");
238808
238808
  }
238809
238809
  function getDenoWrapperPath() {
238810
- return join8(ASSETS_DIR, "deno-runtime", "main.js");
238810
+ return join8(ASSETS_DIR, "deno-runtime", "main.ts");
238811
238811
  }
238812
238812
  function ensureNpmAssets(sourceDir) {
238813
238813
  if (existsSync(ASSETS_DIR))
@@ -248943,6 +248943,7 @@ var { promisify: promisify11 } = __require("util");
248943
248943
  var tmp = require_tmp();
248944
248944
  var $fileSync = tmp.fileSync;
248945
248945
  var fileWithOptions = promisify11((options8, cb2) => tmp.file(options8, (err, path18, fd, cleanup) => err ? cb2(err) : cb2(undefined, { path: path18, fd, cleanup: promisify11(cleanup) })));
248946
+ var $file = async (options8) => fileWithOptions(options8);
248946
248947
  var $dirSync = tmp.dirSync;
248947
248948
  var dirWithOptions = promisify11((options8, cb2) => tmp.dir(options8, (err, path18, cleanup) => err ? cb2(err) : cb2(undefined, { path: path18, cleanup: promisify11(cleanup) })));
248948
248949
  var $dir = async (options8) => dirWithOptions(options8);
@@ -248975,7 +248976,85 @@ function createDevLogger() {
248975
248976
  }
248976
248977
 
248977
248978
  // src/cli/dev/dev-server/function-manager.ts
248979
+ import { spawn as spawn3 } from "node:child_process";
248980
+
248981
+ // src/core/exec/run-script.ts
248978
248982
  import { spawn as spawn2, spawnSync as spawnSync2 } from "node:child_process";
248983
+ import { copyFileSync, writeFileSync as writeFileSync2 } from "node:fs";
248984
+ import { resolve as resolve6 } from "node:path";
248985
+ function verifyDenoInstalled() {
248986
+ const result = spawnSync2("deno", ["--version"]);
248987
+ if (result.error) {
248988
+ throw new DependencyNotFoundError("Deno is required to run scripts with exec", {
248989
+ hints: [
248990
+ {
248991
+ message: "Install Deno: https://docs.deno.com/runtime/getting_started/installation/"
248992
+ }
248993
+ ]
248994
+ });
248995
+ }
248996
+ }
248997
+ async function getUserAppToken() {
248998
+ try {
248999
+ const response = await getAppClient().get("auth/token").json();
249000
+ return response.token;
249001
+ } catch (error48) {
249002
+ throw await ApiError.fromHttpError(error48, "exchanging platform token for app user token");
249003
+ }
249004
+ }
249005
+ async function runScript(options8) {
249006
+ const { filePath, code: code2, extraArgs = [], execWrapperPath } = options8;
249007
+ verifyDenoInstalled();
249008
+ const cleanupFns = [];
249009
+ let scriptPath;
249010
+ if (filePath) {
249011
+ scriptPath = `file://${resolve6(filePath)}`;
249012
+ } else if (code2 !== undefined) {
249013
+ const tempScript = await $file({ postfix: ".ts" });
249014
+ cleanupFns.push(tempScript.cleanup);
249015
+ writeFileSync2(tempScript.path, code2, "utf-8");
249016
+ scriptPath = `file://${tempScript.path}`;
249017
+ } else {
249018
+ throw new Error("Either filePath or code must be provided");
249019
+ }
249020
+ const appConfig = getAppConfig();
249021
+ const [appUserToken, appBaseUrl] = await Promise.all([
249022
+ getUserAppToken(),
249023
+ getSiteUrl()
249024
+ ]);
249025
+ const tempWrapper = await $file({ postfix: ".ts" });
249026
+ cleanupFns.push(tempWrapper.cleanup);
249027
+ copyFileSync(execWrapperPath, tempWrapper.path);
249028
+ try {
249029
+ const exitCode = await new Promise((resolvePromise) => {
249030
+ const child = spawn2("deno", [
249031
+ "run",
249032
+ "--allow-all",
249033
+ "--node-modules-dir=auto",
249034
+ tempWrapper.path,
249035
+ ...extraArgs
249036
+ ], {
249037
+ env: {
249038
+ ...process.env,
249039
+ SCRIPT_PATH: scriptPath,
249040
+ BASE44_APP_ID: appConfig.id,
249041
+ BASE44_ACCESS_TOKEN: appUserToken,
249042
+ BASE44_APP_BASE_URL: appBaseUrl
249043
+ },
249044
+ stdio: "inherit"
249045
+ });
249046
+ child.on("close", (code3) => {
249047
+ resolvePromise(code3 ?? 1);
249048
+ });
249049
+ });
249050
+ return { exitCode };
249051
+ } finally {
249052
+ for (const cleanup of cleanupFns) {
249053
+ cleanup();
249054
+ }
249055
+ }
249056
+ }
249057
+ // src/cli/dev/dev-server/function-manager.ts
248979
249058
  var READY_TIMEOUT = 30000;
248980
249059
 
248981
249060
  class FunctionManager {
@@ -248989,15 +249068,7 @@ class FunctionManager {
248989
249068
  this.logger = logger;
248990
249069
  this.wrapperPath = wrapperPath;
248991
249070
  if (functions.length > 0) {
248992
- this.verifyDenoIsInstalled();
248993
- }
248994
- }
248995
- verifyDenoIsInstalled() {
248996
- const result = spawnSync2("deno", ["--version"]);
248997
- if (result.error) {
248998
- throw new DependencyNotFoundError("Deno is required to run functions", {
248999
- hints: [{ message: "Install Deno from https://deno.com/download" }]
249000
- });
249071
+ verifyDenoInstalled();
249001
249072
  }
249002
249073
  }
249003
249074
  getFunctionNames() {
@@ -249060,7 +249131,7 @@ class FunctionManager {
249060
249131
  }
249061
249132
  spawnFunction(func, port) {
249062
249133
  this.logger.log(`Spawning function "${func.name}" on port ${port}`);
249063
- const process21 = spawn2("deno", ["run", "--allow-all", this.wrapperPath], {
249134
+ const process21 = spawn3("deno", ["run", "--allow-all", this.wrapperPath], {
249064
249135
  env: {
249065
249136
  ...globalThis.process.env,
249066
249137
  FUNCTION_PATH: func.entryPath,
@@ -249098,7 +249169,7 @@ class FunctionManager {
249098
249169
  });
249099
249170
  }
249100
249171
  waitForReady(name2, runningFunc) {
249101
- return new Promise((resolve6, reject) => {
249172
+ return new Promise((resolve7, reject) => {
249102
249173
  runningFunc.process.on("exit", (code2) => {
249103
249174
  if (!runningFunc.ready) {
249104
249175
  clearTimeout(timeout3);
@@ -249121,7 +249192,7 @@ class FunctionManager {
249121
249192
  runningFunc.ready = true;
249122
249193
  clearTimeout(timeout3);
249123
249194
  runningFunc.process.stdout?.off("data", onData);
249124
- resolve6(runningFunc.port);
249195
+ resolve7(runningFunc.port);
249125
249196
  }
249126
249197
  };
249127
249198
  runningFunc.process.stdout?.on("data", onData);
@@ -250604,7 +250675,7 @@ class NodeFsHandler {
250604
250675
  this._addToNodeFs(path19, initialAdd, wh2, depth + 1);
250605
250676
  }
250606
250677
  }).on(EV.ERROR, this._boundHandleError);
250607
- return new Promise((resolve7, reject) => {
250678
+ return new Promise((resolve8, reject) => {
250608
250679
  if (!stream)
250609
250680
  return reject();
250610
250681
  stream.once(STR_END, () => {
@@ -250613,7 +250684,7 @@ class NodeFsHandler {
250613
250684
  return;
250614
250685
  }
250615
250686
  const wasThrottled = throttler ? throttler.clear() : false;
250616
- resolve7(undefined);
250687
+ resolve8(undefined);
250617
250688
  previous.getChildren().filter((item) => {
250618
250689
  return item !== directory && !current.has(item);
250619
250690
  }).forEach((item) => {
@@ -251518,7 +251589,7 @@ async function createDevServer(options8) {
251518
251589
  devLogger.warn(`"${req.originalUrl}" is not supported in local development, passing call to production`);
251519
251590
  remoteProxy(req, res, next);
251520
251591
  });
251521
- const server = await new Promise((resolve8, reject) => {
251592
+ const server = await new Promise((resolve9, reject) => {
251522
251593
  const s5 = app.listen(port, "127.0.0.1", (err) => {
251523
251594
  if (err) {
251524
251595
  if ("code" in err && err.code === "EADDRINUSE") {
@@ -251527,7 +251598,7 @@ async function createDevServer(options8) {
251527
251598
  reject(err);
251528
251599
  }
251529
251600
  } else {
251530
- resolve8(s5);
251601
+ resolve9(s5);
251531
251602
  }
251532
251603
  });
251533
251604
  });
@@ -251601,8 +251672,57 @@ function getDevCommand(context) {
251601
251672
  });
251602
251673
  }
251603
251674
 
251675
+ // src/cli/commands/exec.ts
251676
+ import { dirname as dirname15, join as join21 } from "node:path";
251677
+ import { fileURLToPath as fileURLToPath6 } from "node:url";
251678
+ var __dirname4 = dirname15(fileURLToPath6(import.meta.url));
251679
+ var EXEC_WRAPPER_PATH = join21(__dirname4, "../deno-runtime/exec.ts");
251680
+ function readStdin() {
251681
+ return new Promise((resolve9, reject) => {
251682
+ let data = "";
251683
+ process.stdin.setEncoding("utf-8");
251684
+ process.stdin.on("data", (chunk) => {
251685
+ data += chunk;
251686
+ });
251687
+ process.stdin.on("end", () => resolve9(data));
251688
+ process.stdin.on("error", reject);
251689
+ });
251690
+ }
251691
+ async function execAction(extraArgs) {
251692
+ const noInputError = new InvalidInputError("No input provided. Pipe a script to stdin.", {
251693
+ hints: [
251694
+ { message: "File: cat ./script.ts | base44 exec" },
251695
+ { message: 'Eval: echo "console.log(1)" | base44 exec' }
251696
+ ]
251697
+ });
251698
+ if (process.stdin.isTTY) {
251699
+ throw noInputError;
251700
+ }
251701
+ const code2 = await readStdin();
251702
+ if (!code2.trim()) {
251703
+ throw noInputError;
251704
+ }
251705
+ const { exitCode } = await runScript({
251706
+ code: code2,
251707
+ extraArgs,
251708
+ execWrapperPath: EXEC_WRAPPER_PATH
251709
+ });
251710
+ if (exitCode !== 0) {
251711
+ process.exitCode = exitCode;
251712
+ }
251713
+ return {};
251714
+ }
251715
+ function getExecCommand(context) {
251716
+ const cmd = new Command("exec").description("Run a script with the Base44 SDK pre-authenticated as the current user").action(async () => {
251717
+ const dashIndex = process.argv.indexOf("--");
251718
+ const extraArgs = dashIndex !== -1 ? process.argv.slice(dashIndex + 1) : [];
251719
+ await runCommand(() => execAction(extraArgs), { requireAuth: true }, context);
251720
+ });
251721
+ return cmd;
251722
+ }
251723
+
251604
251724
  // src/cli/commands/project/eject.ts
251605
- import { resolve as resolve8 } from "node:path";
251725
+ import { resolve as resolve9 } from "node:path";
251606
251726
  var import_kebabCase2 = __toESM(require_kebabCase(), 1);
251607
251727
  async function eject(options8) {
251608
251728
  const projects = await listProjects();
@@ -251651,7 +251771,7 @@ async function eject(options8) {
251651
251771
  Ne("Operation cancelled.");
251652
251772
  throw new CLIExitError(0);
251653
251773
  }
251654
- const resolvedPath = resolve8(selectedPath);
251774
+ const resolvedPath = resolve9(selectedPath);
251655
251775
  await runTask("Downloading your project's code...", async (updateMessage) => {
251656
251776
  await createProjectFilesForExistingProject({
251657
251777
  projectId,
@@ -251717,6 +251837,7 @@ function createProgram(context) {
251717
251837
  program2.addCommand(getSecretsCommand(context));
251718
251838
  program2.addCommand(getSiteCommand(context));
251719
251839
  program2.addCommand(getTypesCommand(context));
251840
+ program2.addCommand(getExecCommand(context));
251720
251841
  program2.addCommand(getDevCommand(context), { hidden: true });
251721
251842
  program2.addCommand(getLogsCommand(context), { hidden: true });
251722
251843
  return program2;
@@ -251727,7 +251848,7 @@ var import_detect_agent = __toESM(require_dist5(), 1);
251727
251848
  import { release, type } from "node:os";
251728
251849
 
251729
251850
  // ../../node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
251730
- import { dirname as dirname15, posix, sep } from "path";
251851
+ import { dirname as dirname16, posix, sep } from "path";
251731
251852
  function createModulerModifier() {
251732
251853
  const getModuleFromFileName = createGetModuleFromFilename();
251733
251854
  return async (frames) => {
@@ -251736,7 +251857,7 @@ function createModulerModifier() {
251736
251857
  return frames;
251737
251858
  };
251738
251859
  }
251739
- function createGetModuleFromFilename(basePath = process.argv[1] ? dirname15(process.argv[1]) : process.cwd(), isWindows5 = sep === "\\") {
251860
+ function createGetModuleFromFilename(basePath = process.argv[1] ? dirname16(process.argv[1]) : process.cwd(), isWindows5 = sep === "\\") {
251740
251861
  const normalizedBase = isWindows5 ? normalizeWindowsPath2(basePath) : basePath;
251741
251862
  return (filename) => {
251742
251863
  if (!filename)
@@ -254014,14 +254135,14 @@ async function addSourceContext(frames) {
254014
254135
  return frames;
254015
254136
  }
254016
254137
  function getContextLinesFromFile(path19, ranges, output) {
254017
- return new Promise((resolve9) => {
254138
+ return new Promise((resolve10) => {
254018
254139
  const stream = createReadStream2(path19);
254019
254140
  const lineReaded = createInterface2({
254020
254141
  input: stream
254021
254142
  });
254022
254143
  function destroyStreamAndResolve() {
254023
254144
  stream.destroy();
254024
- resolve9();
254145
+ resolve10();
254025
254146
  }
254026
254147
  let lineNumber = 0;
254027
254148
  let currentRangeIndex = 0;
@@ -255133,15 +255254,15 @@ class PostHogBackendClient extends PostHogCoreStateless {
255133
255254
  return true;
255134
255255
  if (this.featureFlagsPoller === undefined)
255135
255256
  return false;
255136
- return new Promise((resolve9) => {
255257
+ return new Promise((resolve10) => {
255137
255258
  const timeout3 = setTimeout(() => {
255138
255259
  cleanup();
255139
- resolve9(false);
255260
+ resolve10(false);
255140
255261
  }, timeoutMs);
255141
255262
  const cleanup = this._events.on("localEvaluationFlagsLoaded", (count2) => {
255142
255263
  clearTimeout(timeout3);
255143
255264
  cleanup();
255144
- resolve9(count2 > 0);
255265
+ resolve10(count2 > 0);
255145
255266
  });
255146
255267
  });
255147
255268
  }
@@ -255925,9 +256046,9 @@ function addCommandInfoToErrorReporter(program2, errorReporter) {
255925
256046
  });
255926
256047
  }
255927
256048
  // src/cli/index.ts
255928
- var __dirname4 = dirname16(fileURLToPath6(import.meta.url));
256049
+ var __dirname5 = dirname17(fileURLToPath7(import.meta.url));
255929
256050
  async function runCLI(options8) {
255930
- ensureNpmAssets(join21(__dirname4, "../assets"));
256051
+ ensureNpmAssets(join22(__dirname5, "../assets"));
255931
256052
  const errorReporter = new ErrorReporter;
255932
256053
  errorReporter.registerProcessErrorHandlers();
255933
256054
  const isNonInteractive = !process.stdin.isTTY || !process.stdout.isTTY;
@@ -255960,4 +256081,4 @@ export {
255960
256081
  CLIExitError
255961
256082
  };
255962
256083
 
255963
- //# debugId=CD060DA1B6F7116364756E2164756E21
256084
+ //# debugId=EAF7BF93AACEC07564756E2164756E21