@base44-preview/cli 0.0.6-pr.62.366c083 → 0.0.7-pr.63.fe74e75

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.
Files changed (2) hide show
  1. package/dist/cli/index.js +314 -304
  2. package/package.json +1 -1
package/dist/cli/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { createRequire } from "node:module";
3
3
  import { EventEmitter, addAbortListener, on, once, setMaxListeners } from "node:events";
4
4
  import { ChildProcess, execFile, spawn, spawnSync } from "node:child_process";
5
- import nodePath, { basename, dirname, join, posix, resolve, win32 } from "node:path";
5
+ import path, { basename, dirname, join, posix, resolve, win32 } from "node:path";
6
6
  import fs, { appendFileSync, createReadStream, createWriteStream, readFileSync, statSync, writeFileSync } from "node:fs";
7
7
  import y, { execArgv, execPath, hrtime, platform, stdin, stdout } from "node:process";
8
8
  import os, { constants, homedir, tmpdir } from "node:os";
@@ -13,7 +13,7 @@ import O from "node:readline";
13
13
  import Stream, { Duplex, PassThrough, Readable, Transform, Writable, getDefaultHighWaterMark } from "node:stream";
14
14
  import { fileURLToPath } from "node:url";
15
15
  import fs$1 from "fs";
16
- import path, { dirname as dirname$1, parse } from "path";
16
+ import path$1, { dirname as dirname$1, parse } from "path";
17
17
  import { finished } from "node:stream/promises";
18
18
  import EE, { EventEmitter as EventEmitter$1 } from "events";
19
19
  import fsPromises, { access, copyFile, mkdir, readFile, unlink, writeFile } from "node:fs/promises";
@@ -892,7 +892,7 @@ var require_suggestSimilar = /* @__PURE__ */ __commonJSMin(((exports) => {
892
892
  var require_command = /* @__PURE__ */ __commonJSMin(((exports) => {
893
893
  const EventEmitter$2 = __require("node:events").EventEmitter;
894
894
  const childProcess = __require("node:child_process");
895
- const path$15 = __require("node:path");
895
+ const path$16 = __require("node:path");
896
896
  const fs$10 = __require("node:fs");
897
897
  const process$3 = __require("node:process");
898
898
  const { Argument, humanReadableArgName } = require_argument();
@@ -1740,9 +1740,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
1740
1740
  ".cjs"
1741
1741
  ];
1742
1742
  function findFile(baseDir, baseName) {
1743
- const localBin = path$15.resolve(baseDir, baseName);
1743
+ const localBin = path$16.resolve(baseDir, baseName);
1744
1744
  if (fs$10.existsSync(localBin)) return localBin;
1745
- if (sourceExt.includes(path$15.extname(baseName))) return void 0;
1745
+ if (sourceExt.includes(path$16.extname(baseName))) return void 0;
1746
1746
  const foundExt = sourceExt.find((ext) => fs$10.existsSync(`${localBin}${ext}`));
1747
1747
  if (foundExt) return `${localBin}${foundExt}`;
1748
1748
  }
@@ -1757,17 +1757,17 @@ Expecting one of '${allowedValues.join("', '")}'`);
1757
1757
  } catch (err) {
1758
1758
  resolvedScriptPath = this._scriptPath;
1759
1759
  }
1760
- executableDir = path$15.resolve(path$15.dirname(resolvedScriptPath), executableDir);
1760
+ executableDir = path$16.resolve(path$16.dirname(resolvedScriptPath), executableDir);
1761
1761
  }
1762
1762
  if (executableDir) {
1763
1763
  let localFile = findFile(executableDir, executableFile);
1764
1764
  if (!localFile && !subcommand._executableFile && this._scriptPath) {
1765
- const legacyName = path$15.basename(this._scriptPath, path$15.extname(this._scriptPath));
1765
+ const legacyName = path$16.basename(this._scriptPath, path$16.extname(this._scriptPath));
1766
1766
  if (legacyName !== this._name) localFile = findFile(executableDir, `${legacyName}-${subcommand._name}`);
1767
1767
  }
1768
1768
  executableFile = localFile || executableFile;
1769
1769
  }
1770
- launchWithNode = sourceExt.includes(path$15.extname(executableFile));
1770
+ launchWithNode = sourceExt.includes(path$16.extname(executableFile));
1771
1771
  let proc$1;
1772
1772
  if (process$3.platform !== "win32") if (launchWithNode) {
1773
1773
  args.unshift(executableFile);
@@ -2473,7 +2473,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
2473
2473
  * @return {Command}
2474
2474
  */
2475
2475
  nameFromFilename(filename) {
2476
- this._name = path$15.basename(filename, path$15.extname(filename));
2476
+ this._name = path$16.basename(filename, path$16.extname(filename));
2477
2477
  return this;
2478
2478
  }
2479
2479
  /**
@@ -2487,9 +2487,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
2487
2487
  * @param {string} [path]
2488
2488
  * @return {(string|null|Command)}
2489
2489
  */
2490
- executableDir(path$16) {
2491
- if (path$16 === void 0) return this._executableDir;
2492
- this._executableDir = path$16;
2490
+ executableDir(path$17) {
2491
+ if (path$17 === void 0) return this._executableDir;
2492
+ this._executableDir = path$17;
2493
2493
  return this;
2494
2494
  }
2495
2495
  /**
@@ -4701,11 +4701,11 @@ function aborted$1(x$2, startIndex = 0) {
4701
4701
  for (let i$1 = startIndex; i$1 < x$2.issues.length; i$1++) if (x$2.issues[i$1]?.continue !== true) return true;
4702
4702
  return false;
4703
4703
  }
4704
- function prefixIssues(path$16, issues) {
4704
+ function prefixIssues(path$17, issues) {
4705
4705
  return issues.map((iss) => {
4706
4706
  var _a$1;
4707
4707
  (_a$1 = iss).path ?? (_a$1.path = []);
4708
- iss.path.unshift(path$16);
4708
+ iss.path.unshift(path$17);
4709
4709
  return iss;
4710
4710
  });
4711
4711
  }
@@ -9212,7 +9212,7 @@ var require_package$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9212
9212
  //#region node_modules/dotenv/lib/main.js
9213
9213
  var require_main = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9214
9214
  const fs$9 = __require("fs");
9215
- const path$14 = __require("path");
9215
+ const path$15 = __require("path");
9216
9216
  const os$3 = __require("os");
9217
9217
  const crypto = __require("crypto");
9218
9218
  const version = require_package$1().version;
@@ -9350,12 +9350,12 @@ var require_main = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9350
9350
  if (options && options.path && options.path.length > 0) if (Array.isArray(options.path)) {
9351
9351
  for (const filepath of options.path) if (fs$9.existsSync(filepath)) possibleVaultPath = filepath.endsWith(".vault") ? filepath : `${filepath}.vault`;
9352
9352
  } else possibleVaultPath = options.path.endsWith(".vault") ? options.path : `${options.path}.vault`;
9353
- else possibleVaultPath = path$14.resolve(process.cwd(), ".env.vault");
9353
+ else possibleVaultPath = path$15.resolve(process.cwd(), ".env.vault");
9354
9354
  if (fs$9.existsSync(possibleVaultPath)) return possibleVaultPath;
9355
9355
  return null;
9356
9356
  }
9357
9357
  function _resolveHome(envPath) {
9358
- return envPath[0] === "~" ? path$14.join(os$3.homedir(), envPath.slice(1)) : envPath;
9358
+ return envPath[0] === "~" ? path$15.join(os$3.homedir(), envPath.slice(1)) : envPath;
9359
9359
  }
9360
9360
  function _configVault(options) {
9361
9361
  const debug = parseBoolean(process.env.DOTENV_CONFIG_DEBUG || options && options.debug);
@@ -9368,7 +9368,7 @@ var require_main = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9368
9368
  return { parsed };
9369
9369
  }
9370
9370
  function configDotenv(options) {
9371
- const dotenvPath = path$14.resolve(process.cwd(), ".env");
9371
+ const dotenvPath = path$15.resolve(process.cwd(), ".env");
9372
9372
  let encoding = "utf8";
9373
9373
  let processEnv = process.env;
9374
9374
  if (options && options.processEnv != null) processEnv = options.processEnv;
@@ -9384,11 +9384,11 @@ var require_main = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9384
9384
  }
9385
9385
  let lastError;
9386
9386
  const parsedAll = {};
9387
- for (const path$16 of optionPaths) try {
9388
- const parsed = DotenvModule.parse(fs$9.readFileSync(path$16, { encoding }));
9387
+ for (const path$17 of optionPaths) try {
9388
+ const parsed = DotenvModule.parse(fs$9.readFileSync(path$17, { encoding }));
9389
9389
  DotenvModule.populate(parsedAll, parsed, options);
9390
9390
  } catch (e$1) {
9391
- if (debug) _debug(`Failed to load ${path$16} ${e$1.message}`);
9391
+ if (debug) _debug(`Failed to load ${path$17} ${e$1.message}`);
9392
9392
  lastError = e$1;
9393
9393
  }
9394
9394
  const populated = DotenvModule.populate(processEnv, parsedAll, options);
@@ -9398,7 +9398,7 @@ var require_main = /* @__PURE__ */ __commonJSMin(((exports, module) => {
9398
9398
  const keysCount = Object.keys(populated).length;
9399
9399
  const shortPaths = [];
9400
9400
  for (const filePath of optionPaths) try {
9401
- const relative = path$14.relative(process.cwd(), filePath);
9401
+ const relative = path$15.relative(process.cwd(), filePath);
9402
9402
  shortPaths.push(relative);
9403
9403
  } catch (e$1) {
9404
9404
  if (debug) _debug(`Failed to load ${filePath} ${e$1.message}`);
@@ -9716,7 +9716,7 @@ var require_path = /* @__PURE__ */ __commonJSMin(((exports) => {
9716
9716
  Object.defineProperty(exports, "__esModule", { value: true });
9717
9717
  exports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;
9718
9718
  const os$2 = __require("os");
9719
- const path$13 = __require("path");
9719
+ const path$14 = __require("path");
9720
9720
  const IS_WINDOWS_PLATFORM = os$2.platform() === "win32";
9721
9721
  const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2;
9722
9722
  /**
@@ -9745,7 +9745,7 @@ var require_path = /* @__PURE__ */ __commonJSMin(((exports) => {
9745
9745
  }
9746
9746
  exports.unixify = unixify;
9747
9747
  function makeAbsolute(cwd, filepath) {
9748
- return path$13.resolve(cwd, filepath);
9748
+ return path$14.resolve(cwd, filepath);
9749
9749
  }
9750
9750
  exports.makeAbsolute = makeAbsolute;
9751
9751
  function removeLeadingDotSegment(entry) {
@@ -11011,7 +11011,7 @@ var require_braces = /* @__PURE__ */ __commonJSMin(((exports, module) => {
11011
11011
  //#endregion
11012
11012
  //#region node_modules/micromatch/node_modules/picomatch/lib/constants.js
11013
11013
  var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
11014
- const path$12 = __require("path");
11014
+ const path$13 = __require("path");
11015
11015
  const WIN_SLASH = "\\\\/";
11016
11016
  const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
11017
11017
  /**
@@ -11136,7 +11136,7 @@ var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
11136
11136
  CHAR_UNDERSCORE: 95,
11137
11137
  CHAR_VERTICAL_LINE: 124,
11138
11138
  CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279,
11139
- SEP: path$12.sep,
11139
+ SEP: path$13.sep,
11140
11140
  extglobChars(chars) {
11141
11141
  return {
11142
11142
  "!": {
@@ -11175,7 +11175,7 @@ var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
11175
11175
  //#endregion
11176
11176
  //#region node_modules/micromatch/node_modules/picomatch/lib/utils.js
11177
11177
  var require_utils$3 = /* @__PURE__ */ __commonJSMin(((exports) => {
11178
- const path$11 = __require("path");
11178
+ const path$12 = __require("path");
11179
11179
  const win32 = process.platform === "win32";
11180
11180
  const { REGEX_BACKSLASH, REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL } = require_constants$1();
11181
11181
  exports.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val);
@@ -11195,7 +11195,7 @@ var require_utils$3 = /* @__PURE__ */ __commonJSMin(((exports) => {
11195
11195
  };
11196
11196
  exports.isWindows = (options) => {
11197
11197
  if (options && typeof options.windows === "boolean") return options.windows;
11198
- return win32 === true || path$11.sep === "\\";
11198
+ return win32 === true || path$12.sep === "\\";
11199
11199
  };
11200
11200
  exports.escapeLast = (input, char, lastIdx) => {
11201
11201
  const idx = input.lastIndexOf(char, lastIdx);
@@ -12371,7 +12371,7 @@ var require_parse$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
12371
12371
  //#endregion
12372
12372
  //#region node_modules/micromatch/node_modules/picomatch/lib/picomatch.js
12373
12373
  var require_picomatch$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
12374
- const path$10 = __require("path");
12374
+ const path$11 = __require("path");
12375
12375
  const scan = require_scan();
12376
12376
  const parse = require_parse$2();
12377
12377
  const utils = require_utils$3();
@@ -12510,7 +12510,7 @@ var require_picomatch$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
12510
12510
  * @api public
12511
12511
  */
12512
12512
  picomatch.matchBase = (input, glob, options, posix$1 = utils.isWindows(options)) => {
12513
- return (glob instanceof RegExp ? glob : picomatch.makeRe(glob, options)).test(path$10.basename(input));
12513
+ return (glob instanceof RegExp ? glob : picomatch.makeRe(glob, options)).test(path$11.basename(input));
12514
12514
  };
12515
12515
  /**
12516
12516
  * Returns true if **any** of the given glob `patterns` match the specified `string`.
@@ -13068,7 +13068,7 @@ var require_micromatch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
13068
13068
  var require_pattern = /* @__PURE__ */ __commonJSMin(((exports) => {
13069
13069
  Object.defineProperty(exports, "__esModule", { value: true });
13070
13070
  exports.isAbsolute = exports.partitionAbsoluteAndRelative = exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;
13071
- const path$9 = __require("path");
13071
+ const path$10 = __require("path");
13072
13072
  const globParent = require_glob_parent();
13073
13073
  const micromatch = require_micromatch();
13074
13074
  const GLOBSTAR = "**";
@@ -13176,7 +13176,7 @@ var require_pattern = /* @__PURE__ */ __commonJSMin(((exports) => {
13176
13176
  }
13177
13177
  exports.endsWithSlashGlobStar = endsWithSlashGlobStar;
13178
13178
  function isAffectDepthOfReadingPattern(pattern) {
13179
- const basename$1 = path$9.basename(pattern);
13179
+ const basename$1 = path$10.basename(pattern);
13180
13180
  return endsWithSlashGlobStar(pattern) || isStaticPattern(basename$1);
13181
13181
  }
13182
13182
  exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;
@@ -13250,7 +13250,7 @@ var require_pattern = /* @__PURE__ */ __commonJSMin(((exports) => {
13250
13250
  }
13251
13251
  exports.partitionAbsoluteAndRelative = partitionAbsoluteAndRelative;
13252
13252
  function isAbsolute(pattern) {
13253
- return path$9.isAbsolute(pattern);
13253
+ return path$10.isAbsolute(pattern);
13254
13254
  }
13255
13255
  exports.isAbsolute = isAbsolute;
13256
13256
  }));
@@ -13493,8 +13493,8 @@ var require_tasks = /* @__PURE__ */ __commonJSMin(((exports) => {
13493
13493
  var require_async$5 = /* @__PURE__ */ __commonJSMin(((exports) => {
13494
13494
  Object.defineProperty(exports, "__esModule", { value: true });
13495
13495
  exports.read = void 0;
13496
- function read(path$16, settings, callback) {
13497
- settings.fs.lstat(path$16, (lstatError, lstat) => {
13496
+ function read(path$17, settings, callback) {
13497
+ settings.fs.lstat(path$17, (lstatError, lstat) => {
13498
13498
  if (lstatError !== null) {
13499
13499
  callFailureCallback(callback, lstatError);
13500
13500
  return;
@@ -13503,7 +13503,7 @@ var require_async$5 = /* @__PURE__ */ __commonJSMin(((exports) => {
13503
13503
  callSuccessCallback(callback, lstat);
13504
13504
  return;
13505
13505
  }
13506
- settings.fs.stat(path$16, (statError, stat) => {
13506
+ settings.fs.stat(path$17, (statError, stat) => {
13507
13507
  if (statError !== null) {
13508
13508
  if (settings.throwErrorOnBrokenSymbolicLink) {
13509
13509
  callFailureCallback(callback, statError);
@@ -13531,11 +13531,11 @@ var require_async$5 = /* @__PURE__ */ __commonJSMin(((exports) => {
13531
13531
  var require_sync$5 = /* @__PURE__ */ __commonJSMin(((exports) => {
13532
13532
  Object.defineProperty(exports, "__esModule", { value: true });
13533
13533
  exports.read = void 0;
13534
- function read(path$16, settings) {
13535
- const lstat = settings.fs.lstatSync(path$16);
13534
+ function read(path$17, settings) {
13535
+ const lstat = settings.fs.lstatSync(path$17);
13536
13536
  if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) return lstat;
13537
13537
  try {
13538
- const stat = settings.fs.statSync(path$16);
13538
+ const stat = settings.fs.statSync(path$17);
13539
13539
  if (settings.markSymbolicLink) stat.isSymbolicLink = () => true;
13540
13540
  return stat;
13541
13541
  } catch (error) {
@@ -13594,17 +13594,17 @@ var require_out$3 = /* @__PURE__ */ __commonJSMin(((exports) => {
13594
13594
  const sync = require_sync$5();
13595
13595
  const settings_1 = require_settings$3();
13596
13596
  exports.Settings = settings_1.default;
13597
- function stat(path$16, optionsOrSettingsOrCallback, callback) {
13597
+ function stat(path$17, optionsOrSettingsOrCallback, callback) {
13598
13598
  if (typeof optionsOrSettingsOrCallback === "function") {
13599
- async.read(path$16, getSettings(), optionsOrSettingsOrCallback);
13599
+ async.read(path$17, getSettings(), optionsOrSettingsOrCallback);
13600
13600
  return;
13601
13601
  }
13602
- async.read(path$16, getSettings(optionsOrSettingsOrCallback), callback);
13602
+ async.read(path$17, getSettings(optionsOrSettingsOrCallback), callback);
13603
13603
  }
13604
13604
  exports.stat = stat;
13605
- function statSync(path$16, optionsOrSettings) {
13605
+ function statSync(path$17, optionsOrSettings) {
13606
13606
  const settings = getSettings(optionsOrSettings);
13607
- return sync.read(path$16, settings);
13607
+ return sync.read(path$17, settings);
13608
13608
  }
13609
13609
  exports.statSync = statSync;
13610
13610
  function getSettings(settingsOrOptions = {}) {
@@ -13803,16 +13803,16 @@ var require_async$4 = /* @__PURE__ */ __commonJSMin(((exports) => {
13803
13803
  return;
13804
13804
  }
13805
13805
  rpl(names.map((name$1) => {
13806
- const path$16 = common.joinPathSegments(directory, name$1, settings.pathSegmentSeparator);
13806
+ const path$17 = common.joinPathSegments(directory, name$1, settings.pathSegmentSeparator);
13807
13807
  return (done) => {
13808
- fsStat.stat(path$16, settings.fsStatSettings, (error, stats) => {
13808
+ fsStat.stat(path$17, settings.fsStatSettings, (error, stats) => {
13809
13809
  if (error !== null) {
13810
13810
  done(error);
13811
13811
  return;
13812
13812
  }
13813
13813
  const entry = {
13814
13814
  name: name$1,
13815
- path: path$16,
13815
+ path: path$17,
13816
13816
  dirent: utils.fs.createDirentFromStats(name$1, stats)
13817
13817
  };
13818
13818
  if (settings.stats) entry.stats = stats;
@@ -13909,7 +13909,7 @@ var require_fs = /* @__PURE__ */ __commonJSMin(((exports) => {
13909
13909
  //#region node_modules/@nodelib/fs.scandir/out/settings.js
13910
13910
  var require_settings$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
13911
13911
  Object.defineProperty(exports, "__esModule", { value: true });
13912
- const path$8 = __require("path");
13912
+ const path$9 = __require("path");
13913
13913
  const fsStat = require_out$3();
13914
13914
  const fs = require_fs();
13915
13915
  var Settings = class {
@@ -13917,7 +13917,7 @@ var require_settings$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
13917
13917
  this._options = _options;
13918
13918
  this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);
13919
13919
  this.fs = fs.createFileSystemAdapter(this._options.fs);
13920
- this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$8.sep);
13920
+ this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$9.sep);
13921
13921
  this.stats = this._getValue(this._options.stats, false);
13922
13922
  this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
13923
13923
  this.fsStatSettings = new fsStat.Settings({
@@ -13942,17 +13942,17 @@ var require_out$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
13942
13942
  const sync = require_sync$4();
13943
13943
  const settings_1 = require_settings$2();
13944
13944
  exports.Settings = settings_1.default;
13945
- function scandir(path$16, optionsOrSettingsOrCallback, callback) {
13945
+ function scandir(path$17, optionsOrSettingsOrCallback, callback) {
13946
13946
  if (typeof optionsOrSettingsOrCallback === "function") {
13947
- async.read(path$16, getSettings(), optionsOrSettingsOrCallback);
13947
+ async.read(path$17, getSettings(), optionsOrSettingsOrCallback);
13948
13948
  return;
13949
13949
  }
13950
- async.read(path$16, getSettings(optionsOrSettingsOrCallback), callback);
13950
+ async.read(path$17, getSettings(optionsOrSettingsOrCallback), callback);
13951
13951
  }
13952
13952
  exports.scandir = scandir;
13953
- function scandirSync(path$16, optionsOrSettings) {
13953
+ function scandirSync(path$17, optionsOrSettings) {
13954
13954
  const settings = getSettings(optionsOrSettings);
13955
- return sync.read(path$16, settings);
13955
+ return sync.read(path$17, settings);
13956
13956
  }
13957
13957
  exports.scandirSync = scandirSync;
13958
13958
  function getSettings(settingsOrOptions = {}) {
@@ -14522,7 +14522,7 @@ var require_sync$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
14522
14522
  //#region node_modules/@nodelib/fs.walk/out/settings.js
14523
14523
  var require_settings$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
14524
14524
  Object.defineProperty(exports, "__esModule", { value: true });
14525
- const path$7 = __require("path");
14525
+ const path$8 = __require("path");
14526
14526
  const fsScandir = require_out$2();
14527
14527
  var Settings = class {
14528
14528
  constructor(_options = {}) {
@@ -14532,7 +14532,7 @@ var require_settings$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
14532
14532
  this.deepFilter = this._getValue(this._options.deepFilter, null);
14533
14533
  this.entryFilter = this._getValue(this._options.entryFilter, null);
14534
14534
  this.errorFilter = this._getValue(this._options.errorFilter, null);
14535
- this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$7.sep);
14535
+ this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$8.sep);
14536
14536
  this.fsScandirSettings = new fsScandir.Settings({
14537
14537
  followSymbolicLinks: this._options.followSymbolicLinks,
14538
14538
  fs: this._options.fs,
@@ -14586,7 +14586,7 @@ var require_out$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
14586
14586
  //#region node_modules/fast-glob/out/readers/reader.js
14587
14587
  var require_reader = /* @__PURE__ */ __commonJSMin(((exports) => {
14588
14588
  Object.defineProperty(exports, "__esModule", { value: true });
14589
- const path$6 = __require("path");
14589
+ const path$7 = __require("path");
14590
14590
  const fsStat = require_out$3();
14591
14591
  const utils = require_utils$2();
14592
14592
  var Reader = class {
@@ -14599,7 +14599,7 @@ var require_reader = /* @__PURE__ */ __commonJSMin(((exports) => {
14599
14599
  });
14600
14600
  }
14601
14601
  _getFullEntryPath(filepath) {
14602
- return path$6.resolve(this._settings.cwd, filepath);
14602
+ return path$7.resolve(this._settings.cwd, filepath);
14603
14603
  }
14604
14604
  _makeEntry(stats, pattern) {
14605
14605
  const entry = {
@@ -14943,7 +14943,7 @@ var require_entry = /* @__PURE__ */ __commonJSMin(((exports) => {
14943
14943
  //#region node_modules/fast-glob/out/providers/provider.js
14944
14944
  var require_provider = /* @__PURE__ */ __commonJSMin(((exports) => {
14945
14945
  Object.defineProperty(exports, "__esModule", { value: true });
14946
- const path$5 = __require("path");
14946
+ const path$6 = __require("path");
14947
14947
  const deep_1 = require_deep();
14948
14948
  const entry_1 = require_entry$1();
14949
14949
  const error_1 = require_error();
@@ -14957,7 +14957,7 @@ var require_provider = /* @__PURE__ */ __commonJSMin(((exports) => {
14957
14957
  this.entryTransformer = new entry_2.default(this._settings);
14958
14958
  }
14959
14959
  _getRootDirectory(task) {
14960
- return path$5.resolve(this._settings.cwd, task.base);
14960
+ return path$6.resolve(this._settings.cwd, task.base);
14961
14961
  }
14962
14962
  _getReaderOptions(task) {
14963
14963
  const basePath = task.base === "." ? "" : task.base;
@@ -15410,14 +15410,14 @@ var require_ignore = /* @__PURE__ */ __commonJSMin(((exports, module) => {
15410
15410
  makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._add, this);
15411
15411
  return this._added;
15412
15412
  }
15413
- test(path$16, checkUnignored, mode) {
15413
+ test(path$17, checkUnignored, mode) {
15414
15414
  let ignored = false;
15415
15415
  let unignored = false;
15416
15416
  let matchedRule;
15417
15417
  this._rules.forEach((rule) => {
15418
15418
  const { negative } = rule;
15419
15419
  if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) return;
15420
- if (!rule[mode].test(path$16)) return;
15420
+ if (!rule[mode].test(path$17)) return;
15421
15421
  ignored = !negative;
15422
15422
  unignored = negative;
15423
15423
  matchedRule = negative ? UNDEFINED : rule;
@@ -15433,13 +15433,13 @@ var require_ignore = /* @__PURE__ */ __commonJSMin(((exports, module) => {
15433
15433
  const throwError = (message, Ctor) => {
15434
15434
  throw new Ctor(message);
15435
15435
  };
15436
- const checkPath = (path$16, originalPath, doThrow) => {
15437
- if (!isString(path$16)) return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError);
15438
- if (!path$16) return doThrow(`path must not be empty`, TypeError);
15439
- if (checkPath.isNotRelative(path$16)) return doThrow(`path should be a \`path.relative()\`d string, but got "${originalPath}"`, RangeError);
15436
+ const checkPath = (path$17, originalPath, doThrow) => {
15437
+ if (!isString(path$17)) return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError);
15438
+ if (!path$17) return doThrow(`path must not be empty`, TypeError);
15439
+ if (checkPath.isNotRelative(path$17)) return doThrow(`path should be a \`path.relative()\`d string, but got "${originalPath}"`, RangeError);
15440
15440
  return true;
15441
15441
  };
15442
- const isNotRelative = (path$16) => REGEX_TEST_INVALID_PATH.test(path$16);
15442
+ const isNotRelative = (path$17) => REGEX_TEST_INVALID_PATH.test(path$17);
15443
15443
  checkPath.isNotRelative = isNotRelative;
15444
15444
  /* istanbul ignore next */
15445
15445
  checkPath.convert = (p$1) => p$1;
@@ -15462,49 +15462,49 @@ var require_ignore = /* @__PURE__ */ __commonJSMin(((exports, module) => {
15462
15462
  return this.add(pattern);
15463
15463
  }
15464
15464
  _test(originalPath, cache$1, checkUnignored, slices) {
15465
- const path$16 = originalPath && checkPath.convert(originalPath);
15466
- checkPath(path$16, originalPath, this._strictPathCheck ? throwError : RETURN_FALSE);
15467
- return this._t(path$16, cache$1, checkUnignored, slices);
15465
+ const path$17 = originalPath && checkPath.convert(originalPath);
15466
+ checkPath(path$17, originalPath, this._strictPathCheck ? throwError : RETURN_FALSE);
15467
+ return this._t(path$17, cache$1, checkUnignored, slices);
15468
15468
  }
15469
- checkIgnore(path$16) {
15470
- if (!REGEX_TEST_TRAILING_SLASH.test(path$16)) return this.test(path$16);
15471
- const slices = path$16.split(SLASH).filter(Boolean);
15469
+ checkIgnore(path$17) {
15470
+ if (!REGEX_TEST_TRAILING_SLASH.test(path$17)) return this.test(path$17);
15471
+ const slices = path$17.split(SLASH).filter(Boolean);
15472
15472
  slices.pop();
15473
15473
  if (slices.length) {
15474
15474
  const parent = this._t(slices.join(SLASH) + SLASH, this._testCache, true, slices);
15475
15475
  if (parent.ignored) return parent;
15476
15476
  }
15477
- return this._rules.test(path$16, false, MODE_CHECK_IGNORE);
15477
+ return this._rules.test(path$17, false, MODE_CHECK_IGNORE);
15478
15478
  }
15479
- _t(path$16, cache$1, checkUnignored, slices) {
15480
- if (path$16 in cache$1) return cache$1[path$16];
15481
- if (!slices) slices = path$16.split(SLASH).filter(Boolean);
15479
+ _t(path$17, cache$1, checkUnignored, slices) {
15480
+ if (path$17 in cache$1) return cache$1[path$17];
15481
+ if (!slices) slices = path$17.split(SLASH).filter(Boolean);
15482
15482
  slices.pop();
15483
- if (!slices.length) return cache$1[path$16] = this._rules.test(path$16, checkUnignored, MODE_IGNORE);
15483
+ if (!slices.length) return cache$1[path$17] = this._rules.test(path$17, checkUnignored, MODE_IGNORE);
15484
15484
  const parent = this._t(slices.join(SLASH) + SLASH, cache$1, checkUnignored, slices);
15485
- return cache$1[path$16] = parent.ignored ? parent : this._rules.test(path$16, checkUnignored, MODE_IGNORE);
15485
+ return cache$1[path$17] = parent.ignored ? parent : this._rules.test(path$17, checkUnignored, MODE_IGNORE);
15486
15486
  }
15487
- ignores(path$16) {
15488
- return this._test(path$16, this._ignoreCache, false).ignored;
15487
+ ignores(path$17) {
15488
+ return this._test(path$17, this._ignoreCache, false).ignored;
15489
15489
  }
15490
15490
  createFilter() {
15491
- return (path$16) => !this.ignores(path$16);
15491
+ return (path$17) => !this.ignores(path$17);
15492
15492
  }
15493
15493
  filter(paths) {
15494
15494
  return makeArray(paths).filter(this.createFilter());
15495
15495
  }
15496
- test(path$16) {
15497
- return this._test(path$16, this._testCache, true);
15496
+ test(path$17) {
15497
+ return this._test(path$17, this._testCache, true);
15498
15498
  }
15499
15499
  };
15500
15500
  const factory = (options) => new Ignore(options);
15501
- const isPathValid = (path$16) => checkPath(path$16 && checkPath.convert(path$16), path$16, RETURN_FALSE);
15501
+ const isPathValid = (path$17) => checkPath(path$17 && checkPath.convert(path$17), path$17, RETURN_FALSE);
15502
15502
  /* istanbul ignore next */
15503
15503
  const setupWindows = () => {
15504
15504
  const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/");
15505
15505
  checkPath.convert = makePosix;
15506
15506
  const REGEX_TEST_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i;
15507
- checkPath.isNotRelative = (path$16) => REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path$16) || isNotRelative(path$16);
15507
+ checkPath.isNotRelative = (path$17) => REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path$17) || isNotRelative(path$17);
15508
15508
  };
15509
15509
  /* istanbul ignore next */
15510
15510
  if (typeof process !== "undefined" && process.platform === "win32") setupWindows();
@@ -15518,15 +15518,15 @@ var require_ignore = /* @__PURE__ */ __commonJSMin(((exports, module) => {
15518
15518
  //#region node_modules/is-path-inside/index.js
15519
15519
  var import_ignore = /* @__PURE__ */ __toESM(require_ignore(), 1);
15520
15520
  function isPathInside(childPath, parentPath) {
15521
- const relation = nodePath.relative(parentPath, childPath);
15522
- return Boolean(relation && relation !== ".." && !relation.startsWith(`..${nodePath.sep}`) && relation !== nodePath.resolve(childPath));
15521
+ const relation = path.relative(parentPath, childPath);
15522
+ return Boolean(relation && relation !== ".." && !relation.startsWith(`..${path.sep}`) && relation !== path.resolve(childPath));
15523
15523
  }
15524
15524
 
15525
15525
  //#endregion
15526
15526
  //#region node_modules/slash/index.js
15527
- function slash(path$16) {
15528
- if (path$16.startsWith("\\\\?\\")) return path$16;
15529
- return path$16.replace(/\\/g, "/");
15527
+ function slash(path$17) {
15528
+ if (path$17.startsWith("\\\\?\\")) return path$17;
15529
+ return path$17.replace(/\\/g, "/");
15530
15530
  }
15531
15531
 
15532
15532
  //#endregion
@@ -15612,7 +15612,7 @@ const buildPathChain = (startPath, rootPath) => {
15612
15612
  let currentPath = startPath;
15613
15613
  chain.push(currentPath);
15614
15614
  while (currentPath !== rootPath) {
15615
- const parentPath = nodePath.dirname(currentPath);
15615
+ const parentPath = path.dirname(currentPath);
15616
15616
  if (parentPath === currentPath) break;
15617
15617
  currentPath = parentPath;
15618
15618
  chain.push(currentPath);
@@ -15621,7 +15621,7 @@ const buildPathChain = (startPath, rootPath) => {
15621
15621
  };
15622
15622
  const findGitRootInChain = async (paths, statMethod) => {
15623
15623
  for (const directory of paths) {
15624
- const gitPath = nodePath.join(directory, ".git");
15624
+ const gitPath = path.join(directory, ".git");
15625
15625
  try {
15626
15626
  if (pathHasGitDirectory(await statMethod(gitPath))) return directory;
15627
15627
  } catch {}
@@ -15630,11 +15630,11 @@ const findGitRootInChain = async (paths, statMethod) => {
15630
15630
  const findGitRootSyncUncached = (cwd, fsImplementation) => {
15631
15631
  const statSyncMethod = getStatSyncMethod$1(fsImplementation);
15632
15632
  if (!statSyncMethod) return;
15633
- const currentPath = nodePath.resolve(cwd);
15634
- const { root } = nodePath.parse(currentPath);
15633
+ const currentPath = path.resolve(cwd);
15634
+ const { root } = path.parse(currentPath);
15635
15635
  const chain = buildPathChain(currentPath, root);
15636
15636
  for (const directory of chain) {
15637
- const gitPath = nodePath.join(directory, ".git");
15637
+ const gitPath = path.join(directory, ".git");
15638
15638
  try {
15639
15639
  if (pathHasGitDirectory(statSyncMethod(gitPath))) return directory;
15640
15640
  } catch {}
@@ -15647,8 +15647,8 @@ const findGitRootSync = (cwd, fsImplementation) => {
15647
15647
  const findGitRootAsyncUncached = async (cwd, fsImplementation) => {
15648
15648
  const statMethod = getAsyncStatMethod(fsImplementation);
15649
15649
  if (!statMethod) return findGitRootSync(cwd, fsImplementation);
15650
- const currentPath = nodePath.resolve(cwd);
15651
- const { root } = nodePath.parse(currentPath);
15650
+ const currentPath = path.resolve(cwd);
15651
+ const { root } = path.parse(currentPath);
15652
15652
  return findGitRootInChain(buildPathChain(currentPath, root), statMethod);
15653
15653
  };
15654
15654
  const findGitRoot = async (cwd, fsImplementation) => {
@@ -15663,8 +15663,8 @@ Get paths to all .gitignore files from git root to cwd (inclusive).
15663
15663
  @returns {string[]} Array of .gitignore file paths to search for.
15664
15664
  */
15665
15665
  const isWithinGitRoot = (gitRoot, cwd) => {
15666
- const resolvedGitRoot = nodePath.resolve(gitRoot);
15667
- const resolvedCwd = nodePath.resolve(cwd);
15666
+ const resolvedGitRoot = path.resolve(gitRoot);
15667
+ const resolvedCwd = path.resolve(cwd);
15668
15668
  return resolvedCwd === resolvedGitRoot || isPathInside(resolvedCwd, resolvedGitRoot);
15669
15669
  };
15670
15670
  const getParentGitignorePaths = (gitRoot, cwd) => {
@@ -15672,7 +15672,7 @@ const getParentGitignorePaths = (gitRoot, cwd) => {
15672
15672
  if (typeof cwd !== "string") throw new TypeError("cwd must be a string");
15673
15673
  if (!gitRoot) return [];
15674
15674
  if (!isWithinGitRoot(gitRoot, cwd)) return [];
15675
- return [...buildPathChain(nodePath.resolve(cwd), nodePath.resolve(gitRoot))].reverse().map((directory) => nodePath.join(directory, ".gitignore"));
15675
+ return [...buildPathChain(path.resolve(cwd), path.resolve(gitRoot))].reverse().map((directory) => path.join(directory, ".gitignore"));
15676
15676
  };
15677
15677
  /**
15678
15678
  Convert ignore patterns to fast-glob compatible format.
@@ -15779,18 +15779,18 @@ const applyBaseToPattern = (pattern, base) => {
15779
15779
  const slashIndex = cleanPattern.indexOf("/");
15780
15780
  const hasNonTrailingSlash = slashIndex !== -1 && slashIndex !== cleanPattern.length - 1;
15781
15781
  let result;
15782
- if (!hasNonTrailingSlash) result = nodePath.posix.join(base, "**", cleanPattern);
15783
- else if (cleanPattern.startsWith("/")) result = nodePath.posix.join(base, cleanPattern.slice(1));
15784
- else result = nodePath.posix.join(base, cleanPattern);
15782
+ if (!hasNonTrailingSlash) result = path.posix.join(base, "**", cleanPattern);
15783
+ else if (cleanPattern.startsWith("/")) result = path.posix.join(base, cleanPattern.slice(1));
15784
+ else result = path.posix.join(base, cleanPattern);
15785
15785
  return isNegative ? "!" + result : result;
15786
15786
  };
15787
15787
  const parseIgnoreFile = (file, cwd) => {
15788
- const base = slash(nodePath.relative(cwd, nodePath.dirname(file.filePath)));
15788
+ const base = slash(path.relative(cwd, path.dirname(file.filePath)));
15789
15789
  return file.content.split(/\r?\n/).filter((line) => line && !line.startsWith("#")).map((pattern) => applyBaseToPattern(pattern, base));
15790
15790
  };
15791
15791
  const toRelativePath = (fileOrDirectory, cwd) => {
15792
- if (nodePath.isAbsolute(fileOrDirectory)) {
15793
- const relativePath = nodePath.relative(cwd, fileOrDirectory);
15792
+ if (path.isAbsolute(fileOrDirectory)) {
15793
+ const relativePath = path.relative(cwd, fileOrDirectory);
15794
15794
  if (relativePath && !isPathInside(fileOrDirectory, cwd)) return;
15795
15795
  return relativePath;
15796
15796
  }
@@ -15800,11 +15800,11 @@ const toRelativePath = (fileOrDirectory, cwd) => {
15800
15800
  };
15801
15801
  const createIgnorePredicate = (patterns, cwd, baseDir) => {
15802
15802
  const ignores = (0, import_ignore.default)().add(patterns);
15803
- const resolvedCwd = nodePath.normalize(nodePath.resolve(cwd));
15804
- const resolvedBaseDir = nodePath.normalize(nodePath.resolve(baseDir));
15803
+ const resolvedCwd = path.normalize(path.resolve(cwd));
15804
+ const resolvedBaseDir = path.normalize(path.resolve(baseDir));
15805
15805
  return (fileOrDirectory) => {
15806
15806
  fileOrDirectory = toPath$1(fileOrDirectory);
15807
- if (nodePath.normalize(nodePath.resolve(fileOrDirectory)) === resolvedCwd) return false;
15807
+ if (path.normalize(path.resolve(fileOrDirectory)) === resolvedCwd) return false;
15808
15808
  const relativePath = toRelativePath(fileOrDirectory, resolvedBaseDir);
15809
15809
  if (relativePath === void 0) return false;
15810
15810
  return relativePath ? ignores.ignores(slash(relativePath)) : false;
@@ -15879,35 +15879,35 @@ const assertPatternsInput = (patterns) => {
15879
15879
  };
15880
15880
  const getStatMethod = (fsImplementation) => bindFsMethod(fsImplementation?.promises, "stat") ?? bindFsMethod(fs.promises, "stat") ?? promisifyFsMethod(fsImplementation, "stat");
15881
15881
  const getStatSyncMethod = (fsImplementation) => bindFsMethod(fsImplementation, "statSync") ?? bindFsMethod(fs, "statSync");
15882
- const isDirectory = async (path$16, fsImplementation) => {
15882
+ const isDirectory = async (path$17, fsImplementation) => {
15883
15883
  try {
15884
- return (await getStatMethod(fsImplementation)(path$16)).isDirectory();
15884
+ return (await getStatMethod(fsImplementation)(path$17)).isDirectory();
15885
15885
  } catch {
15886
15886
  return false;
15887
15887
  }
15888
15888
  };
15889
- const isDirectorySync = (path$16, fsImplementation) => {
15889
+ const isDirectorySync = (path$17, fsImplementation) => {
15890
15890
  try {
15891
- return getStatSyncMethod(fsImplementation)(path$16).isDirectory();
15891
+ return getStatSyncMethod(fsImplementation)(path$17).isDirectory();
15892
15892
  } catch {
15893
15893
  return false;
15894
15894
  }
15895
15895
  };
15896
15896
  const normalizePathForDirectoryGlob = (filePath, cwd) => {
15897
- const path$16 = isNegativePattern(filePath) ? filePath.slice(1) : filePath;
15898
- return nodePath.isAbsolute(path$16) ? path$16 : nodePath.join(cwd, path$16);
15897
+ const path$17 = isNegativePattern(filePath) ? filePath.slice(1) : filePath;
15898
+ return path.isAbsolute(path$17) ? path$17 : path.join(cwd, path$17);
15899
15899
  };
15900
15900
  const shouldExpandGlobstarDirectory = (pattern) => {
15901
15901
  const match = pattern?.match(/\*\*\/([^/]+)$/);
15902
15902
  if (!match) return false;
15903
15903
  const dirname$2 = match[1];
15904
15904
  const hasWildcards = /[*?[\]{}]/.test(dirname$2);
15905
- const hasExtension = nodePath.extname(dirname$2) && !dirname$2.startsWith(".");
15905
+ const hasExtension = path.extname(dirname$2) && !dirname$2.startsWith(".");
15906
15906
  return !hasWildcards && !hasExtension;
15907
15907
  };
15908
15908
  const getDirectoryGlob = ({ directoryPath, files, extensions }) => {
15909
15909
  const extensionGlob = extensions?.length > 0 ? `.${extensions.length > 1 ? `{${extensions.join(",")}}` : extensions[0]}` : "";
15910
- return files ? files.map((file) => nodePath.posix.join(directoryPath, `**/${nodePath.extname(file) ? file : `${file}${extensionGlob}`}`)) : [nodePath.posix.join(directoryPath, `**${extensionGlob ? `/*${extensionGlob}` : ""}`)];
15910
+ return files ? files.map((file) => path.posix.join(directoryPath, `**/${path.extname(file) ? file : `${file}${extensionGlob}`}`)) : [path.posix.join(directoryPath, `**${extensionGlob ? `/*${extensionGlob}` : ""}`)];
15911
15911
  };
15912
15912
  const directoryToGlob = async (directoryPaths, { cwd = y.cwd(), files, extensions, fs: fsImplementation } = {}) => {
15913
15913
  return (await Promise.all(directoryPaths.map(async (directoryPath) => {
@@ -16022,12 +16022,12 @@ const createFilterFunction = (isIgnored, cwd) => {
16022
16022
  const basePath = cwd || y.cwd();
16023
16023
  const pathCache = /* @__PURE__ */ new Map();
16024
16024
  return (fastGlobResult) => {
16025
- const pathKey$1 = nodePath.normalize(fastGlobResult.path ?? fastGlobResult);
16025
+ const pathKey$1 = path.normalize(fastGlobResult.path ?? fastGlobResult);
16026
16026
  if (seen.has(pathKey$1)) return false;
16027
16027
  if (isIgnored) {
16028
16028
  let absolutePath = pathCache.get(pathKey$1);
16029
16029
  if (absolutePath === void 0) {
16030
- absolutePath = nodePath.isAbsolute(pathKey$1) ? pathKey$1 : nodePath.resolve(basePath, pathKey$1);
16030
+ absolutePath = path.isAbsolute(pathKey$1) ? pathKey$1 : path.resolve(basePath, pathKey$1);
16031
16031
  pathCache.set(pathKey$1, absolutePath);
16032
16032
  if (pathCache.size > 1e4) pathCache.clear();
16033
16033
  }
@@ -17100,9 +17100,9 @@ var require_lib = /* @__PURE__ */ __commonJSMin(((exports, module) => {
17100
17100
  //#endregion
17101
17101
  //#region src/core/utils/fs.ts
17102
17102
  var import_lib = /* @__PURE__ */ __toESM(require_lib(), 1);
17103
- async function pathExists(path$16) {
17103
+ async function pathExists(path$17) {
17104
17104
  try {
17105
- await access(path$16);
17105
+ await access(path$17);
17106
17106
  return true;
17107
17107
  } catch {
17108
17108
  return false;
@@ -17605,7 +17605,7 @@ var require_ejs = /* @__PURE__ */ __commonJSMin(((exports) => {
17605
17605
  * @public
17606
17606
  */
17607
17607
  var fs$5 = __require("fs");
17608
- var path$4 = __require("path");
17608
+ var path$5 = __require("path");
17609
17609
  var utils = require_utils();
17610
17610
  var scopeOptionWarned = false;
17611
17611
  /** @type {string} */
@@ -17675,9 +17675,9 @@ var require_ejs = /* @__PURE__ */ __commonJSMin(((exports) => {
17675
17675
  * @return {String}
17676
17676
  */
17677
17677
  exports.resolveInclude = function(name$1, filename, isDir) {
17678
- var dirname$2 = path$4.dirname;
17679
- var extname = path$4.extname;
17680
- var resolve$1 = path$4.resolve;
17678
+ var dirname$2 = path$5.dirname;
17679
+ var extname = path$5.extname;
17680
+ var resolve$1 = path$5.resolve;
17681
17681
  var includePath = resolve$1(isDir ? filename : dirname$2(filename), name$1);
17682
17682
  if (!extname(name$1)) includePath += ".ejs";
17683
17683
  return includePath;
@@ -17703,22 +17703,22 @@ var require_ejs = /* @__PURE__ */ __commonJSMin(((exports) => {
17703
17703
  * @param {Options} options compilation options
17704
17704
  * @return {String}
17705
17705
  */
17706
- function getIncludePath(path$16, options) {
17706
+ function getIncludePath(path$17, options) {
17707
17707
  var includePath;
17708
17708
  var filePath;
17709
17709
  var views = options.views;
17710
- var match = /^[A-Za-z]+:\\|^\//.exec(path$16);
17710
+ var match = /^[A-Za-z]+:\\|^\//.exec(path$17);
17711
17711
  if (match && match.length) {
17712
- path$16 = path$16.replace(/^\/*/, "");
17713
- if (Array.isArray(options.root)) includePath = resolvePaths(path$16, options.root);
17714
- else includePath = exports.resolveInclude(path$16, options.root || "/", true);
17712
+ path$17 = path$17.replace(/^\/*/, "");
17713
+ if (Array.isArray(options.root)) includePath = resolvePaths(path$17, options.root);
17714
+ else includePath = exports.resolveInclude(path$17, options.root || "/", true);
17715
17715
  } else {
17716
17716
  if (options.filename) {
17717
- filePath = exports.resolveInclude(path$16, options.filename);
17717
+ filePath = exports.resolveInclude(path$17, options.filename);
17718
17718
  if (fs$5.existsSync(filePath)) includePath = filePath;
17719
17719
  }
17720
- if (!includePath && Array.isArray(views)) includePath = resolvePaths(path$16, views);
17721
- if (!includePath && typeof options.includer !== "function") throw new Error("Could not find the include file \"" + options.escapeFunction(path$16) + "\"");
17720
+ if (!includePath && Array.isArray(views)) includePath = resolvePaths(path$17, views);
17721
+ if (!includePath && typeof options.includer !== "function") throw new Error("Could not find the include file \"" + options.escapeFunction(path$17) + "\"");
17722
17722
  }
17723
17723
  return includePath;
17724
17724
  }
@@ -17810,11 +17810,11 @@ var require_ejs = /* @__PURE__ */ __commonJSMin(((exports) => {
17810
17810
  * Depending on the value of `options.client`, either type might be returned
17811
17811
  * @static
17812
17812
  */
17813
- function includeFile(path$16, options) {
17813
+ function includeFile(path$17, options) {
17814
17814
  var opts = utils.shallowCopy(utils.createNullProtoObjWherePossible(), options);
17815
- opts.filename = getIncludePath(path$16, opts);
17815
+ opts.filename = getIncludePath(path$17, opts);
17816
17816
  if (typeof options.includer === "function") {
17817
- var includerResult = options.includer(path$16, opts.filename);
17817
+ var includerResult = options.includer(path$17, opts.filename);
17818
17818
  if (includerResult) {
17819
17819
  if (includerResult.filename) opts.filename = includerResult.filename;
17820
17820
  if (includerResult.template) return handleCache(opts, includerResult.template);
@@ -18065,10 +18065,10 @@ var require_ejs = /* @__PURE__ */ __commonJSMin(((exports) => {
18065
18065
  throw e$1;
18066
18066
  }
18067
18067
  var returnedFn = opts.client ? fn : function anonymous(data) {
18068
- var include = function(path$16, includeData) {
18068
+ var include = function(path$17, includeData) {
18069
18069
  var d$2 = utils.shallowCopy(utils.createNullProtoObjWherePossible(), data);
18070
18070
  if (includeData) d$2 = utils.shallowCopy(d$2, includeData);
18071
- return includeFile(path$16, opts)(d$2);
18071
+ return includeFile(path$17, opts)(d$2);
18072
18072
  };
18073
18073
  return fn.apply(opts.context, [
18074
18074
  data || utils.createNullProtoObjWherePossible(),
@@ -18079,7 +18079,7 @@ var require_ejs = /* @__PURE__ */ __commonJSMin(((exports) => {
18079
18079
  };
18080
18080
  if (opts.filename && typeof Object.defineProperty === "function") {
18081
18081
  var filename = opts.filename;
18082
- var basename$1 = path$4.basename(filename, path$4.extname(filename));
18082
+ var basename$1 = path$5.basename(filename, path$5.extname(filename));
18083
18083
  try {
18084
18084
  Object.defineProperty(returnedFn, "name", {
18085
18085
  value: basename$1,
@@ -26260,14 +26260,12 @@ async function printAnimatedLines(lines) {
26260
26260
  //#region src/cli/utils/banner.ts
26261
26261
  const orange$1 = source_default.hex("#E86B3C");
26262
26262
  const BANNER_LINES = [
26263
- "",
26264
26263
  "██████╗ █████╗ ███████╗███████╗ ██╗ ██╗██╗ ██╗",
26265
26264
  "██╔══██╗██╔══██╗██╔════╝██╔════╝ ██║ ██║██║ ██║",
26266
26265
  "██████╔╝███████║███████╗█████╗ ███████║███████║",
26267
26266
  "██╔══██╗██╔══██║╚════██║██╔══╝ ╚════██║╚════██║",
26268
26267
  "██████╔╝██║ ██║███████║███████╗ ██║ ██║",
26269
- "╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝ ╚═╝",
26270
- ""
26268
+ "╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝ ╚═╝"
26271
26269
  ];
26272
26270
  /**
26273
26271
  * Print the Base44 banner with smooth animation if supported,
@@ -26282,30 +26280,49 @@ async function printBanner() {
26282
26280
  //#region src/cli/utils/runCommand.ts
26283
26281
  const base44Color = source_default.bgHex("#E86B3C");
26284
26282
  /**
26285
- * Wraps a command function with the Base44 intro banner and error handling.
26283
+ * Wraps a command function with the Base44 intro/outro and error handling.
26286
26284
  * All CLI commands should use this utility to ensure consistent branding.
26287
- * Also loads .env.local from the project root if available.
26288
26285
  *
26289
- * @param commandFn - The async function to execute as the command
26286
+ * **Responsibilities**:
26287
+ * - Displays the intro (simple tag or full ASCII banner)
26288
+ * - Loads `.env.local` from the project root if available
26289
+ * - Checks authentication if `requireAuth` is set
26290
+ * - Runs the command function
26291
+ * - Displays the outro message returned by the command
26292
+ * - Handles errors and exits with code 1 on failure
26293
+ *
26294
+ * **Important**: Commands should NOT call `intro()` or `outro()` directly.
26295
+ * This function handles both. Commands can return an optional `outroMessage`
26296
+ * which will be displayed at the end.
26297
+ *
26298
+ * @param commandFn - The async function to execute. Returns `RunCommandResult` with optional `outroMessage`.
26290
26299
  * @param options - Optional configuration for the command wrapper
26291
26300
  *
26292
26301
  * @example
26293
- * // Standard command with simple intro
26302
+ * // Standard command with outro message
26303
+ * async function myAction(): Promise<RunCommandResult> {
26304
+ * // ... do work ...
26305
+ * return { outroMessage: "Done!" };
26306
+ * }
26307
+ *
26294
26308
  * export const myCommand = new Command("my-command")
26295
26309
  * .action(async () => {
26296
26310
  * await runCommand(myAction);
26297
26311
  * });
26298
26312
  *
26299
26313
  * @example
26300
- * // Command requiring authentication
26314
+ * // Command requiring authentication with full banner
26301
26315
  * export const myCommand = new Command("my-command")
26302
26316
  * .action(async () => {
26303
- * await runCommand(myAction, { requireAuth: true });
26317
+ * await runCommand(myAction, { requireAuth: true, fullBanner: true });
26304
26318
  * });
26305
26319
  */
26306
26320
  async function runCommand(commandFn, options) {
26307
- if (options?.fullBanner) await printBanner();
26308
- else Ie(base44Color(" Base 44 "));
26321
+ console.log();
26322
+ if (options?.fullBanner) {
26323
+ await printBanner();
26324
+ Ie("");
26325
+ } else Ie(base44Color(" Base 44 "));
26309
26326
  await loadProjectEnv();
26310
26327
  try {
26311
26328
  if (options?.requireAuth) {
@@ -26314,7 +26331,8 @@ async function runCommand(commandFn, options) {
26314
26331
  await login();
26315
26332
  }
26316
26333
  }
26317
- await commandFn();
26334
+ const { outroMessage } = await commandFn();
26335
+ Se(outroMessage || "");
26318
26336
  } catch (e$1) {
26319
26337
  if (e$1 instanceof Error) M.error(e$1.stack ?? e$1.message);
26320
26338
  else M.error(String(e$1));
@@ -26440,7 +26458,7 @@ async function login() {
26440
26458
  const token = await waitForAuthentication(deviceCodeResponse.deviceCode, deviceCodeResponse.expiresIn, deviceCodeResponse.interval);
26441
26459
  const userInfo = await getUserInfo(token.accessToken);
26442
26460
  await saveAuthData(token, userInfo);
26443
- M.success(`Successfully logged in as ${source_default.bold(userInfo.email)}`);
26461
+ return { outroMessage: `Successfully logged in as ${source_default.bold(userInfo.email)}` };
26444
26462
  }
26445
26463
  const loginCommand = new Command("login").description("Authenticate with Base44").action(async () => {
26446
26464
  await runCommand(login);
@@ -26450,7 +26468,7 @@ const loginCommand = new Command("login").description("Authenticate with Base44"
26450
26468
  //#region src/cli/commands/auth/whoami.ts
26451
26469
  async function whoami() {
26452
26470
  const auth = await readAuth();
26453
- M.info(`Logged in as: ${auth.name} (${auth.email})`);
26471
+ return { outroMessage: `Logged in as: ${source_default.bold(auth.email)}` };
26454
26472
  }
26455
26473
  const whoamiCommand = new Command("whoami").description("Display current authenticated user").action(async () => {
26456
26474
  await runCommand(whoami, { requireAuth: true });
@@ -26460,10 +26478,10 @@ const whoamiCommand = new Command("whoami").description("Display current authent
26460
26478
  //#region src/cli/commands/auth/logout.ts
26461
26479
  async function logout() {
26462
26480
  await deleteAuth();
26463
- M.info("Logged out successfully");
26481
+ return { outroMessage: "Logged out successfully" };
26464
26482
  }
26465
26483
  const logoutCommand = new Command("logout").description("Logout from current device").action(async () => {
26466
- await runCommand(logout, { requireAuth: true });
26484
+ await runCommand(logout);
26467
26485
  });
26468
26486
 
26469
26487
  //#endregion
@@ -27366,15 +27384,15 @@ var ReadStream = class extends Minipass {
27366
27384
  [_size];
27367
27385
  [_remain];
27368
27386
  [_autoClose];
27369
- constructor(path$16, opt) {
27387
+ constructor(path$17, opt) {
27370
27388
  opt = opt || {};
27371
27389
  super(opt);
27372
27390
  this.readable = true;
27373
27391
  this.writable = false;
27374
- if (typeof path$16 !== "string") throw new TypeError("path must be a string");
27392
+ if (typeof path$17 !== "string") throw new TypeError("path must be a string");
27375
27393
  this[_errored] = false;
27376
27394
  this[_fd] = typeof opt.fd === "number" ? opt.fd : void 0;
27377
- this[_path] = path$16;
27395
+ this[_path] = path$17;
27378
27396
  this[_readSize] = opt.readSize || 16 * 1024 * 1024;
27379
27397
  this[_reading] = false;
27380
27398
  this[_size] = typeof opt.size === "number" ? opt.size : Infinity;
@@ -27516,10 +27534,10 @@ var WriteStream = class extends EE {
27516
27534
  [_flags];
27517
27535
  [_finished] = false;
27518
27536
  [_pos];
27519
- constructor(path$16, opt) {
27537
+ constructor(path$17, opt) {
27520
27538
  opt = opt || {};
27521
27539
  super(opt);
27522
- this[_path] = path$16;
27540
+ this[_path] = path$17;
27523
27541
  this[_fd] = typeof opt.fd === "number" ? opt.fd : void 0;
27524
27542
  this[_mode] = opt.mode === void 0 ? 438 : opt.mode;
27525
27543
  this[_pos] = typeof opt.start === "number" ? opt.start : void 0;
@@ -28278,10 +28296,10 @@ var Header = class {
28278
28296
  if (!(buf.length >= off + 512)) throw new Error("need 512 bytes for header");
28279
28297
  const prefixSize = this.ctime || this.atime ? 130 : 155;
28280
28298
  const split = splitPrefix(this.path || "", prefixSize);
28281
- const path$16 = split[0];
28299
+ const path$17 = split[0];
28282
28300
  const prefix = split[1];
28283
28301
  this.needPax = !!split[2];
28284
- this.needPax = encString(buf, off, 100, path$16) || this.needPax;
28302
+ this.needPax = encString(buf, off, 100, path$17) || this.needPax;
28285
28303
  this.needPax = encNumber(buf, off + 100, 8, this.mode) || this.needPax;
28286
28304
  this.needPax = encNumber(buf, off + 108, 8, this.uid) || this.needPax;
28287
28305
  this.needPax = encNumber(buf, off + 116, 8, this.gid) || this.needPax;
@@ -29120,16 +29138,16 @@ const modeFix = (mode, isDir, portable) => {
29120
29138
  //#endregion
29121
29139
  //#region node_modules/tar/dist/esm/strip-absolute-path.js
29122
29140
  const { isAbsolute, parse: parse$1 } = win32;
29123
- const stripAbsolutePath = (path$16) => {
29141
+ const stripAbsolutePath = (path$17) => {
29124
29142
  let r$1 = "";
29125
- let parsed = parse$1(path$16);
29126
- while (isAbsolute(path$16) || parsed.root) {
29127
- const root = path$16.charAt(0) === "/" && path$16.slice(0, 4) !== "//?/" ? "/" : parsed.root;
29128
- path$16 = path$16.slice(root.length);
29143
+ let parsed = parse$1(path$17);
29144
+ while (isAbsolute(path$17) || parsed.root) {
29145
+ const root = path$17.charAt(0) === "/" && path$17.slice(0, 4) !== "//?/" ? "/" : parsed.root;
29146
+ path$17 = path$17.slice(root.length);
29129
29147
  r$1 += root;
29130
- parsed = parse$1(path$16);
29148
+ parsed = parse$1(path$17);
29131
29149
  }
29132
- return [r$1, path$16];
29150
+ return [r$1, path$17];
29133
29151
  };
29134
29152
 
29135
29153
  //#endregion
@@ -29149,10 +29167,10 @@ const decode = (s) => win.reduce((s$1, c$1) => s$1.split(c$1).join(toRaw.get(c$1
29149
29167
 
29150
29168
  //#endregion
29151
29169
  //#region node_modules/tar/dist/esm/write-entry.js
29152
- const prefixPath = (path$16, prefix) => {
29153
- if (!prefix) return normalizeWindowsPath(path$16);
29154
- path$16 = normalizeWindowsPath(path$16).replace(/^\.(\/|$)/, "");
29155
- return stripTrailingSlashes(prefix) + "/" + path$16;
29170
+ const prefixPath = (path$17, prefix) => {
29171
+ if (!prefix) return normalizeWindowsPath(path$17);
29172
+ path$17 = normalizeWindowsPath(path$17).replace(/^\.(\/|$)/, "");
29173
+ return stripTrailingSlashes(prefix) + "/" + path$17;
29156
29174
  };
29157
29175
  const maxReadSize = 16 * 1024 * 1024;
29158
29176
  const PROCESS$1 = Symbol("process");
@@ -29234,7 +29252,7 @@ var WriteEntry = class extends Minipass {
29234
29252
  this.path = decode(this.path.replace(/\\/g, "/"));
29235
29253
  p$1 = p$1.replace(/\\/g, "/");
29236
29254
  }
29237
- this.absolute = normalizeWindowsPath(opt.absolute || path.resolve(this.cwd, p$1));
29255
+ this.absolute = normalizeWindowsPath(opt.absolute || path$1.resolve(this.cwd, p$1));
29238
29256
  if (this.path === "") this.path = "./";
29239
29257
  if (pathWarn) this.warn("TAR_ENTRY_INFO", `stripping ${pathWarn} from absolute path`, {
29240
29258
  entry: this,
@@ -29276,8 +29294,8 @@ var WriteEntry = class extends Minipass {
29276
29294
  [MODE](mode) {
29277
29295
  return modeFix(mode, this.type === "Directory", this.portable);
29278
29296
  }
29279
- [PREFIX](path$16) {
29280
- return prefixPath(path$16, this.prefix);
29297
+ [PREFIX](path$17) {
29298
+ return prefixPath(path$17, this.prefix);
29281
29299
  }
29282
29300
  [HEADER]() {
29283
29301
  /* c8 ignore start */
@@ -29343,7 +29361,7 @@ var WriteEntry = class extends Minipass {
29343
29361
  if (!this.stat) throw new Error("cannot create link entry without stat");
29344
29362
  /* c8 ignore stop */
29345
29363
  this.type = "Link";
29346
- this.linkpath = normalizeWindowsPath(path.relative(this.cwd, linkpath));
29364
+ this.linkpath = normalizeWindowsPath(path$1.relative(this.cwd, linkpath));
29347
29365
  this.stat.size = 0;
29348
29366
  this[HEADER]();
29349
29367
  this.end();
@@ -29609,8 +29627,8 @@ var WriteEntryTar = class extends Minipass {
29609
29627
  super.write(b$2);
29610
29628
  readEntry.pipe(this);
29611
29629
  }
29612
- [PREFIX](path$16) {
29613
- return prefixPath(path$16, this.prefix);
29630
+ [PREFIX](path$17) {
29631
+ return prefixPath(path$17, this.prefix);
29614
29632
  }
29615
29633
  [MODE](mode) {
29616
29634
  return modeFix(mode, this.type === "Directory", this.portable);
@@ -29919,8 +29937,8 @@ var PackJob = class {
29919
29937
  pending = false;
29920
29938
  ignore = false;
29921
29939
  piped = false;
29922
- constructor(path$16, absolute) {
29923
- this.path = path$16 || "./";
29940
+ constructor(path$17, absolute) {
29941
+ this.path = path$17 || "./";
29924
29942
  this.absolute = absolute;
29925
29943
  }
29926
29944
  };
@@ -30025,36 +30043,36 @@ var Pack = class extends Minipass {
30025
30043
  [WRITE](chunk) {
30026
30044
  return super.write(chunk);
30027
30045
  }
30028
- add(path$16) {
30029
- this.write(path$16);
30046
+ add(path$17) {
30047
+ this.write(path$17);
30030
30048
  return this;
30031
30049
  }
30032
- end(path$16, encoding, cb) {
30050
+ end(path$17, encoding, cb) {
30033
30051
  /* c8 ignore start */
30034
- if (typeof path$16 === "function") {
30035
- cb = path$16;
30036
- path$16 = void 0;
30052
+ if (typeof path$17 === "function") {
30053
+ cb = path$17;
30054
+ path$17 = void 0;
30037
30055
  }
30038
30056
  if (typeof encoding === "function") {
30039
30057
  cb = encoding;
30040
30058
  encoding = void 0;
30041
30059
  }
30042
30060
  /* c8 ignore stop */
30043
- if (path$16) this.add(path$16);
30061
+ if (path$17) this.add(path$17);
30044
30062
  this[ENDED$1] = true;
30045
30063
  this[PROCESS]();
30046
30064
  /* c8 ignore next */
30047
30065
  if (cb) cb();
30048
30066
  return this;
30049
30067
  }
30050
- write(path$16) {
30068
+ write(path$17) {
30051
30069
  if (this[ENDED$1]) throw new Error("write after end");
30052
- if (path$16 instanceof ReadEntry) this[ADDTARENTRY](path$16);
30053
- else this[ADDFSENTRY](path$16);
30070
+ if (path$17 instanceof ReadEntry) this[ADDTARENTRY](path$17);
30071
+ else this[ADDFSENTRY](path$17);
30054
30072
  return this.flowing;
30055
30073
  }
30056
30074
  [ADDTARENTRY](p$1) {
30057
- const absolute = normalizeWindowsPath(path.resolve(this.cwd, p$1.path));
30075
+ const absolute = normalizeWindowsPath(path$1.resolve(this.cwd, p$1.path));
30058
30076
  if (!this.filter(p$1.path, p$1)) p$1.resume();
30059
30077
  else {
30060
30078
  const job = new PackJob(p$1.path, absolute);
@@ -30066,7 +30084,7 @@ var Pack = class extends Minipass {
30066
30084
  this[PROCESS]();
30067
30085
  }
30068
30086
  [ADDFSENTRY](p$1) {
30069
- const absolute = normalizeWindowsPath(path.resolve(this.cwd, p$1));
30087
+ const absolute = normalizeWindowsPath(path$1.resolve(this.cwd, p$1));
30070
30088
  this[QUEUE].push(new PackJob(p$1, absolute));
30071
30089
  this[PROCESS]();
30072
30090
  }
@@ -30267,7 +30285,7 @@ const createFile = (opt, files) => {
30267
30285
  const addFilesSync$1 = (p$1, files) => {
30268
30286
  files.forEach((file) => {
30269
30287
  if (file.charAt(0) === "@") list({
30270
- file: nodePath.resolve(p$1.cwd, file.slice(1)),
30288
+ file: path.resolve(p$1.cwd, file.slice(1)),
30271
30289
  sync: true,
30272
30290
  noResume: true,
30273
30291
  onReadEntry: (entry) => p$1.add(entry)
@@ -30280,7 +30298,7 @@ const addFilesAsync$1 = async (p$1, files) => {
30280
30298
  for (let i$1 = 0; i$1 < files.length; i$1++) {
30281
30299
  const file = String(files[i$1]);
30282
30300
  if (file.charAt(0) === "@") await list({
30283
- file: nodePath.resolve(String(p$1.cwd), file.slice(1)),
30301
+ file: path.resolve(String(p$1.cwd), file.slice(1)),
30284
30302
  noResume: true,
30285
30303
  onReadEntry: (entry) => {
30286
30304
  p$1.add(entry);
@@ -30318,9 +30336,9 @@ const getWriteFlag = !fMapEnabled ? () => "w" : (size) => size < fMapLimit ? fMa
30318
30336
 
30319
30337
  //#endregion
30320
30338
  //#region node_modules/chownr/dist/esm/index.js
30321
- const lchownSync = (path$16, uid, gid) => {
30339
+ const lchownSync = (path$17, uid, gid) => {
30322
30340
  try {
30323
- return fs.lchownSync(path$16, uid, gid);
30341
+ return fs.lchownSync(path$17, uid, gid);
30324
30342
  } catch (er) {
30325
30343
  if (er?.code !== "ENOENT") throw er;
30326
30344
  }
@@ -30331,11 +30349,11 @@ const chown = (cpath, uid, gid, cb) => {
30331
30349
  });
30332
30350
  };
30333
30351
  const chownrKid = (p$1, child, uid, gid, cb) => {
30334
- if (child.isDirectory()) chownr(nodePath.resolve(p$1, child.name), uid, gid, (er) => {
30352
+ if (child.isDirectory()) chownr(path.resolve(p$1, child.name), uid, gid, (er) => {
30335
30353
  if (er) return cb(er);
30336
- chown(nodePath.resolve(p$1, child.name), uid, gid, cb);
30354
+ chown(path.resolve(p$1, child.name), uid, gid, cb);
30337
30355
  });
30338
- else chown(nodePath.resolve(p$1, child.name), uid, gid, cb);
30356
+ else chown(path.resolve(p$1, child.name), uid, gid, cb);
30339
30357
  };
30340
30358
  const chownr = (p$1, uid, gid, cb) => {
30341
30359
  fs.readdir(p$1, { withFileTypes: true }, (er, children) => {
@@ -30357,8 +30375,8 @@ const chownr = (p$1, uid, gid, cb) => {
30357
30375
  });
30358
30376
  };
30359
30377
  const chownrKidSync = (p$1, child, uid, gid) => {
30360
- if (child.isDirectory()) chownrSync(nodePath.resolve(p$1, child.name), uid, gid);
30361
- lchownSync(nodePath.resolve(p$1, child.name), uid, gid);
30378
+ if (child.isDirectory()) chownrSync(path.resolve(p$1, child.name), uid, gid);
30379
+ lchownSync(path.resolve(p$1, child.name), uid, gid);
30362
30380
  };
30363
30381
  const chownrSync = (p$1, uid, gid) => {
30364
30382
  let children;
@@ -30380,9 +30398,9 @@ var CwdError = class extends Error {
30380
30398
  path;
30381
30399
  code;
30382
30400
  syscall = "chdir";
30383
- constructor(path$16, code$1) {
30384
- super(`${code$1}: Cannot cd into '${path$16}'`);
30385
- this.path = path$16;
30401
+ constructor(path$17, code$1) {
30402
+ super(`${code$1}: Cannot cd into '${path$17}'`);
30403
+ this.path = path$17;
30386
30404
  this.code = code$1;
30387
30405
  }
30388
30406
  get name() {
@@ -30397,10 +30415,10 @@ var SymlinkError = class extends Error {
30397
30415
  symlink;
30398
30416
  syscall = "symlink";
30399
30417
  code = "TAR_SYMLINK_ERROR";
30400
- constructor(symlink, path$16) {
30418
+ constructor(symlink, path$17) {
30401
30419
  super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link");
30402
30420
  this.symlink = symlink;
30403
- this.path = path$16;
30421
+ this.path = path$17;
30404
30422
  }
30405
30423
  get name() {
30406
30424
  return "SymlinkError";
@@ -30446,12 +30464,12 @@ const mkdir$1 = (dir, opt, cb) => {
30446
30464
  mode,
30447
30465
  recursive: true
30448
30466
  }).then((made) => done(null, made ?? void 0), done);
30449
- mkdir_(cwd, normalizeWindowsPath(nodePath.relative(cwd, dir)).split("/"), mode, unlink$1, cwd, void 0, done);
30467
+ mkdir_(cwd, normalizeWindowsPath(path.relative(cwd, dir)).split("/"), mode, unlink$1, cwd, void 0, done);
30450
30468
  };
30451
30469
  const mkdir_ = (base, parts, mode, unlink$1, cwd, created, cb) => {
30452
30470
  if (!parts.length) return cb(null, created);
30453
30471
  const p$1 = parts.shift();
30454
- const part = normalizeWindowsPath(nodePath.resolve(base + "/" + p$1));
30472
+ const part = normalizeWindowsPath(path.resolve(base + "/" + p$1));
30455
30473
  fs.mkdir(part, mode, onmkdir(part, parts, mode, unlink$1, cwd, created, cb));
30456
30474
  };
30457
30475
  const onmkdir = (part, parts, mode, unlink$1, cwd, created, cb) => (er) => {
@@ -30507,10 +30525,10 @@ const mkdirSync = (dir, opt) => {
30507
30525
  mode,
30508
30526
  recursive: true
30509
30527
  }) ?? void 0);
30510
- const parts = normalizeWindowsPath(nodePath.relative(cwd, dir)).split("/");
30528
+ const parts = normalizeWindowsPath(path.relative(cwd, dir)).split("/");
30511
30529
  let created = void 0;
30512
30530
  for (let p$1 = parts.shift(), part = cwd; p$1 && (part += "/" + p$1); p$1 = parts.shift()) {
30513
- part = normalizeWindowsPath(nodePath.resolve(part));
30531
+ part = normalizeWindowsPath(path.resolve(part));
30514
30532
  try {
30515
30533
  fs.mkdirSync(part, mode);
30516
30534
  created = created || part;
@@ -30550,11 +30568,11 @@ const normalizeUnicode = (s) => {
30550
30568
  //#endregion
30551
30569
  //#region node_modules/tar/dist/esm/path-reservations.js
30552
30570
  const isWindows$1 = (process.env.TESTING_TAR_FAKE_PLATFORM || process.platform) === "win32";
30553
- const getDirs = (path$16) => {
30554
- return path$16.split("/").slice(0, -1).reduce((set, path$17) => {
30571
+ const getDirs = (path$17) => {
30572
+ return path$17.split("/").slice(0, -1).reduce((set, path$18) => {
30555
30573
  const s = set[set.length - 1];
30556
- if (s !== void 0) path$17 = join(s, path$17);
30557
- set.push(path$17 || "/");
30574
+ if (s !== void 0) path$18 = join(s, path$18);
30575
+ set.push(path$18 || "/");
30558
30576
  return set;
30559
30577
  }, []);
30560
30578
  };
@@ -30566,7 +30584,7 @@ var PathReservations = class {
30566
30584
  paths = isWindows$1 ? ["win32 parallelization disabled"] : paths.map((p$1) => {
30567
30585
  return stripTrailingSlashes(join(normalizeUnicode(p$1))).toLowerCase();
30568
30586
  });
30569
- const dirs = new Set(paths.map((path$16) => getDirs(path$16)).reduce((a$1, b$2) => a$1.concat(b$2)));
30587
+ const dirs = new Set(paths.map((path$17) => getDirs(path$17)).reduce((a$1, b$2) => a$1.concat(b$2)));
30570
30588
  this.#reservations.set(fn, {
30571
30589
  dirs,
30572
30590
  paths
@@ -30593,8 +30611,8 @@ var PathReservations = class {
30593
30611
  if (!res) throw new Error("function does not have any path reservations");
30594
30612
  /* c8 ignore stop */
30595
30613
  return {
30596
- paths: res.paths.map((path$16) => this.#queues.get(path$16)),
30597
- dirs: [...res.dirs].map((path$16) => this.#queues.get(path$16))
30614
+ paths: res.paths.map((path$17) => this.#queues.get(path$17)),
30615
+ dirs: [...res.dirs].map((path$17) => this.#queues.get(path$17))
30598
30616
  };
30599
30617
  }
30600
30618
  check(fn) {
@@ -30615,14 +30633,14 @@ var PathReservations = class {
30615
30633
  /* c8 ignore stop */
30616
30634
  const { paths, dirs } = res;
30617
30635
  const next = /* @__PURE__ */ new Set();
30618
- for (const path$16 of paths) {
30619
- const q$2 = this.#queues.get(path$16);
30636
+ for (const path$17 of paths) {
30637
+ const q$2 = this.#queues.get(path$17);
30620
30638
  /* c8 ignore start */
30621
30639
  if (!q$2 || q$2?.[0] !== fn) continue;
30622
30640
  /* c8 ignore stop */
30623
30641
  const q0 = q$2[1];
30624
30642
  if (!q0) {
30625
- this.#queues.delete(path$16);
30643
+ this.#queues.delete(path$17);
30626
30644
  continue;
30627
30645
  }
30628
30646
  q$2.shift();
@@ -30678,20 +30696,20 @@ const CHECKED_CWD = Symbol("checkedCwd");
30678
30696
  const isWindows = (process.env.TESTING_TAR_FAKE_PLATFORM || process.platform) === "win32";
30679
30697
  const DEFAULT_MAX_DEPTH = 1024;
30680
30698
  /* c8 ignore start */
30681
- const unlinkFile = (path$16, cb) => {
30682
- if (!isWindows) return fs.unlink(path$16, cb);
30683
- const name$1 = path$16 + ".DELETE." + randomBytes(16).toString("hex");
30684
- fs.rename(path$16, name$1, (er) => {
30699
+ const unlinkFile = (path$17, cb) => {
30700
+ if (!isWindows) return fs.unlink(path$17, cb);
30701
+ const name$1 = path$17 + ".DELETE." + randomBytes(16).toString("hex");
30702
+ fs.rename(path$17, name$1, (er) => {
30685
30703
  if (er) return cb(er);
30686
30704
  fs.unlink(name$1, cb);
30687
30705
  });
30688
30706
  };
30689
30707
  /* c8 ignore stop */
30690
30708
  /* c8 ignore start */
30691
- const unlinkFileSync = (path$16) => {
30692
- if (!isWindows) return fs.unlinkSync(path$16);
30693
- const name$1 = path$16 + ".DELETE." + randomBytes(16).toString("hex");
30694
- fs.renameSync(path$16, name$1);
30709
+ const unlinkFileSync = (path$17) => {
30710
+ if (!isWindows) return fs.unlinkSync(path$17);
30711
+ const name$1 = path$17 + ".DELETE." + randomBytes(16).toString("hex");
30712
+ fs.renameSync(path$17, name$1);
30695
30713
  fs.unlinkSync(name$1);
30696
30714
  };
30697
30715
  /* c8 ignore stop */
@@ -30756,7 +30774,7 @@ var Unpack = class extends Parser {
30756
30774
  this.noMtime = !!opt.noMtime;
30757
30775
  this.preservePaths = !!opt.preservePaths;
30758
30776
  this.unlink = !!opt.unlink;
30759
- this.cwd = normalizeWindowsPath(nodePath.resolve(opt.cwd || process.cwd()));
30777
+ this.cwd = normalizeWindowsPath(path.resolve(opt.cwd || process.cwd()));
30760
30778
  this.strip = Number(opt.strip) || 0;
30761
30779
  this.processUmask = !this.chmod ? 0 : typeof opt.processUmask === "number" ? opt.processUmask : process.umask();
30762
30780
  this.umask = typeof opt.umask === "number" ? opt.umask : this.processUmask;
@@ -30814,8 +30832,8 @@ var Unpack = class extends Parser {
30814
30832
  });
30815
30833
  }
30816
30834
  }
30817
- if (nodePath.isAbsolute(entry.path)) entry.absolute = normalizeWindowsPath(nodePath.resolve(entry.path));
30818
- else entry.absolute = normalizeWindowsPath(nodePath.resolve(this.cwd, entry.path));
30835
+ if (path.isAbsolute(entry.path)) entry.absolute = normalizeWindowsPath(path.resolve(entry.path));
30836
+ else entry.absolute = normalizeWindowsPath(path.resolve(this.cwd, entry.path));
30819
30837
  /* c8 ignore start - defense in depth */
30820
30838
  if (!this.preservePaths && typeof entry.absolute === "string" && entry.absolute.indexOf(this.cwd + "/") !== 0 && entry.absolute !== this.cwd) {
30821
30839
  this.warn("TAR_ENTRY_ERROR", "path escaped extraction target", {
@@ -30829,9 +30847,9 @@ var Unpack = class extends Parser {
30829
30847
  /* c8 ignore stop */
30830
30848
  if (entry.absolute === this.cwd && entry.type !== "Directory" && entry.type !== "GNUDumpDir") return false;
30831
30849
  if (this.win32) {
30832
- const { root: aRoot } = nodePath.win32.parse(String(entry.absolute));
30850
+ const { root: aRoot } = path.win32.parse(String(entry.absolute));
30833
30851
  entry.absolute = aRoot + encode(String(entry.absolute).slice(aRoot.length));
30834
- const { root: pRoot } = nodePath.win32.parse(entry.path);
30852
+ const { root: pRoot } = path.win32.parse(entry.path);
30835
30853
  entry.path = pRoot + encode(entry.path.slice(pRoot.length));
30836
30854
  }
30837
30855
  return true;
@@ -30977,7 +30995,7 @@ var Unpack = class extends Parser {
30977
30995
  this[LINK](entry, String(entry.linkpath), "symlink", done);
30978
30996
  }
30979
30997
  [HARDLINK](entry, done) {
30980
- const linkpath = normalizeWindowsPath(nodePath.resolve(this.cwd, String(entry.linkpath)));
30998
+ const linkpath = normalizeWindowsPath(path.resolve(this.cwd, String(entry.linkpath)));
30981
30999
  this[LINK](entry, linkpath, "link", done);
30982
31000
  }
30983
31001
  [PEND]() {
@@ -31017,7 +31035,7 @@ var Unpack = class extends Parser {
31017
31035
  };
31018
31036
  const start = () => {
31019
31037
  if (entry.absolute !== this.cwd) {
31020
- const parent = normalizeWindowsPath(nodePath.dirname(String(entry.absolute)));
31038
+ const parent = normalizeWindowsPath(path.dirname(String(entry.absolute)));
31021
31039
  if (parent !== this.cwd) return this[MKDIR](parent, this.dmode, (er) => {
31022
31040
  if (er) {
31023
31041
  this[ONERROR](er, entry);
@@ -31099,7 +31117,7 @@ var UnpackSync = class extends Unpack {
31099
31117
  this[CHECKED_CWD] = true;
31100
31118
  }
31101
31119
  if (entry.absolute !== this.cwd) {
31102
- const parent = normalizeWindowsPath(nodePath.dirname(String(entry.absolute)));
31120
+ const parent = normalizeWindowsPath(path.dirname(String(entry.absolute)));
31103
31121
  if (parent !== this.cwd) {
31104
31122
  const mkParent = this[MKDIR](parent, this.dmode);
31105
31123
  if (mkParent) return this[ONERROR](mkParent, entry);
@@ -31371,7 +31389,7 @@ const replaceAsync = (opt, files) => {
31371
31389
  const addFilesSync = (p$1, files) => {
31372
31390
  files.forEach((file) => {
31373
31391
  if (file.charAt(0) === "@") list({
31374
- file: nodePath.resolve(p$1.cwd, file.slice(1)),
31392
+ file: path.resolve(p$1.cwd, file.slice(1)),
31375
31393
  sync: true,
31376
31394
  noResume: true,
31377
31395
  onReadEntry: (entry) => p$1.add(entry)
@@ -31384,7 +31402,7 @@ const addFilesAsync = async (p$1, files) => {
31384
31402
  for (let i$1 = 0; i$1 < files.length; i$1++) {
31385
31403
  const file = String(files[i$1]);
31386
31404
  if (file.charAt(0) === "@") await list({
31387
- file: nodePath.resolve(String(p$1.cwd), file.slice(1)),
31405
+ file: path.resolve(String(p$1.cwd), file.slice(1)),
31388
31406
  noResume: true,
31389
31407
  onReadEntry: (entry) => p$1.add(entry)
31390
31408
  });
@@ -31419,7 +31437,7 @@ const update = makeCommand(replace.syncFile, replace.asyncFile, replace.syncNoFi
31419
31437
  const mtimeFilter = (opt) => {
31420
31438
  const filter = opt.filter;
31421
31439
  if (!opt.mtimeCache) opt.mtimeCache = /* @__PURE__ */ new Map();
31422
- opt.filter = filter ? (path$16, stat) => filter(path$16, stat) && !((opt.mtimeCache?.get(path$16) ?? stat.mtime ?? 0) > (stat.mtime ?? 0)) : (path$16, stat) => !((opt.mtimeCache?.get(path$16) ?? stat.mtime ?? 0) > (stat.mtime ?? 0));
31440
+ opt.filter = filter ? (path$17, stat) => filter(path$17, stat) && !((opt.mtimeCache?.get(path$17) ?? stat.mtime ?? 0) > (stat.mtime ?? 0)) : (path$17, stat) => !((opt.mtimeCache?.get(path$17) ?? stat.mtime ?? 0) > (stat.mtime ?? 0));
31423
31441
  };
31424
31442
 
31425
31443
  //#endregion
@@ -31447,10 +31465,7 @@ async function createArchive(pathToArchive, targetArchivePath) {
31447
31465
  //#region src/cli/commands/entities/push.ts
31448
31466
  async function pushEntitiesAction() {
31449
31467
  const { entities } = await readProjectConfig();
31450
- if (entities.length === 0) {
31451
- M.warn("No entities found in project");
31452
- return;
31453
- }
31468
+ if (entities.length === 0) return { outroMessage: "No entities found in project" };
31454
31469
  M.info(`Found ${entities.length} entities to push`);
31455
31470
  const result = await runTask("Pushing entities to Base44", async () => {
31456
31471
  return await pushEntities(entities);
@@ -31461,7 +31476,7 @@ async function pushEntitiesAction() {
31461
31476
  if (result.created.length > 0) M.success(`Created: ${result.created.join(", ")}`);
31462
31477
  if (result.updated.length > 0) M.success(`Updated: ${result.updated.join(", ")}`);
31463
31478
  if (result.deleted.length > 0) M.warn(`Deleted: ${result.deleted.join(", ")}`);
31464
- if (result.created.length === 0 && result.updated.length === 0 && result.deleted.length === 0) M.info("No changes detected");
31479
+ return {};
31465
31480
  }
31466
31481
  const entitiesPushCommand = new Command("entities").description("Manage project entities").addCommand(new Command("push").description("Push local entities to Base44").action(async () => {
31467
31482
  await runCommand(pushEntitiesAction, { requireAuth: true });
@@ -32260,28 +32275,28 @@ var require_windows = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32260
32275
  module.exports = isexe;
32261
32276
  isexe.sync = sync;
32262
32277
  var fs$4 = __require("fs");
32263
- function checkPathExt(path$16, options) {
32278
+ function checkPathExt(path$17, options) {
32264
32279
  var pathext = options.pathExt !== void 0 ? options.pathExt : process.env.PATHEXT;
32265
32280
  if (!pathext) return true;
32266
32281
  pathext = pathext.split(";");
32267
32282
  if (pathext.indexOf("") !== -1) return true;
32268
32283
  for (var i$1 = 0; i$1 < pathext.length; i$1++) {
32269
32284
  var p$1 = pathext[i$1].toLowerCase();
32270
- if (p$1 && path$16.substr(-p$1.length).toLowerCase() === p$1) return true;
32285
+ if (p$1 && path$17.substr(-p$1.length).toLowerCase() === p$1) return true;
32271
32286
  }
32272
32287
  return false;
32273
32288
  }
32274
- function checkStat(stat, path$16, options) {
32289
+ function checkStat(stat, path$17, options) {
32275
32290
  if (!stat.isSymbolicLink() && !stat.isFile()) return false;
32276
- return checkPathExt(path$16, options);
32291
+ return checkPathExt(path$17, options);
32277
32292
  }
32278
- function isexe(path$16, options, cb) {
32279
- fs$4.stat(path$16, function(er, stat) {
32280
- cb(er, er ? false : checkStat(stat, path$16, options));
32293
+ function isexe(path$17, options, cb) {
32294
+ fs$4.stat(path$17, function(er, stat) {
32295
+ cb(er, er ? false : checkStat(stat, path$17, options));
32281
32296
  });
32282
32297
  }
32283
- function sync(path$16, options) {
32284
- return checkStat(fs$4.statSync(path$16), path$16, options);
32298
+ function sync(path$17, options) {
32299
+ return checkStat(fs$4.statSync(path$17), path$17, options);
32285
32300
  }
32286
32301
  }));
32287
32302
 
@@ -32291,13 +32306,13 @@ var require_mode = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32291
32306
  module.exports = isexe;
32292
32307
  isexe.sync = sync;
32293
32308
  var fs$3 = __require("fs");
32294
- function isexe(path$16, options, cb) {
32295
- fs$3.stat(path$16, function(er, stat) {
32309
+ function isexe(path$17, options, cb) {
32310
+ fs$3.stat(path$17, function(er, stat) {
32296
32311
  cb(er, er ? false : checkStat(stat, options));
32297
32312
  });
32298
32313
  }
32299
- function sync(path$16, options) {
32300
- return checkStat(fs$3.statSync(path$16), options);
32314
+ function sync(path$17, options) {
32315
+ return checkStat(fs$3.statSync(path$17), options);
32301
32316
  }
32302
32317
  function checkStat(stat, options) {
32303
32318
  return stat.isFile() && checkMode(stat, options);
@@ -32325,7 +32340,7 @@ var require_isexe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32325
32340
  else core = require_mode();
32326
32341
  module.exports = isexe;
32327
32342
  isexe.sync = sync;
32328
- function isexe(path$16, options, cb) {
32343
+ function isexe(path$17, options, cb) {
32329
32344
  if (typeof options === "function") {
32330
32345
  cb = options;
32331
32346
  options = {};
@@ -32333,13 +32348,13 @@ var require_isexe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32333
32348
  if (!cb) {
32334
32349
  if (typeof Promise !== "function") throw new TypeError("callback not provided");
32335
32350
  return new Promise(function(resolve$1, reject) {
32336
- isexe(path$16, options || {}, function(er, is) {
32351
+ isexe(path$17, options || {}, function(er, is) {
32337
32352
  if (er) reject(er);
32338
32353
  else resolve$1(is);
32339
32354
  });
32340
32355
  });
32341
32356
  }
32342
- core(path$16, options || {}, function(er, is) {
32357
+ core(path$17, options || {}, function(er, is) {
32343
32358
  if (er) {
32344
32359
  if (er.code === "EACCES" || options && options.ignoreErrors) {
32345
32360
  er = null;
@@ -32349,9 +32364,9 @@ var require_isexe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32349
32364
  cb(er, is);
32350
32365
  });
32351
32366
  }
32352
- function sync(path$16, options) {
32367
+ function sync(path$17, options) {
32353
32368
  try {
32354
- return core.sync(path$16, options || {});
32369
+ return core.sync(path$17, options || {});
32355
32370
  } catch (er) {
32356
32371
  if (options && options.ignoreErrors || er.code === "EACCES") return false;
32357
32372
  else throw er;
@@ -32363,7 +32378,7 @@ var require_isexe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32363
32378
  //#region node_modules/which/which.js
32364
32379
  var require_which = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32365
32380
  const isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
32366
- const path$3 = __require("path");
32381
+ const path$4 = __require("path");
32367
32382
  const COLON = isWindows ? ";" : ":";
32368
32383
  const isexe = require_isexe();
32369
32384
  const getNotFoundError = (cmd) => Object.assign(/* @__PURE__ */ new Error(`not found: ${cmd}`), { code: "ENOENT" });
@@ -32393,7 +32408,7 @@ var require_which = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32393
32408
  if (i$1 === pathEnv.length) return opt.all && found.length ? resolve$1(found) : reject(getNotFoundError(cmd));
32394
32409
  const ppRaw = pathEnv[i$1];
32395
32410
  const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
32396
- const pCmd = path$3.join(pathPart, cmd);
32411
+ const pCmd = path$4.join(pathPart, cmd);
32397
32412
  resolve$1(subStep(!pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd, i$1, 0));
32398
32413
  });
32399
32414
  const subStep = (p$1, i$1, ii) => new Promise((resolve$1, reject) => {
@@ -32414,7 +32429,7 @@ var require_which = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32414
32429
  for (let i$1 = 0; i$1 < pathEnv.length; i$1++) {
32415
32430
  const ppRaw = pathEnv[i$1];
32416
32431
  const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
32417
- const pCmd = path$3.join(pathPart, cmd);
32432
+ const pCmd = path$4.join(pathPart, cmd);
32418
32433
  const p$1 = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
32419
32434
  for (let j = 0; j < pathExt.length; j++) {
32420
32435
  const cur = p$1 + pathExt[j];
@@ -32447,7 +32462,7 @@ var require_path_key = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32447
32462
  //#endregion
32448
32463
  //#region node_modules/cross-spawn/lib/util/resolveCommand.js
32449
32464
  var require_resolveCommand = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32450
- const path$2 = __require("path");
32465
+ const path$3 = __require("path");
32451
32466
  const which = require_which();
32452
32467
  const getPathKey = require_path_key();
32453
32468
  function resolveCommandAttempt(parsed, withoutPathExt) {
@@ -32462,12 +32477,12 @@ var require_resolveCommand = /* @__PURE__ */ __commonJSMin(((exports, module) =>
32462
32477
  try {
32463
32478
  resolved = which.sync(parsed.command, {
32464
32479
  path: env$1[getPathKey({ env: env$1 })],
32465
- pathExt: withoutPathExt ? path$2.delimiter : void 0
32480
+ pathExt: withoutPathExt ? path$3.delimiter : void 0
32466
32481
  });
32467
32482
  } catch (e$1) {} finally {
32468
32483
  if (shouldSwitchCwd) process.chdir(cwd);
32469
32484
  }
32470
- if (resolved) resolved = path$2.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved);
32485
+ if (resolved) resolved = path$3.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved);
32471
32486
  return resolved;
32472
32487
  }
32473
32488
  function resolveCommand(parsed) {
@@ -32510,8 +32525,8 @@ var require_shebang_command = /* @__PURE__ */ __commonJSMin(((exports, module) =
32510
32525
  module.exports = (string$2 = "") => {
32511
32526
  const match = string$2.match(shebangRegex);
32512
32527
  if (!match) return null;
32513
- const [path$16, argument] = match[0].replace(/#! ?/, "").split(" ");
32514
- const binary = path$16.split("/").pop();
32528
+ const [path$17, argument] = match[0].replace(/#! ?/, "").split(" ");
32529
+ const binary = path$17.split("/").pop();
32515
32530
  if (binary === "env") return argument;
32516
32531
  return argument ? `${binary} ${argument}` : binary;
32517
32532
  };
@@ -32539,7 +32554,7 @@ var require_readShebang = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32539
32554
  //#endregion
32540
32555
  //#region node_modules/cross-spawn/lib/parse.js
32541
32556
  var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32542
- const path$1 = __require("path");
32557
+ const path$2 = __require("path");
32543
32558
  const resolveCommand = require_resolveCommand();
32544
32559
  const escape = require_escape();
32545
32560
  const readShebang = require_readShebang();
@@ -32562,7 +32577,7 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32562
32577
  const needsShell = !isExecutableRegExp.test(commandFile);
32563
32578
  if (parsed.options.forceShell || needsShell) {
32564
32579
  const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);
32565
- parsed.command = path$1.normalize(parsed.command);
32580
+ parsed.command = path$2.normalize(parsed.command);
32566
32581
  parsed.command = escape.command(parsed.command);
32567
32582
  parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));
32568
32583
  parsed.args = [
@@ -32680,12 +32695,12 @@ function toPath(urlOrPath) {
32680
32695
  }
32681
32696
  function traversePathUp(startPath) {
32682
32697
  return { *[Symbol.iterator]() {
32683
- let currentPath = nodePath.resolve(toPath(startPath));
32698
+ let currentPath = path.resolve(toPath(startPath));
32684
32699
  let previousPath;
32685
32700
  while (previousPath !== currentPath) {
32686
32701
  yield currentPath;
32687
32702
  previousPath = currentPath;
32688
- currentPath = nodePath.resolve(currentPath, "..");
32703
+ currentPath = path.resolve(currentPath, "..");
32689
32704
  }
32690
32705
  } };
32691
32706
  }
@@ -32694,21 +32709,21 @@ const TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;
32694
32709
  //#endregion
32695
32710
  //#region node_modules/npm-run-path/index.js
32696
32711
  const npmRunPath = ({ cwd = y.cwd(), path: pathOption = y.env[pathKey()], preferLocal = true, execPath: execPath$1 = y.execPath, addExecPath = true } = {}) => {
32697
- const cwdPath = nodePath.resolve(toPath(cwd));
32712
+ const cwdPath = path.resolve(toPath(cwd));
32698
32713
  const result = [];
32699
- const pathParts = pathOption.split(nodePath.delimiter);
32714
+ const pathParts = pathOption.split(path.delimiter);
32700
32715
  if (preferLocal) applyPreferLocal(result, pathParts, cwdPath);
32701
32716
  if (addExecPath) applyExecPath(result, pathParts, execPath$1, cwdPath);
32702
- return pathOption === "" || pathOption === nodePath.delimiter ? `${result.join(nodePath.delimiter)}${pathOption}` : [...result, pathOption].join(nodePath.delimiter);
32717
+ return pathOption === "" || pathOption === path.delimiter ? `${result.join(path.delimiter)}${pathOption}` : [...result, pathOption].join(path.delimiter);
32703
32718
  };
32704
32719
  const applyPreferLocal = (result, pathParts, cwdPath) => {
32705
32720
  for (const directory of traversePathUp(cwdPath)) {
32706
- const pathPart = nodePath.join(directory, "node_modules/.bin");
32721
+ const pathPart = path.join(directory, "node_modules/.bin");
32707
32722
  if (!pathParts.includes(pathPart)) result.push(pathPart);
32708
32723
  }
32709
32724
  };
32710
32725
  const applyExecPath = (result, pathParts, execPath$1, cwdPath) => {
32711
- const pathPart = nodePath.resolve(cwdPath, toPath(execPath$1), "..");
32726
+ const pathPart = path.resolve(cwdPath, toPath(execPath$1), "..");
32712
32727
  if (!pathParts.includes(pathPart)) result.push(pathPart);
32713
32728
  };
32714
32729
  const npmRunPathEnv = ({ env: env$1 = y.env, ...options } = {}) => {
@@ -33740,10 +33755,10 @@ const mapNode = ({ options }) => {
33740
33755
  node: true
33741
33756
  } };
33742
33757
  };
33743
- const handleNodeOption = (file, commandArguments, { node: shouldHandleNode = false, nodePath: nodePath$1 = execPath, nodeOptions = execArgv.filter((nodeOption) => !nodeOption.startsWith("--inspect")), cwd, execPath: formerNodePath, ...options }) => {
33758
+ const handleNodeOption = (file, commandArguments, { node: shouldHandleNode = false, nodePath = execPath, nodeOptions = execArgv.filter((nodeOption) => !nodeOption.startsWith("--inspect")), cwd, execPath: formerNodePath, ...options }) => {
33744
33759
  if (formerNodePath !== void 0) throw new TypeError("The \"execPath\" option has been removed. Please use the \"nodePath\" option instead.");
33745
- const normalizedNodePath = safeNormalizeFileUrl(nodePath$1, "The \"nodePath\" option");
33746
- const resolvedNodePath = nodePath.resolve(cwd, normalizedNodePath);
33760
+ const normalizedNodePath = safeNormalizeFileUrl(nodePath, "The \"nodePath\" option");
33761
+ const resolvedNodePath = path.resolve(cwd, normalizedNodePath);
33747
33762
  const newOptions = {
33748
33763
  ...options,
33749
33764
  nodePath: resolvedNodePath,
@@ -33755,7 +33770,7 @@ const handleNodeOption = (file, commandArguments, { node: shouldHandleNode = fal
33755
33770
  commandArguments,
33756
33771
  newOptions
33757
33772
  ];
33758
- if (nodePath.basename(file, ".exe") === "node") throw new TypeError("When the \"node\" option is true, the first argument does not need to be \"node\".");
33773
+ if (path.basename(file, ".exe") === "node") throw new TypeError("When the \"node\" option is true, the first argument does not need to be \"node\".");
33759
33774
  return [
33760
33775
  resolvedNodePath,
33761
33776
  [
@@ -33842,7 +33857,7 @@ const serializeEncoding = (encoding) => typeof encoding === "string" ? `"${encod
33842
33857
  //#region node_modules/execa/lib/arguments/cwd.js
33843
33858
  const normalizeCwd = (cwd = getDefaultCwd()) => {
33844
33859
  const cwdString = safeNormalizeFileUrl(cwd, "The \"cwd\" option");
33845
- return nodePath.resolve(cwdString);
33860
+ return path.resolve(cwdString);
33846
33861
  };
33847
33862
  const getDefaultCwd = () => {
33848
33863
  try {
@@ -33881,7 +33896,7 @@ const normalizeOptions = (filePath, rawArguments, rawOptions) => {
33881
33896
  options.killSignal = normalizeKillSignal(options.killSignal);
33882
33897
  options.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);
33883
33898
  options.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);
33884
- if (y.platform === "win32" && nodePath.basename(file, ".exe") === "cmd") commandArguments.unshift("/q");
33899
+ if (y.platform === "win32" && path.basename(file, ".exe") === "cmd") commandArguments.unshift("/q");
33885
33900
  return {
33886
33901
  file,
33887
33902
  commandArguments,
@@ -33906,7 +33921,7 @@ const addDefaultOptions = ({ extendEnv = true, preferLocal = false, cwd, localDi
33906
33921
  ipc,
33907
33922
  serialization
33908
33923
  });
33909
- const getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath: nodePath$1 }) => {
33924
+ const getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath }) => {
33910
33925
  const env$1 = extendEnv ? {
33911
33926
  ...y.env,
33912
33927
  ...envOption
@@ -33914,7 +33929,7 @@ const getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory,
33914
33929
  if (preferLocal || node) return npmRunPathEnv({
33915
33930
  env: env$1,
33916
33931
  cwd: localDirectory,
33917
- execPath: nodePath$1,
33932
+ execPath: nodePath,
33918
33933
  preferLocal,
33919
33934
  addExecPath: node
33920
33935
  });
@@ -35659,12 +35674,12 @@ const logOutputSync = ({ serializedResult, fdNumber, state, verboseInfo, encodin
35659
35674
  }
35660
35675
  };
35661
35676
  const writeToFiles = (serializedResult, stdioItems, outputFiles) => {
35662
- for (const { path: path$16, append } of stdioItems.filter(({ type }) => FILE_TYPES.has(type))) {
35663
- const pathString = typeof path$16 === "string" ? path$16 : path$16.toString();
35664
- if (append || outputFiles.has(pathString)) appendFileSync(path$16, serializedResult);
35677
+ for (const { path: path$17, append } of stdioItems.filter(({ type }) => FILE_TYPES.has(type))) {
35678
+ const pathString = typeof path$17 === "string" ? path$17 : path$17.toString();
35679
+ if (append || outputFiles.has(pathString)) appendFileSync(path$17, serializedResult);
35665
35680
  else {
35666
35681
  outputFiles.add(pathString);
35667
- writeFileSync(path$16, serializedResult);
35682
+ writeFileSync(path$17, serializedResult);
35668
35683
  }
35669
35684
  }
35670
35685
  };
@@ -38138,7 +38153,6 @@ var import_lodash = /* @__PURE__ */ __toESM(require_lodash(), 1);
38138
38153
  const orange = source_default.hex("#E86B3C");
38139
38154
  const cyan = source_default.hex("#00D4FF");
38140
38155
  async function create() {
38141
- Ie("Let's create something amazing!");
38142
38156
  const templateOptions = (await listTemplates()).map((t) => ({
38143
38157
  value: t,
38144
38158
  label: t.name,
@@ -38193,7 +38207,7 @@ async function create() {
38193
38207
  errorMessage: "Failed to push entities"
38194
38208
  });
38195
38209
  }
38196
- if (project.site && process.env.BASE44_API_URL) {
38210
+ if (project.site) {
38197
38211
  const installCommand = project.site.installCommand;
38198
38212
  const buildCommand = project.site.buildCommand;
38199
38213
  const outputDirectory = project.site.outputDirectory;
@@ -38222,7 +38236,7 @@ async function create() {
38222
38236
  M.message(`${source_default.dim("Project")}: ${orange(name$1.trim())}`);
38223
38237
  M.message(`${source_default.dim("Dashboard")}: ${cyan(dashboardUrl)}`);
38224
38238
  if (finalAppUrl) M.message(`${source_default.dim("Site")}: ${cyan(finalAppUrl)}`);
38225
- Se("Your project is set and ready to use");
38239
+ return { outroMessage: "Your project is set and ready to use" };
38226
38240
  }
38227
38241
  const createCommand = new Command("create").description("Create a new Base44 project").action(async () => {
38228
38242
  await runCommand(create, {
@@ -38238,17 +38252,13 @@ async function deployAction() {
38238
38252
  if (!project.site?.outputDirectory) throw new Error("No site configuration found. Please add 'site.outputDirectory' to your config.jsonc");
38239
38253
  const outputDir = resolve(project.root, project.site.outputDirectory);
38240
38254
  const shouldDeploy = await ye({ message: `Deploy site from ${project.site.outputDirectory}?` });
38241
- if (pD(shouldDeploy) || !shouldDeploy) {
38242
- M.warn("Deployment cancelled");
38243
- return;
38244
- }
38245
- const result = await runTask("Creating archive and deploying site...", async () => {
38255
+ if (pD(shouldDeploy) || !shouldDeploy) return { outroMessage: "Deployment cancelled" };
38256
+ return { outroMessage: `Visit your site at: ${(await runTask("Creating archive and deploying site...", async () => {
38246
38257
  return await deploySite(outputDir);
38247
38258
  }, {
38248
38259
  successMessage: "Site deployed successfully",
38249
38260
  errorMessage: "Deployment failed"
38250
- });
38251
- M.success(`Site deployed to: ${result.appUrl}`);
38261
+ })).appUrl}` };
38252
38262
  }
38253
38263
  const siteDeployCommand = new Command("site").description("Manage site deployments").addCommand(new Command("deploy").description("Deploy built site files to Base44 hosting").action(async () => {
38254
38264
  await runCommand(deployAction, { requireAuth: true });
@@ -38256,7 +38266,7 @@ const siteDeployCommand = new Command("site").description("Manage site deploymen
38256
38266
 
38257
38267
  //#endregion
38258
38268
  //#region package.json
38259
- var version = "0.0.6";
38269
+ var version = "0.0.7";
38260
38270
 
38261
38271
  //#endregion
38262
38272
  //#region src/cli/index.ts