base44 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +320 -315
- 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
|
|
5
|
+
import nodePath, { 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
|
|
16
|
+
import path, { 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$
|
|
895
|
+
const path$15 = __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$
|
|
1743
|
+
const localBin = path$15.resolve(baseDir, baseName);
|
|
1744
1744
|
if (fs$10.existsSync(localBin)) return localBin;
|
|
1745
|
-
if (sourceExt.includes(path$
|
|
1745
|
+
if (sourceExt.includes(path$15.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$
|
|
1760
|
+
executableDir = path$15.resolve(path$15.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$
|
|
1765
|
+
const legacyName = path$15.basename(this._scriptPath, path$15.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$
|
|
1770
|
+
launchWithNode = sourceExt.includes(path$15.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$
|
|
2476
|
+
this._name = path$15.basename(filename, path$15.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$
|
|
2491
|
-
if (path$
|
|
2492
|
-
this._executableDir = path$
|
|
2490
|
+
executableDir(path$16) {
|
|
2491
|
+
if (path$16 === void 0) return this._executableDir;
|
|
2492
|
+
this._executableDir = path$16;
|
|
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$
|
|
4704
|
+
function prefixIssues(path$16, 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$
|
|
4708
|
+
iss.path.unshift(path$16);
|
|
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$
|
|
9215
|
+
const path$14 = __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$
|
|
9353
|
+
else possibleVaultPath = path$14.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$
|
|
9358
|
+
return envPath[0] === "~" ? path$14.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$
|
|
9371
|
+
const dotenvPath = path$14.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$
|
|
9388
|
-
const parsed = DotenvModule.parse(fs$9.readFileSync(path$
|
|
9387
|
+
for (const path$16 of optionPaths) try {
|
|
9388
|
+
const parsed = DotenvModule.parse(fs$9.readFileSync(path$16, { encoding }));
|
|
9389
9389
|
DotenvModule.populate(parsedAll, parsed, options);
|
|
9390
9390
|
} catch (e$1) {
|
|
9391
|
-
if (debug) _debug(`Failed to load ${path$
|
|
9391
|
+
if (debug) _debug(`Failed to load ${path$16} ${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$
|
|
9401
|
+
const relative = path$14.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$
|
|
9719
|
+
const path$13 = __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$
|
|
9748
|
+
return path$13.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$
|
|
11014
|
+
const path$12 = __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$
|
|
11139
|
+
SEP: path$12.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$
|
|
11178
|
+
const path$11 = __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$
|
|
11198
|
+
return win32 === true || path$11.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$
|
|
12374
|
+
const path$10 = __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$
|
|
12513
|
+
return (glob instanceof RegExp ? glob : picomatch.makeRe(glob, options)).test(path$10.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$
|
|
13071
|
+
const path$9 = __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$
|
|
13179
|
+
const basename$1 = path$9.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$
|
|
13253
|
+
return path$9.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$
|
|
13497
|
-
settings.fs.lstat(path$
|
|
13496
|
+
function read(path$16, settings, callback) {
|
|
13497
|
+
settings.fs.lstat(path$16, (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$
|
|
13506
|
+
settings.fs.stat(path$16, (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$
|
|
13535
|
-
const lstat = settings.fs.lstatSync(path$
|
|
13534
|
+
function read(path$16, settings) {
|
|
13535
|
+
const lstat = settings.fs.lstatSync(path$16);
|
|
13536
13536
|
if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) return lstat;
|
|
13537
13537
|
try {
|
|
13538
|
-
const stat = settings.fs.statSync(path$
|
|
13538
|
+
const stat = settings.fs.statSync(path$16);
|
|
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$
|
|
13597
|
+
function stat(path$16, optionsOrSettingsOrCallback, callback) {
|
|
13598
13598
|
if (typeof optionsOrSettingsOrCallback === "function") {
|
|
13599
|
-
async.read(path$
|
|
13599
|
+
async.read(path$16, getSettings(), optionsOrSettingsOrCallback);
|
|
13600
13600
|
return;
|
|
13601
13601
|
}
|
|
13602
|
-
async.read(path$
|
|
13602
|
+
async.read(path$16, getSettings(optionsOrSettingsOrCallback), callback);
|
|
13603
13603
|
}
|
|
13604
13604
|
exports.stat = stat;
|
|
13605
|
-
function statSync(path$
|
|
13605
|
+
function statSync(path$16, optionsOrSettings) {
|
|
13606
13606
|
const settings = getSettings(optionsOrSettings);
|
|
13607
|
-
return sync.read(path$
|
|
13607
|
+
return sync.read(path$16, 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$
|
|
13806
|
+
const path$16 = common.joinPathSegments(directory, name$1, settings.pathSegmentSeparator);
|
|
13807
13807
|
return (done) => {
|
|
13808
|
-
fsStat.stat(path$
|
|
13808
|
+
fsStat.stat(path$16, 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$
|
|
13815
|
+
path: path$16,
|
|
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$
|
|
13912
|
+
const path$8 = __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$
|
|
13920
|
+
this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$8.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$
|
|
13945
|
+
function scandir(path$16, optionsOrSettingsOrCallback, callback) {
|
|
13946
13946
|
if (typeof optionsOrSettingsOrCallback === "function") {
|
|
13947
|
-
async.read(path$
|
|
13947
|
+
async.read(path$16, getSettings(), optionsOrSettingsOrCallback);
|
|
13948
13948
|
return;
|
|
13949
13949
|
}
|
|
13950
|
-
async.read(path$
|
|
13950
|
+
async.read(path$16, getSettings(optionsOrSettingsOrCallback), callback);
|
|
13951
13951
|
}
|
|
13952
13952
|
exports.scandir = scandir;
|
|
13953
|
-
function scandirSync(path$
|
|
13953
|
+
function scandirSync(path$16, optionsOrSettings) {
|
|
13954
13954
|
const settings = getSettings(optionsOrSettings);
|
|
13955
|
-
return sync.read(path$
|
|
13955
|
+
return sync.read(path$16, 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$
|
|
14525
|
+
const path$7 = __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$
|
|
14535
|
+
this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$7.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$
|
|
14589
|
+
const path$6 = __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$
|
|
14602
|
+
return path$6.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$
|
|
14946
|
+
const path$5 = __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$
|
|
14960
|
+
return path$5.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$
|
|
15413
|
+
test(path$16, 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$
|
|
15420
|
+
if (!rule[mode].test(path$16)) 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$
|
|
15437
|
-
if (!isString(path$
|
|
15438
|
-
if (!path$
|
|
15439
|
-
if (checkPath.isNotRelative(path$
|
|
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);
|
|
15440
15440
|
return true;
|
|
15441
15441
|
};
|
|
15442
|
-
const isNotRelative = (path$
|
|
15442
|
+
const isNotRelative = (path$16) => REGEX_TEST_INVALID_PATH.test(path$16);
|
|
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$
|
|
15466
|
-
checkPath(path$
|
|
15467
|
-
return this._t(path$
|
|
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);
|
|
15468
15468
|
}
|
|
15469
|
-
checkIgnore(path$
|
|
15470
|
-
if (!REGEX_TEST_TRAILING_SLASH.test(path$
|
|
15471
|
-
const slices = path$
|
|
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);
|
|
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$
|
|
15477
|
+
return this._rules.test(path$16, false, MODE_CHECK_IGNORE);
|
|
15478
15478
|
}
|
|
15479
|
-
_t(path$
|
|
15480
|
-
if (path$
|
|
15481
|
-
if (!slices) slices = path$
|
|
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);
|
|
15482
15482
|
slices.pop();
|
|
15483
|
-
if (!slices.length) return cache$1[path$
|
|
15483
|
+
if (!slices.length) return cache$1[path$16] = this._rules.test(path$16, checkUnignored, MODE_IGNORE);
|
|
15484
15484
|
const parent = this._t(slices.join(SLASH) + SLASH, cache$1, checkUnignored, slices);
|
|
15485
|
-
return cache$1[path$
|
|
15485
|
+
return cache$1[path$16] = parent.ignored ? parent : this._rules.test(path$16, checkUnignored, MODE_IGNORE);
|
|
15486
15486
|
}
|
|
15487
|
-
ignores(path$
|
|
15488
|
-
return this._test(path$
|
|
15487
|
+
ignores(path$16) {
|
|
15488
|
+
return this._test(path$16, this._ignoreCache, false).ignored;
|
|
15489
15489
|
}
|
|
15490
15490
|
createFilter() {
|
|
15491
|
-
return (path$
|
|
15491
|
+
return (path$16) => !this.ignores(path$16);
|
|
15492
15492
|
}
|
|
15493
15493
|
filter(paths) {
|
|
15494
15494
|
return makeArray(paths).filter(this.createFilter());
|
|
15495
15495
|
}
|
|
15496
|
-
test(path$
|
|
15497
|
-
return this._test(path$
|
|
15496
|
+
test(path$16) {
|
|
15497
|
+
return this._test(path$16, this._testCache, true);
|
|
15498
15498
|
}
|
|
15499
15499
|
};
|
|
15500
15500
|
const factory = (options) => new Ignore(options);
|
|
15501
|
-
const isPathValid = (path$
|
|
15501
|
+
const isPathValid = (path$16) => checkPath(path$16 && checkPath.convert(path$16), path$16, 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$
|
|
15507
|
+
checkPath.isNotRelative = (path$16) => REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path$16) || isNotRelative(path$16);
|
|
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 =
|
|
15522
|
-
return Boolean(relation && relation !== ".." && !relation.startsWith(`..${
|
|
15521
|
+
const relation = nodePath.relative(parentPath, childPath);
|
|
15522
|
+
return Boolean(relation && relation !== ".." && !relation.startsWith(`..${nodePath.sep}`) && relation !== nodePath.resolve(childPath));
|
|
15523
15523
|
}
|
|
15524
15524
|
|
|
15525
15525
|
//#endregion
|
|
15526
15526
|
//#region node_modules/slash/index.js
|
|
15527
|
-
function slash(path$
|
|
15528
|
-
if (path$
|
|
15529
|
-
return path$
|
|
15527
|
+
function slash(path$16) {
|
|
15528
|
+
if (path$16.startsWith("\\\\?\\")) return path$16;
|
|
15529
|
+
return path$16.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 =
|
|
15615
|
+
const parentPath = nodePath.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 =
|
|
15624
|
+
const gitPath = nodePath.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 =
|
|
15634
|
-
const { root } =
|
|
15633
|
+
const currentPath = nodePath.resolve(cwd);
|
|
15634
|
+
const { root } = nodePath.parse(currentPath);
|
|
15635
15635
|
const chain = buildPathChain(currentPath, root);
|
|
15636
15636
|
for (const directory of chain) {
|
|
15637
|
-
const gitPath =
|
|
15637
|
+
const gitPath = nodePath.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 =
|
|
15651
|
-
const { root } =
|
|
15650
|
+
const currentPath = nodePath.resolve(cwd);
|
|
15651
|
+
const { root } = nodePath.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 =
|
|
15667
|
-
const resolvedCwd =
|
|
15666
|
+
const resolvedGitRoot = nodePath.resolve(gitRoot);
|
|
15667
|
+
const resolvedCwd = nodePath.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(
|
|
15675
|
+
return [...buildPathChain(nodePath.resolve(cwd), nodePath.resolve(gitRoot))].reverse().map((directory) => nodePath.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 =
|
|
15783
|
-
else if (cleanPattern.startsWith("/")) result =
|
|
15784
|
-
else 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);
|
|
15785
15785
|
return isNegative ? "!" + result : result;
|
|
15786
15786
|
};
|
|
15787
15787
|
const parseIgnoreFile = (file, cwd) => {
|
|
15788
|
-
const base = slash(
|
|
15788
|
+
const base = slash(nodePath.relative(cwd, nodePath.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 (
|
|
15793
|
-
const relativePath =
|
|
15792
|
+
if (nodePath.isAbsolute(fileOrDirectory)) {
|
|
15793
|
+
const relativePath = nodePath.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 =
|
|
15804
|
-
const resolvedBaseDir =
|
|
15803
|
+
const resolvedCwd = nodePath.normalize(nodePath.resolve(cwd));
|
|
15804
|
+
const resolvedBaseDir = nodePath.normalize(nodePath.resolve(baseDir));
|
|
15805
15805
|
return (fileOrDirectory) => {
|
|
15806
15806
|
fileOrDirectory = toPath$1(fileOrDirectory);
|
|
15807
|
-
if (
|
|
15807
|
+
if (nodePath.normalize(nodePath.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$
|
|
15882
|
+
const isDirectory = async (path$16, fsImplementation) => {
|
|
15883
15883
|
try {
|
|
15884
|
-
return (await getStatMethod(fsImplementation)(path$
|
|
15884
|
+
return (await getStatMethod(fsImplementation)(path$16)).isDirectory();
|
|
15885
15885
|
} catch {
|
|
15886
15886
|
return false;
|
|
15887
15887
|
}
|
|
15888
15888
|
};
|
|
15889
|
-
const isDirectorySync = (path$
|
|
15889
|
+
const isDirectorySync = (path$16, fsImplementation) => {
|
|
15890
15890
|
try {
|
|
15891
|
-
return getStatSyncMethod(fsImplementation)(path$
|
|
15891
|
+
return getStatSyncMethod(fsImplementation)(path$16).isDirectory();
|
|
15892
15892
|
} catch {
|
|
15893
15893
|
return false;
|
|
15894
15894
|
}
|
|
15895
15895
|
};
|
|
15896
15896
|
const normalizePathForDirectoryGlob = (filePath, cwd) => {
|
|
15897
|
-
const path$
|
|
15898
|
-
return
|
|
15897
|
+
const path$16 = isNegativePattern(filePath) ? filePath.slice(1) : filePath;
|
|
15898
|
+
return nodePath.isAbsolute(path$16) ? path$16 : nodePath.join(cwd, path$16);
|
|
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 =
|
|
15905
|
+
const hasExtension = nodePath.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) =>
|
|
15910
|
+
return files ? files.map((file) => nodePath.posix.join(directoryPath, `**/${nodePath.extname(file) ? file : `${file}${extensionGlob}`}`)) : [nodePath.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 =
|
|
16025
|
+
const pathKey$1 = nodePath.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 =
|
|
16030
|
+
absolutePath = nodePath.isAbsolute(pathKey$1) ? pathKey$1 : nodePath.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$
|
|
17103
|
+
async function pathExists(path$16) {
|
|
17104
17104
|
try {
|
|
17105
|
-
await access(path$
|
|
17105
|
+
await access(path$16);
|
|
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$
|
|
17608
|
+
var path$4 = __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$
|
|
17679
|
-
var extname = path$
|
|
17680
|
-
var resolve$1 = path$
|
|
17678
|
+
var dirname$2 = path$4.dirname;
|
|
17679
|
+
var extname = path$4.extname;
|
|
17680
|
+
var resolve$1 = path$4.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$
|
|
17706
|
+
function getIncludePath(path$16, options) {
|
|
17707
17707
|
var includePath;
|
|
17708
17708
|
var filePath;
|
|
17709
17709
|
var views = options.views;
|
|
17710
|
-
var match = /^[A-Za-z]+:\\|^\//.exec(path$
|
|
17710
|
+
var match = /^[A-Za-z]+:\\|^\//.exec(path$16);
|
|
17711
17711
|
if (match && match.length) {
|
|
17712
|
-
path$
|
|
17713
|
-
if (Array.isArray(options.root)) includePath = resolvePaths(path$
|
|
17714
|
-
else includePath = exports.resolveInclude(path$
|
|
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);
|
|
17715
17715
|
} else {
|
|
17716
17716
|
if (options.filename) {
|
|
17717
|
-
filePath = exports.resolveInclude(path$
|
|
17717
|
+
filePath = exports.resolveInclude(path$16, options.filename);
|
|
17718
17718
|
if (fs$5.existsSync(filePath)) includePath = filePath;
|
|
17719
17719
|
}
|
|
17720
|
-
if (!includePath && Array.isArray(views)) includePath = resolvePaths(path$
|
|
17721
|
-
if (!includePath && typeof options.includer !== "function") throw new Error("Could not find the include file \"" + options.escapeFunction(path$
|
|
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) + "\"");
|
|
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$
|
|
17813
|
+
function includeFile(path$16, options) {
|
|
17814
17814
|
var opts = utils.shallowCopy(utils.createNullProtoObjWherePossible(), options);
|
|
17815
|
-
opts.filename = getIncludePath(path$
|
|
17815
|
+
opts.filename = getIncludePath(path$16, opts);
|
|
17816
17816
|
if (typeof options.includer === "function") {
|
|
17817
|
-
var includerResult = options.includer(path$
|
|
17817
|
+
var includerResult = options.includer(path$16, 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$
|
|
18068
|
+
var include = function(path$16, 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$
|
|
18071
|
+
return includeFile(path$16, 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$
|
|
18082
|
+
var basename$1 = path$4.basename(filename, path$4.extname(filename));
|
|
18083
18083
|
try {
|
|
18084
18084
|
Object.defineProperty(returnedFn, "name", {
|
|
18085
18085
|
value: basename$1,
|
|
@@ -26282,30 +26282,48 @@ async function printBanner() {
|
|
|
26282
26282
|
//#region src/cli/utils/runCommand.ts
|
|
26283
26283
|
const base44Color = source_default.bgHex("#E86B3C");
|
|
26284
26284
|
/**
|
|
26285
|
-
* Wraps a command function with the Base44 intro
|
|
26285
|
+
* Wraps a command function with the Base44 intro/outro and error handling.
|
|
26286
26286
|
* All CLI commands should use this utility to ensure consistent branding.
|
|
26287
|
-
* Also loads .env.local from the project root if available.
|
|
26288
26287
|
*
|
|
26289
|
-
*
|
|
26288
|
+
* **Responsibilities**:
|
|
26289
|
+
* - Displays the intro (simple tag or full ASCII banner)
|
|
26290
|
+
* - Loads `.env.local` from the project root if available
|
|
26291
|
+
* - Checks authentication if `requireAuth` is set
|
|
26292
|
+
* - Runs the command function
|
|
26293
|
+
* - Displays the outro message returned by the command
|
|
26294
|
+
* - Handles errors and exits with code 1 on failure
|
|
26295
|
+
*
|
|
26296
|
+
* **Important**: Commands should NOT call `intro()` or `outro()` directly.
|
|
26297
|
+
* This function handles both. Commands can return an optional `outroMessage`
|
|
26298
|
+
* which will be displayed at the end.
|
|
26299
|
+
*
|
|
26300
|
+
* @param commandFn - The async function to execute. Returns `RunCommandResult` with optional `outroMessage`.
|
|
26290
26301
|
* @param options - Optional configuration for the command wrapper
|
|
26291
26302
|
*
|
|
26292
26303
|
* @example
|
|
26293
|
-
* // Standard command with
|
|
26304
|
+
* // Standard command with outro message
|
|
26305
|
+
* async function myAction(): Promise<RunCommandResult> {
|
|
26306
|
+
* // ... do work ...
|
|
26307
|
+
* return { outroMessage: "Done!" };
|
|
26308
|
+
* }
|
|
26309
|
+
*
|
|
26294
26310
|
* export const myCommand = new Command("my-command")
|
|
26295
26311
|
* .action(async () => {
|
|
26296
26312
|
* await runCommand(myAction);
|
|
26297
26313
|
* });
|
|
26298
26314
|
*
|
|
26299
26315
|
* @example
|
|
26300
|
-
* // Command requiring authentication
|
|
26316
|
+
* // Command requiring authentication with full banner
|
|
26301
26317
|
* export const myCommand = new Command("my-command")
|
|
26302
26318
|
* .action(async () => {
|
|
26303
|
-
* await runCommand(myAction, { requireAuth: true });
|
|
26319
|
+
* await runCommand(myAction, { requireAuth: true, fullBanner: true });
|
|
26304
26320
|
* });
|
|
26305
26321
|
*/
|
|
26306
26322
|
async function runCommand(commandFn, options) {
|
|
26307
|
-
if (options?.fullBanner)
|
|
26308
|
-
|
|
26323
|
+
if (options?.fullBanner) {
|
|
26324
|
+
await printBanner();
|
|
26325
|
+
Ie("");
|
|
26326
|
+
} else Ie(base44Color(" Base 44 "));
|
|
26309
26327
|
await loadProjectEnv();
|
|
26310
26328
|
try {
|
|
26311
26329
|
if (options?.requireAuth) {
|
|
@@ -26314,7 +26332,8 @@ async function runCommand(commandFn, options) {
|
|
|
26314
26332
|
await login();
|
|
26315
26333
|
}
|
|
26316
26334
|
}
|
|
26317
|
-
await commandFn();
|
|
26335
|
+
const { outroMessage } = await commandFn();
|
|
26336
|
+
Se(outroMessage || "");
|
|
26318
26337
|
} catch (e$1) {
|
|
26319
26338
|
if (e$1 instanceof Error) M.error(e$1.stack ?? e$1.message);
|
|
26320
26339
|
else M.error(String(e$1));
|
|
@@ -26440,7 +26459,7 @@ async function login() {
|
|
|
26440
26459
|
const token = await waitForAuthentication(deviceCodeResponse.deviceCode, deviceCodeResponse.expiresIn, deviceCodeResponse.interval);
|
|
26441
26460
|
const userInfo = await getUserInfo(token.accessToken);
|
|
26442
26461
|
await saveAuthData(token, userInfo);
|
|
26443
|
-
|
|
26462
|
+
return { outroMessage: `Successfully logged in as ${source_default.bold(userInfo.email)}` };
|
|
26444
26463
|
}
|
|
26445
26464
|
const loginCommand = new Command("login").description("Authenticate with Base44").action(async () => {
|
|
26446
26465
|
await runCommand(login);
|
|
@@ -26450,7 +26469,7 @@ const loginCommand = new Command("login").description("Authenticate with Base44"
|
|
|
26450
26469
|
//#region src/cli/commands/auth/whoami.ts
|
|
26451
26470
|
async function whoami() {
|
|
26452
26471
|
const auth = await readAuth();
|
|
26453
|
-
|
|
26472
|
+
return { outroMessage: `Logged in as: ${source_default.bold(auth.email)}` };
|
|
26454
26473
|
}
|
|
26455
26474
|
const whoamiCommand = new Command("whoami").description("Display current authenticated user").action(async () => {
|
|
26456
26475
|
await runCommand(whoami, { requireAuth: true });
|
|
@@ -26460,10 +26479,10 @@ const whoamiCommand = new Command("whoami").description("Display current authent
|
|
|
26460
26479
|
//#region src/cli/commands/auth/logout.ts
|
|
26461
26480
|
async function logout() {
|
|
26462
26481
|
await deleteAuth();
|
|
26463
|
-
|
|
26482
|
+
return { outroMessage: "Logged out successfully" };
|
|
26464
26483
|
}
|
|
26465
26484
|
const logoutCommand = new Command("logout").description("Logout from current device").action(async () => {
|
|
26466
|
-
await runCommand(logout
|
|
26485
|
+
await runCommand(logout);
|
|
26467
26486
|
});
|
|
26468
26487
|
|
|
26469
26488
|
//#endregion
|
|
@@ -26471,14 +26490,7 @@ const logoutCommand = new Command("logout").description("Logout from current dev
|
|
|
26471
26490
|
/**
|
|
26472
26491
|
* Response from the deploy API endpoint.
|
|
26473
26492
|
*/
|
|
26474
|
-
const DeployResponseSchema = object({
|
|
26475
|
-
success: boolean(),
|
|
26476
|
-
app_id: string(),
|
|
26477
|
-
files_count: number(),
|
|
26478
|
-
total_size_bytes: number(),
|
|
26479
|
-
deployed_at: string(),
|
|
26480
|
-
app_url: string().url()
|
|
26481
|
-
});
|
|
26493
|
+
const DeployResponseSchema = object({ app_url: url() }).transform((data) => ({ appUrl: data.app_url }));
|
|
26482
26494
|
|
|
26483
26495
|
//#endregion
|
|
26484
26496
|
//#region src/core/site/config.ts
|
|
@@ -27373,15 +27385,15 @@ var ReadStream = class extends Minipass {
|
|
|
27373
27385
|
[_size];
|
|
27374
27386
|
[_remain];
|
|
27375
27387
|
[_autoClose];
|
|
27376
|
-
constructor(path$
|
|
27388
|
+
constructor(path$16, opt) {
|
|
27377
27389
|
opt = opt || {};
|
|
27378
27390
|
super(opt);
|
|
27379
27391
|
this.readable = true;
|
|
27380
27392
|
this.writable = false;
|
|
27381
|
-
if (typeof path$
|
|
27393
|
+
if (typeof path$16 !== "string") throw new TypeError("path must be a string");
|
|
27382
27394
|
this[_errored] = false;
|
|
27383
27395
|
this[_fd] = typeof opt.fd === "number" ? opt.fd : void 0;
|
|
27384
|
-
this[_path] = path$
|
|
27396
|
+
this[_path] = path$16;
|
|
27385
27397
|
this[_readSize] = opt.readSize || 16 * 1024 * 1024;
|
|
27386
27398
|
this[_reading] = false;
|
|
27387
27399
|
this[_size] = typeof opt.size === "number" ? opt.size : Infinity;
|
|
@@ -27523,10 +27535,10 @@ var WriteStream = class extends EE {
|
|
|
27523
27535
|
[_flags];
|
|
27524
27536
|
[_finished] = false;
|
|
27525
27537
|
[_pos];
|
|
27526
|
-
constructor(path$
|
|
27538
|
+
constructor(path$16, opt) {
|
|
27527
27539
|
opt = opt || {};
|
|
27528
27540
|
super(opt);
|
|
27529
|
-
this[_path] = path$
|
|
27541
|
+
this[_path] = path$16;
|
|
27530
27542
|
this[_fd] = typeof opt.fd === "number" ? opt.fd : void 0;
|
|
27531
27543
|
this[_mode] = opt.mode === void 0 ? 438 : opt.mode;
|
|
27532
27544
|
this[_pos] = typeof opt.start === "number" ? opt.start : void 0;
|
|
@@ -28285,10 +28297,10 @@ var Header = class {
|
|
|
28285
28297
|
if (!(buf.length >= off + 512)) throw new Error("need 512 bytes for header");
|
|
28286
28298
|
const prefixSize = this.ctime || this.atime ? 130 : 155;
|
|
28287
28299
|
const split = splitPrefix(this.path || "", prefixSize);
|
|
28288
|
-
const path$
|
|
28300
|
+
const path$16 = split[0];
|
|
28289
28301
|
const prefix = split[1];
|
|
28290
28302
|
this.needPax = !!split[2];
|
|
28291
|
-
this.needPax = encString(buf, off, 100, path$
|
|
28303
|
+
this.needPax = encString(buf, off, 100, path$16) || this.needPax;
|
|
28292
28304
|
this.needPax = encNumber(buf, off + 100, 8, this.mode) || this.needPax;
|
|
28293
28305
|
this.needPax = encNumber(buf, off + 108, 8, this.uid) || this.needPax;
|
|
28294
28306
|
this.needPax = encNumber(buf, off + 116, 8, this.gid) || this.needPax;
|
|
@@ -29127,16 +29139,16 @@ const modeFix = (mode, isDir, portable) => {
|
|
|
29127
29139
|
//#endregion
|
|
29128
29140
|
//#region node_modules/tar/dist/esm/strip-absolute-path.js
|
|
29129
29141
|
const { isAbsolute, parse: parse$1 } = win32;
|
|
29130
|
-
const stripAbsolutePath = (path$
|
|
29142
|
+
const stripAbsolutePath = (path$16) => {
|
|
29131
29143
|
let r$1 = "";
|
|
29132
|
-
let parsed = parse$1(path$
|
|
29133
|
-
while (isAbsolute(path$
|
|
29134
|
-
const root = path$
|
|
29135
|
-
path$
|
|
29144
|
+
let parsed = parse$1(path$16);
|
|
29145
|
+
while (isAbsolute(path$16) || parsed.root) {
|
|
29146
|
+
const root = path$16.charAt(0) === "/" && path$16.slice(0, 4) !== "//?/" ? "/" : parsed.root;
|
|
29147
|
+
path$16 = path$16.slice(root.length);
|
|
29136
29148
|
r$1 += root;
|
|
29137
|
-
parsed = parse$1(path$
|
|
29149
|
+
parsed = parse$1(path$16);
|
|
29138
29150
|
}
|
|
29139
|
-
return [r$1, path$
|
|
29151
|
+
return [r$1, path$16];
|
|
29140
29152
|
};
|
|
29141
29153
|
|
|
29142
29154
|
//#endregion
|
|
@@ -29156,10 +29168,10 @@ const decode = (s) => win.reduce((s$1, c$1) => s$1.split(c$1).join(toRaw.get(c$1
|
|
|
29156
29168
|
|
|
29157
29169
|
//#endregion
|
|
29158
29170
|
//#region node_modules/tar/dist/esm/write-entry.js
|
|
29159
|
-
const prefixPath = (path$
|
|
29160
|
-
if (!prefix) return normalizeWindowsPath(path$
|
|
29161
|
-
path$
|
|
29162
|
-
return stripTrailingSlashes(prefix) + "/" + path$
|
|
29171
|
+
const prefixPath = (path$16, prefix) => {
|
|
29172
|
+
if (!prefix) return normalizeWindowsPath(path$16);
|
|
29173
|
+
path$16 = normalizeWindowsPath(path$16).replace(/^\.(\/|$)/, "");
|
|
29174
|
+
return stripTrailingSlashes(prefix) + "/" + path$16;
|
|
29163
29175
|
};
|
|
29164
29176
|
const maxReadSize = 16 * 1024 * 1024;
|
|
29165
29177
|
const PROCESS$1 = Symbol("process");
|
|
@@ -29241,7 +29253,7 @@ var WriteEntry = class extends Minipass {
|
|
|
29241
29253
|
this.path = decode(this.path.replace(/\\/g, "/"));
|
|
29242
29254
|
p$1 = p$1.replace(/\\/g, "/");
|
|
29243
29255
|
}
|
|
29244
|
-
this.absolute = normalizeWindowsPath(opt.absolute || path
|
|
29256
|
+
this.absolute = normalizeWindowsPath(opt.absolute || path.resolve(this.cwd, p$1));
|
|
29245
29257
|
if (this.path === "") this.path = "./";
|
|
29246
29258
|
if (pathWarn) this.warn("TAR_ENTRY_INFO", `stripping ${pathWarn} from absolute path`, {
|
|
29247
29259
|
entry: this,
|
|
@@ -29283,8 +29295,8 @@ var WriteEntry = class extends Minipass {
|
|
|
29283
29295
|
[MODE](mode) {
|
|
29284
29296
|
return modeFix(mode, this.type === "Directory", this.portable);
|
|
29285
29297
|
}
|
|
29286
|
-
[PREFIX](path$
|
|
29287
|
-
return prefixPath(path$
|
|
29298
|
+
[PREFIX](path$16) {
|
|
29299
|
+
return prefixPath(path$16, this.prefix);
|
|
29288
29300
|
}
|
|
29289
29301
|
[HEADER]() {
|
|
29290
29302
|
/* c8 ignore start */
|
|
@@ -29350,7 +29362,7 @@ var WriteEntry = class extends Minipass {
|
|
|
29350
29362
|
if (!this.stat) throw new Error("cannot create link entry without stat");
|
|
29351
29363
|
/* c8 ignore stop */
|
|
29352
29364
|
this.type = "Link";
|
|
29353
|
-
this.linkpath = normalizeWindowsPath(path
|
|
29365
|
+
this.linkpath = normalizeWindowsPath(path.relative(this.cwd, linkpath));
|
|
29354
29366
|
this.stat.size = 0;
|
|
29355
29367
|
this[HEADER]();
|
|
29356
29368
|
this.end();
|
|
@@ -29616,8 +29628,8 @@ var WriteEntryTar = class extends Minipass {
|
|
|
29616
29628
|
super.write(b$2);
|
|
29617
29629
|
readEntry.pipe(this);
|
|
29618
29630
|
}
|
|
29619
|
-
[PREFIX](path$
|
|
29620
|
-
return prefixPath(path$
|
|
29631
|
+
[PREFIX](path$16) {
|
|
29632
|
+
return prefixPath(path$16, this.prefix);
|
|
29621
29633
|
}
|
|
29622
29634
|
[MODE](mode) {
|
|
29623
29635
|
return modeFix(mode, this.type === "Directory", this.portable);
|
|
@@ -29926,8 +29938,8 @@ var PackJob = class {
|
|
|
29926
29938
|
pending = false;
|
|
29927
29939
|
ignore = false;
|
|
29928
29940
|
piped = false;
|
|
29929
|
-
constructor(path$
|
|
29930
|
-
this.path = path$
|
|
29941
|
+
constructor(path$16, absolute) {
|
|
29942
|
+
this.path = path$16 || "./";
|
|
29931
29943
|
this.absolute = absolute;
|
|
29932
29944
|
}
|
|
29933
29945
|
};
|
|
@@ -30032,36 +30044,36 @@ var Pack = class extends Minipass {
|
|
|
30032
30044
|
[WRITE](chunk) {
|
|
30033
30045
|
return super.write(chunk);
|
|
30034
30046
|
}
|
|
30035
|
-
add(path$
|
|
30036
|
-
this.write(path$
|
|
30047
|
+
add(path$16) {
|
|
30048
|
+
this.write(path$16);
|
|
30037
30049
|
return this;
|
|
30038
30050
|
}
|
|
30039
|
-
end(path$
|
|
30051
|
+
end(path$16, encoding, cb) {
|
|
30040
30052
|
/* c8 ignore start */
|
|
30041
|
-
if (typeof path$
|
|
30042
|
-
cb = path$
|
|
30043
|
-
path$
|
|
30053
|
+
if (typeof path$16 === "function") {
|
|
30054
|
+
cb = path$16;
|
|
30055
|
+
path$16 = void 0;
|
|
30044
30056
|
}
|
|
30045
30057
|
if (typeof encoding === "function") {
|
|
30046
30058
|
cb = encoding;
|
|
30047
30059
|
encoding = void 0;
|
|
30048
30060
|
}
|
|
30049
30061
|
/* c8 ignore stop */
|
|
30050
|
-
if (path$
|
|
30062
|
+
if (path$16) this.add(path$16);
|
|
30051
30063
|
this[ENDED$1] = true;
|
|
30052
30064
|
this[PROCESS]();
|
|
30053
30065
|
/* c8 ignore next */
|
|
30054
30066
|
if (cb) cb();
|
|
30055
30067
|
return this;
|
|
30056
30068
|
}
|
|
30057
|
-
write(path$
|
|
30069
|
+
write(path$16) {
|
|
30058
30070
|
if (this[ENDED$1]) throw new Error("write after end");
|
|
30059
|
-
if (path$
|
|
30060
|
-
else this[ADDFSENTRY](path$
|
|
30071
|
+
if (path$16 instanceof ReadEntry) this[ADDTARENTRY](path$16);
|
|
30072
|
+
else this[ADDFSENTRY](path$16);
|
|
30061
30073
|
return this.flowing;
|
|
30062
30074
|
}
|
|
30063
30075
|
[ADDTARENTRY](p$1) {
|
|
30064
|
-
const absolute = normalizeWindowsPath(path
|
|
30076
|
+
const absolute = normalizeWindowsPath(path.resolve(this.cwd, p$1.path));
|
|
30065
30077
|
if (!this.filter(p$1.path, p$1)) p$1.resume();
|
|
30066
30078
|
else {
|
|
30067
30079
|
const job = new PackJob(p$1.path, absolute);
|
|
@@ -30073,7 +30085,7 @@ var Pack = class extends Minipass {
|
|
|
30073
30085
|
this[PROCESS]();
|
|
30074
30086
|
}
|
|
30075
30087
|
[ADDFSENTRY](p$1) {
|
|
30076
|
-
const absolute = normalizeWindowsPath(path
|
|
30088
|
+
const absolute = normalizeWindowsPath(path.resolve(this.cwd, p$1));
|
|
30077
30089
|
this[QUEUE].push(new PackJob(p$1, absolute));
|
|
30078
30090
|
this[PROCESS]();
|
|
30079
30091
|
}
|
|
@@ -30274,7 +30286,7 @@ const createFile = (opt, files) => {
|
|
|
30274
30286
|
const addFilesSync$1 = (p$1, files) => {
|
|
30275
30287
|
files.forEach((file) => {
|
|
30276
30288
|
if (file.charAt(0) === "@") list({
|
|
30277
|
-
file:
|
|
30289
|
+
file: nodePath.resolve(p$1.cwd, file.slice(1)),
|
|
30278
30290
|
sync: true,
|
|
30279
30291
|
noResume: true,
|
|
30280
30292
|
onReadEntry: (entry) => p$1.add(entry)
|
|
@@ -30287,7 +30299,7 @@ const addFilesAsync$1 = async (p$1, files) => {
|
|
|
30287
30299
|
for (let i$1 = 0; i$1 < files.length; i$1++) {
|
|
30288
30300
|
const file = String(files[i$1]);
|
|
30289
30301
|
if (file.charAt(0) === "@") await list({
|
|
30290
|
-
file:
|
|
30302
|
+
file: nodePath.resolve(String(p$1.cwd), file.slice(1)),
|
|
30291
30303
|
noResume: true,
|
|
30292
30304
|
onReadEntry: (entry) => {
|
|
30293
30305
|
p$1.add(entry);
|
|
@@ -30325,9 +30337,9 @@ const getWriteFlag = !fMapEnabled ? () => "w" : (size) => size < fMapLimit ? fMa
|
|
|
30325
30337
|
|
|
30326
30338
|
//#endregion
|
|
30327
30339
|
//#region node_modules/chownr/dist/esm/index.js
|
|
30328
|
-
const lchownSync = (path$
|
|
30340
|
+
const lchownSync = (path$16, uid, gid) => {
|
|
30329
30341
|
try {
|
|
30330
|
-
return fs.lchownSync(path$
|
|
30342
|
+
return fs.lchownSync(path$16, uid, gid);
|
|
30331
30343
|
} catch (er) {
|
|
30332
30344
|
if (er?.code !== "ENOENT") throw er;
|
|
30333
30345
|
}
|
|
@@ -30338,11 +30350,11 @@ const chown = (cpath, uid, gid, cb) => {
|
|
|
30338
30350
|
});
|
|
30339
30351
|
};
|
|
30340
30352
|
const chownrKid = (p$1, child, uid, gid, cb) => {
|
|
30341
|
-
if (child.isDirectory()) chownr(
|
|
30353
|
+
if (child.isDirectory()) chownr(nodePath.resolve(p$1, child.name), uid, gid, (er) => {
|
|
30342
30354
|
if (er) return cb(er);
|
|
30343
|
-
chown(
|
|
30355
|
+
chown(nodePath.resolve(p$1, child.name), uid, gid, cb);
|
|
30344
30356
|
});
|
|
30345
|
-
else chown(
|
|
30357
|
+
else chown(nodePath.resolve(p$1, child.name), uid, gid, cb);
|
|
30346
30358
|
};
|
|
30347
30359
|
const chownr = (p$1, uid, gid, cb) => {
|
|
30348
30360
|
fs.readdir(p$1, { withFileTypes: true }, (er, children) => {
|
|
@@ -30364,8 +30376,8 @@ const chownr = (p$1, uid, gid, cb) => {
|
|
|
30364
30376
|
});
|
|
30365
30377
|
};
|
|
30366
30378
|
const chownrKidSync = (p$1, child, uid, gid) => {
|
|
30367
|
-
if (child.isDirectory()) chownrSync(
|
|
30368
|
-
lchownSync(
|
|
30379
|
+
if (child.isDirectory()) chownrSync(nodePath.resolve(p$1, child.name), uid, gid);
|
|
30380
|
+
lchownSync(nodePath.resolve(p$1, child.name), uid, gid);
|
|
30369
30381
|
};
|
|
30370
30382
|
const chownrSync = (p$1, uid, gid) => {
|
|
30371
30383
|
let children;
|
|
@@ -30387,9 +30399,9 @@ var CwdError = class extends Error {
|
|
|
30387
30399
|
path;
|
|
30388
30400
|
code;
|
|
30389
30401
|
syscall = "chdir";
|
|
30390
|
-
constructor(path$
|
|
30391
|
-
super(`${code$1}: Cannot cd into '${path$
|
|
30392
|
-
this.path = path$
|
|
30402
|
+
constructor(path$16, code$1) {
|
|
30403
|
+
super(`${code$1}: Cannot cd into '${path$16}'`);
|
|
30404
|
+
this.path = path$16;
|
|
30393
30405
|
this.code = code$1;
|
|
30394
30406
|
}
|
|
30395
30407
|
get name() {
|
|
@@ -30404,10 +30416,10 @@ var SymlinkError = class extends Error {
|
|
|
30404
30416
|
symlink;
|
|
30405
30417
|
syscall = "symlink";
|
|
30406
30418
|
code = "TAR_SYMLINK_ERROR";
|
|
30407
|
-
constructor(symlink, path$
|
|
30419
|
+
constructor(symlink, path$16) {
|
|
30408
30420
|
super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link");
|
|
30409
30421
|
this.symlink = symlink;
|
|
30410
|
-
this.path = path$
|
|
30422
|
+
this.path = path$16;
|
|
30411
30423
|
}
|
|
30412
30424
|
get name() {
|
|
30413
30425
|
return "SymlinkError";
|
|
@@ -30453,12 +30465,12 @@ const mkdir$1 = (dir, opt, cb) => {
|
|
|
30453
30465
|
mode,
|
|
30454
30466
|
recursive: true
|
|
30455
30467
|
}).then((made) => done(null, made ?? void 0), done);
|
|
30456
|
-
mkdir_(cwd, normalizeWindowsPath(
|
|
30468
|
+
mkdir_(cwd, normalizeWindowsPath(nodePath.relative(cwd, dir)).split("/"), mode, unlink$1, cwd, void 0, done);
|
|
30457
30469
|
};
|
|
30458
30470
|
const mkdir_ = (base, parts, mode, unlink$1, cwd, created, cb) => {
|
|
30459
30471
|
if (!parts.length) return cb(null, created);
|
|
30460
30472
|
const p$1 = parts.shift();
|
|
30461
|
-
const part = normalizeWindowsPath(
|
|
30473
|
+
const part = normalizeWindowsPath(nodePath.resolve(base + "/" + p$1));
|
|
30462
30474
|
fs.mkdir(part, mode, onmkdir(part, parts, mode, unlink$1, cwd, created, cb));
|
|
30463
30475
|
};
|
|
30464
30476
|
const onmkdir = (part, parts, mode, unlink$1, cwd, created, cb) => (er) => {
|
|
@@ -30514,10 +30526,10 @@ const mkdirSync = (dir, opt) => {
|
|
|
30514
30526
|
mode,
|
|
30515
30527
|
recursive: true
|
|
30516
30528
|
}) ?? void 0);
|
|
30517
|
-
const parts = normalizeWindowsPath(
|
|
30529
|
+
const parts = normalizeWindowsPath(nodePath.relative(cwd, dir)).split("/");
|
|
30518
30530
|
let created = void 0;
|
|
30519
30531
|
for (let p$1 = parts.shift(), part = cwd; p$1 && (part += "/" + p$1); p$1 = parts.shift()) {
|
|
30520
|
-
part = normalizeWindowsPath(
|
|
30532
|
+
part = normalizeWindowsPath(nodePath.resolve(part));
|
|
30521
30533
|
try {
|
|
30522
30534
|
fs.mkdirSync(part, mode);
|
|
30523
30535
|
created = created || part;
|
|
@@ -30557,11 +30569,11 @@ const normalizeUnicode = (s) => {
|
|
|
30557
30569
|
//#endregion
|
|
30558
30570
|
//#region node_modules/tar/dist/esm/path-reservations.js
|
|
30559
30571
|
const isWindows$1 = (process.env.TESTING_TAR_FAKE_PLATFORM || process.platform) === "win32";
|
|
30560
|
-
const getDirs = (path$
|
|
30561
|
-
return path$
|
|
30572
|
+
const getDirs = (path$16) => {
|
|
30573
|
+
return path$16.split("/").slice(0, -1).reduce((set, path$17) => {
|
|
30562
30574
|
const s = set[set.length - 1];
|
|
30563
|
-
if (s !== void 0) path$
|
|
30564
|
-
set.push(path$
|
|
30575
|
+
if (s !== void 0) path$17 = join(s, path$17);
|
|
30576
|
+
set.push(path$17 || "/");
|
|
30565
30577
|
return set;
|
|
30566
30578
|
}, []);
|
|
30567
30579
|
};
|
|
@@ -30573,7 +30585,7 @@ var PathReservations = class {
|
|
|
30573
30585
|
paths = isWindows$1 ? ["win32 parallelization disabled"] : paths.map((p$1) => {
|
|
30574
30586
|
return stripTrailingSlashes(join(normalizeUnicode(p$1))).toLowerCase();
|
|
30575
30587
|
});
|
|
30576
|
-
const dirs = new Set(paths.map((path$
|
|
30588
|
+
const dirs = new Set(paths.map((path$16) => getDirs(path$16)).reduce((a$1, b$2) => a$1.concat(b$2)));
|
|
30577
30589
|
this.#reservations.set(fn, {
|
|
30578
30590
|
dirs,
|
|
30579
30591
|
paths
|
|
@@ -30600,8 +30612,8 @@ var PathReservations = class {
|
|
|
30600
30612
|
if (!res) throw new Error("function does not have any path reservations");
|
|
30601
30613
|
/* c8 ignore stop */
|
|
30602
30614
|
return {
|
|
30603
|
-
paths: res.paths.map((path$
|
|
30604
|
-
dirs: [...res.dirs].map((path$
|
|
30615
|
+
paths: res.paths.map((path$16) => this.#queues.get(path$16)),
|
|
30616
|
+
dirs: [...res.dirs].map((path$16) => this.#queues.get(path$16))
|
|
30605
30617
|
};
|
|
30606
30618
|
}
|
|
30607
30619
|
check(fn) {
|
|
@@ -30622,14 +30634,14 @@ var PathReservations = class {
|
|
|
30622
30634
|
/* c8 ignore stop */
|
|
30623
30635
|
const { paths, dirs } = res;
|
|
30624
30636
|
const next = /* @__PURE__ */ new Set();
|
|
30625
|
-
for (const path$
|
|
30626
|
-
const q$2 = this.#queues.get(path$
|
|
30637
|
+
for (const path$16 of paths) {
|
|
30638
|
+
const q$2 = this.#queues.get(path$16);
|
|
30627
30639
|
/* c8 ignore start */
|
|
30628
30640
|
if (!q$2 || q$2?.[0] !== fn) continue;
|
|
30629
30641
|
/* c8 ignore stop */
|
|
30630
30642
|
const q0 = q$2[1];
|
|
30631
30643
|
if (!q0) {
|
|
30632
|
-
this.#queues.delete(path$
|
|
30644
|
+
this.#queues.delete(path$16);
|
|
30633
30645
|
continue;
|
|
30634
30646
|
}
|
|
30635
30647
|
q$2.shift();
|
|
@@ -30685,20 +30697,20 @@ const CHECKED_CWD = Symbol("checkedCwd");
|
|
|
30685
30697
|
const isWindows = (process.env.TESTING_TAR_FAKE_PLATFORM || process.platform) === "win32";
|
|
30686
30698
|
const DEFAULT_MAX_DEPTH = 1024;
|
|
30687
30699
|
/* c8 ignore start */
|
|
30688
|
-
const unlinkFile = (path$
|
|
30689
|
-
if (!isWindows) return fs.unlink(path$
|
|
30690
|
-
const name$1 = path$
|
|
30691
|
-
fs.rename(path$
|
|
30700
|
+
const unlinkFile = (path$16, cb) => {
|
|
30701
|
+
if (!isWindows) return fs.unlink(path$16, cb);
|
|
30702
|
+
const name$1 = path$16 + ".DELETE." + randomBytes(16).toString("hex");
|
|
30703
|
+
fs.rename(path$16, name$1, (er) => {
|
|
30692
30704
|
if (er) return cb(er);
|
|
30693
30705
|
fs.unlink(name$1, cb);
|
|
30694
30706
|
});
|
|
30695
30707
|
};
|
|
30696
30708
|
/* c8 ignore stop */
|
|
30697
30709
|
/* c8 ignore start */
|
|
30698
|
-
const unlinkFileSync = (path$
|
|
30699
|
-
if (!isWindows) return fs.unlinkSync(path$
|
|
30700
|
-
const name$1 = path$
|
|
30701
|
-
fs.renameSync(path$
|
|
30710
|
+
const unlinkFileSync = (path$16) => {
|
|
30711
|
+
if (!isWindows) return fs.unlinkSync(path$16);
|
|
30712
|
+
const name$1 = path$16 + ".DELETE." + randomBytes(16).toString("hex");
|
|
30713
|
+
fs.renameSync(path$16, name$1);
|
|
30702
30714
|
fs.unlinkSync(name$1);
|
|
30703
30715
|
};
|
|
30704
30716
|
/* c8 ignore stop */
|
|
@@ -30763,7 +30775,7 @@ var Unpack = class extends Parser {
|
|
|
30763
30775
|
this.noMtime = !!opt.noMtime;
|
|
30764
30776
|
this.preservePaths = !!opt.preservePaths;
|
|
30765
30777
|
this.unlink = !!opt.unlink;
|
|
30766
|
-
this.cwd = normalizeWindowsPath(
|
|
30778
|
+
this.cwd = normalizeWindowsPath(nodePath.resolve(opt.cwd || process.cwd()));
|
|
30767
30779
|
this.strip = Number(opt.strip) || 0;
|
|
30768
30780
|
this.processUmask = !this.chmod ? 0 : typeof opt.processUmask === "number" ? opt.processUmask : process.umask();
|
|
30769
30781
|
this.umask = typeof opt.umask === "number" ? opt.umask : this.processUmask;
|
|
@@ -30821,8 +30833,8 @@ var Unpack = class extends Parser {
|
|
|
30821
30833
|
});
|
|
30822
30834
|
}
|
|
30823
30835
|
}
|
|
30824
|
-
if (
|
|
30825
|
-
else entry.absolute = normalizeWindowsPath(
|
|
30836
|
+
if (nodePath.isAbsolute(entry.path)) entry.absolute = normalizeWindowsPath(nodePath.resolve(entry.path));
|
|
30837
|
+
else entry.absolute = normalizeWindowsPath(nodePath.resolve(this.cwd, entry.path));
|
|
30826
30838
|
/* c8 ignore start - defense in depth */
|
|
30827
30839
|
if (!this.preservePaths && typeof entry.absolute === "string" && entry.absolute.indexOf(this.cwd + "/") !== 0 && entry.absolute !== this.cwd) {
|
|
30828
30840
|
this.warn("TAR_ENTRY_ERROR", "path escaped extraction target", {
|
|
@@ -30836,9 +30848,9 @@ var Unpack = class extends Parser {
|
|
|
30836
30848
|
/* c8 ignore stop */
|
|
30837
30849
|
if (entry.absolute === this.cwd && entry.type !== "Directory" && entry.type !== "GNUDumpDir") return false;
|
|
30838
30850
|
if (this.win32) {
|
|
30839
|
-
const { root: aRoot } =
|
|
30851
|
+
const { root: aRoot } = nodePath.win32.parse(String(entry.absolute));
|
|
30840
30852
|
entry.absolute = aRoot + encode(String(entry.absolute).slice(aRoot.length));
|
|
30841
|
-
const { root: pRoot } =
|
|
30853
|
+
const { root: pRoot } = nodePath.win32.parse(entry.path);
|
|
30842
30854
|
entry.path = pRoot + encode(entry.path.slice(pRoot.length));
|
|
30843
30855
|
}
|
|
30844
30856
|
return true;
|
|
@@ -30984,7 +30996,7 @@ var Unpack = class extends Parser {
|
|
|
30984
30996
|
this[LINK](entry, String(entry.linkpath), "symlink", done);
|
|
30985
30997
|
}
|
|
30986
30998
|
[HARDLINK](entry, done) {
|
|
30987
|
-
const linkpath = normalizeWindowsPath(
|
|
30999
|
+
const linkpath = normalizeWindowsPath(nodePath.resolve(this.cwd, String(entry.linkpath)));
|
|
30988
31000
|
this[LINK](entry, linkpath, "link", done);
|
|
30989
31001
|
}
|
|
30990
31002
|
[PEND]() {
|
|
@@ -31024,7 +31036,7 @@ var Unpack = class extends Parser {
|
|
|
31024
31036
|
};
|
|
31025
31037
|
const start = () => {
|
|
31026
31038
|
if (entry.absolute !== this.cwd) {
|
|
31027
|
-
const parent = normalizeWindowsPath(
|
|
31039
|
+
const parent = normalizeWindowsPath(nodePath.dirname(String(entry.absolute)));
|
|
31028
31040
|
if (parent !== this.cwd) return this[MKDIR](parent, this.dmode, (er) => {
|
|
31029
31041
|
if (er) {
|
|
31030
31042
|
this[ONERROR](er, entry);
|
|
@@ -31106,7 +31118,7 @@ var UnpackSync = class extends Unpack {
|
|
|
31106
31118
|
this[CHECKED_CWD] = true;
|
|
31107
31119
|
}
|
|
31108
31120
|
if (entry.absolute !== this.cwd) {
|
|
31109
|
-
const parent = normalizeWindowsPath(
|
|
31121
|
+
const parent = normalizeWindowsPath(nodePath.dirname(String(entry.absolute)));
|
|
31110
31122
|
if (parent !== this.cwd) {
|
|
31111
31123
|
const mkParent = this[MKDIR](parent, this.dmode);
|
|
31112
31124
|
if (mkParent) return this[ONERROR](mkParent, entry);
|
|
@@ -31378,7 +31390,7 @@ const replaceAsync = (opt, files) => {
|
|
|
31378
31390
|
const addFilesSync = (p$1, files) => {
|
|
31379
31391
|
files.forEach((file) => {
|
|
31380
31392
|
if (file.charAt(0) === "@") list({
|
|
31381
|
-
file:
|
|
31393
|
+
file: nodePath.resolve(p$1.cwd, file.slice(1)),
|
|
31382
31394
|
sync: true,
|
|
31383
31395
|
noResume: true,
|
|
31384
31396
|
onReadEntry: (entry) => p$1.add(entry)
|
|
@@ -31391,7 +31403,7 @@ const addFilesAsync = async (p$1, files) => {
|
|
|
31391
31403
|
for (let i$1 = 0; i$1 < files.length; i$1++) {
|
|
31392
31404
|
const file = String(files[i$1]);
|
|
31393
31405
|
if (file.charAt(0) === "@") await list({
|
|
31394
|
-
file:
|
|
31406
|
+
file: nodePath.resolve(String(p$1.cwd), file.slice(1)),
|
|
31395
31407
|
noResume: true,
|
|
31396
31408
|
onReadEntry: (entry) => p$1.add(entry)
|
|
31397
31409
|
});
|
|
@@ -31426,7 +31438,7 @@ const update = makeCommand(replace.syncFile, replace.asyncFile, replace.syncNoFi
|
|
|
31426
31438
|
const mtimeFilter = (opt) => {
|
|
31427
31439
|
const filter = opt.filter;
|
|
31428
31440
|
if (!opt.mtimeCache) opt.mtimeCache = /* @__PURE__ */ new Map();
|
|
31429
|
-
opt.filter = filter ? (path$
|
|
31441
|
+
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));
|
|
31430
31442
|
};
|
|
31431
31443
|
|
|
31432
31444
|
//#endregion
|
|
@@ -31454,10 +31466,7 @@ async function createArchive(pathToArchive, targetArchivePath) {
|
|
|
31454
31466
|
//#region src/cli/commands/entities/push.ts
|
|
31455
31467
|
async function pushEntitiesAction() {
|
|
31456
31468
|
const { entities } = await readProjectConfig();
|
|
31457
|
-
if (entities.length === 0) {
|
|
31458
|
-
M.warn("No entities found in project");
|
|
31459
|
-
return;
|
|
31460
|
-
}
|
|
31469
|
+
if (entities.length === 0) return { outroMessage: "No entities found in project" };
|
|
31461
31470
|
M.info(`Found ${entities.length} entities to push`);
|
|
31462
31471
|
const result = await runTask("Pushing entities to Base44", async () => {
|
|
31463
31472
|
return await pushEntities(entities);
|
|
@@ -31468,7 +31477,7 @@ async function pushEntitiesAction() {
|
|
|
31468
31477
|
if (result.created.length > 0) M.success(`Created: ${result.created.join(", ")}`);
|
|
31469
31478
|
if (result.updated.length > 0) M.success(`Updated: ${result.updated.join(", ")}`);
|
|
31470
31479
|
if (result.deleted.length > 0) M.warn(`Deleted: ${result.deleted.join(", ")}`);
|
|
31471
|
-
|
|
31480
|
+
return {};
|
|
31472
31481
|
}
|
|
31473
31482
|
const entitiesPushCommand = new Command("entities").description("Manage project entities").addCommand(new Command("push").description("Push local entities to Base44").action(async () => {
|
|
31474
31483
|
await runCommand(pushEntitiesAction, { requireAuth: true });
|
|
@@ -32267,28 +32276,28 @@ var require_windows = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32267
32276
|
module.exports = isexe;
|
|
32268
32277
|
isexe.sync = sync;
|
|
32269
32278
|
var fs$4 = __require("fs");
|
|
32270
|
-
function checkPathExt(path$
|
|
32279
|
+
function checkPathExt(path$16, options) {
|
|
32271
32280
|
var pathext = options.pathExt !== void 0 ? options.pathExt : process.env.PATHEXT;
|
|
32272
32281
|
if (!pathext) return true;
|
|
32273
32282
|
pathext = pathext.split(";");
|
|
32274
32283
|
if (pathext.indexOf("") !== -1) return true;
|
|
32275
32284
|
for (var i$1 = 0; i$1 < pathext.length; i$1++) {
|
|
32276
32285
|
var p$1 = pathext[i$1].toLowerCase();
|
|
32277
|
-
if (p$1 && path$
|
|
32286
|
+
if (p$1 && path$16.substr(-p$1.length).toLowerCase() === p$1) return true;
|
|
32278
32287
|
}
|
|
32279
32288
|
return false;
|
|
32280
32289
|
}
|
|
32281
|
-
function checkStat(stat, path$
|
|
32290
|
+
function checkStat(stat, path$16, options) {
|
|
32282
32291
|
if (!stat.isSymbolicLink() && !stat.isFile()) return false;
|
|
32283
|
-
return checkPathExt(path$
|
|
32292
|
+
return checkPathExt(path$16, options);
|
|
32284
32293
|
}
|
|
32285
|
-
function isexe(path$
|
|
32286
|
-
fs$4.stat(path$
|
|
32287
|
-
cb(er, er ? false : checkStat(stat, path$
|
|
32294
|
+
function isexe(path$16, options, cb) {
|
|
32295
|
+
fs$4.stat(path$16, function(er, stat) {
|
|
32296
|
+
cb(er, er ? false : checkStat(stat, path$16, options));
|
|
32288
32297
|
});
|
|
32289
32298
|
}
|
|
32290
|
-
function sync(path$
|
|
32291
|
-
return checkStat(fs$4.statSync(path$
|
|
32299
|
+
function sync(path$16, options) {
|
|
32300
|
+
return checkStat(fs$4.statSync(path$16), path$16, options);
|
|
32292
32301
|
}
|
|
32293
32302
|
}));
|
|
32294
32303
|
|
|
@@ -32298,13 +32307,13 @@ var require_mode = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32298
32307
|
module.exports = isexe;
|
|
32299
32308
|
isexe.sync = sync;
|
|
32300
32309
|
var fs$3 = __require("fs");
|
|
32301
|
-
function isexe(path$
|
|
32302
|
-
fs$3.stat(path$
|
|
32310
|
+
function isexe(path$16, options, cb) {
|
|
32311
|
+
fs$3.stat(path$16, function(er, stat) {
|
|
32303
32312
|
cb(er, er ? false : checkStat(stat, options));
|
|
32304
32313
|
});
|
|
32305
32314
|
}
|
|
32306
|
-
function sync(path$
|
|
32307
|
-
return checkStat(fs$3.statSync(path$
|
|
32315
|
+
function sync(path$16, options) {
|
|
32316
|
+
return checkStat(fs$3.statSync(path$16), options);
|
|
32308
32317
|
}
|
|
32309
32318
|
function checkStat(stat, options) {
|
|
32310
32319
|
return stat.isFile() && checkMode(stat, options);
|
|
@@ -32332,7 +32341,7 @@ var require_isexe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32332
32341
|
else core = require_mode();
|
|
32333
32342
|
module.exports = isexe;
|
|
32334
32343
|
isexe.sync = sync;
|
|
32335
|
-
function isexe(path$
|
|
32344
|
+
function isexe(path$16, options, cb) {
|
|
32336
32345
|
if (typeof options === "function") {
|
|
32337
32346
|
cb = options;
|
|
32338
32347
|
options = {};
|
|
@@ -32340,13 +32349,13 @@ var require_isexe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32340
32349
|
if (!cb) {
|
|
32341
32350
|
if (typeof Promise !== "function") throw new TypeError("callback not provided");
|
|
32342
32351
|
return new Promise(function(resolve$1, reject) {
|
|
32343
|
-
isexe(path$
|
|
32352
|
+
isexe(path$16, options || {}, function(er, is) {
|
|
32344
32353
|
if (er) reject(er);
|
|
32345
32354
|
else resolve$1(is);
|
|
32346
32355
|
});
|
|
32347
32356
|
});
|
|
32348
32357
|
}
|
|
32349
|
-
core(path$
|
|
32358
|
+
core(path$16, options || {}, function(er, is) {
|
|
32350
32359
|
if (er) {
|
|
32351
32360
|
if (er.code === "EACCES" || options && options.ignoreErrors) {
|
|
32352
32361
|
er = null;
|
|
@@ -32356,9 +32365,9 @@ var require_isexe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32356
32365
|
cb(er, is);
|
|
32357
32366
|
});
|
|
32358
32367
|
}
|
|
32359
|
-
function sync(path$
|
|
32368
|
+
function sync(path$16, options) {
|
|
32360
32369
|
try {
|
|
32361
|
-
return core.sync(path$
|
|
32370
|
+
return core.sync(path$16, options || {});
|
|
32362
32371
|
} catch (er) {
|
|
32363
32372
|
if (options && options.ignoreErrors || er.code === "EACCES") return false;
|
|
32364
32373
|
else throw er;
|
|
@@ -32370,7 +32379,7 @@ var require_isexe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32370
32379
|
//#region node_modules/which/which.js
|
|
32371
32380
|
var require_which = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
32372
32381
|
const isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
|
|
32373
|
-
const path$
|
|
32382
|
+
const path$3 = __require("path");
|
|
32374
32383
|
const COLON = isWindows ? ";" : ":";
|
|
32375
32384
|
const isexe = require_isexe();
|
|
32376
32385
|
const getNotFoundError = (cmd) => Object.assign(/* @__PURE__ */ new Error(`not found: ${cmd}`), { code: "ENOENT" });
|
|
@@ -32400,7 +32409,7 @@ var require_which = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32400
32409
|
if (i$1 === pathEnv.length) return opt.all && found.length ? resolve$1(found) : reject(getNotFoundError(cmd));
|
|
32401
32410
|
const ppRaw = pathEnv[i$1];
|
|
32402
32411
|
const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
|
|
32403
|
-
const pCmd = path$
|
|
32412
|
+
const pCmd = path$3.join(pathPart, cmd);
|
|
32404
32413
|
resolve$1(subStep(!pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd, i$1, 0));
|
|
32405
32414
|
});
|
|
32406
32415
|
const subStep = (p$1, i$1, ii) => new Promise((resolve$1, reject) => {
|
|
@@ -32421,7 +32430,7 @@ var require_which = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32421
32430
|
for (let i$1 = 0; i$1 < pathEnv.length; i$1++) {
|
|
32422
32431
|
const ppRaw = pathEnv[i$1];
|
|
32423
32432
|
const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
|
|
32424
|
-
const pCmd = path$
|
|
32433
|
+
const pCmd = path$3.join(pathPart, cmd);
|
|
32425
32434
|
const p$1 = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
|
|
32426
32435
|
for (let j = 0; j < pathExt.length; j++) {
|
|
32427
32436
|
const cur = p$1 + pathExt[j];
|
|
@@ -32454,7 +32463,7 @@ var require_path_key = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32454
32463
|
//#endregion
|
|
32455
32464
|
//#region node_modules/cross-spawn/lib/util/resolveCommand.js
|
|
32456
32465
|
var require_resolveCommand = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
32457
|
-
const path$
|
|
32466
|
+
const path$2 = __require("path");
|
|
32458
32467
|
const which = require_which();
|
|
32459
32468
|
const getPathKey = require_path_key();
|
|
32460
32469
|
function resolveCommandAttempt(parsed, withoutPathExt) {
|
|
@@ -32469,12 +32478,12 @@ var require_resolveCommand = /* @__PURE__ */ __commonJSMin(((exports, module) =>
|
|
|
32469
32478
|
try {
|
|
32470
32479
|
resolved = which.sync(parsed.command, {
|
|
32471
32480
|
path: env$1[getPathKey({ env: env$1 })],
|
|
32472
|
-
pathExt: withoutPathExt ? path$
|
|
32481
|
+
pathExt: withoutPathExt ? path$2.delimiter : void 0
|
|
32473
32482
|
});
|
|
32474
32483
|
} catch (e$1) {} finally {
|
|
32475
32484
|
if (shouldSwitchCwd) process.chdir(cwd);
|
|
32476
32485
|
}
|
|
32477
|
-
if (resolved) resolved = path$
|
|
32486
|
+
if (resolved) resolved = path$2.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved);
|
|
32478
32487
|
return resolved;
|
|
32479
32488
|
}
|
|
32480
32489
|
function resolveCommand(parsed) {
|
|
@@ -32517,8 +32526,8 @@ var require_shebang_command = /* @__PURE__ */ __commonJSMin(((exports, module) =
|
|
|
32517
32526
|
module.exports = (string$2 = "") => {
|
|
32518
32527
|
const match = string$2.match(shebangRegex);
|
|
32519
32528
|
if (!match) return null;
|
|
32520
|
-
const [path$
|
|
32521
|
-
const binary = path$
|
|
32529
|
+
const [path$16, argument] = match[0].replace(/#! ?/, "").split(" ");
|
|
32530
|
+
const binary = path$16.split("/").pop();
|
|
32522
32531
|
if (binary === "env") return argument;
|
|
32523
32532
|
return argument ? `${binary} ${argument}` : binary;
|
|
32524
32533
|
};
|
|
@@ -32546,7 +32555,7 @@ var require_readShebang = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32546
32555
|
//#endregion
|
|
32547
32556
|
//#region node_modules/cross-spawn/lib/parse.js
|
|
32548
32557
|
var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
32549
|
-
const path$
|
|
32558
|
+
const path$1 = __require("path");
|
|
32550
32559
|
const resolveCommand = require_resolveCommand();
|
|
32551
32560
|
const escape = require_escape();
|
|
32552
32561
|
const readShebang = require_readShebang();
|
|
@@ -32569,7 +32578,7 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
32569
32578
|
const needsShell = !isExecutableRegExp.test(commandFile);
|
|
32570
32579
|
if (parsed.options.forceShell || needsShell) {
|
|
32571
32580
|
const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);
|
|
32572
|
-
parsed.command = path$
|
|
32581
|
+
parsed.command = path$1.normalize(parsed.command);
|
|
32573
32582
|
parsed.command = escape.command(parsed.command);
|
|
32574
32583
|
parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));
|
|
32575
32584
|
parsed.args = [
|
|
@@ -32687,12 +32696,12 @@ function toPath(urlOrPath) {
|
|
|
32687
32696
|
}
|
|
32688
32697
|
function traversePathUp(startPath) {
|
|
32689
32698
|
return { *[Symbol.iterator]() {
|
|
32690
|
-
let currentPath =
|
|
32699
|
+
let currentPath = nodePath.resolve(toPath(startPath));
|
|
32691
32700
|
let previousPath;
|
|
32692
32701
|
while (previousPath !== currentPath) {
|
|
32693
32702
|
yield currentPath;
|
|
32694
32703
|
previousPath = currentPath;
|
|
32695
|
-
currentPath =
|
|
32704
|
+
currentPath = nodePath.resolve(currentPath, "..");
|
|
32696
32705
|
}
|
|
32697
32706
|
} };
|
|
32698
32707
|
}
|
|
@@ -32701,21 +32710,21 @@ const TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;
|
|
|
32701
32710
|
//#endregion
|
|
32702
32711
|
//#region node_modules/npm-run-path/index.js
|
|
32703
32712
|
const npmRunPath = ({ cwd = y.cwd(), path: pathOption = y.env[pathKey()], preferLocal = true, execPath: execPath$1 = y.execPath, addExecPath = true } = {}) => {
|
|
32704
|
-
const cwdPath =
|
|
32713
|
+
const cwdPath = nodePath.resolve(toPath(cwd));
|
|
32705
32714
|
const result = [];
|
|
32706
|
-
const pathParts = pathOption.split(
|
|
32715
|
+
const pathParts = pathOption.split(nodePath.delimiter);
|
|
32707
32716
|
if (preferLocal) applyPreferLocal(result, pathParts, cwdPath);
|
|
32708
32717
|
if (addExecPath) applyExecPath(result, pathParts, execPath$1, cwdPath);
|
|
32709
|
-
return pathOption === "" || pathOption ===
|
|
32718
|
+
return pathOption === "" || pathOption === nodePath.delimiter ? `${result.join(nodePath.delimiter)}${pathOption}` : [...result, pathOption].join(nodePath.delimiter);
|
|
32710
32719
|
};
|
|
32711
32720
|
const applyPreferLocal = (result, pathParts, cwdPath) => {
|
|
32712
32721
|
for (const directory of traversePathUp(cwdPath)) {
|
|
32713
|
-
const pathPart =
|
|
32722
|
+
const pathPart = nodePath.join(directory, "node_modules/.bin");
|
|
32714
32723
|
if (!pathParts.includes(pathPart)) result.push(pathPart);
|
|
32715
32724
|
}
|
|
32716
32725
|
};
|
|
32717
32726
|
const applyExecPath = (result, pathParts, execPath$1, cwdPath) => {
|
|
32718
|
-
const pathPart =
|
|
32727
|
+
const pathPart = nodePath.resolve(cwdPath, toPath(execPath$1), "..");
|
|
32719
32728
|
if (!pathParts.includes(pathPart)) result.push(pathPart);
|
|
32720
32729
|
};
|
|
32721
32730
|
const npmRunPathEnv = ({ env: env$1 = y.env, ...options } = {}) => {
|
|
@@ -33747,10 +33756,10 @@ const mapNode = ({ options }) => {
|
|
|
33747
33756
|
node: true
|
|
33748
33757
|
} };
|
|
33749
33758
|
};
|
|
33750
|
-
const handleNodeOption = (file, commandArguments, { node: shouldHandleNode = false, nodePath = execPath, nodeOptions = execArgv.filter((nodeOption) => !nodeOption.startsWith("--inspect")), cwd, execPath: formerNodePath, ...options }) => {
|
|
33759
|
+
const handleNodeOption = (file, commandArguments, { node: shouldHandleNode = false, nodePath: nodePath$1 = execPath, nodeOptions = execArgv.filter((nodeOption) => !nodeOption.startsWith("--inspect")), cwd, execPath: formerNodePath, ...options }) => {
|
|
33751
33760
|
if (formerNodePath !== void 0) throw new TypeError("The \"execPath\" option has been removed. Please use the \"nodePath\" option instead.");
|
|
33752
|
-
const normalizedNodePath = safeNormalizeFileUrl(nodePath, "The \"nodePath\" option");
|
|
33753
|
-
const resolvedNodePath =
|
|
33761
|
+
const normalizedNodePath = safeNormalizeFileUrl(nodePath$1, "The \"nodePath\" option");
|
|
33762
|
+
const resolvedNodePath = nodePath.resolve(cwd, normalizedNodePath);
|
|
33754
33763
|
const newOptions = {
|
|
33755
33764
|
...options,
|
|
33756
33765
|
nodePath: resolvedNodePath,
|
|
@@ -33762,7 +33771,7 @@ const handleNodeOption = (file, commandArguments, { node: shouldHandleNode = fal
|
|
|
33762
33771
|
commandArguments,
|
|
33763
33772
|
newOptions
|
|
33764
33773
|
];
|
|
33765
|
-
if (
|
|
33774
|
+
if (nodePath.basename(file, ".exe") === "node") throw new TypeError("When the \"node\" option is true, the first argument does not need to be \"node\".");
|
|
33766
33775
|
return [
|
|
33767
33776
|
resolvedNodePath,
|
|
33768
33777
|
[
|
|
@@ -33849,7 +33858,7 @@ const serializeEncoding = (encoding) => typeof encoding === "string" ? `"${encod
|
|
|
33849
33858
|
//#region node_modules/execa/lib/arguments/cwd.js
|
|
33850
33859
|
const normalizeCwd = (cwd = getDefaultCwd()) => {
|
|
33851
33860
|
const cwdString = safeNormalizeFileUrl(cwd, "The \"cwd\" option");
|
|
33852
|
-
return
|
|
33861
|
+
return nodePath.resolve(cwdString);
|
|
33853
33862
|
};
|
|
33854
33863
|
const getDefaultCwd = () => {
|
|
33855
33864
|
try {
|
|
@@ -33888,7 +33897,7 @@ const normalizeOptions = (filePath, rawArguments, rawOptions) => {
|
|
|
33888
33897
|
options.killSignal = normalizeKillSignal(options.killSignal);
|
|
33889
33898
|
options.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);
|
|
33890
33899
|
options.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);
|
|
33891
|
-
if (y.platform === "win32" &&
|
|
33900
|
+
if (y.platform === "win32" && nodePath.basename(file, ".exe") === "cmd") commandArguments.unshift("/q");
|
|
33892
33901
|
return {
|
|
33893
33902
|
file,
|
|
33894
33903
|
commandArguments,
|
|
@@ -33913,7 +33922,7 @@ const addDefaultOptions = ({ extendEnv = true, preferLocal = false, cwd, localDi
|
|
|
33913
33922
|
ipc,
|
|
33914
33923
|
serialization
|
|
33915
33924
|
});
|
|
33916
|
-
const getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath }) => {
|
|
33925
|
+
const getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath: nodePath$1 }) => {
|
|
33917
33926
|
const env$1 = extendEnv ? {
|
|
33918
33927
|
...y.env,
|
|
33919
33928
|
...envOption
|
|
@@ -33921,7 +33930,7 @@ const getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory,
|
|
|
33921
33930
|
if (preferLocal || node) return npmRunPathEnv({
|
|
33922
33931
|
env: env$1,
|
|
33923
33932
|
cwd: localDirectory,
|
|
33924
|
-
execPath: nodePath,
|
|
33933
|
+
execPath: nodePath$1,
|
|
33925
33934
|
preferLocal,
|
|
33926
33935
|
addExecPath: node
|
|
33927
33936
|
});
|
|
@@ -35666,12 +35675,12 @@ const logOutputSync = ({ serializedResult, fdNumber, state, verboseInfo, encodin
|
|
|
35666
35675
|
}
|
|
35667
35676
|
};
|
|
35668
35677
|
const writeToFiles = (serializedResult, stdioItems, outputFiles) => {
|
|
35669
|
-
for (const { path: path$
|
|
35670
|
-
const pathString = typeof path$
|
|
35671
|
-
if (append || outputFiles.has(pathString)) appendFileSync(path$
|
|
35678
|
+
for (const { path: path$16, append } of stdioItems.filter(({ type }) => FILE_TYPES.has(type))) {
|
|
35679
|
+
const pathString = typeof path$16 === "string" ? path$16 : path$16.toString();
|
|
35680
|
+
if (append || outputFiles.has(pathString)) appendFileSync(path$16, serializedResult);
|
|
35672
35681
|
else {
|
|
35673
35682
|
outputFiles.add(pathString);
|
|
35674
|
-
writeFileSync(path$
|
|
35683
|
+
writeFileSync(path$16, serializedResult);
|
|
35675
35684
|
}
|
|
35676
35685
|
}
|
|
35677
35686
|
};
|
|
@@ -38145,7 +38154,6 @@ var import_lodash = /* @__PURE__ */ __toESM(require_lodash(), 1);
|
|
|
38145
38154
|
const orange = source_default.hex("#E86B3C");
|
|
38146
38155
|
const cyan = source_default.hex("#00D4FF");
|
|
38147
38156
|
async function create() {
|
|
38148
|
-
Ie("Let's create something amazing!");
|
|
38149
38157
|
const templateOptions = (await listTemplates()).map((t) => ({
|
|
38150
38158
|
value: t,
|
|
38151
38159
|
label: t.name,
|
|
@@ -38188,9 +38196,9 @@ async function create() {
|
|
|
38188
38196
|
successMessage: orange("Project created successfully"),
|
|
38189
38197
|
errorMessage: "Failed to create project"
|
|
38190
38198
|
});
|
|
38191
|
-
await loadProjectEnv();
|
|
38199
|
+
await loadProjectEnv(resolvedPath);
|
|
38192
38200
|
const { project, entities } = await readProjectConfig(resolvedPath);
|
|
38193
|
-
let
|
|
38201
|
+
let finalAppUrl;
|
|
38194
38202
|
if (entities.length > 0) {
|
|
38195
38203
|
const shouldPushEntities = await ye({ message: "Would you like to push entities now?" });
|
|
38196
38204
|
if (!pD(shouldPushEntities) && shouldPushEntities) await runTask(`Pushing ${entities.length} entities to Base44...`, async () => {
|
|
@@ -38203,9 +38211,10 @@ async function create() {
|
|
|
38203
38211
|
if (project.site) {
|
|
38204
38212
|
const installCommand = project.site.installCommand;
|
|
38205
38213
|
const buildCommand = project.site.buildCommand;
|
|
38214
|
+
const outputDirectory = project.site.outputDirectory;
|
|
38206
38215
|
const shouldDeploy = await ye({ message: "Would you like to deploy the site now?" });
|
|
38207
|
-
if (!pD(shouldDeploy) && shouldDeploy && installCommand && buildCommand) {
|
|
38208
|
-
const {
|
|
38216
|
+
if (!pD(shouldDeploy) && shouldDeploy && installCommand && buildCommand && outputDirectory) {
|
|
38217
|
+
const { appUrl } = await runTask("Installing dependencies...", async (updateMessage) => {
|
|
38209
38218
|
await execa({
|
|
38210
38219
|
cwd: resolvedPath,
|
|
38211
38220
|
shell: true
|
|
@@ -38216,19 +38225,19 @@ async function create() {
|
|
|
38216
38225
|
shell: true
|
|
38217
38226
|
})`${buildCommand}`;
|
|
38218
38227
|
updateMessage("Deploying site...");
|
|
38219
|
-
return await deploySite(join(resolvedPath,
|
|
38228
|
+
return await deploySite(join(resolvedPath, outputDirectory));
|
|
38220
38229
|
}, {
|
|
38221
38230
|
successMessage: orange("Site deployed successfully"),
|
|
38222
38231
|
errorMessage: "Failed to deploy site"
|
|
38223
38232
|
});
|
|
38224
|
-
|
|
38233
|
+
finalAppUrl = appUrl;
|
|
38225
38234
|
}
|
|
38226
38235
|
}
|
|
38227
38236
|
const dashboardUrl = `${getBase44ApiUrl()}/apps/${projectId}/editor/preview`;
|
|
38228
38237
|
M.message(`${source_default.dim("Project")}: ${orange(name$1.trim())}`);
|
|
38229
38238
|
M.message(`${source_default.dim("Dashboard")}: ${cyan(dashboardUrl)}`);
|
|
38230
|
-
if (
|
|
38231
|
-
|
|
38239
|
+
if (finalAppUrl) M.message(`${source_default.dim("Site")}: ${cyan(finalAppUrl)}`);
|
|
38240
|
+
return { outroMessage: "Your project is set and ready to use" };
|
|
38232
38241
|
}
|
|
38233
38242
|
const createCommand = new Command("create").description("Create a new Base44 project").action(async () => {
|
|
38234
38243
|
await runCommand(create, {
|
|
@@ -38244,17 +38253,13 @@ async function deployAction() {
|
|
|
38244
38253
|
if (!project.site?.outputDirectory) throw new Error("No site configuration found. Please add 'site.outputDirectory' to your config.jsonc");
|
|
38245
38254
|
const outputDir = resolve(project.root, project.site.outputDirectory);
|
|
38246
38255
|
const shouldDeploy = await ye({ message: `Deploy site from ${project.site.outputDirectory}?` });
|
|
38247
|
-
if (pD(shouldDeploy) || !shouldDeploy) {
|
|
38248
|
-
|
|
38249
|
-
return;
|
|
38250
|
-
}
|
|
38251
|
-
const result = await runTask("Creating archive and deploying site...", async () => {
|
|
38256
|
+
if (pD(shouldDeploy) || !shouldDeploy) return { outroMessage: "Deployment cancelled" };
|
|
38257
|
+
return { outroMessage: `Visit your site at: ${(await runTask("Creating archive and deploying site...", async () => {
|
|
38252
38258
|
return await deploySite(outputDir);
|
|
38253
38259
|
}, {
|
|
38254
38260
|
successMessage: "Site deployed successfully",
|
|
38255
38261
|
errorMessage: "Deployment failed"
|
|
38256
|
-
});
|
|
38257
|
-
M.success(`Site deployed to: ${result.app_url}`);
|
|
38262
|
+
})).appUrl}` };
|
|
38258
38263
|
}
|
|
38259
38264
|
const siteDeployCommand = new Command("site").description("Manage site deployments").addCommand(new Command("deploy").description("Deploy built site files to Base44 hosting").action(async () => {
|
|
38260
38265
|
await runCommand(deployAction, { requireAuth: true });
|
|
@@ -38262,7 +38267,7 @@ const siteDeployCommand = new Command("site").description("Manage site deploymen
|
|
|
38262
38267
|
|
|
38263
38268
|
//#endregion
|
|
38264
38269
|
//#region package.json
|
|
38265
|
-
var version = "0.0.
|
|
38270
|
+
var version = "0.0.7";
|
|
38266
38271
|
|
|
38267
38272
|
//#endregion
|
|
38268
38273
|
//#region src/cli/index.ts
|