@base44-preview/cli 0.0.44-pr.419.4194a5c → 0.0.45-pr.357.604c676

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: {
@@ -238719,6 +238719,7 @@ var package_default = {
238719
238719
  files: [
238720
238720
  "dist/cli",
238721
238721
  "dist/assets",
238722
+ "dist/deno-runtime",
238722
238723
  "bin"
238723
238724
  ],
238724
238725
  scripts: {
@@ -238807,7 +238808,7 @@ function getTemplatesIndexPath() {
238807
238808
  return join8(ASSETS_DIR, "templates", "templates.json");
238808
238809
  }
238809
238810
  function getDenoWrapperPath() {
238810
- return join8(ASSETS_DIR, "deno-runtime", "main.js");
238811
+ return join8(ASSETS_DIR, "deno-runtime", "main.ts");
238811
238812
  }
238812
238813
  function ensureNpmAssets(sourceDir) {
238813
238814
  if (existsSync(ASSETS_DIR))
@@ -248943,6 +248944,7 @@ var { promisify: promisify11 } = __require("util");
248943
248944
  var tmp = require_tmp();
248944
248945
  var $fileSync = tmp.fileSync;
248945
248946
  var fileWithOptions = promisify11((options8, cb2) => tmp.file(options8, (err, path18, fd, cleanup) => err ? cb2(err) : cb2(undefined, { path: path18, fd, cleanup: promisify11(cleanup) })));
248947
+ var $file = async (options8) => fileWithOptions(options8);
248946
248948
  var $dirSync = tmp.dirSync;
248947
248949
  var dirWithOptions = promisify11((options8, cb2) => tmp.dir(options8, (err, path18, cleanup) => err ? cb2(err) : cb2(undefined, { path: path18, cleanup: promisify11(cleanup) })));
248948
248950
  var $dir = async (options8) => dirWithOptions(options8);
@@ -248975,7 +248977,85 @@ function createDevLogger() {
248975
248977
  }
248976
248978
 
248977
248979
  // src/cli/dev/dev-server/function-manager.ts
248980
+ import { spawn as spawn3 } from "node:child_process";
248981
+
248982
+ // src/core/exec/run-script.ts
248978
248983
  import { spawn as spawn2, spawnSync as spawnSync2 } from "node:child_process";
248984
+ import { copyFileSync, writeFileSync as writeFileSync2 } from "node:fs";
248985
+ import { resolve as resolve6 } from "node:path";
248986
+ function verifyDenoInstalled() {
248987
+ const result = spawnSync2("deno", ["--version"]);
248988
+ if (result.error) {
248989
+ throw new DependencyNotFoundError("Deno is required to run scripts with exec", {
248990
+ hints: [
248991
+ {
248992
+ message: "Install Deno: https://docs.deno.com/runtime/getting_started/installation/"
248993
+ }
248994
+ ]
248995
+ });
248996
+ }
248997
+ }
248998
+ async function getUserAppToken() {
248999
+ try {
249000
+ const response = await getAppClient().get("auth/token").json();
249001
+ return response.token;
249002
+ } catch (error48) {
249003
+ throw await ApiError.fromHttpError(error48, "exchanging platform token for app user token");
249004
+ }
249005
+ }
249006
+ async function runScript(options8) {
249007
+ const { filePath, code: code2, extraArgs = [], execWrapperPath } = options8;
249008
+ verifyDenoInstalled();
249009
+ const cleanupFns = [];
249010
+ let scriptPath;
249011
+ if (filePath) {
249012
+ scriptPath = `file://${resolve6(filePath)}`;
249013
+ } else if (code2 !== undefined) {
249014
+ const tempScript = await $file({ postfix: ".ts" });
249015
+ cleanupFns.push(tempScript.cleanup);
249016
+ writeFileSync2(tempScript.path, code2, "utf-8");
249017
+ scriptPath = `file://${tempScript.path}`;
249018
+ } else {
249019
+ throw new Error("Either filePath or code must be provided");
249020
+ }
249021
+ const appConfig = getAppConfig();
249022
+ const [appUserToken, appBaseUrl] = await Promise.all([
249023
+ getUserAppToken(),
249024
+ getSiteUrl()
249025
+ ]);
249026
+ const tempWrapper = await $file({ postfix: ".ts" });
249027
+ cleanupFns.push(tempWrapper.cleanup);
249028
+ copyFileSync(execWrapperPath, tempWrapper.path);
249029
+ try {
249030
+ const exitCode = await new Promise((resolvePromise) => {
249031
+ const child = spawn2("deno", [
249032
+ "run",
249033
+ "--allow-all",
249034
+ "--node-modules-dir=auto",
249035
+ tempWrapper.path,
249036
+ ...extraArgs
249037
+ ], {
249038
+ env: {
249039
+ ...process.env,
249040
+ SCRIPT_PATH: scriptPath,
249041
+ BASE44_APP_ID: appConfig.id,
249042
+ BASE44_ACCESS_TOKEN: appUserToken,
249043
+ BASE44_APP_BASE_URL: appBaseUrl
249044
+ },
249045
+ stdio: "inherit"
249046
+ });
249047
+ child.on("close", (code3) => {
249048
+ resolvePromise(code3 ?? 1);
249049
+ });
249050
+ });
249051
+ return { exitCode };
249052
+ } finally {
249053
+ for (const cleanup of cleanupFns) {
249054
+ cleanup();
249055
+ }
249056
+ }
249057
+ }
249058
+ // src/cli/dev/dev-server/function-manager.ts
248979
249059
  var READY_TIMEOUT = 30000;
248980
249060
 
248981
249061
  class FunctionManager {
@@ -248989,15 +249069,7 @@ class FunctionManager {
248989
249069
  this.logger = logger;
248990
249070
  this.wrapperPath = wrapperPath;
248991
249071
  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
- });
249072
+ verifyDenoInstalled();
249001
249073
  }
249002
249074
  }
249003
249075
  getFunctionNames() {
@@ -249060,7 +249132,7 @@ class FunctionManager {
249060
249132
  }
249061
249133
  spawnFunction(func, port) {
249062
249134
  this.logger.log(`Spawning function "${func.name}" on port ${port}`);
249063
- const process21 = spawn2("deno", ["run", "--allow-all", this.wrapperPath], {
249135
+ const process21 = spawn3("deno", ["run", "--allow-all", this.wrapperPath], {
249064
249136
  env: {
249065
249137
  ...globalThis.process.env,
249066
249138
  FUNCTION_PATH: func.entryPath,
@@ -249098,7 +249170,7 @@ class FunctionManager {
249098
249170
  });
249099
249171
  }
249100
249172
  waitForReady(name2, runningFunc) {
249101
- return new Promise((resolve6, reject) => {
249173
+ return new Promise((resolve7, reject) => {
249102
249174
  runningFunc.process.on("exit", (code2) => {
249103
249175
  if (!runningFunc.ready) {
249104
249176
  clearTimeout(timeout3);
@@ -249121,7 +249193,7 @@ class FunctionManager {
249121
249193
  runningFunc.ready = true;
249122
249194
  clearTimeout(timeout3);
249123
249195
  runningFunc.process.stdout?.off("data", onData);
249124
- resolve6(runningFunc.port);
249196
+ resolve7(runningFunc.port);
249125
249197
  }
249126
249198
  };
249127
249199
  runningFunc.process.stdout?.on("data", onData);
@@ -250604,7 +250676,7 @@ class NodeFsHandler {
250604
250676
  this._addToNodeFs(path19, initialAdd, wh2, depth + 1);
250605
250677
  }
250606
250678
  }).on(EV.ERROR, this._boundHandleError);
250607
- return new Promise((resolve7, reject) => {
250679
+ return new Promise((resolve8, reject) => {
250608
250680
  if (!stream)
250609
250681
  return reject();
250610
250682
  stream.once(STR_END, () => {
@@ -250613,7 +250685,7 @@ class NodeFsHandler {
250613
250685
  return;
250614
250686
  }
250615
250687
  const wasThrottled = throttler ? throttler.clear() : false;
250616
- resolve7(undefined);
250688
+ resolve8(undefined);
250617
250689
  previous.getChildren().filter((item) => {
250618
250690
  return item !== directory && !current.has(item);
250619
250691
  }).forEach((item) => {
@@ -251518,7 +251590,7 @@ async function createDevServer(options8) {
251518
251590
  devLogger.warn(`"${req.originalUrl}" is not supported in local development, passing call to production`);
251519
251591
  remoteProxy(req, res, next);
251520
251592
  });
251521
- const server = await new Promise((resolve8, reject) => {
251593
+ const server = await new Promise((resolve9, reject) => {
251522
251594
  const s5 = app.listen(port, "127.0.0.1", (err) => {
251523
251595
  if (err) {
251524
251596
  if ("code" in err && err.code === "EADDRINUSE") {
@@ -251527,7 +251599,7 @@ async function createDevServer(options8) {
251527
251599
  reject(err);
251528
251600
  }
251529
251601
  } else {
251530
- resolve8(s5);
251602
+ resolve9(s5);
251531
251603
  }
251532
251604
  });
251533
251605
  });
@@ -251601,8 +251673,57 @@ function getDevCommand(context) {
251601
251673
  });
251602
251674
  }
251603
251675
 
251676
+ // src/cli/commands/exec.ts
251677
+ import { dirname as dirname15, join as join21 } from "node:path";
251678
+ import { fileURLToPath as fileURLToPath6 } from "node:url";
251679
+ var __dirname4 = dirname15(fileURLToPath6(import.meta.url));
251680
+ var EXEC_WRAPPER_PATH = join21(__dirname4, "../deno-runtime/exec.ts");
251681
+ function readStdin() {
251682
+ return new Promise((resolve9, reject) => {
251683
+ let data = "";
251684
+ process.stdin.setEncoding("utf-8");
251685
+ process.stdin.on("data", (chunk) => {
251686
+ data += chunk;
251687
+ });
251688
+ process.stdin.on("end", () => resolve9(data));
251689
+ process.stdin.on("error", reject);
251690
+ });
251691
+ }
251692
+ async function execAction(extraArgs) {
251693
+ const noInputError = new InvalidInputError("No input provided. Pipe a script to stdin.", {
251694
+ hints: [
251695
+ { message: "File: cat ./script.ts | base44 exec" },
251696
+ { message: 'Eval: echo "console.log(1)" | base44 exec' }
251697
+ ]
251698
+ });
251699
+ if (process.stdin.isTTY) {
251700
+ throw noInputError;
251701
+ }
251702
+ const code2 = await readStdin();
251703
+ if (!code2.trim()) {
251704
+ throw noInputError;
251705
+ }
251706
+ const { exitCode } = await runScript({
251707
+ code: code2,
251708
+ extraArgs,
251709
+ execWrapperPath: EXEC_WRAPPER_PATH
251710
+ });
251711
+ if (exitCode !== 0) {
251712
+ process.exitCode = exitCode;
251713
+ }
251714
+ return {};
251715
+ }
251716
+ function getExecCommand(context) {
251717
+ const cmd = new Command("exec").description("Run a script with the Base44 SDK pre-authenticated as the current user").action(async () => {
251718
+ const dashIndex = process.argv.indexOf("--");
251719
+ const extraArgs = dashIndex !== -1 ? process.argv.slice(dashIndex + 1) : [];
251720
+ await runCommand(() => execAction(extraArgs), { requireAuth: true }, context);
251721
+ });
251722
+ return cmd;
251723
+ }
251724
+
251604
251725
  // src/cli/commands/project/eject.ts
251605
- import { resolve as resolve8 } from "node:path";
251726
+ import { resolve as resolve9 } from "node:path";
251606
251727
  var import_kebabCase2 = __toESM(require_kebabCase(), 1);
251607
251728
  async function eject(options8) {
251608
251729
  const projects = await listProjects();
@@ -251651,7 +251772,7 @@ async function eject(options8) {
251651
251772
  Ne("Operation cancelled.");
251652
251773
  throw new CLIExitError(0);
251653
251774
  }
251654
- const resolvedPath = resolve8(selectedPath);
251775
+ const resolvedPath = resolve9(selectedPath);
251655
251776
  await runTask("Downloading your project's code...", async (updateMessage) => {
251656
251777
  await createProjectFilesForExistingProject({
251657
251778
  projectId,
@@ -251717,6 +251838,7 @@ function createProgram(context) {
251717
251838
  program2.addCommand(getSecretsCommand(context));
251718
251839
  program2.addCommand(getSiteCommand(context));
251719
251840
  program2.addCommand(getTypesCommand(context));
251841
+ program2.addCommand(getExecCommand(context));
251720
251842
  program2.addCommand(getDevCommand(context), { hidden: true });
251721
251843
  program2.addCommand(getLogsCommand(context), { hidden: true });
251722
251844
  return program2;
@@ -251727,7 +251849,7 @@ var import_detect_agent = __toESM(require_dist5(), 1);
251727
251849
  import { release, type } from "node:os";
251728
251850
 
251729
251851
  // ../../node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
251730
- import { dirname as dirname15, posix, sep } from "path";
251852
+ import { dirname as dirname16, posix, sep } from "path";
251731
251853
  function createModulerModifier() {
251732
251854
  const getModuleFromFileName = createGetModuleFromFilename();
251733
251855
  return async (frames) => {
@@ -251736,7 +251858,7 @@ function createModulerModifier() {
251736
251858
  return frames;
251737
251859
  };
251738
251860
  }
251739
- function createGetModuleFromFilename(basePath = process.argv[1] ? dirname15(process.argv[1]) : process.cwd(), isWindows5 = sep === "\\") {
251861
+ function createGetModuleFromFilename(basePath = process.argv[1] ? dirname16(process.argv[1]) : process.cwd(), isWindows5 = sep === "\\") {
251740
251862
  const normalizedBase = isWindows5 ? normalizeWindowsPath2(basePath) : basePath;
251741
251863
  return (filename) => {
251742
251864
  if (!filename)
@@ -254014,14 +254136,14 @@ async function addSourceContext(frames) {
254014
254136
  return frames;
254015
254137
  }
254016
254138
  function getContextLinesFromFile(path19, ranges, output) {
254017
- return new Promise((resolve9) => {
254139
+ return new Promise((resolve10) => {
254018
254140
  const stream = createReadStream2(path19);
254019
254141
  const lineReaded = createInterface2({
254020
254142
  input: stream
254021
254143
  });
254022
254144
  function destroyStreamAndResolve() {
254023
254145
  stream.destroy();
254024
- resolve9();
254146
+ resolve10();
254025
254147
  }
254026
254148
  let lineNumber = 0;
254027
254149
  let currentRangeIndex = 0;
@@ -255133,15 +255255,15 @@ class PostHogBackendClient extends PostHogCoreStateless {
255133
255255
  return true;
255134
255256
  if (this.featureFlagsPoller === undefined)
255135
255257
  return false;
255136
- return new Promise((resolve9) => {
255258
+ return new Promise((resolve10) => {
255137
255259
  const timeout3 = setTimeout(() => {
255138
255260
  cleanup();
255139
- resolve9(false);
255261
+ resolve10(false);
255140
255262
  }, timeoutMs);
255141
255263
  const cleanup = this._events.on("localEvaluationFlagsLoaded", (count2) => {
255142
255264
  clearTimeout(timeout3);
255143
255265
  cleanup();
255144
- resolve9(count2 > 0);
255266
+ resolve10(count2 > 0);
255145
255267
  });
255146
255268
  });
255147
255269
  }
@@ -255925,9 +256047,9 @@ function addCommandInfoToErrorReporter(program2, errorReporter) {
255925
256047
  });
255926
256048
  }
255927
256049
  // src/cli/index.ts
255928
- var __dirname4 = dirname16(fileURLToPath6(import.meta.url));
256050
+ var __dirname5 = dirname17(fileURLToPath7(import.meta.url));
255929
256051
  async function runCLI(options8) {
255930
- ensureNpmAssets(join21(__dirname4, "../assets"));
256052
+ ensureNpmAssets(join22(__dirname5, "../assets"));
255931
256053
  const errorReporter = new ErrorReporter;
255932
256054
  errorReporter.registerProcessErrorHandlers();
255933
256055
  const isNonInteractive = !process.stdin.isTTY || !process.stdout.isTTY;
@@ -255960,4 +256082,4 @@ export {
255960
256082
  CLIExitError
255961
256083
  };
255962
256084
 
255963
- //# debugId=CD060DA1B6F7116364756E2164756E21
256085
+ //# debugId=7A217CD3C600288564756E2164756E21