binary-collections 2.0.10 → 2.0.12
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/.opencode/package.json +5 -0
- package/.puppeterrc.cjs +25 -0
- package/binaries/binary-executor.cjs +138 -3
- package/binaries/clean-nodemodule.cjs +138 -3
- package/binaries/clean-nodemodules.cjs +138 -3
- package/binaries/dev.cjs +138 -3
- package/binaries/empty.cjs +138 -3
- package/binaries/git-reduce-size.cjs +138 -3
- package/binaries/javakill.cjs +138 -3
- package/binaries/kill-night-crows.bat +7 -0
- package/binaries/kill-night-crows.ps1 +172 -0
- package/binaries/kill-process.cjs +138 -3
- package/binaries/nodekill.cjs +138 -3
- package/binaries/prod.cjs +138 -3
- package/binaries/py +111 -0
- package/binaries/py.cjs +178 -0
- package/binaries/py.cmd +49 -0
- package/binaries/rmfind.cjs +138 -3
- package/binaries/rmx +15 -1
- package/binaries/rmx.cjs +138 -3
- package/binaries/rmx.cmd +12 -0
- package/binaries/submodule-token.cjs +138 -3
- package/binaries/test-cjs +18 -0
- package/binaries/test-cjs.cjs +178 -0
- package/binaries/test-cjs.cmd +26 -0
- package/binaries/test-esm +16 -0
- package/binaries/test-esm.cjs +178 -0
- package/binaries/test-esm.cmd +23 -0
- package/binaries/yarn-clean +32 -0
- package/binaries/yarn-clean.cjs +178 -0
- package/binaries/yarn-clean.cmd +30 -0
- package/binaries/yarn-clean.py +166 -0
- package/binaries/yc +110 -0
- package/binaries/yc.cjs +178 -0
- package/lib/binary-collections/config.cjs +126 -0
- package/lib/binary-collections/config.mjs +7 -0
- package/lib/binary-collections/executeScript.cjs +19 -0
- package/lib/binary-collections/executeScript.d.cts +12 -0
- package/lib/binary-collections/executeScript.mjs +6 -0
- package/lib/binary-collections/findScript.cjs +284 -0
- package/lib/binary-collections/findScript.d.cts +12 -0
- package/lib/binary-collections/findScript.mjs +7 -0
- package/lib/binary-collections/listScript.cjs +266 -0
- package/lib/binary-collections/listScript.d.cts +19 -0
- package/lib/binary-collections/listScript.mjs +7 -0
- package/lib/binary-collections.cjs +342 -194
- package/lib/binary-collections.mjs +22 -268
- package/lib/changelog.cjs +61 -13
- package/lib/changelog.mjs +1 -1
- package/lib/{chunk-E6FDDAOO.mjs → chunk-2LSRSEXF.mjs} +2 -2
- package/lib/chunk-34IQDTLZ.mjs +27 -0
- package/lib/chunk-3HFFECCI.mjs +27 -0
- package/lib/{chunk-V3N3JEUF.mjs → chunk-5RTXZVCW.mjs} +60 -13
- package/lib/chunk-66KDU4TX.mjs +268 -0
- package/lib/chunk-6PU7BAHB.mjs +61 -0
- package/lib/{chunk-6HHJRKFB.mjs → chunk-BZWVHODJ.mjs} +4 -1
- package/lib/chunk-C6D2TTYU.mjs +32 -0
- package/lib/chunk-FB2WKVJD.mjs +158 -0
- package/lib/{chunk-66PAU5PS.mjs → chunk-G5UUEWUO.mjs} +9 -5
- package/lib/{chunk-HO6GHCOB.mjs → chunk-GAGABICI.mjs} +198 -63
- package/lib/chunk-H44UWUFY.mjs +105 -0
- package/lib/chunk-NCZPTKDV.mjs +79 -0
- package/lib/chunk-NGFK3EYW.mjs +28 -0
- package/lib/chunk-NVEG3LEZ.mjs +143 -0
- package/lib/chunk-OGXVGBRI.mjs +29 -0
- package/lib/chunk-OXV52GD5.mjs +62 -0
- package/lib/{chunk-PDSXF5HY.mjs → chunk-PDN26I7O.mjs} +1 -0
- package/lib/chunk-PXBMHE7O.mjs +35 -0
- package/lib/chunk-R5FJOR63.mjs +47 -0
- package/lib/chunk-SPTECFE5.mjs +180 -0
- package/lib/chunk-UXCFNAR6.mjs +55 -0
- package/lib/chunk-V2IBPCEV.mjs +39 -0
- package/lib/chunk-XPJGCDOD.mjs +14 -0
- package/lib/{chunk-AI4CVPJ7.mjs → chunk-ZDMWBSYF.mjs} +4 -4
- package/lib/chunk-ZOWVMII3.mjs +228 -0
- package/lib/clean-github-actions-caches-cli.cjs +465 -0
- package/lib/clean-github-actions-caches-cli.d.cts +1 -0
- package/lib/clean-github-actions-caches-cli.mjs +56 -0
- package/lib/clean-github-actions-caches.cjs +152 -160
- package/lib/clean-github-actions-caches.d.cts +15 -1
- package/lib/clean-github-actions-caches.mjs +4 -130
- package/lib/cross-env/command.cjs +63 -0
- package/lib/cross-env/command.d.ts +8 -0
- package/lib/cross-env/command.js +45 -0
- package/lib/cross-env/command.mjs +9 -0
- package/lib/cross-env/index.cjs +178 -0
- package/lib/cross-env/index.d.ts +8 -0
- package/lib/cross-env/index.js +102 -0
- package/lib/cross-env/index.mjs +101 -0
- package/lib/cross-env/variable.cjs +60 -0
- package/lib/cross-env/variable.d.ts +7 -0
- package/lib/cross-env/variable.js +59 -0
- package/lib/cross-env/variable.mjs +9 -0
- package/lib/del-gradle.cjs +61 -13
- package/lib/del-gradle.js +9 -8
- package/lib/del-gradle.mjs +1 -1
- package/lib/del-node-modules.cjs +143 -148
- package/lib/del-node-modules.js +210 -14
- package/lib/del-node-modules.mjs +148 -17
- package/lib/del-ps.cjs +61 -13
- package/lib/del-ps.js +9 -8
- package/lib/del-ps.mjs +1 -1
- package/lib/del-yarn-caches.cjs +61 -13
- package/lib/del-yarn-caches.js +2 -2
- package/lib/del-yarn-caches.mjs +1 -1
- package/lib/file/copy-cli.cjs +92 -0
- package/lib/file/copy-cli.d.mts +1 -0
- package/lib/file/copy-cli.mjs +55 -0
- package/lib/file/copy.cjs +56 -0
- package/lib/file/copy.d.mts +1 -0
- package/lib/file/copy.mjs +8 -0
- package/lib/file/move-cli.cjs +91 -0
- package/lib/file/move-cli.d.mts +1 -0
- package/lib/file/move-cli.mjs +55 -0
- package/lib/file/move.cjs +55 -0
- package/lib/file/move.d.mts +1 -0
- package/lib/file/move.mjs +8 -0
- package/lib/find-node-modules-cli.js +2 -1
- package/lib/free-chatgpt.cjs +259 -47
- package/lib/free-chatgpt.js +10 -10
- package/lib/free-chatgpt.mjs +2 -2
- package/lib/git/gitattributes.cjs +1 -0
- package/lib/git/gitattributes.d.cts +7 -2
- package/lib/git/gitattributes.mjs +1 -1
- package/lib/git/line-endings.cjs +2 -1
- package/lib/git/line-endings.mjs +2 -2
- package/lib/git/undo-commit-cli.cjs +110 -0
- package/lib/git/undo-commit-cli.d.ts +1 -0
- package/lib/git/undo-commit-cli.js +4 -0
- package/lib/git/undo-commit-cli.mjs +14 -0
- package/lib/git/undo-commit.cjs +81 -0
- package/lib/git/undo-commit.d.cts +1 -0
- package/lib/git/undo-commit.mjs +7 -0
- package/lib/git/undo-staged-cli.cjs +110 -0
- package/lib/git/undo-staged-cli.d.ts +1 -0
- package/lib/git/undo-staged-cli.js +4 -0
- package/lib/git/undo-staged-cli.mjs +14 -0
- package/lib/git/undo-staged.cjs +81 -0
- package/lib/git/undo-staged.d.cts +1 -0
- package/lib/git/undo-staged.mjs +7 -0
- package/lib/git/user-config.cjs +61 -14
- package/lib/git/user-config.mjs +2 -2
- package/lib/git-diff-cli.cjs +427 -75
- package/lib/git-diff-cli.d.ts +1 -0
- package/lib/git-diff-cli.js +1 -0
- package/lib/git-diff-cli.mjs +6 -4
- package/lib/git-diff.cjs +426 -75
- package/lib/git-diff.d.ts +2 -1
- package/lib/git-diff.js +91 -34
- package/lib/git-diff.mjs +5 -4
- package/lib/git-fix.cjs +64 -16
- package/lib/git-fix.mjs +10 -10
- package/lib/git-purge.cjs +61 -13
- package/lib/git-purge.mjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/kill-night-crows.cjs +87 -0
- package/lib/kill-night-crows.d.mts +1 -0
- package/lib/kill-night-crows.mjs +65 -0
- package/lib/node-cache-cleaner/npm.cjs +65 -0
- package/lib/node-cache-cleaner/npm.d.ts +2 -0
- package/lib/node-cache-cleaner/npm.js +41 -0
- package/lib/node-cache-cleaner/npm.mjs +10 -0
- package/lib/node-cache-cleaner/npx.cjs +89 -0
- package/lib/node-cache-cleaner/npx.d.ts +4 -0
- package/lib/node-cache-cleaner/npx.js +82 -0
- package/lib/{ps/index.d.mjs → node-cache-cleaner/npx.mjs} +6 -5
- package/lib/node-cache-cleaner/yarn.cjs +73 -0
- package/lib/node-cache-cleaner/yarn.d.ts +2 -0
- package/lib/node-cache-cleaner/yarn.js +62 -0
- package/lib/node-cache-cleaner/yarn.mjs +10 -0
- package/lib/node-cache-cleaner-cli.cjs +182 -0
- package/lib/node-cache-cleaner-cli.d.ts +2 -0
- package/lib/node-cache-cleaner-cli.js +60 -0
- package/lib/node-cache-cleaner-cli.mjs +56 -0
- package/lib/node-executor.cjs +91 -0
- package/lib/node-executor.d.cts +2 -0
- package/lib/node-executor.mjs +103 -0
- package/lib/npm-run-series.cjs +79 -39
- package/lib/npm-run-series.mjs +20 -6
- package/lib/package-resolutions-updater-cli.cjs +645 -0
- package/lib/package-resolutions-updater-cli.d.mts +1 -0
- package/lib/package-resolutions-updater-cli.mjs +102 -0
- package/lib/package-resolutions-updater.cjs +259 -133
- package/lib/package-resolutions-updater.d.mts +51 -1
- package/lib/package-resolutions-updater.mjs +18 -294
- package/lib/php-cs-fixer-staged.cjs +105 -0
- package/lib/php-cs-fixer-staged.d.cts +2 -0
- package/lib/php-cs-fixer-staged.mjs +117 -0
- package/lib/print-directory-tree.cjs +62 -14
- package/lib/print-directory-tree.mjs +2 -2
- package/lib/ps/connected-domain.d.ts +1 -1
- package/lib/ps/connected-domain.js +10 -10
- package/lib/ps/index.cjs +1 -1
- package/lib/ps/index.mjs +177 -171
- package/lib/ps/isWin.js +1 -1
- package/lib/ps/table-parser.js +6 -6
- package/lib/remove-module.cjs +61 -13
- package/lib/remove-module.mjs +1 -1
- package/lib/rm-node-module-cli.cjs +222 -0
- package/lib/rm-node-module-cli.d.cts +1 -0
- package/lib/rm-node-module-cli.mjs +89 -0
- package/lib/rm-node-modules.cjs +127 -0
- package/lib/rm-node-modules.d.cts +35 -0
- package/lib/{binary-collections-config.mjs → rm-node-modules.mjs} +3 -3
- package/lib/rmpath.cjs +63 -15
- package/lib/rmpath.mjs +2 -2
- package/lib/submodule-install.cjs +107 -47
- package/lib/submodule-install.mjs +48 -35
- package/lib/submodule-remove-cli.cjs +6 -3
- package/lib/submodule-remove-cli.js +3 -3
- package/lib/submodule-remove-cli.mjs +2 -3
- package/lib/submodule-remove.cjs +4 -1
- package/lib/submodule-remove.mjs +1 -1
- package/lib/utils/chatgpt.cjs +198 -34
- package/lib/utils/chatgpt.js +260 -93
- package/lib/utils/chatgpt.mjs +1 -1
- package/lib/utils/findEnvFiles.cjs +89 -0
- package/lib/utils/findEnvFiles.d.cts +19 -0
- package/lib/utils/findEnvFiles.mjs +6 -0
- package/lib/utils/findWorkspaceRoot.cjs +70 -0
- package/lib/utils/findWorkspaceRoot.d.ts +9 -0
- package/lib/utils/findWorkspaceRoot.js +57 -0
- package/lib/utils/findWorkspaceRoot.mjs +40 -0
- package/lib/utils/index.cjs +60 -13
- package/lib/utils/index.mjs +1 -1
- package/lib/utils/isGithubTokenValid.cjs +64 -0
- package/lib/utils/isGithubTokenValid.d.ts +7 -0
- package/lib/utils/isGithubTokenValid.js +48 -0
- package/lib/utils/isGithubTokenValid.mjs +36 -0
- package/lib/{ps/index.d.cjs → utils/isWindows.cjs} +17 -3
- package/lib/utils/isWindows.d.ts +5 -0
- package/lib/utils/isWindows.js +10 -0
- package/lib/utils/isWindows.mjs +8 -0
- package/lib/utils/runBash.cjs +53 -0
- package/lib/utils/runBash.d.cts +12 -0
- package/lib/utils/runBash.mjs +66 -0
- package/lib/yarn-per-branch-lock-installer.cjs +97 -0
- package/lib/yarn-per-branch-lock-installer.d.cts +2 -0
- package/lib/yarn-per-branch-lock-installer.mjs +109 -0
- package/lib/yarn-reinstall.cjs +61 -13
- package/lib/yarn-reinstall.mjs +1 -1
- package/package.json +133 -110
- package/readme.html +784 -0
- package/readme.md +116 -229
- package/releases/readme.md +1 -1
- package/requirements.txt +1 -0
- package/test/README.md +2 -2
- package/test-project/package.json +8 -2
- package/test-project/workspaces/workspace-a/package.json +135 -0
- package/test-project/workspaces/workspace-a/readme.md +20 -0
- package/test-project/workspaces/workspace-a/release/readme.md +42 -0
- package/test-project/workspaces/workspace-a/test/demo/package.json +25 -0
- package/test-project/workspaces/workspace-a/test/readme.md +12 -0
- package/test-project/workspaces/workspace-b/package.json +139 -0
- package/test-project/workspaces/workspace-b/readme.md +94 -0
- package/test-project/workspaces/workspace-b/requirements.txt +1 -0
- package/test-project/workspaces/workspace-b/test/sample-project/package.json +7 -0
- package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/package.json +96 -0
- package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/readme.md +156 -0
- package/tmp/rm-node-modules-test-project/package.json +17 -0
- package/tmp/rm-node-modules-test-project/packages/workspace-a/package.json +16 -0
- package/tmp/rm-node-modules-test-project/packages/workspace-b/package.json +16 -0
- package/tmp/test-repo/README.md +2 -35
- package/tmp/test-repo/package.json +13 -3
- package/docs-src/clean-github-actions-caches.md +0 -26
- package/docs-src/free-chatgpt.md +0 -26
- package/lib/binary-collections-config.cjs +0 -15
- package/lib/chunk-4EWQC6GZ.mjs +0 -382
- package/lib/chunk-4ZI7BQKQ.mjs +0 -381
- package/lib/chunk-5J2BEPY5.mjs +0 -83
- package/lib/chunk-AGZYRDC2.mjs +0 -323
- package/lib/chunk-BDCHCWHD.mjs +0 -136
- package/lib/chunk-BEZKJ25G.mjs +0 -140
- package/lib/chunk-DI5MDPSN.mjs +0 -386
- package/lib/chunk-GJTGHXRA.mjs +0 -356
- package/lib/chunk-HMRMTYZM.mjs +0 -40
- package/lib/chunk-HN52G2YL.mjs +0 -305
- package/lib/chunk-LEM5OMRP.mjs +0 -384
- package/lib/chunk-O6SWBEOQ.mjs +0 -81
- package/lib/chunk-RCP7DHVY.mjs +0 -190
- package/lib/chunk-SBNDSKG5.mjs +0 -136
- package/lib/chunk-U6SO4QEV.mjs +0 -320
- package/lib/chunk-XD6BJK6Q.mjs +0 -351
- package/lib/chunk-YXSFGA2D.mjs +0 -383
- package/lib/git/gitattributes.d.ts +0 -33
- package/lib/git/gitattributes.js +0 -223
- package/lib/ps/index.d.ts +0 -2
- package/lib/ps/index.js +0 -253
- package/tmp/typedoc/readme.md +0 -320
- /package/lib/{binary-collections-config.d.cts → binary-collections/config.d.cts} +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const DEFAULT_IGNORES: string[];
|
|
2
|
+
/**
|
|
3
|
+
* Find all `.env*` files from the current directory tree
|
|
4
|
+
* and parent directories.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} [startDir=process.cwd()] Starting directory.
|
|
7
|
+
* @param {(file: string) => boolean} [filter] Optional filter callback.
|
|
8
|
+
* @returns {string[]} Normalized absolute file paths.
|
|
9
|
+
*/
|
|
10
|
+
export function findEnvFiles(startDir?: string, filter?: (file: string) => boolean): string[];
|
|
11
|
+
/**
|
|
12
|
+
* Find the first `.env*` file containing a token variable.
|
|
13
|
+
*
|
|
14
|
+
* @param {string} [startDir=process.cwd()] Starting directory.
|
|
15
|
+
* @param {string} [tokenName="GITHUB_TOKEN"] Environment variable name.
|
|
16
|
+
* @returns {string | undefined} Matching file path.
|
|
17
|
+
*/
|
|
18
|
+
export function findEnvWithToken(startDir?: string, tokenName?: string): string | undefined;
|
|
19
|
+
export { findEnvFiles as default };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/utils/findWorkspaceRoot.js
|
|
30
|
+
var findWorkspaceRoot_exports = {};
|
|
31
|
+
__export(findWorkspaceRoot_exports, {
|
|
32
|
+
findWorkspaceRoot: () => findYarnWorkspaceRootFS,
|
|
33
|
+
findWorkspaceRootYC: () => findWorkspaceRootYC,
|
|
34
|
+
findYarnWorkspaceRootFS: () => findYarnWorkspaceRootFS
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(findWorkspaceRoot_exports);
|
|
37
|
+
var import_core = require("@yarnpkg/core");
|
|
38
|
+
var import_upath = __toESM(require("upath"), 1);
|
|
39
|
+
var import_fs_extra = __toESM(require("fs-extra"), 1);
|
|
40
|
+
async function findWorkspaceRootYC(cwd = process.cwd()) {
|
|
41
|
+
const configuration = await import_core.Configuration.find(cwd, null);
|
|
42
|
+
const { project } = await import_core.Project.find(configuration, cwd);
|
|
43
|
+
return project.cwd;
|
|
44
|
+
}
|
|
45
|
+
function findYarnWorkspaceRootFS(cwd = process.cwd()) {
|
|
46
|
+
let current = import_upath.default.resolve(cwd);
|
|
47
|
+
while (true) {
|
|
48
|
+
const pkgPath = import_upath.default.join(current, "package.json");
|
|
49
|
+
if (import_fs_extra.default.existsSync(pkgPath)) {
|
|
50
|
+
try {
|
|
51
|
+
const pkg = JSON.parse(import_fs_extra.default.readFileSync(pkgPath, "utf8"));
|
|
52
|
+
if (pkg.workspaces || import_fs_extra.default.existsSync(import_upath.default.join(current, "yarn.lock")) || import_fs_extra.default.existsSync(import_upath.default.join(current, ".yarn"))) {
|
|
53
|
+
return current;
|
|
54
|
+
}
|
|
55
|
+
} catch {
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const parent = import_upath.default.dirname(current);
|
|
59
|
+
if (parent === current) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
current = parent;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
66
|
+
0 && (module.exports = {
|
|
67
|
+
findWorkspaceRoot,
|
|
68
|
+
findWorkspaceRootYC,
|
|
69
|
+
findYarnWorkspaceRootFS
|
|
70
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function findWorkspaceRootYC(cwd?: string): Promise<import("@yarnpkg/fslib").PortablePath>;
|
|
2
|
+
/**
|
|
3
|
+
* Find Yarn workspace root directory.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} cwd
|
|
6
|
+
* @returns {string|null}
|
|
7
|
+
*/
|
|
8
|
+
export function findYarnWorkspaceRootFS(cwd?: string): string | null;
|
|
9
|
+
export { findYarnWorkspaceRootFS as findWorkspaceRoot };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.findWorkspaceRootYC = findWorkspaceRootYC;
|
|
16
|
+
exports.findYarnWorkspaceRootFS = findYarnWorkspaceRootFS;
|
|
17
|
+
exports.findWorkspaceRoot = findYarnWorkspaceRootFS;
|
|
18
|
+
const core_1 = require("@yarnpkg/core");
|
|
19
|
+
const upath_1 = __importDefault(require("upath"));
|
|
20
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
21
|
+
function findWorkspaceRootYC() {
|
|
22
|
+
return __awaiter(this, arguments, void 0, function* (cwd = process.cwd()) {
|
|
23
|
+
const configuration = yield core_1.Configuration.find(cwd, null);
|
|
24
|
+
const { project } = yield core_1.Project.find(configuration, cwd);
|
|
25
|
+
return project.cwd;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Find Yarn workspace root directory.
|
|
30
|
+
*
|
|
31
|
+
* @param {string} cwd
|
|
32
|
+
* @returns {string|null}
|
|
33
|
+
*/
|
|
34
|
+
function findYarnWorkspaceRootFS(cwd = process.cwd()) {
|
|
35
|
+
let current = upath_1.default.resolve(cwd);
|
|
36
|
+
while (true) {
|
|
37
|
+
const pkgPath = upath_1.default.join(current, 'package.json');
|
|
38
|
+
if (fs_extra_1.default.existsSync(pkgPath)) {
|
|
39
|
+
try {
|
|
40
|
+
const pkg = JSON.parse(fs_extra_1.default.readFileSync(pkgPath, 'utf8'));
|
|
41
|
+
if (pkg.workspaces ||
|
|
42
|
+
fs_extra_1.default.existsSync(upath_1.default.join(current, 'yarn.lock')) ||
|
|
43
|
+
fs_extra_1.default.existsSync(upath_1.default.join(current, '.yarn'))) {
|
|
44
|
+
return current;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (_a) {
|
|
48
|
+
// ignore invalid package.json
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const parent = upath_1.default.dirname(current);
|
|
52
|
+
if (parent === current) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
current = parent;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
init_esm_shims
|
|
4
|
+
} from "../chunk-QQ4A6DLD.mjs";
|
|
5
|
+
|
|
6
|
+
// src/utils/findWorkspaceRoot.js
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
import { Configuration, Project } from "@yarnpkg/core";
|
|
9
|
+
import path from "upath";
|
|
10
|
+
import fs from "fs-extra";
|
|
11
|
+
async function findWorkspaceRootYC(cwd = process.cwd()) {
|
|
12
|
+
const configuration = await Configuration.find(cwd, null);
|
|
13
|
+
const { project } = await Project.find(configuration, cwd);
|
|
14
|
+
return project.cwd;
|
|
15
|
+
}
|
|
16
|
+
function findYarnWorkspaceRootFS(cwd = process.cwd()) {
|
|
17
|
+
let current = path.resolve(cwd);
|
|
18
|
+
while (true) {
|
|
19
|
+
const pkgPath = path.join(current, "package.json");
|
|
20
|
+
if (fs.existsSync(pkgPath)) {
|
|
21
|
+
try {
|
|
22
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
23
|
+
if (pkg.workspaces || fs.existsSync(path.join(current, "yarn.lock")) || fs.existsSync(path.join(current, ".yarn"))) {
|
|
24
|
+
return current;
|
|
25
|
+
}
|
|
26
|
+
} catch {
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const parent = path.dirname(current);
|
|
30
|
+
if (parent === current) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
current = parent;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
findYarnWorkspaceRootFS as findWorkspaceRoot,
|
|
38
|
+
findWorkspaceRootYC,
|
|
39
|
+
findYarnWorkspaceRootFS
|
|
40
|
+
};
|
package/lib/utils/index.cjs
CHANGED
|
@@ -50,31 +50,78 @@ function getArgs() {
|
|
|
50
50
|
}
|
|
51
51
|
module.exports.getArgs = getArgs;
|
|
52
52
|
function del(fullPath) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
try {
|
|
54
|
+
if (!fs.existsSync(fullPath)) return;
|
|
55
|
+
const stat = fs.lstatSync(fullPath);
|
|
56
|
+
if (stat.isSymbolicLink()) {
|
|
57
|
+
try {
|
|
58
|
+
fs.unlinkSync(fullPath);
|
|
59
|
+
console.log("deleted symlink", fullPath);
|
|
60
|
+
} catch (e) {
|
|
61
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (stat.isDirectory()) {
|
|
66
|
+
const subdir = fs.readdirSync(fullPath).map((dirPath) => path.resolve(fullPath, dirPath));
|
|
67
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
68
|
+
del(subdir[i]);
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
fs.rmdirSync(fullPath);
|
|
72
|
+
console.log("deleted", fullPath);
|
|
73
|
+
} catch (_e) {
|
|
74
|
+
try {
|
|
75
|
+
fs.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
76
|
+
console.log("deleted", fullPath);
|
|
77
|
+
} catch (ee) {
|
|
78
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return;
|
|
57
82
|
}
|
|
58
|
-
} else {
|
|
59
83
|
try {
|
|
60
|
-
fs.
|
|
84
|
+
fs.unlinkSync(fullPath);
|
|
61
85
|
console.log("deleted", fullPath);
|
|
62
|
-
} catch (
|
|
63
|
-
|
|
86
|
+
} catch (_e) {
|
|
87
|
+
try {
|
|
88
|
+
fs.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
89
|
+
console.log("deleted", fullPath);
|
|
90
|
+
} catch (ee) {
|
|
91
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
92
|
+
}
|
|
64
93
|
}
|
|
94
|
+
} catch (err) {
|
|
95
|
+
console.log("failed delete", fullPath, err && err.message);
|
|
65
96
|
}
|
|
66
97
|
}
|
|
67
98
|
module.exports.del = del;
|
|
68
99
|
function delStream(globStream) {
|
|
69
100
|
globStream.stream().on("data", (result) => {
|
|
70
101
|
const fullPath = path.resolve(process.cwd(), result);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
102
|
+
try {
|
|
103
|
+
if (fs.existsSync(fullPath)) {
|
|
104
|
+
const stat = fs.lstatSync(fullPath);
|
|
105
|
+
if (stat.isSymbolicLink()) {
|
|
106
|
+
try {
|
|
107
|
+
fs.unlinkSync(fullPath);
|
|
108
|
+
console.log("deleted symlink", fullPath);
|
|
109
|
+
} catch (e) {
|
|
110
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
111
|
+
}
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (stat.isDirectory()) {
|
|
115
|
+
const subdir = fs.readdirSync(fullPath).map((dirPath) => path.resolve(fullPath, dirPath));
|
|
116
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
117
|
+
del(subdir[i]);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
75
120
|
}
|
|
121
|
+
del(fullPath);
|
|
122
|
+
} catch (err) {
|
|
123
|
+
console.log("failed processing", fullPath, err && err.message);
|
|
76
124
|
}
|
|
77
|
-
del(fullPath);
|
|
78
125
|
});
|
|
79
126
|
}
|
|
80
127
|
module.exports.delStream = delStream;
|
package/lib/utils/index.mjs
CHANGED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/utils/isGithubTokenValid.js
|
|
30
|
+
var isGithubTokenValid_exports = {};
|
|
31
|
+
__export(isGithubTokenValid_exports, {
|
|
32
|
+
isGitHubTokenValid: () => isGitHubTokenValid
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(isGithubTokenValid_exports);
|
|
35
|
+
var import_node_https = __toESM(require("https"), 1);
|
|
36
|
+
async function isGitHubTokenValid(token) {
|
|
37
|
+
if (!token || typeof token !== "string") {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return new Promise((resolve) => {
|
|
41
|
+
const req = import_node_https.default.request(
|
|
42
|
+
{
|
|
43
|
+
hostname: "api.github.com",
|
|
44
|
+
path: "/user",
|
|
45
|
+
method: "GET",
|
|
46
|
+
headers: {
|
|
47
|
+
Authorization: `Bearer ${token}`,
|
|
48
|
+
"User-Agent": "github-token-validator",
|
|
49
|
+
Accept: "application/vnd.github+json"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
(res) => {
|
|
53
|
+
resolve(res.statusCode === 200);
|
|
54
|
+
res.resume();
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
req.on("error", () => resolve(false));
|
|
58
|
+
req.end();
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
62
|
+
0 && (module.exports = {
|
|
63
|
+
isGitHubTokenValid
|
|
64
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.isGitHubTokenValid = isGitHubTokenValid;
|
|
16
|
+
const node_https_1 = __importDefault(require("node:https"));
|
|
17
|
+
/**
|
|
18
|
+
* Check whether a GitHub token is valid.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} token GitHub personal access token
|
|
21
|
+
* @returns {Promise<boolean>}
|
|
22
|
+
*/
|
|
23
|
+
function isGitHubTokenValid(token) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
if (!token || typeof token !== 'string') {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return new Promise((resolve) => {
|
|
29
|
+
const req = node_https_1.default.request({
|
|
30
|
+
hostname: 'api.github.com',
|
|
31
|
+
path: '/user',
|
|
32
|
+
method: 'GET',
|
|
33
|
+
headers: {
|
|
34
|
+
Authorization: `Bearer ${token}`,
|
|
35
|
+
'User-Agent': 'github-token-validator',
|
|
36
|
+
Accept: 'application/vnd.github+json'
|
|
37
|
+
}
|
|
38
|
+
}, (res) => {
|
|
39
|
+
// 200 = valid token
|
|
40
|
+
resolve(res.statusCode === 200);
|
|
41
|
+
// consume response to avoid memory leak
|
|
42
|
+
res.resume();
|
|
43
|
+
});
|
|
44
|
+
req.on('error', () => resolve(false));
|
|
45
|
+
req.end();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
init_esm_shims
|
|
4
|
+
} from "../chunk-QQ4A6DLD.mjs";
|
|
5
|
+
|
|
6
|
+
// src/utils/isGithubTokenValid.js
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
import https from "https";
|
|
9
|
+
async function isGitHubTokenValid(token) {
|
|
10
|
+
if (!token || typeof token !== "string") {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return new Promise((resolve) => {
|
|
14
|
+
const req = https.request(
|
|
15
|
+
{
|
|
16
|
+
hostname: "api.github.com",
|
|
17
|
+
path: "/user",
|
|
18
|
+
method: "GET",
|
|
19
|
+
headers: {
|
|
20
|
+
Authorization: `Bearer ${token}`,
|
|
21
|
+
"User-Agent": "github-token-validator",
|
|
22
|
+
Accept: "application/vnd.github+json"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
(res) => {
|
|
26
|
+
resolve(res.statusCode === 200);
|
|
27
|
+
res.resume();
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
req.on("error", () => resolve(false));
|
|
31
|
+
req.end();
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
isGitHubTokenValid
|
|
36
|
+
};
|
|
@@ -2,6 +2,10 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
5
9
|
var __copyProps = (to, from, except, desc) => {
|
|
6
10
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
11
|
for (let key of __getOwnPropNames(from))
|
|
@@ -12,6 +16,16 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
12
16
|
};
|
|
13
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
14
18
|
|
|
15
|
-
// src/
|
|
16
|
-
var
|
|
17
|
-
|
|
19
|
+
// src/utils/isWindows.js
|
|
20
|
+
var isWindows_exports = {};
|
|
21
|
+
__export(isWindows_exports, {
|
|
22
|
+
isWindows: () => isWindows
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(isWindows_exports);
|
|
25
|
+
function isWindows() {
|
|
26
|
+
return process.platform === "win32" || /^(msys|cygwin)$/.test(process.env.OSTYPE || "");
|
|
27
|
+
}
|
|
28
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
29
|
+
0 && (module.exports = {
|
|
30
|
+
isWindows
|
|
31
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isWindows = isWindows;
|
|
4
|
+
/**
|
|
5
|
+
* Determines if the current platform is Windows
|
|
6
|
+
* @returns {boolean} true if running on Windows, false otherwise
|
|
7
|
+
*/
|
|
8
|
+
function isWindows() {
|
|
9
|
+
return process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE || '');
|
|
10
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// src/utils/runBash.cjs
|
|
2
|
+
var { spawn } = require("child_process");
|
|
3
|
+
var fs = require("fs");
|
|
4
|
+
var path = require("path");
|
|
5
|
+
function runBash(file, options = {}) {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
const env = { ...process.env, ...options.env || {} };
|
|
8
|
+
if (options.env) delete options.env;
|
|
9
|
+
const isWindows = process.platform === "win32";
|
|
10
|
+
if (isWindows) {
|
|
11
|
+
const candidates = [
|
|
12
|
+
"C:\\Program Files\\Git\\bin",
|
|
13
|
+
"C:\\Program Files\\Git\\usr\\bin",
|
|
14
|
+
"C:\\laragon\\bin\\git\\bin",
|
|
15
|
+
path.join(process.cwd(), "node_modules", ".bin"),
|
|
16
|
+
path.join(process.cwd(), "vendor", "bin"),
|
|
17
|
+
path.join(process.cwd(), "bin"),
|
|
18
|
+
path.join(process.cwd(), "venv", "Scripts"),
|
|
19
|
+
path.join(process.cwd(), ".venv", "Scripts")
|
|
20
|
+
].filter((dir) => fs.existsSync(dir));
|
|
21
|
+
if (candidates.length > 0) {
|
|
22
|
+
env.PATH = `${candidates.join(";")};${env.PATH}`;
|
|
23
|
+
} else {
|
|
24
|
+
return reject(
|
|
25
|
+
new Error("No suitable bash found on Windows. Please install Git Bash or WSL and ensure it's in your PATH.")
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const proc = spawn("bash", [file], {
|
|
30
|
+
shell: true,
|
|
31
|
+
env,
|
|
32
|
+
...options
|
|
33
|
+
});
|
|
34
|
+
let stdout = "";
|
|
35
|
+
let stderr = "";
|
|
36
|
+
proc.stdout.on("data", (data) => {
|
|
37
|
+
stdout += data.toString();
|
|
38
|
+
});
|
|
39
|
+
proc.stderr.on("data", (data) => {
|
|
40
|
+
stderr += data.toString();
|
|
41
|
+
});
|
|
42
|
+
proc.on("error", (err) => {
|
|
43
|
+
reject(err);
|
|
44
|
+
});
|
|
45
|
+
proc.on("close", (code) => {
|
|
46
|
+
const result = { code, stdout, stderr };
|
|
47
|
+
if (code === 0) return resolve(result);
|
|
48
|
+
return reject(result);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
module.exports = { runBash };
|
|
53
|
+
module.exports.default = runBash;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default runBash;
|
|
2
|
+
/**
|
|
3
|
+
* Run a bash script using spawn
|
|
4
|
+
* @param {string} file - path to bash file
|
|
5
|
+
* @param {import("child_process").SpawnOptions} options
|
|
6
|
+
* @returns {Promise<{code: number, stdout: string, stderr: string}>}
|
|
7
|
+
*/
|
|
8
|
+
export function runBash(file: string, options?: import("child_process").SpawnOptions): Promise<{
|
|
9
|
+
code: number;
|
|
10
|
+
stdout: string;
|
|
11
|
+
stderr: string;
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
__commonJS,
|
|
4
|
+
__require,
|
|
5
|
+
init_esm_shims
|
|
6
|
+
} from "../chunk-QQ4A6DLD.mjs";
|
|
7
|
+
|
|
8
|
+
// src/utils/runBash.cjs
|
|
9
|
+
var require_runBash = __commonJS({
|
|
10
|
+
"src/utils/runBash.cjs"(exports, module) {
|
|
11
|
+
init_esm_shims();
|
|
12
|
+
var { spawn } = __require("child_process");
|
|
13
|
+
var fs = __require("fs");
|
|
14
|
+
var path = __require("path");
|
|
15
|
+
function runBash(file, options = {}) {
|
|
16
|
+
return new Promise((resolve, reject) => {
|
|
17
|
+
const env = { ...process.env, ...options.env || {} };
|
|
18
|
+
if (options.env) delete options.env;
|
|
19
|
+
const isWindows = process.platform === "win32";
|
|
20
|
+
if (isWindows) {
|
|
21
|
+
const candidates = [
|
|
22
|
+
"C:\\Program Files\\Git\\bin",
|
|
23
|
+
"C:\\Program Files\\Git\\usr\\bin",
|
|
24
|
+
"C:\\laragon\\bin\\git\\bin",
|
|
25
|
+
path.join(process.cwd(), "node_modules", ".bin"),
|
|
26
|
+
path.join(process.cwd(), "vendor", "bin"),
|
|
27
|
+
path.join(process.cwd(), "bin"),
|
|
28
|
+
path.join(process.cwd(), "venv", "Scripts"),
|
|
29
|
+
path.join(process.cwd(), ".venv", "Scripts")
|
|
30
|
+
].filter((dir) => fs.existsSync(dir));
|
|
31
|
+
if (candidates.length > 0) {
|
|
32
|
+
env.PATH = `${candidates.join(";")};${env.PATH}`;
|
|
33
|
+
} else {
|
|
34
|
+
return reject(
|
|
35
|
+
new Error("No suitable bash found on Windows. Please install Git Bash or WSL and ensure it's in your PATH.")
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const proc = spawn("bash", [file], {
|
|
40
|
+
shell: true,
|
|
41
|
+
env,
|
|
42
|
+
...options
|
|
43
|
+
});
|
|
44
|
+
let stdout = "";
|
|
45
|
+
let stderr = "";
|
|
46
|
+
proc.stdout.on("data", (data) => {
|
|
47
|
+
stdout += data.toString();
|
|
48
|
+
});
|
|
49
|
+
proc.stderr.on("data", (data) => {
|
|
50
|
+
stderr += data.toString();
|
|
51
|
+
});
|
|
52
|
+
proc.on("error", (err) => {
|
|
53
|
+
reject(err);
|
|
54
|
+
});
|
|
55
|
+
proc.on("close", (code) => {
|
|
56
|
+
const result = { code, stdout, stderr };
|
|
57
|
+
if (code === 0) return resolve(result);
|
|
58
|
+
return reject(result);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
module.exports = { runBash };
|
|
63
|
+
module.exports.default = runBash;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
export default require_runBash();
|