trm-client 6.1.1 → 7.0.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/LICENSE +20 -20
- package/README.md +65 -65
- package/changelog.txt +179 -165
- package/dist/command/AbstractCommand.d.ts +42 -0
- package/dist/command/AbstractCommand.js +418 -0
- package/dist/command/InquirerType.d.ts +3 -0
- package/dist/command/InquirerType.js +7 -0
- package/dist/{utils/executeCommand.d.ts → command/LoggerType.d.ts} +0 -4
- package/dist/command/LoggerType.js +11 -0
- package/dist/{utils/registerCommand.d.ts → command/RegisterCommandOpts.d.ts} +4 -3
- package/dist/command/implementations/Alias.d.ts +8 -0
- package/dist/command/implementations/Alias.js +172 -0
- package/dist/command/implementations/Compare.d.ts +7 -0
- package/dist/command/implementations/Compare.js +133 -0
- package/dist/command/implementations/Content.d.ts +5 -0
- package/dist/command/implementations/Content.js +195 -0
- package/dist/command/implementations/Deprecate.d.ts +5 -0
- package/dist/command/implementations/Deprecate.js +33 -0
- package/dist/command/implementations/DistTag.d.ts +5 -0
- package/dist/command/implementations/DistTag.js +48 -0
- package/dist/command/implementations/FindDependencies.d.ts +5 -0
- package/dist/command/implementations/FindDependencies.js +42 -0
- package/dist/command/implementations/Info.d.ts +11 -0
- package/dist/command/implementations/Info.js +245 -0
- package/dist/command/implementations/Install.d.ts +13 -0
- package/dist/command/implementations/Install.js +201 -0
- package/dist/command/implementations/List.d.ts +5 -0
- package/dist/command/implementations/List.js +116 -0
- package/dist/command/implementations/Lock.d.ts +5 -0
- package/dist/command/implementations/Lock.js +40 -0
- package/dist/command/implementations/Login.d.ts +5 -0
- package/dist/command/implementations/Login.js +66 -0
- package/dist/command/implementations/Logout.d.ts +5 -0
- package/dist/command/implementations/Logout.js +37 -0
- package/dist/command/implementations/Ping.d.ts +5 -0
- package/dist/{commands/findDependencies.js → command/implementations/Ping.js} +15 -16
- package/dist/command/implementations/Publish.d.ts +6 -0
- package/dist/command/implementations/Publish.js +145 -0
- package/dist/command/implementations/Registry.d.ts +5 -0
- package/dist/command/implementations/Registry.js +88 -0
- package/dist/command/implementations/Settings.d.ts +5 -0
- package/dist/command/implementations/Settings.js +42 -0
- package/dist/command/implementations/Unpublish.d.ts +5 -0
- package/dist/command/implementations/Unpublish.js +34 -0
- package/dist/command/implementations/View.d.ts +9 -0
- package/dist/command/implementations/View.js +237 -0
- package/dist/command/implementations/WhoAmI.d.ts +5 -0
- package/dist/command/implementations/WhoAmI.js +36 -0
- package/dist/command/implementations/index.d.ts +19 -0
- package/dist/command/implementations/index.js +35 -0
- package/dist/command/index.d.ts +4 -0
- package/dist/{commands/commons → command}/index.js +4 -2
- package/dist/{commands/arguments/ConnectArguments.d.ts → command/prompts/connect.d.ts} +2 -0
- package/dist/{commands → command}/prompts/connect.js +3 -3
- package/dist/command/prompts/createAlias.d.ts +1 -0
- package/dist/{commands → command/prompts}/createAlias.js +8 -8
- package/dist/command/prompts/deleteAlias.d.ts +1 -0
- package/dist/{commands → command/prompts}/deleteAlias.js +3 -4
- package/dist/command/prompts/index.d.ts +4 -0
- package/dist/{commands → command}/prompts/index.js +2 -0
- package/dist/index.js +34 -278
- package/dist/registryAlias/RegistryAlias.js +1 -1
- package/dist/systemAlias/SystemAlias.js +4 -4
- package/dist/utils/{Context.d.ts → GlobalContext.d.ts} +3 -3
- package/dist/utils/{Context.js → GlobalContext.js} +6 -6
- package/dist/utils/checkCliUpdate.d.ts +3 -2
- package/dist/utils/checkCliUpdate.js +3 -3
- package/dist/utils/getSapLogonConnections.js +3 -3
- package/dist/utils/index.d.ts +1 -4
- package/dist/utils/index.js +1 -4
- package/package.json +67 -65
- package/dist/commands/addRegistry.d.ts +0 -2
- package/dist/commands/addRegistry.js +0 -66
- package/dist/commands/alias.d.ts +0 -2
- package/dist/commands/alias.js +0 -156
- package/dist/commands/arguments/AddRegistryArguments.d.ts +0 -5
- package/dist/commands/arguments/AliasArguments.d.ts +0 -3
- package/dist/commands/arguments/AliasArguments.js +0 -2
- package/dist/commands/arguments/CheckArguments.d.ts +0 -4
- package/dist/commands/arguments/CheckArguments.js +0 -2
- package/dist/commands/arguments/CompareArguments.d.ts +0 -4
- package/dist/commands/arguments/CompareArguments.js +0 -2
- package/dist/commands/arguments/ConnectArguments.js +0 -2
- package/dist/commands/arguments/ContentArguments.d.ts +0 -6
- package/dist/commands/arguments/ContentArguments.js +0 -2
- package/dist/commands/arguments/CreateAliasArguments.d.ts +0 -3
- package/dist/commands/arguments/CreateAliasArguments.js +0 -2
- package/dist/commands/arguments/DeleteAliasArguments.d.ts +0 -3
- package/dist/commands/arguments/DeleteAliasArguments.js +0 -2
- package/dist/commands/arguments/FindDependenciesArguments.d.ts +0 -5
- package/dist/commands/arguments/FindDependenciesArguments.js +0 -2
- package/dist/commands/arguments/ImportArguments.d.ts +0 -19
- package/dist/commands/arguments/ImportArguments.js +0 -2
- package/dist/commands/arguments/InfoArguments.d.ts +0 -1
- package/dist/commands/arguments/InfoArguments.js +0 -2
- package/dist/commands/arguments/InstallArguments.d.ts +0 -20
- package/dist/commands/arguments/InstallArguments.js +0 -2
- package/dist/commands/arguments/ListArguments.d.ts +0 -3
- package/dist/commands/arguments/ListArguments.js +0 -2
- package/dist/commands/arguments/LockArguments.d.ts +0 -4
- package/dist/commands/arguments/LockArguments.js +0 -2
- package/dist/commands/arguments/LoginArguments.d.ts +0 -4
- package/dist/commands/arguments/LoginArguments.js +0 -2
- package/dist/commands/arguments/LogoutArguments.d.ts +0 -1
- package/dist/commands/arguments/LogoutArguments.js +0 -2
- package/dist/commands/arguments/PackArguments.d.ts +0 -22
- package/dist/commands/arguments/PackArguments.js +0 -2
- package/dist/commands/arguments/PingArguments.d.ts +0 -1
- package/dist/commands/arguments/PingArguments.js +0 -2
- package/dist/commands/arguments/PublishArguments.d.ts +0 -24
- package/dist/commands/arguments/PublishArguments.js +0 -2
- package/dist/commands/arguments/RemoveRegistryArguments.d.ts +0 -4
- package/dist/commands/arguments/RemoveRegistryArguments.js +0 -2
- package/dist/commands/arguments/SettingsArgument.d.ts +0 -3
- package/dist/commands/arguments/SettingsArgument.js +0 -2
- package/dist/commands/arguments/UnpublishArguments.d.ts +0 -4
- package/dist/commands/arguments/UnpublishArguments.js +0 -2
- package/dist/commands/arguments/UpdateArguments.d.ts +0 -2
- package/dist/commands/arguments/UpdateArguments.js +0 -2
- package/dist/commands/arguments/ViewArguments.d.ts +0 -3
- package/dist/commands/arguments/ViewArguments.js +0 -2
- package/dist/commands/arguments/WhoAmIArguments.d.ts +0 -1
- package/dist/commands/arguments/WhoAmIArguments.js +0 -2
- package/dist/commands/arguments/index.d.ts +0 -24
- package/dist/commands/arguments/index.js +0 -40
- package/dist/commands/check.d.ts +0 -2
- package/dist/commands/check.js +0 -87
- package/dist/commands/commons/CommandContext.d.ts +0 -9
- package/dist/commands/commons/CommandContext.js +0 -41
- package/dist/commands/commons/index.d.ts +0 -2
- package/dist/commands/commons/viewRegistryPackage.d.ts +0 -2
- package/dist/commands/commons/viewRegistryPackage.js +0 -48
- package/dist/commands/compare.d.ts +0 -2
- package/dist/commands/compare.js +0 -167
- package/dist/commands/content.d.ts +0 -2
- package/dist/commands/content.js +0 -182
- package/dist/commands/createAlias.d.ts +0 -2
- package/dist/commands/deleteAlias.d.ts +0 -2
- package/dist/commands/findDependencies.d.ts +0 -2
- package/dist/commands/import.d.ts +0 -2
- package/dist/commands/import.js +0 -84
- package/dist/commands/index.d.ts +0 -27
- package/dist/commands/index.js +0 -43
- package/dist/commands/info.d.ts +0 -2
- package/dist/commands/info.js +0 -233
- package/dist/commands/install.d.ts +0 -2
- package/dist/commands/install.js +0 -85
- package/dist/commands/list.d.ts +0 -2
- package/dist/commands/list.js +0 -70
- package/dist/commands/lock.d.ts +0 -2
- package/dist/commands/lock.js +0 -64
- package/dist/commands/login.d.ts +0 -2
- package/dist/commands/login.js +0 -59
- package/dist/commands/logout.d.ts +0 -2
- package/dist/commands/logout.js +0 -27
- package/dist/commands/pack.d.ts +0 -2
- package/dist/commands/pack.js +0 -95
- package/dist/commands/ping.d.ts +0 -2
- package/dist/commands/ping.js +0 -21
- package/dist/commands/prompts/connect.d.ts +0 -3
- package/dist/commands/prompts/index.d.ts +0 -2
- package/dist/commands/publish.d.ts +0 -2
- package/dist/commands/publish.js +0 -128
- package/dist/commands/removeRegistry.d.ts +0 -2
- package/dist/commands/removeRegistry.js +0 -36
- package/dist/commands/selfUpdate.d.ts +0 -1
- package/dist/commands/selfUpdate.js +0 -77
- package/dist/commands/settings.d.ts +0 -2
- package/dist/commands/settings.js +0 -32
- package/dist/commands/unpublish.d.ts +0 -2
- package/dist/commands/unpublish.js +0 -61
- package/dist/commands/update.d.ts +0 -2
- package/dist/commands/update.js +0 -20
- package/dist/commands/view.d.ts +0 -2
- package/dist/commands/view.js +0 -219
- package/dist/commands/whoami.d.ts +0 -2
- package/dist/commands/whoami.js +0 -34
- package/dist/utils/checkTrmDependencies.d.ts +0 -1
- package/dist/utils/checkTrmDependencies.js +0 -43
- package/dist/utils/executeCommand.js +0 -213
- package/dist/utils/registerCommand.js +0 -93
- /package/dist/{commands/arguments/AddRegistryArguments.js → command/RegisterCommandOpts.js} +0 -0
- /package/dist/{commands → command}/prompts/pickRegistry.d.ts +0 -0
- /package/dist/{commands → command}/prompts/pickRegistry.js +0 -0
|
@@ -0,0 +1,245 @@
|
|
|
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.Info = void 0;
|
|
16
|
+
const trm_commons_1 = require("trm-commons");
|
|
17
|
+
const trm_core_1 = require("trm-core");
|
|
18
|
+
const AbstractCommand_1 = require("../AbstractCommand");
|
|
19
|
+
const utils_1 = require("../../utils");
|
|
20
|
+
const semver_1 = require("semver");
|
|
21
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
22
|
+
const fs_1 = require("fs");
|
|
23
|
+
const path_1 = require("path");
|
|
24
|
+
const get_root_path_1 = require("get-root-path");
|
|
25
|
+
class Info extends AbstractCommand_1.AbstractCommand {
|
|
26
|
+
init() {
|
|
27
|
+
this.registerOpts.requiresConnection = true;
|
|
28
|
+
this.registerOpts.addNoConnection = true;
|
|
29
|
+
this.registerOpts.requiresTrmDependencies = true;
|
|
30
|
+
this.command.description(`TRM Client/Server Info. Shows installed and available updates.`);
|
|
31
|
+
}
|
|
32
|
+
onTrmDepMissing(dependency) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
onTrmDepVersionNotSatisfied(trmPackage) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
getDependencyVersion(moduleName, rootModule = 'trm-client') {
|
|
39
|
+
var file;
|
|
40
|
+
try {
|
|
41
|
+
file = (0, fs_1.readFileSync)((0, path_1.join)(get_root_path_1.rootPath, `/node_modules/${rootModule}/node_modules/${moduleName}/package.json`));
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
file = (0, fs_1.readFileSync)((0, path_1.join)(get_root_path_1.rootPath, `/node_modules/${moduleName}/package.json`));
|
|
45
|
+
}
|
|
46
|
+
if (!file) {
|
|
47
|
+
trm_commons_1.Logger.warning(`Library ${moduleName} (root ${rootModule}) was not found!`, true);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
return JSON.parse(file.toString()).version;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
getNodeRfcVersion(npmGlobal) {
|
|
54
|
+
var file;
|
|
55
|
+
try {
|
|
56
|
+
file = (0, fs_1.readFileSync)((0, path_1.join)(npmGlobal, `/node-rfc/package.json`));
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
}
|
|
60
|
+
if (!file) {
|
|
61
|
+
trm_commons_1.Logger.warning(`Library node-rfc was not found!`, true);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
return JSON.parse(file.toString()).version;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
getNpmLatestForText(packageName, installedVersion, text) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
try {
|
|
70
|
+
const latestVersion = yield (0, utils_1.getNpmPackageLatestVersion)(packageName);
|
|
71
|
+
if ((0, semver_1.gte)(installedVersion, latestVersion)) {
|
|
72
|
+
text += ` ${chalk_1.default.bgGreen('LATEST')}`;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
text += ` ${chalk_1.default.bold('v' + latestVersion + ' available')}`;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
text += ` ${chalk_1.default.bgGray('Can\'t fetch latest version')}`;
|
|
80
|
+
}
|
|
81
|
+
return text;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
handler() {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
trm_commons_1.Logger.loading(`Reading data...`);
|
|
87
|
+
const npmGlobal = utils_1.GlobalContext.getInstance().getSettings().globalNodeModules;
|
|
88
|
+
const clientLatest = yield this.getCliVersionStatus();
|
|
89
|
+
const clientVersion = (0, utils_1.getClientVersion)();
|
|
90
|
+
const clientDependencies = (0, utils_1.getClientNodeDependencies)();
|
|
91
|
+
const trmDependencies = (0, trm_core_1.getCoreTrmDependencies)();
|
|
92
|
+
const trmDependenciesInstances = (yield this.getTrmDependenciesCheck()).dependencies;
|
|
93
|
+
const trmMissingDependencies = (yield this.getTrmDependenciesCheck()).missingDependencies;
|
|
94
|
+
const nodeRfcVersion = this.getNodeRfcVersion(npmGlobal);
|
|
95
|
+
const packages = yield this.getSystemPackages();
|
|
96
|
+
const trmRest = packages.find(o => o.compareName("trm-rest") && o.compareRegistry(trm_core_1.RegistryProvider.getRegistry()));
|
|
97
|
+
var nodeR3transVersion;
|
|
98
|
+
try {
|
|
99
|
+
nodeR3transVersion = this.getDependencyVersion("node-r3trans", "trm-core");
|
|
100
|
+
if (!nodeR3transVersion) {
|
|
101
|
+
throw new Error();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
nodeR3transVersion = this.getDependencyVersion("node-r3trans");
|
|
106
|
+
}
|
|
107
|
+
var clientDependenciesTree = [];
|
|
108
|
+
if (clientDependencies) {
|
|
109
|
+
for (const d of Object.keys(clientDependencies).filter(k => k.startsWith('trm'))) {
|
|
110
|
+
var dText = ``;
|
|
111
|
+
var dInstalledVersion = this.getDependencyVersion(d);
|
|
112
|
+
if (dInstalledVersion) {
|
|
113
|
+
dText = ` -> ${dInstalledVersion}`;
|
|
114
|
+
dText = yield this.getNpmLatestForText(d, dInstalledVersion, dText);
|
|
115
|
+
}
|
|
116
|
+
clientDependenciesTree.push({
|
|
117
|
+
text: `${d} ${clientDependencies[d]}${dText}`,
|
|
118
|
+
children: []
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
var serverDependenciesTree = [];
|
|
123
|
+
if (trmDependencies) {
|
|
124
|
+
for (const d of Object.keys(trmDependencies)) {
|
|
125
|
+
var dText = ``;
|
|
126
|
+
const oTrmPackage = trmDependenciesInstances.find(o => o.compareName(d));
|
|
127
|
+
if (oTrmPackage) {
|
|
128
|
+
var dInstalledVersion;
|
|
129
|
+
try {
|
|
130
|
+
dInstalledVersion = oTrmPackage.manifest.get().version;
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
dText = ` -> ${e.message}`;
|
|
134
|
+
}
|
|
135
|
+
if (dInstalledVersion) {
|
|
136
|
+
dText = ` -> ${dInstalledVersion}`;
|
|
137
|
+
try {
|
|
138
|
+
const dLatestVersion = (yield oTrmPackage.registry.getPackage(oTrmPackage.packageName, 'latest')).manifest.version;
|
|
139
|
+
if ((0, semver_1.gte)(dInstalledVersion, dLatestVersion)) {
|
|
140
|
+
dText += ` ${chalk_1.default.bgGreen('LATEST')}`;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
dText += ` ${chalk_1.default.bold('v' + dLatestVersion + ' available')}`;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
dText += ` ${chalk_1.default.bgGray('Can\'t fetch latest version')}`;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
const missingDependency = trmMissingDependencies.find(o => {
|
|
153
|
+
if (typeof (o) === 'string') {
|
|
154
|
+
if (o === d) {
|
|
155
|
+
return o;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
if (missingDependency) {
|
|
160
|
+
try {
|
|
161
|
+
dText = ` -> ${chalk_1.default.bgRed(missingDependency.manifest.get().version)}`;
|
|
162
|
+
}
|
|
163
|
+
catch (e) {
|
|
164
|
+
dText = ` -> ${chalk_1.default.bgRed('Not found')}`;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
serverDependenciesTree.push({
|
|
169
|
+
text: `${d} ${trmDependencies[d]}${dText}`,
|
|
170
|
+
children: []
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (trmRest && trmRest.manifest) {
|
|
175
|
+
serverDependenciesTree.push({
|
|
176
|
+
text: `trm-rest -> ${trmRest.manifest.get().version}`,
|
|
177
|
+
children: []
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
var clientChildrenTree = [{
|
|
181
|
+
text: `trm-client ${clientVersion} ${(0, semver_1.gte)(clientLatest.localVersion, clientLatest.latestVersion) ? chalk_1.default.bgGreen('LATEST') : chalk_1.default.bold('v' + clientLatest.latestVersion + ' available')}`,
|
|
182
|
+
children: clientDependenciesTree
|
|
183
|
+
}];
|
|
184
|
+
if (nodeRfcVersion) {
|
|
185
|
+
clientChildrenTree.push({
|
|
186
|
+
text: yield this.getNpmLatestForText('node-rfc', nodeRfcVersion, `node-rfc ${nodeRfcVersion}`),
|
|
187
|
+
children: []
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
clientChildrenTree.push({
|
|
192
|
+
text: `node-rfc ${chalk_1.default.bold('not found')}`,
|
|
193
|
+
children: []
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
if (nodeR3transVersion) {
|
|
197
|
+
clientChildrenTree.push({
|
|
198
|
+
text: yield this.getNpmLatestForText('node-r3trans', nodeR3transVersion, `node-r3trans ${nodeR3transVersion}`),
|
|
199
|
+
children: []
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
clientChildrenTree.push({
|
|
204
|
+
text: `node-r3trans ${chalk_1.default.bold('not found')}`,
|
|
205
|
+
children: []
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
const clientTree = {
|
|
209
|
+
text: chalk_1.default.bold(`Client`),
|
|
210
|
+
children: clientChildrenTree
|
|
211
|
+
};
|
|
212
|
+
const serverTree = {
|
|
213
|
+
text: chalk_1.default.bold(`Server (${trm_core_1.SystemConnector.getDest()})`),
|
|
214
|
+
children: serverDependenciesTree
|
|
215
|
+
};
|
|
216
|
+
const pluginsTree = {
|
|
217
|
+
text: chalk_1.default.bold(`Plugins`),
|
|
218
|
+
children: []
|
|
219
|
+
};
|
|
220
|
+
for (const plugin of utils_1.GlobalContext.getInstance().getPlugins()) {
|
|
221
|
+
try {
|
|
222
|
+
const installedVersion = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(plugin.location, 'package.json')).toString()).version;
|
|
223
|
+
pluginsTree.children.push({
|
|
224
|
+
text: yield this.getNpmLatestForText(plugin.name, installedVersion, `${plugin.name} ${installedVersion}`),
|
|
225
|
+
children: []
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
catch (_a) {
|
|
229
|
+
pluginsTree.children.push({
|
|
230
|
+
text: plugin.name,
|
|
231
|
+
children: []
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
trm_commons_1.Logger.tree(clientTree);
|
|
236
|
+
if (!(trm_core_1.SystemConnector.systemConnector instanceof utils_1.DummyConnector)) {
|
|
237
|
+
trm_commons_1.Logger.tree(serverTree);
|
|
238
|
+
}
|
|
239
|
+
if (pluginsTree.children.length > 0) {
|
|
240
|
+
trm_commons_1.Logger.tree(pluginsTree);
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
exports.Info = Info;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TrmPackage } from "trm-core";
|
|
2
|
+
import { AbstractCommand } from "../AbstractCommand";
|
|
3
|
+
export declare class Install extends AbstractCommand {
|
|
4
|
+
protected init(): void;
|
|
5
|
+
private selfUpdate;
|
|
6
|
+
private detectPackageManager;
|
|
7
|
+
private looksLikeYarnBerry;
|
|
8
|
+
private isPermsError;
|
|
9
|
+
private formatPermsHelp;
|
|
10
|
+
protected onArgs(): void;
|
|
11
|
+
protected onTrmDepVersionNotSatisfied(trmPackage: TrmPackage): boolean;
|
|
12
|
+
protected handler(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,201 @@
|
|
|
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.Install = void 0;
|
|
16
|
+
const trm_commons_1 = require("trm-commons");
|
|
17
|
+
const trm_core_1 = require("trm-core");
|
|
18
|
+
const AbstractCommand_1 = require("../AbstractCommand");
|
|
19
|
+
const utils_1 = require("../../utils");
|
|
20
|
+
const execa_1 = require("execa");
|
|
21
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
22
|
+
const lockfile_1 = require("trm-core/dist/lockfile");
|
|
23
|
+
class Install extends AbstractCommand_1.AbstractCommand {
|
|
24
|
+
init() {
|
|
25
|
+
this.registerOpts.requiresConnection = true;
|
|
26
|
+
this.registerOpts.requiresTrmDependencies = true;
|
|
27
|
+
this.registerOpts.requiresR3trans = true;
|
|
28
|
+
if (this.name === 'update') {
|
|
29
|
+
this.registerOpts.requiresRegistry = true;
|
|
30
|
+
this.command.argument(`[package]`, `Name of the package.`);
|
|
31
|
+
this.command.argument(`[version]`, `Version (or tag) of the release.`, `latest`);
|
|
32
|
+
this.command.description(`Update trm-client / Update package from registry into system.`);
|
|
33
|
+
this.command.addHelpText(`before`, `When no package name is specified, trm-client will self-update; all options are invalid, in this case.`);
|
|
34
|
+
}
|
|
35
|
+
else if (this.name === 'install') {
|
|
36
|
+
this.registerOpts.requiresRegistry = true;
|
|
37
|
+
this.command.argument(`<package>`, `Name of the package.`);
|
|
38
|
+
this.command.argument(`[version]`, `Version (or tag) of the release.`, `latest`);
|
|
39
|
+
this.command.description(`Install package from registry into system.`);
|
|
40
|
+
}
|
|
41
|
+
else if (this.name === 'clean-install') {
|
|
42
|
+
this.registerOpts.requiresRegistry = true;
|
|
43
|
+
this.command.argument(`<package>`, `Name of the package.`);
|
|
44
|
+
this.command.argument(`[version]`, `Version (or tag) of the release.`, `latest`);
|
|
45
|
+
this.command.description(`Clean install package from registry into system (requires lockfile).`);
|
|
46
|
+
this.command.option(`-L, --lock-file`, `Install lockfile`, `trm-lock.json`);
|
|
47
|
+
}
|
|
48
|
+
else if (this.name === 'import') {
|
|
49
|
+
this.command.argument(`<filename>`, `Name (or path) of the file.`);
|
|
50
|
+
this.command.description(`Import a package (as a file) into system.`);
|
|
51
|
+
}
|
|
52
|
+
this.command.option(`-t, --timeout <seconds>`, `Transport import timeout (in seconds)`, `180`);
|
|
53
|
+
this.command.option(`-T, --transport-layer <transport layer>`, `Package transport layer. (default: System default)`);
|
|
54
|
+
this.command.option(`--no-deps`, `Do not install dependencies.`, false);
|
|
55
|
+
this.command.option(`--no-obj-type`, `Do not check object types before import.`, false);
|
|
56
|
+
this.command.option(`--no-obj-check`, `Do not check if objects before import.`, false);
|
|
57
|
+
this.command.option(`--no-sap-entries`, `Do not check SAP entries before import.`, false);
|
|
58
|
+
this.command.option(`--no-lang-tr`, `Do not import language (translation) transport.`, false);
|
|
59
|
+
this.command.option(`--no-cust-tr`, `Do not import customizing transports.`, false);
|
|
60
|
+
this.command.option(`--no-install-tr`, `Do not create install transport.`, false);
|
|
61
|
+
this.command.option(`--no-namespace`, `Do not import namespace.`, false);
|
|
62
|
+
this.command.option(`--package-replacements <replacements>`, `SAP Package replacements (JSON or path to JSON file)`);
|
|
63
|
+
this.command.option(`--install-tr-target <target>`, `Install transport target system`);
|
|
64
|
+
this.command.option(`--no-prompts`, `No prompts (will force some decisions).`, false);
|
|
65
|
+
}
|
|
66
|
+
selfUpdate() {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
const pm = this.detectPackageManager();
|
|
69
|
+
const target = `trm-client@latest`;
|
|
70
|
+
const command = pm === "pnpm"
|
|
71
|
+
? { bin: "pnpm", args: ["add", "-g", target] }
|
|
72
|
+
: pm === "yarn1"
|
|
73
|
+
? { bin: "yarn", args: ["global", "add", target] }
|
|
74
|
+
: { bin: "npm", args: ["install", "-g", target] };
|
|
75
|
+
try {
|
|
76
|
+
yield (0, execa_1.execa)(command.bin, command.args, { stdio: "inherit" });
|
|
77
|
+
trm_commons_1.Logger.success(`Client updated successfully.`);
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
if (this.isPermsError(err)) {
|
|
81
|
+
trm_commons_1.Logger.error(this.formatPermsHelp(command.bin));
|
|
82
|
+
}
|
|
83
|
+
if (command.bin === "yarn" && this.looksLikeYarnBerry()) {
|
|
84
|
+
trm_commons_1.Logger.error(`\Detected Yarn ≥2 (Berry). It doesn't support reliable global installs.\n` +
|
|
85
|
+
` Try: npm install -g ${target}`);
|
|
86
|
+
}
|
|
87
|
+
throw err;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
detectPackageManager() {
|
|
92
|
+
var _a;
|
|
93
|
+
const ua = (_a = process.env.npm_config_user_agent) !== null && _a !== void 0 ? _a : "";
|
|
94
|
+
if (ua.includes("pnpm/"))
|
|
95
|
+
return "pnpm";
|
|
96
|
+
if (ua.includes("yarn/1."))
|
|
97
|
+
return "yarn1";
|
|
98
|
+
return "npm";
|
|
99
|
+
}
|
|
100
|
+
looksLikeYarnBerry() {
|
|
101
|
+
var _a;
|
|
102
|
+
const ua = (_a = process.env.npm_config_user_agent) !== null && _a !== void 0 ? _a : "";
|
|
103
|
+
return ua.includes("yarn/") && !ua.includes("yarn/1.");
|
|
104
|
+
}
|
|
105
|
+
isPermsError(err) {
|
|
106
|
+
const msg = String((err === null || err === void 0 ? void 0 : err.message) || err);
|
|
107
|
+
return ((err === null || err === void 0 ? void 0 : err.code) === "EACCES" ||
|
|
108
|
+
(err === null || err === void 0 ? void 0 : err.errno) === -13 ||
|
|
109
|
+
/EACCES|EPERM|permission denied/i.test(msg));
|
|
110
|
+
}
|
|
111
|
+
formatPermsHelp(bin) {
|
|
112
|
+
const isUnix = node_os_1.default.platform() !== "win32";
|
|
113
|
+
return (`Permission error installing globally.\n` +
|
|
114
|
+
`Troubleshooting tips:\n` +
|
|
115
|
+
(isUnix
|
|
116
|
+
? ` • If you used a system Node, configure a user-level global prefix:\n` +
|
|
117
|
+
` mkdir -p ~/.npm-global && npm config set prefix ~/.npm-global\n` +
|
|
118
|
+
` export PATH="$HOME/.npm-global/bin:$PATH"\n` +
|
|
119
|
+
` (Then rerun: ${bin} …)\n` +
|
|
120
|
+
` • Prefer using a Node version manager (nvm/fnm/volta) to avoid sudo.\n` +
|
|
121
|
+
` • Avoid running global installs with sudo unless you know why.\n`
|
|
122
|
+
: ` • Run your shell as Administrator, or use a Node manager (nvs/volta).\n`) +
|
|
123
|
+
``);
|
|
124
|
+
}
|
|
125
|
+
onArgs() {
|
|
126
|
+
if (this.name === 'update' && !this.args.package) {
|
|
127
|
+
this.registerOpts = {};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
onTrmDepVersionNotSatisfied(trmPackage) {
|
|
131
|
+
return !trmPackage.compareName(this.args.package);
|
|
132
|
+
}
|
|
133
|
+
handler() {
|
|
134
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
+
if (this.name === 'update' && !this.args.package) {
|
|
136
|
+
yield this.selfUpdate();
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
var registry;
|
|
140
|
+
if (this.name === 'import') {
|
|
141
|
+
registry = new trm_core_1.FileSystem(this.args.filename);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
registry = this.getRegistry();
|
|
145
|
+
}
|
|
146
|
+
const packages = yield this.getSystemPackages();
|
|
147
|
+
const result = yield (0, trm_core_1.install)({
|
|
148
|
+
contextData: {
|
|
149
|
+
r3transOptions: {
|
|
150
|
+
tempDirPath: (0, utils_1.getTempFolder)(),
|
|
151
|
+
r3transDirPath: this.args.r3transPath,
|
|
152
|
+
useDocker: utils_1.GlobalContext.getInstance().getSettings().r3transDocker,
|
|
153
|
+
dockerOptions: {
|
|
154
|
+
name: utils_1.GlobalContext.getInstance().getSettings().r3transDockerName
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
noInquirer: this.args.noPrompts,
|
|
158
|
+
systemPackages: packages,
|
|
159
|
+
noR3transInfo: false
|
|
160
|
+
},
|
|
161
|
+
packageData: {
|
|
162
|
+
registry,
|
|
163
|
+
name: this.args.package,
|
|
164
|
+
version: this.args.version,
|
|
165
|
+
overwrite: this.name === 'update'
|
|
166
|
+
},
|
|
167
|
+
installData: {
|
|
168
|
+
checks: {
|
|
169
|
+
noDependencies: this.args.noDeps,
|
|
170
|
+
noObjectTypes: this.args.noObjType,
|
|
171
|
+
noSapEntries: this.args.noSapEntries,
|
|
172
|
+
noExistingObjects: this.args.noObjCheck,
|
|
173
|
+
lockfile: this.args.lockFile ? lockfile_1.Lockfile.fromJson(this.parseJsonArg('lockFile')) : undefined
|
|
174
|
+
},
|
|
175
|
+
import: {
|
|
176
|
+
noLang: this.args.noLangTr,
|
|
177
|
+
noCust: this.args.noCustTr,
|
|
178
|
+
timeout: this.parseNumberArg('timeout'),
|
|
179
|
+
replaceExistingTransports: false
|
|
180
|
+
},
|
|
181
|
+
installDevclass: {
|
|
182
|
+
keepOriginal: false,
|
|
183
|
+
transportLayer: this.args.transportLayer,
|
|
184
|
+
replacements: this.parseJsonArg('packageReplacements'),
|
|
185
|
+
skipNamespace: this.args.noNamespace
|
|
186
|
+
},
|
|
187
|
+
installTransport: {
|
|
188
|
+
create: !!this.args.noInstallTransport,
|
|
189
|
+
targetSystem: this.args.installTrTarget
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
var sOutput = `${result.manifest.name} v${result.manifest.version} installed`;
|
|
194
|
+
if (result.installTransport) {
|
|
195
|
+
sOutput += `, use ${result.installTransport.trkorr} transport in landscape`;
|
|
196
|
+
}
|
|
197
|
+
trm_commons_1.Logger.success(sOutput);
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
exports.Install = Install;
|
|
@@ -0,0 +1,116 @@
|
|
|
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.List = void 0;
|
|
16
|
+
const trm_commons_1 = require("trm-commons");
|
|
17
|
+
const trm_core_1 = require("trm-core");
|
|
18
|
+
const AbstractCommand_1 = require("../AbstractCommand");
|
|
19
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
20
|
+
class List extends AbstractCommand_1.AbstractCommand {
|
|
21
|
+
init() {
|
|
22
|
+
this.registerOpts.requiresConnection = true;
|
|
23
|
+
this.command.description(`List TRM packages in a system.`);
|
|
24
|
+
this.command.option(`-L, --locals`, `Include local packages (imported and exported)`, false);
|
|
25
|
+
this.command.option(`-o, --output-type`, `Output type (TREE or TABLE)`, 'TREE');
|
|
26
|
+
}
|
|
27
|
+
handler() {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const dest = trm_core_1.SystemConnector.getDest();
|
|
30
|
+
var aPackages = yield this.getSystemPackages();
|
|
31
|
+
var iLocals = aPackages.filter(o => o.registry.getRegistryType() === trm_core_1.RegistryType.LOCAL).length;
|
|
32
|
+
if (!this.args.locals) {
|
|
33
|
+
aPackages = aPackages.filter(o => o.registry.getRegistryType() !== trm_core_1.RegistryType.LOCAL);
|
|
34
|
+
}
|
|
35
|
+
if (aPackages.length > 0) {
|
|
36
|
+
const tableHead = [`Name`, `Version`, `Registry`, `Devclass`, `TRM transport`, `Landscape transport`];
|
|
37
|
+
var tableData = [];
|
|
38
|
+
for (const oPackage of aPackages) {
|
|
39
|
+
try {
|
|
40
|
+
const packageName = oPackage.packageName || '';
|
|
41
|
+
const version = oPackage.manifest.get().version || '';
|
|
42
|
+
const registry = oPackage.registry.getRegistryType() === trm_core_1.RegistryType.LOCAL ? chalk_1.default.bold(oPackage.registry.name) : oPackage.registry.name;
|
|
43
|
+
const devclass = oPackage.getDevclass() || '';
|
|
44
|
+
const linkedTransport = oPackage.manifest.getLinkedTransport();
|
|
45
|
+
const landscapeTransport = yield oPackage.getWbTransport();
|
|
46
|
+
var importTransport = '';
|
|
47
|
+
if (linkedTransport && (yield linkedTransport.isImported())) {
|
|
48
|
+
importTransport = linkedTransport.trkorr;
|
|
49
|
+
}
|
|
50
|
+
tableData.push([
|
|
51
|
+
packageName,
|
|
52
|
+
version,
|
|
53
|
+
registry,
|
|
54
|
+
devclass,
|
|
55
|
+
importTransport,
|
|
56
|
+
landscapeTransport ? landscapeTransport.trkorr : ''
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
trm_commons_1.Logger.error(e, true);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (tableData.length < aPackages.length) {
|
|
64
|
+
trm_commons_1.Logger.warning(`${aPackages.length - tableData.length} packages couldn't be printed (check logs).`);
|
|
65
|
+
}
|
|
66
|
+
trm_commons_1.Logger.info(`${dest} has ${aPackages.length} packages.`);
|
|
67
|
+
tableData = tableData.reverse();
|
|
68
|
+
if (this.args.outputType === 'TABLE') {
|
|
69
|
+
trm_commons_1.Logger.table(tableHead, tableData);
|
|
70
|
+
}
|
|
71
|
+
else if (this.args.outputType === 'TREE') {
|
|
72
|
+
const grouped = Object.entries(tableData.reduce((acc, row) => { var _a; var _b; return (((_a = acc[_b = row[2]]) !== null && _a !== void 0 ? _a : (acc[_b] = [])).push(row), acc); }, {})).map(([registry, packages]) => ({ registry, packages }));
|
|
73
|
+
grouped.forEach(o => {
|
|
74
|
+
var tree = {
|
|
75
|
+
text: `Registry "${chalk_1.default.bold(o.registry)}"`,
|
|
76
|
+
children: []
|
|
77
|
+
};
|
|
78
|
+
o.packages.forEach(p => {
|
|
79
|
+
var packageTree = {
|
|
80
|
+
text: chalk_1.default.bold(`${p[0]} v${p[1]}`),
|
|
81
|
+
children: [{
|
|
82
|
+
text: `SAP Package: ${p[3]}`,
|
|
83
|
+
children: []
|
|
84
|
+
}]
|
|
85
|
+
};
|
|
86
|
+
if (p[4]) {
|
|
87
|
+
packageTree.children.push({
|
|
88
|
+
text: `Import transport: ${p[4]}`,
|
|
89
|
+
children: []
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (p[5]) {
|
|
93
|
+
packageTree.children.push({
|
|
94
|
+
text: `Landscape transport: ${p[5]}`,
|
|
95
|
+
children: []
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
tree.children.push(packageTree);
|
|
99
|
+
});
|
|
100
|
+
trm_commons_1.Logger.tree(tree);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
throw new Error(`Invalid output type "${this.args.outputType}".`);
|
|
105
|
+
}
|
|
106
|
+
if (iLocals > 0 && !this.args.locals) {
|
|
107
|
+
trm_commons_1.Logger.warning(`There ${iLocals === 1 ? 'is' : 'are'} ${iLocals} local package${iLocals === 1 ? '' : 's'}. Run with option -L (--locals) to list ${iLocals === 1 ? 'it' : 'them'}.`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
trm_commons_1.Logger.info(`${dest} has 0 packages.`);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.List = List;
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
exports.Lock = void 0;
|
|
13
|
+
const trm_commons_1 = require("trm-commons");
|
|
14
|
+
const AbstractCommand_1 = require("../AbstractCommand");
|
|
15
|
+
const fs_1 = require("fs");
|
|
16
|
+
class Lock extends AbstractCommand_1.AbstractCommand {
|
|
17
|
+
init() {
|
|
18
|
+
this.registerOpts.requiresConnection = true;
|
|
19
|
+
this.registerOpts.requiresRegistry = true;
|
|
20
|
+
this.registerOpts.ignoreRegistryUnreachable = true;
|
|
21
|
+
this.command.description(`Generate a lockfile for a TRM package.`);
|
|
22
|
+
this.command.argument(`<package>`, `Name of the package to generate lock file.`);
|
|
23
|
+
this.command.argument(`[output path]`, `Output path.`, 'trm-lock.json');
|
|
24
|
+
}
|
|
25
|
+
handler() {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
const packages = yield this.getSystemPackages();
|
|
28
|
+
trm_commons_1.Logger.loading(`Generating lock file...`);
|
|
29
|
+
const source = packages.find(o => o.compareName(this.args.package) && o.compareRegistry(this.getRegistry()));
|
|
30
|
+
if (!source) {
|
|
31
|
+
throw new Error(`Package "${this.args.package}" not found`);
|
|
32
|
+
}
|
|
33
|
+
const lock = yield source.getLockfile(packages);
|
|
34
|
+
trm_commons_1.Logger.loading(`Writing lock file...`);
|
|
35
|
+
(0, fs_1.writeFileSync)(this.args.outputPath, lock.toJson());
|
|
36
|
+
trm_commons_1.Logger.info(`Generated lock file "${this.args.outputPath}"`);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.Lock = Lock;
|