@lenne.tech/cli 1.7.0 → 1.8.0
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/build/commands/cli/create.js +7 -6
- package/build/commands/cli/rename.js +2 -2
- package/build/commands/config/validate.js +2 -1
- package/build/commands/directus/typegen.js +4 -4
- package/build/commands/doctor.js +12 -23
- package/build/commands/fullstack/init.js +47 -37
- package/build/commands/git/create.js +2 -2
- package/build/commands/git/get.js +2 -2
- package/build/commands/git/reset.js +2 -2
- package/build/commands/git/update.js +3 -3
- package/build/commands/npm/reinit.js +12 -10
- package/build/commands/server/add-property.js +2 -2
- package/build/commands/server/create.js +6 -4
- package/build/commands/server/module.js +4 -2
- package/build/commands/server/object.js +2 -2
- package/build/commands/starter/chrome-extension.js +5 -5
- package/build/commands/status.js +5 -3
- package/build/commands/tools/install-scripts.js +105 -0
- package/build/commands/typescript/create.js +6 -6
- package/build/extensions/frontend-helper.js +10 -6
- package/build/extensions/package-manager.js +249 -0
- package/build/extensions/server.js +57 -14
- package/build/extensions/tools.js +19 -1
- package/build/lib/nuxt-base-components.js +7 -6
- package/build/templates/bash-scripts/tools/pcf +9 -0
- package/docs/commands.md +4 -2
- package/docs/lt.config.md +22 -3
- package/package.json +4 -4
package/build/commands/status.js
CHANGED
|
@@ -141,11 +141,13 @@ const StatusCommand = {
|
|
|
141
141
|
info('');
|
|
142
142
|
info(colors.bold('Environment:'));
|
|
143
143
|
if (projectInfo.nodeVersion) {
|
|
144
|
-
info(` Node:
|
|
144
|
+
info(` Node: ${projectInfo.nodeVersion}`);
|
|
145
145
|
}
|
|
146
146
|
if (projectInfo.npmVersion) {
|
|
147
|
-
info(` npm:
|
|
147
|
+
info(` npm: v${projectInfo.npmVersion}`);
|
|
148
148
|
}
|
|
149
|
+
const detectedPm = toolbox.pm.detect();
|
|
150
|
+
info(` Package Manager: ${detectedPm}`);
|
|
149
151
|
// Show available commands based on project type
|
|
150
152
|
info('');
|
|
151
153
|
info(colors.bold('Available Commands:'));
|
|
@@ -195,4 +197,4 @@ function getAvailableCommands(projectType) {
|
|
|
195
197
|
return [...commonCommands, ...(typeCommands[projectType] || [])];
|
|
196
198
|
}
|
|
197
199
|
exports.default = StatusCommand;
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3N0YXR1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBLCtCQUE0QjtBQWtCNUI7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBbUI7SUFDcEMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2IsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxNQUFNLEVBQUUsS0FBSztJQUNiLElBQUksRUFBRSxRQUFRO0lBQ2QsR0FBRyxFQUFFLENBQU8sT0FBK0IsRUFBRSxFQUFFOztRQUM3QyxNQUFNLEVBQ0osVUFBVSxFQUNWLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUN6QyxNQUFNLEdBQ1AsR0FBRyxPQUFPLENBQUM7UUFFWixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWpDLE1BQU0sV0FBVyxHQUFnQjtZQUMvQixXQUFXLEVBQUUsRUFBRTtZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUk7WUFDYixNQUFNLEVBQUUsS0FBSztZQUNiLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFdBQVcsRUFBRSxTQUFTO1NBQ3ZCLENBQUM7UUFFRixzQkFBc0I7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
|
|
@@ -0,0 +1,105 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const fs_1 = require("fs");
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
/**
|
|
15
|
+
* Install all bash helper scripts to /usr/local/bin
|
|
16
|
+
*/
|
|
17
|
+
const NewCommand = {
|
|
18
|
+
alias: ['is'],
|
|
19
|
+
description: 'Install bash helper scripts',
|
|
20
|
+
hidden: false,
|
|
21
|
+
name: 'install-scripts',
|
|
22
|
+
run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
const { helper, print: { error, info, spin, success }, system: { run, startTimer }, } = toolbox;
|
|
24
|
+
// Start timer
|
|
25
|
+
const timer = startTimer();
|
|
26
|
+
const targetDir = '/usr/local/bin';
|
|
27
|
+
// Check if target directory exists
|
|
28
|
+
if (!(0, fs_1.existsSync)(targetDir)) {
|
|
29
|
+
error(`Target directory not found: ${targetDir}`);
|
|
30
|
+
info('You may need to create it first: sudo mkdir -p /usr/local/bin');
|
|
31
|
+
return 'install-scripts: target not found';
|
|
32
|
+
}
|
|
33
|
+
// Collect scripts from all subdirectories
|
|
34
|
+
const baseDir = (0, path_1.join)(__dirname, '..', '..', 'templates', 'bash-scripts');
|
|
35
|
+
const scriptDirs = ['tools'];
|
|
36
|
+
const descriptions = {
|
|
37
|
+
pcf: 'pnpm run check:fix (fallback: check)',
|
|
38
|
+
};
|
|
39
|
+
const installed = [];
|
|
40
|
+
const failed = [];
|
|
41
|
+
for (const dir of scriptDirs) {
|
|
42
|
+
const sourceDir = (0, path_1.join)(baseDir, dir);
|
|
43
|
+
if (!(0, fs_1.existsSync)(sourceDir)) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const scripts = (0, fs_1.readdirSync)(sourceDir).filter(file => !file.startsWith('.'));
|
|
47
|
+
for (const script of scripts) {
|
|
48
|
+
const sourcePath = (0, path_1.join)(sourceDir, script);
|
|
49
|
+
const targetPath = (0, path_1.join)(targetDir, script);
|
|
50
|
+
const spinner = spin(`Installing ${script}`);
|
|
51
|
+
try {
|
|
52
|
+
(0, fs_1.copyFileSync)(sourcePath, targetPath);
|
|
53
|
+
(0, fs_1.chmodSync)(targetPath, 0o755);
|
|
54
|
+
spinner.succeed(`Installed ${script}`);
|
|
55
|
+
installed.push(script);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
spinner.fail(`Failed to install ${script}`);
|
|
59
|
+
if (err.code === 'EACCES') {
|
|
60
|
+
error(` Permission denied. Try running with sudo: sudo lt tools install-scripts`);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
error(` ${err.message}`);
|
|
64
|
+
}
|
|
65
|
+
failed.push(script);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Install git scripts
|
|
70
|
+
info('');
|
|
71
|
+
const gitSpinner = spin('Installing git scripts...');
|
|
72
|
+
try {
|
|
73
|
+
yield run('lt git install-scripts');
|
|
74
|
+
gitSpinner.succeed('Git scripts installed');
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
gitSpinner.fail('Failed to install git scripts');
|
|
78
|
+
error(` ${err.message}`);
|
|
79
|
+
error(' Try running with sudo: sudo lt git install-scripts');
|
|
80
|
+
}
|
|
81
|
+
// Summary
|
|
82
|
+
info('');
|
|
83
|
+
if (failed.length === 0) {
|
|
84
|
+
success(`All scripts installed in ${helper.msToMinutesAndSeconds(timer())}m.`);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
error(`${installed.length} installed, ${failed.length} failed.`);
|
|
88
|
+
}
|
|
89
|
+
if (installed.length > 0) {
|
|
90
|
+
info('');
|
|
91
|
+
info('Installed scripts:');
|
|
92
|
+
for (const script of installed) {
|
|
93
|
+
const desc = descriptions[script] || 'run from anywhere in terminal';
|
|
94
|
+
info(` ${script} - ${desc}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
info('');
|
|
98
|
+
if (!toolbox.parameters.options.fromGluegunMenu) {
|
|
99
|
+
process.exit();
|
|
100
|
+
}
|
|
101
|
+
return failed.length > 0 ? `scripts installed with ${failed.length} failures` : 'scripts installed';
|
|
102
|
+
}),
|
|
103
|
+
};
|
|
104
|
+
exports.default = NewCommand;
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbC1zY3JpcHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Rvb2xzL2luc3RhbGwtc2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLDJCQUFzRTtBQUV0RSwrQkFBNEI7QUFJNUI7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBbUI7SUFDakMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2IsV0FBVyxFQUFFLDZCQUE2QjtJQUMxQyxNQUFNLEVBQUUsS0FBSztJQUNiLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsR0FBRyxFQUFFLENBQU8sT0FBK0IsRUFBRSxFQUFFO1FBQzdDLE1BQU0sRUFDSixNQUFNLEVBQ04sS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FDNUIsR0FBRyxPQUFPLENBQUM7UUFFWixjQUFjO1FBQ2QsTUFBTSxLQUFLLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFFM0IsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7UUFFbkMsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzNCLEtBQUssQ0FBQywrQkFBK0IsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsK0RBQStELENBQUMsQ0FBQztZQUN0RSxPQUFPLG1DQUFtQyxDQUFDO1FBQzdDLENBQUM7UUFFRCwwQ0FBMEM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsTUFBTSxZQUFZLEdB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
|
|
@@ -150,14 +150,14 @@ const NewCommand = {
|
|
|
150
150
|
yield npm.update({ cwd: (0, path_1.join)(filesystem.cwd(), projectDir), install: true, showError: true });
|
|
151
151
|
}
|
|
152
152
|
else {
|
|
153
|
-
//
|
|
154
|
-
const installSpinner = spin('Install
|
|
153
|
+
// Install packages
|
|
154
|
+
const installSpinner = spin('Install packages');
|
|
155
155
|
try {
|
|
156
|
-
yield system.run(`cd ${projectDir} &&
|
|
157
|
-
installSpinner.succeed('
|
|
156
|
+
yield system.run(`cd ${projectDir} && ${toolbox.pm.install(toolbox.pm.detect(projectDir))}`);
|
|
157
|
+
installSpinner.succeed('Packages installed');
|
|
158
158
|
}
|
|
159
159
|
catch (err) {
|
|
160
|
-
installSpinner.fail(`Failed to install
|
|
160
|
+
installSpinner.fail(`Failed to install packages: ${err.message}`);
|
|
161
161
|
return;
|
|
162
162
|
}
|
|
163
163
|
}
|
|
@@ -184,4 +184,4 @@ const NewCommand = {
|
|
|
184
184
|
}),
|
|
185
185
|
};
|
|
186
186
|
exports.default = NewCommand;
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3R5cGVzY3JpcHQvY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQ0EsK0JBQTRCO0FBSTVCOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQW1CO0lBQ2pDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0lBQ3hCLFdBQVcsRUFBRSwyQkFBMkI7SUFDeEMsTUFBTSxFQUFFLEtBQUs7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLEdBQUcsRUFBRSxDQUFPLE9BQStCLEVBQUUsRUFBRTs7UUFDN0MsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixNQUFNLEVBQ04sVUFBVSxFQUNWLEdBQUcsRUFDSCxNQUFNLEVBQ04sSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUNyQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFDbkIsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFDN0MsTUFBTSxFQUNOLFFBQVEsR0FDVCxHQUFHLE9BQU8sQ0FBQztRQUVaLHFCQUFxQjtRQUNyQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsTUFBTSxvQkFBb0IsR0FBRyxNQUFBLE1BQUEsTUFBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsUUFBUSwwQ0FBRSxVQUFVLDBDQUFFLE1BQU0sMENBQUUsY0FBYyxDQUFDO1FBQ3BGLE1BQU0sWUFBWSxHQUFHLE1BQUEsTUFBQSxNQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxRQUFRLDBDQUFFLFVBQVUsMENBQUUsTUFBTSwwQ0FBRSxNQUFNLENB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
|
|
@@ -60,10 +60,11 @@ class FrontendHelper {
|
|
|
60
60
|
if (!result.success) {
|
|
61
61
|
return { method: result.method, path: result.path, success: false };
|
|
62
62
|
}
|
|
63
|
-
// Run
|
|
63
|
+
// Run install if not skipped and not a symlink
|
|
64
64
|
if (!skipInstall && result.method !== 'link') {
|
|
65
65
|
try {
|
|
66
|
-
|
|
66
|
+
const { pm } = this.toolbox;
|
|
67
|
+
yield system.run(`cd "${dest}" && ${pm.install(pm.detect(dest))}`);
|
|
67
68
|
}
|
|
68
69
|
catch (err) {
|
|
69
70
|
return { method: result.method, path: dest, success: false };
|
|
@@ -73,7 +74,8 @@ class FrontendHelper {
|
|
|
73
74
|
}
|
|
74
75
|
// Default: use create-nuxt-base
|
|
75
76
|
try {
|
|
76
|
-
|
|
77
|
+
const { pm } = this.toolbox;
|
|
78
|
+
yield system.run(pm.exec(`create-nuxt-base@latest "${dest}"`));
|
|
77
79
|
// Fix package name - create-nuxt-base uses path as name which is invalid for lerna
|
|
78
80
|
yield this.fixPackageName(dest);
|
|
79
81
|
return { method: 'npx', path: dest, success: true };
|
|
@@ -112,7 +114,8 @@ class FrontendHelper {
|
|
|
112
114
|
// Install packages
|
|
113
115
|
if (!skipInstall) {
|
|
114
116
|
try {
|
|
115
|
-
|
|
117
|
+
const { pm } = this.toolbox;
|
|
118
|
+
yield system.run(`cd "${dest}" && ${pm.install(pm.detect(dest))}`);
|
|
116
119
|
}
|
|
117
120
|
catch (err) {
|
|
118
121
|
return { method: result.method, path: dest, success: false };
|
|
@@ -158,7 +161,8 @@ class FrontendHelper {
|
|
|
158
161
|
// Run init script if exists
|
|
159
162
|
if (!skipInstall) {
|
|
160
163
|
try {
|
|
161
|
-
|
|
164
|
+
const { pm: pmHelper } = this.toolbox;
|
|
165
|
+
yield system.run(`cd "${dest}" && ${pmHelper.run('init', pmHelper.detect(dest))}`);
|
|
162
166
|
}
|
|
163
167
|
catch (_b) {
|
|
164
168
|
// Init script failure is not fatal
|
|
@@ -175,4 +179,4 @@ exports.FrontendHelper = FrontendHelper;
|
|
|
175
179
|
exports.default = (toolbox) => {
|
|
176
180
|
toolbox.frontendHelper = new FrontendHelper(toolbox);
|
|
177
181
|
};
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmQtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4dGVuc2lvbnMvZnJvbnRlbmQtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQW1DQTs7O0dBR0c7QUFDSCxNQUFhLGNBQWM7SUFDekI7O09BRUc7SUFDSCxZQUFzQixPQUErQjtRQUEvQixZQUFPLEdBQVAsT0FBTyxDQUF3QjtJQUFHLENBQUM7SUFFekQ7Ozs7O09BS0c7SUFDVyxjQUFjLENBQUMsSUFBWTs7WUFDdkMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbEMsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQyxJQUE2QixFQUFFLEVBQUU7Z0JBQzlFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUNsQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQ7Ozs7Ozs7T0FPRztJQUNVLFNBQVM7NkRBQ3BCLElBQVksRUFDWixVQUE0QixFQUFFO1lBRTlCLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNoRCxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO1lBRTVELHlEQUF5RDtZQUN6RCxJQUFJLFFBQVEsSUFBSSxRQUFRLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7b0JBQzlDLE1BQU07b0JBQ04sUUFBUTtvQkFDUixNQUFNLEVBQUUsSUFBSTtvQkFDWixRQUFRO29CQUNSLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLG9EQUFvRCxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUNuRixDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDcEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDdEUsQ0FBQztnQkFFRCwrQ0FBK0M7Z0JBQy9DLElBQUksQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDN0MsSUFBSSxDQUFDO3dCQUNILE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO3dCQUM1QixNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNyRSxDQUFDO29CQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7d0JBQ2IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO29CQUMvRCxDQUFDO2dCQUNILENBQUM7Z0JBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNyRSxDQUFDO1lBRUQsZ0NBQWdDO1lBQ2hDLElBQUksQ0FBQztnQkFDSCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDNUIsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFFL0QsbUZBQW1GO2dCQUNuRixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRWhDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3RELENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3ZELENBQUM7UUFDSCxDQUFDO0tBQUE7SUFFRDs7Ozs7OztPQU9HO0lBQ1UsWUFBWTs2REFDdkIsSUFBWSxFQUNaLFVBQStCLEVBQUU7WUFFakMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDdEUsTUFBTSxFQUNKLE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEdBQUcsS0FBSyxFQUNoQixXQUFXLEdBQUcsS0FBSyxFQUNuQixnQkFBZ0IsR0FBRyxLQUFLLEVBQ3hCLFdBQVcsR0FBRyxLQUFLLEdBQ3BCLEdBQUcsT0FBTyxDQUFDO1lBRVosaUJBQWlCO1lBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7Z0JBQzlDLE1BQU07Z0JBQ04sUUFBUTtnQkFDUixRQUFRO2dCQUNSLE9BQU8sRUFBRSw4Q0FBOEM7YUFDeEQsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN0RSxDQUFDO1lBRUQsc0NBQXNDO1lBQ3RDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzlELENBQUM7WUFFRCxtQkFBbUI7WUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUM7b0JBQ0gsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7b0JBQzVCLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JFLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQy9ELENBQUM7WUFDSCxDQUFDO1lBRUQsaUJBQWlCO1lBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDO29CQUNILE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUkscUNBQXFDLENBQUMsQ0FBQztvQkFDbkUsSUFBSSxPQUFPLEVBQUUsQ0FBQzt3QkFDWixNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLDhCQUE4QixPQUFPLEVBQUUsQ0FBQyxDQUFDO3dCQUNyRSxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLENBQUM7d0JBQzlDLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUkscUNBQXFDLENBQUMsQ0FBQzt3QkFDbkUsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxDQUFDO29CQUM5RCxDQUFDO2dCQUNILENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQy9ELENBQUM7WUFDSCxDQUFDO1lBRUQsZUFBZTtZQUNmLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN0QixVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQyxJQUE2QixFQUFFLEVBQUU7b0JBQzlFLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7d0JBQ3JELE9BQVEsSUFBSSxDQUFDLE9BQW1DLENBQUMsT0FBTyxDQUFDO29CQUMzRCxDQUFDO29CQUNELElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssUUFBUSxFQUFFLENBQUM7d0JBQ3JFLE9BQVEsSUFBSSxDQUFDLGVBQTJDLENBQUMsS0FBSyxDQUFDO29CQUNqRSxDQUFDO29CQUNELE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELGVBQWU7WUFDZixJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQztvQkFDSCxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLG1EQUFtRCxDQUFDLENBQUM7Z0JBQ25GLENBQUM7Z0JBQUMsV0FBTSxDQUFDO29CQUNQLGdDQUFnQztnQkFDbEMsQ0FBQztZQUNILENBQUM7WUFFRCw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUM7b0JBQ0gsTUFBTSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUN0QyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLFFBQVEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckYsQ0FBQztnQkFBQyxXQUFNLENBQUM7b0JBQ1AsbUNBQW1DO2dCQUNyQyxDQUFDO1lBQ0gsQ0FBQztZQUVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM5RCxDQUFDO0tBQUE7Q0FDRjtBQWpMRCx3Q0FpTEM7QUFFRDs7R0FFRztBQUNILGtCQUFlLENBQUMsT0FBK0IsRUFBRSxFQUFFO0lBQ2pELE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkQsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageManager = void 0;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const LOCKFILE_MAP = {
|
|
6
|
+
'package-lock.json': 'npm',
|
|
7
|
+
'pnpm-lock.yaml': 'pnpm',
|
|
8
|
+
'yarn.lock': 'yarn',
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Package manager detection and command builder
|
|
12
|
+
* Automatically detects npm, pnpm, or yarn based on lockfiles and config
|
|
13
|
+
*/
|
|
14
|
+
class PackageManager {
|
|
15
|
+
constructor(filesystem, ltConfigFn) {
|
|
16
|
+
this.cache = new Map();
|
|
17
|
+
this.filesystem = filesystem;
|
|
18
|
+
this.ltConfig = ltConfigFn;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Add a package to the project
|
|
22
|
+
* @param pkg - Package name (with optional version)
|
|
23
|
+
* @param flags - Additional flags (e.g., '--save-dev', '--save-exact')
|
|
24
|
+
* @param pm - Override detected package manager
|
|
25
|
+
*/
|
|
26
|
+
addPackage(pkg, flags, pm) {
|
|
27
|
+
const manager = pm || this.detect();
|
|
28
|
+
const flagStr = flags ? ` ${flags}` : '';
|
|
29
|
+
switch (manager) {
|
|
30
|
+
case 'pnpm':
|
|
31
|
+
return `pnpm add ${pkg}${flagStr}`;
|
|
32
|
+
case 'yarn':
|
|
33
|
+
return `yarn add ${pkg}${flagStr}`;
|
|
34
|
+
default:
|
|
35
|
+
return `npm install ${pkg}${flagStr}`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get the binary/executable runner command
|
|
40
|
+
* @param pm - Override detected package manager
|
|
41
|
+
*/
|
|
42
|
+
bin(pm) {
|
|
43
|
+
const manager = pm || this.detect();
|
|
44
|
+
return manager;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get the cache clean command
|
|
48
|
+
* @param pm - Override detected package manager
|
|
49
|
+
*/
|
|
50
|
+
cacheClean(pm) {
|
|
51
|
+
const manager = pm || this.detect();
|
|
52
|
+
switch (manager) {
|
|
53
|
+
case 'pnpm':
|
|
54
|
+
return 'pnpm store prune';
|
|
55
|
+
case 'yarn':
|
|
56
|
+
return 'yarn cache clean';
|
|
57
|
+
default:
|
|
58
|
+
return 'npm cache clean --force';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Detect the package manager for the given directory
|
|
63
|
+
* Uses caching per directory for performance
|
|
64
|
+
*
|
|
65
|
+
* Priority:
|
|
66
|
+
* 1. Lockfile in cwd
|
|
67
|
+
* 2. packageManager field in package.json
|
|
68
|
+
* 3. Lockfile in parent directories (monorepo support)
|
|
69
|
+
* 4. Config fallback (defaults.packageManager)
|
|
70
|
+
* 5. npm
|
|
71
|
+
*
|
|
72
|
+
* @param cwd - Directory to detect from (defaults to filesystem.cwd())
|
|
73
|
+
*/
|
|
74
|
+
detect(cwd) {
|
|
75
|
+
const dir = cwd || this.filesystem.cwd();
|
|
76
|
+
if (this.cache.has(dir)) {
|
|
77
|
+
return this.cache.get(dir);
|
|
78
|
+
}
|
|
79
|
+
const result = this.detectFromLockfile(dir)
|
|
80
|
+
|| this.detectFromPackageJson(dir)
|
|
81
|
+
|| this.detectFromParentDirs(dir)
|
|
82
|
+
|| this.detectFromConfig()
|
|
83
|
+
|| 'npm';
|
|
84
|
+
this.cache.set(dir, result);
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get the npx/dlx equivalent command
|
|
89
|
+
* @param cmd - Command to execute
|
|
90
|
+
* @param pm - Override detected package manager
|
|
91
|
+
*/
|
|
92
|
+
exec(cmd, pm) {
|
|
93
|
+
const manager = pm || this.detect();
|
|
94
|
+
switch (manager) {
|
|
95
|
+
case 'pnpm':
|
|
96
|
+
return `pnpm dlx ${cmd}`;
|
|
97
|
+
case 'yarn':
|
|
98
|
+
return `yarn dlx ${cmd}`;
|
|
99
|
+
default:
|
|
100
|
+
return `npx ${cmd}`;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get the lockfile name for the given package manager
|
|
105
|
+
* @param pm - Override detected package manager
|
|
106
|
+
*/
|
|
107
|
+
getLockfileName(pm) {
|
|
108
|
+
const manager = pm || this.detect();
|
|
109
|
+
switch (manager) {
|
|
110
|
+
case 'pnpm':
|
|
111
|
+
return 'pnpm-lock.yaml';
|
|
112
|
+
case 'yarn':
|
|
113
|
+
return 'yarn.lock';
|
|
114
|
+
default:
|
|
115
|
+
return 'package-lock.json';
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get the global install command
|
|
120
|
+
* @param pkg - Package name
|
|
121
|
+
* @param pm - Override detected package manager
|
|
122
|
+
*/
|
|
123
|
+
globalInstall(pkg, pm) {
|
|
124
|
+
const manager = pm || this.detect();
|
|
125
|
+
switch (manager) {
|
|
126
|
+
case 'pnpm':
|
|
127
|
+
return `pnpm add -g ${pkg}`;
|
|
128
|
+
case 'yarn':
|
|
129
|
+
return `yarn global add ${pkg}`;
|
|
130
|
+
default:
|
|
131
|
+
return `npm i -g ${pkg}`;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get the install command (no arguments)
|
|
136
|
+
* @param pm - Override detected package manager
|
|
137
|
+
*/
|
|
138
|
+
install(pm) {
|
|
139
|
+
const manager = pm || this.detect();
|
|
140
|
+
switch (manager) {
|
|
141
|
+
case 'pnpm':
|
|
142
|
+
return 'pnpm install';
|
|
143
|
+
case 'yarn':
|
|
144
|
+
return 'yarn install';
|
|
145
|
+
default:
|
|
146
|
+
return 'npm i';
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get the run script command
|
|
151
|
+
* @param script - Script name from package.json
|
|
152
|
+
* @param pm - Override detected package manager
|
|
153
|
+
*/
|
|
154
|
+
run(script, pm) {
|
|
155
|
+
const manager = pm || this.detect();
|
|
156
|
+
switch (manager) {
|
|
157
|
+
case 'pnpm':
|
|
158
|
+
return `pnpm run ${script}`;
|
|
159
|
+
case 'yarn':
|
|
160
|
+
return `yarn run ${script}`;
|
|
161
|
+
default:
|
|
162
|
+
return `npm run ${script}`;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Detect from lt.config defaults.packageManager
|
|
167
|
+
*/
|
|
168
|
+
detectFromConfig() {
|
|
169
|
+
var _a;
|
|
170
|
+
try {
|
|
171
|
+
const config = this.ltConfig();
|
|
172
|
+
const pm = (_a = config === null || config === void 0 ? void 0 : config.defaults) === null || _a === void 0 ? void 0 : _a.packageManager;
|
|
173
|
+
if (pm && ['npm', 'pnpm', 'yarn'].includes(pm)) {
|
|
174
|
+
return pm;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch (_b) {
|
|
178
|
+
// Config not available
|
|
179
|
+
}
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Detect package manager from lockfile in the given directory
|
|
184
|
+
*/
|
|
185
|
+
detectFromLockfile(dir) {
|
|
186
|
+
for (const [lockfile, pm] of Object.entries(LOCKFILE_MAP)) {
|
|
187
|
+
if (this.filesystem.exists((0, path_1.join)(dir, lockfile))) {
|
|
188
|
+
return pm;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Detect from packageManager field in package.json (Corepack standard)
|
|
195
|
+
*/
|
|
196
|
+
detectFromPackageJson(dir) {
|
|
197
|
+
const pkgPath = (0, path_1.join)(dir, 'package.json');
|
|
198
|
+
if (!this.filesystem.exists(pkgPath)) {
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
try {
|
|
202
|
+
const content = this.filesystem.read(pkgPath, 'json');
|
|
203
|
+
const pmField = content === null || content === void 0 ? void 0 : content.packageManager;
|
|
204
|
+
if (typeof pmField === 'string') {
|
|
205
|
+
if (pmField.startsWith('pnpm')) {
|
|
206
|
+
return 'pnpm';
|
|
207
|
+
}
|
|
208
|
+
if (pmField.startsWith('yarn')) {
|
|
209
|
+
return 'yarn';
|
|
210
|
+
}
|
|
211
|
+
if (pmField.startsWith('npm')) {
|
|
212
|
+
return 'npm';
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
catch (_a) {
|
|
217
|
+
// Invalid package.json
|
|
218
|
+
}
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Detect from lockfile in parent directories (monorepo support)
|
|
223
|
+
*/
|
|
224
|
+
detectFromParentDirs(startDir) {
|
|
225
|
+
let dir = startDir;
|
|
226
|
+
const root = this.filesystem.separator === '/' ? '/' : /^[A-Z]:\\$/i;
|
|
227
|
+
while (true) {
|
|
228
|
+
const parent = this.filesystem.path(dir, '..');
|
|
229
|
+
if (parent === dir || (typeof root !== 'string' && root.test(dir))) {
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
dir = parent;
|
|
233
|
+
const result = this.detectFromLockfile(dir);
|
|
234
|
+
if (result) {
|
|
235
|
+
return result;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
exports.PackageManager = PackageManager;
|
|
242
|
+
/**
|
|
243
|
+
* Extension function to add package manager helper to toolbox
|
|
244
|
+
*/
|
|
245
|
+
exports.default = (toolbox) => {
|
|
246
|
+
const pm = new PackageManager(toolbox.filesystem, () => { var _a, _b; return ((_b = (_a = toolbox.config) === null || _a === void 0 ? void 0 : _a.loadConfig) === null || _b === void 0 ? void 0 : _b.call(_a)) || {}; });
|
|
247
|
+
toolbox.pm = pm;
|
|
248
|
+
};
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4dGVuc2lvbnMvcGFja2FnZS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUE0QjtBQU01QixNQUFNLFlBQVksR0FBdUM7SUFDdkQsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixnQkFBZ0IsRUFBRSxNQUFNO0lBQ3hCLFdBQVcsRUFBRSxNQUFNO0NBQ3BCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFhLGNBQWM7SUFLekIsWUFBWSxVQUE2QixFQUFFLFVBQTBCO1FBSjdELFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztRQUtwRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsR0FBVyxFQUFFLEtBQWMsRUFBRSxFQUF1QjtRQUM3RCxNQUFNLE9BQU8sR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pDLFFBQVEsT0FBTyxFQUFFLENBQUM7WUFDaEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sWUFBWSxHQUFHLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDckMsS0FBSyxNQUFNO2dCQUNULE9BQU8sWUFBWSxHQUFHLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDckM7Z0JBQ0UsT0FBTyxlQUFlLEdBQUcsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxFQUF1QjtRQUN6QixNQUFNLE9BQU8sR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLE1B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
|