trm-client 6.0.1 → 6.1.1

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 CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2023 RegestaItalia
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1
+ MIT License
2
+
3
+ Copyright (c) 2023 RegestaItalia
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.
package/README.md CHANGED
@@ -1,65 +1,65 @@
1
- # <a href="https://docs.trmregistry.com/#/server/README"><img src="https://docs.trmregistry.com/_media/logo.png" height="40" alt="TRM"></a>
2
-
3
- [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-1.3.0-4baaaa.svg)](https://github.com/RegestaItalia/trm-docs/blob/main/CODE_OF_CONDUCT.md)
4
- [![trm-client License](https://img.shields.io/github/license/RegestaItalia/trm-client)](https://github.com/RegestaItalia/trm-client)
5
- [![trm-client Latest version](https://img.shields.io/npm/v/trm-client)](https://www.npmjs.com/package/trm-client)
6
- [![trm-client Installs](https://img.shields.io/npm/dt/trm-client)](https://www.npmjs.com/package/trm-client)
7
-
8
- | 🚀 This project is funded and maintained by 🏦 | 🔗 |
9
- |-------------------------------------------------|----------------------------------------------------------------|
10
- | Regesta S.p.A. | [https://www.regestaitalia.eu/](https://www.regestaitalia.eu/) |
11
- | Clarex S.r.l. | [https://www.clarex.it/](https://www.clarex.it/) |
12
-
13
- This is the official CLI implementation of the core functionalities of TRM.
14
-
15
- TRM is a software designed to make transports between SAP ECC/S4 systems easy.
16
-
17
- To find out more about TRM, visit its full [documentation](https://docs.trmregistry.com).
18
-
19
- # Documentation <!-- {docsify-remove} -->
20
-
21
- Full documentation can be seen at [https://docs.trmregistry.com](https://docs.trmregistry.com).
22
-
23
- <!-- START TABLE_OF_CONTENTS.md -->
24
- - [Setup](/docs/setup.md)
25
- - [Commands](/docs/commands.md)
26
- - [Installing your first package](/docs/examples/install.md)
27
- - [Publishing your first package](/docs/examples/publish.md)
28
- - [Integrate with abapGit & Github Actions](/docs/examples/githubActions.md)
29
- <!-- END TABLE_OF_CONTENTS.md -->
30
-
31
- ## Install <!-- {docsify-remove} -->
32
-
33
- First, make sure you have all the [requirements installed](/docs/setup.md#trm-client-requirements).
34
-
35
- You can then install the CLI via npm:
36
-
37
- `npm install trm-client -g`
38
-
39
- ## Commands <!-- {docsify-remove} -->
40
-
41
- List of all commands is available [here](/docs/commands.md).
42
-
43
- ### Demo publish <!-- {docsify-remove} -->
44
-
45
- <p align="center">
46
-   <img src="https://docs.trmregistry.com/_media/publish.gif" />
47
- </p>
48
-
49
- ### Demo install <!-- {docsify-remove} -->
50
-
51
- <p align="center">
52
-   <img src="https://docs.trmregistry.com/_media/install.gif" />
53
- </p>
54
-
55
- # Contributing <!-- {docsify-remove} -->
56
-
57
- Like every other TRM open-source projects, contributions are always welcomed ❤️.
58
-
59
- Make sure to open an issue first.
60
-
61
- Contributions will be merged upon approval.
62
-
63
- [Click here](https://docs.trmregistry.com/#/CONTRIBUTING) for the full list of TRM contribution guidelines.
64
-
65
- [<img src="https://trmregistry.com/public/contributors?image=true">](https://docs.trmregistry.com/#/?id=contributors)
1
+ # <a href="https://docs.trmregistry.com/#/server/README"><img src="https://docs.trmregistry.com/_media/logo.png" height="40" alt="TRM"></a>
2
+
3
+ [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-1.3.0-4baaaa.svg)](https://github.com/RegestaItalia/trm-docs/blob/main/CODE_OF_CONDUCT.md)
4
+ [![trm-client License](https://img.shields.io/github/license/RegestaItalia/trm-client)](https://github.com/RegestaItalia/trm-client)
5
+ [![trm-client Latest version](https://img.shields.io/npm/v/trm-client)](https://www.npmjs.com/package/trm-client)
6
+ [![trm-client Installs](https://img.shields.io/npm/dt/trm-client)](https://www.npmjs.com/package/trm-client)
7
+
8
+ | 🚀 This project is funded and maintained by 🏦 | 🔗 |
9
+ |-------------------------------------------------|----------------------------------------------------------------|
10
+ | Regesta S.p.A. | [https://www.regestaitalia.eu/](https://www.regestaitalia.eu/) |
11
+ | Clarex S.r.l. | [https://www.clarex.it/](https://www.clarex.it/) |
12
+
13
+ This is the official CLI implementation of the core functionalities of TRM.
14
+
15
+ TRM is a software designed to make transports between SAP ECC/S4 systems easy.
16
+
17
+ To find out more about TRM, visit its full [documentation](https://docs.trmregistry.com).
18
+
19
+ # Documentation <!-- {docsify-remove} -->
20
+
21
+ Full documentation can be seen at [https://docs.trmregistry.com](https://docs.trmregistry.com).
22
+
23
+ <!-- START TABLE_OF_CONTENTS.md -->
24
+ - [Setup](/docs/setup.md)
25
+ - [Commands](/docs/commands.md)
26
+ - [Installing your first package](/docs/examples/install.md)
27
+ - [Publishing your first package](/docs/examples/publish.md)
28
+ - [Integrate with abapGit & Github Actions](/docs/examples/githubActions.md)
29
+ <!-- END TABLE_OF_CONTENTS.md -->
30
+
31
+ ## Install <!-- {docsify-remove} -->
32
+
33
+ First, make sure you have all the [requirements installed](/docs/setup.md#trm-client-requirements).
34
+
35
+ You can then install the CLI via npm:
36
+
37
+ `npm install trm-client -g`
38
+
39
+ ## Commands <!-- {docsify-remove} -->
40
+
41
+ List of all commands is available [here](/docs/commands.md).
42
+
43
+ ### Demo publish <!-- {docsify-remove} -->
44
+
45
+ <p align="center">
46
+   <img src="https://docs.trmregistry.com/_media/publish.gif" />
47
+ </p>
48
+
49
+ ### Demo install <!-- {docsify-remove} -->
50
+
51
+ <p align="center">
52
+   <img src="https://docs.trmregistry.com/_media/install.gif" />
53
+ </p>
54
+
55
+ # Contributing <!-- {docsify-remove} -->
56
+
57
+ Like every other TRM open-source projects, contributions are always welcomed ❤️.
58
+
59
+ Make sure to open an issue first.
60
+
61
+ Contributions will be merged upon approval.
62
+
63
+ [Click here](https://docs.trmregistry.com/#/CONTRIBUTING) for the full list of TRM contribution guidelines.
64
+
65
+ [<img src="https://trmregistry.com/public/contributors?image=true">](https://docs.trmregistry.com/#/?id=contributors)
package/changelog.txt CHANGED
@@ -1,158 +1,166 @@
1
- trm-client changelog
2
- =================
3
-
4
- Legend
5
- ------
6
- * : fixed
7
- ! : changed
8
- + : added
9
- - : removed
10
-
11
- 2025-10-21 v6.0.1
12
- -------------------
13
- * dotenv output
14
-
15
- 2025-10-21 v6.0.0
16
- -------------------
17
- ! migrate to registry v2
18
- ! trm-registry-types ^2.0.0
19
- ! trm-core ^8.0.1
20
-
21
- 2025-10-15 v5.2.1
22
- -------------------
23
- * system alias connection data
24
- * typo in update message
25
-
26
- 2025-10-01 v5.2.0
27
- -------------------
28
-
29
- ! trm-core ^7.5.5
30
- ! trm-commons ^3.4.2
31
- * connection data problems
32
- + cache time consuming data
33
- + on after login update alias on changes
34
-
35
- 2025-09-25 v5.1.1
36
- -------------------
37
-
38
- * create alias command
39
- * keep original abap packages name selection
40
-
41
- 2025-09-24 v5.1.0
42
- -------------------
43
-
44
- * alias command view/edit
45
- ! npm global path in settings
46
- ! sap landscape in settings
47
- * sap landscape for mac
48
- + add plugins in info command
49
- ! trm-commons ^3.3.2
50
- ! trm-core ^7.5.3
51
-
52
- 2025-09-09 v5.0.2
53
- -------------------
54
-
55
- * fix no connection
56
- + fallback text for node-rfc and node-r3trans not found in info command
57
- + update command now self updates the client if ran without arguments
58
-
59
- 2025-09-03 v5.0.1
60
- -------------------
61
-
62
- + plugin loadCommons
63
-
64
- 2025-09-03 v5.0.0
65
- -------------------
66
-
67
- ! trm-core ^7.5.1
68
- ! trm-commons ^3.2.0
69
- ! moved settings to context
70
- + plugin calls
71
- + gracefully close connection
72
- ! moved connection prompts to commons
73
-
74
- 2025-08-13 v4.10.0
75
- -------------------
76
-
77
- ! trm-core ^7.4.5
78
- + support for darwin os
79
- + support for r3trans dockerized
80
-
81
- 2025-07-30 v4.9.2
82
- -------------------
83
-
84
- ! trm-commons ^2.0.0 as peer dependency and dependency
85
-
86
- 2025-07-29 v4.9.1
87
- -------------------
88
-
89
- ! trm-core ^7.4.1
90
- ! trm-commons ^2.0.0
91
-
92
- 2025-07-29 v4.9.0
93
- -------------------
94
-
95
- + handle registry unauthorized error
96
- ! trm-core ^7.4.0
97
- ! trm-commons ^1.1.0
98
-
99
- 2025-06-04 v4.8.0
100
- -------------------
101
-
102
- ! trm-core ^7.2.1
103
- ! overwrite flag in install/update ignores existing objects replace
104
-
105
- 2025-06-03 v4.7.0
106
- -------------------
107
-
108
- ! trm-core ^7.0.0
109
-
110
- 2025-05-29 v4.6.1
111
- -------------------
112
-
113
- ! logging error changes
114
- ! trm-core ^6.9.0
115
- + landscape transport to list and view command
116
-
117
- 2025-05-08 v4.6.0
118
- -------------------
119
-
120
- ! trm-core ^6.8.0
121
- * saprouter in alias
122
-
123
- 2025-05-08 v4.5.0
124
- -------------------
125
-
126
- ! trm-core ^6.7.0
127
- ! error handling
128
- * alias command/saprouter alias save
129
- * fix connection validators
130
-
131
- 2025-04-28 v4.4.1
132
- -------------------
133
-
134
- * node-r3trans version read
135
-
136
- 2025-04-28 v4.4.0
137
- -------------------
138
-
139
- ! trm-core ^6.5.0
140
- ! trm-commons ^1.0.0
141
-
142
- 2025-04-28 v4.3.0
143
- -------------------
144
-
145
- ! trm-core ^6.4.1
146
-
147
- 2025-04-23 v4.2.1
148
- -------------------
149
-
150
- * node-r3trans version read
151
-
152
- 2025-02-26 v4.2.0
153
- -------------------
154
-
155
- ! connect to registry via option
156
- - trm dependencies on client
157
- + content command
1
+ trm-client changelog
2
+ =================
3
+
4
+ Legend
5
+ ------
6
+ * : fixed
7
+ ! : changed
8
+ + : added
9
+ - : removed
10
+
11
+ 2025-10-29 v6.1.1
12
+ -------------------
13
+ * fallback to this._data for backward compatibility
14
+
15
+ 2025-10-26 v6.1.0
16
+ -------------------
17
+ + lock command
18
+
19
+ 2025-10-21 v6.0.1
20
+ -------------------
21
+ * dotenv output
22
+
23
+ 2025-10-21 v6.0.0
24
+ -------------------
25
+ ! migrate to registry v2
26
+ ! trm-registry-types ^2.0.0
27
+ ! trm-core ^8.0.1
28
+
29
+ 2025-10-15 v5.2.1
30
+ -------------------
31
+ * system alias connection data
32
+ * typo in update message
33
+
34
+ 2025-10-01 v5.2.0
35
+ -------------------
36
+
37
+ ! trm-core ^7.5.5
38
+ ! trm-commons ^3.4.2
39
+ * connection data problems
40
+ + cache time consuming data
41
+ + on after login update alias on changes
42
+
43
+ 2025-09-25 v5.1.1
44
+ -------------------
45
+
46
+ * create alias command
47
+ * keep original abap packages name selection
48
+
49
+ 2025-09-24 v5.1.0
50
+ -------------------
51
+
52
+ * alias command view/edit
53
+ ! npm global path in settings
54
+ ! sap landscape in settings
55
+ * sap landscape for mac
56
+ + add plugins in info command
57
+ ! trm-commons ^3.3.2
58
+ ! trm-core ^7.5.3
59
+
60
+ 2025-09-09 v5.0.2
61
+ -------------------
62
+
63
+ * fix no connection
64
+ + fallback text for node-rfc and node-r3trans not found in info command
65
+ + update command now self updates the client if ran without arguments
66
+
67
+ 2025-09-03 v5.0.1
68
+ -------------------
69
+
70
+ + plugin loadCommons
71
+
72
+ 2025-09-03 v5.0.0
73
+ -------------------
74
+
75
+ ! trm-core ^7.5.1
76
+ ! trm-commons ^3.2.0
77
+ ! moved settings to context
78
+ + plugin calls
79
+ + gracefully close connection
80
+ ! moved connection prompts to commons
81
+
82
+ 2025-08-13 v4.10.0
83
+ -------------------
84
+
85
+ ! trm-core ^7.4.5
86
+ + support for darwin os
87
+ + support for r3trans dockerized
88
+
89
+ 2025-07-30 v4.9.2
90
+ -------------------
91
+
92
+ ! trm-commons ^2.0.0 as peer dependency and dependency
93
+
94
+ 2025-07-29 v4.9.1
95
+ -------------------
96
+
97
+ ! trm-core ^7.4.1
98
+ ! trm-commons ^2.0.0
99
+
100
+ 2025-07-29 v4.9.0
101
+ -------------------
102
+
103
+ + handle registry unauthorized error
104
+ ! trm-core ^7.4.0
105
+ ! trm-commons ^1.1.0
106
+
107
+ 2025-06-04 v4.8.0
108
+ -------------------
109
+
110
+ ! trm-core ^7.2.1
111
+ ! overwrite flag in install/update ignores existing objects replace
112
+
113
+ 2025-06-03 v4.7.0
114
+ -------------------
115
+
116
+ ! trm-core ^7.0.0
117
+
118
+ 2025-05-29 v4.6.1
119
+ -------------------
120
+
121
+ ! logging error changes
122
+ ! trm-core ^6.9.0
123
+ + landscape transport to list and view command
124
+
125
+ 2025-05-08 v4.6.0
126
+ -------------------
127
+
128
+ ! trm-core ^6.8.0
129
+ * saprouter in alias
130
+
131
+ 2025-05-08 v4.5.0
132
+ -------------------
133
+
134
+ ! trm-core ^6.7.0
135
+ ! error handling
136
+ * alias command/saprouter alias save
137
+ * fix connection validators
138
+
139
+ 2025-04-28 v4.4.1
140
+ -------------------
141
+
142
+ * node-r3trans version read
143
+
144
+ 2025-04-28 v4.4.0
145
+ -------------------
146
+
147
+ ! trm-core ^6.5.0
148
+ ! trm-commons ^1.0.0
149
+
150
+ 2025-04-28 v4.3.0
151
+ -------------------
152
+
153
+ ! trm-core ^6.4.1
154
+
155
+ 2025-04-23 v4.2.1
156
+ -------------------
157
+
158
+ * node-r3trans version read
159
+
160
+ 2025-02-26 v4.2.0
161
+ -------------------
162
+
163
+ ! connect to registry via option
164
+ - trm dependencies on client
165
+ + content command
158
166
  + pack/import command
@@ -0,0 +1,4 @@
1
+ export type LockArguments = {
2
+ package: string;
3
+ outputPath: string;
4
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -21,3 +21,4 @@ export * from "./SettingsArgument";
21
21
  export * from "./UpdateArguments";
22
22
  export * from "./ContentArguments";
23
23
  export * from "./PackArguments";
24
+ export * from "./LockArguments";
@@ -37,3 +37,4 @@ __exportStar(require("./SettingsArgument"), exports);
37
37
  __exportStar(require("./UpdateArguments"), exports);
38
38
  __exportStar(require("./ContentArguments"), exports);
39
39
  __exportStar(require("./PackArguments"), exports);
40
+ __exportStar(require("./LockArguments"), exports);
@@ -24,3 +24,4 @@ export * from "./content";
24
24
  export * from "./pack";
25
25
  export * from "./import";
26
26
  export * from "./selfUpdate";
27
+ export * from "./lock";
@@ -40,3 +40,4 @@ __exportStar(require("./content"), exports);
40
40
  __exportStar(require("./pack"), exports);
41
41
  __exportStar(require("./import"), exports);
42
42
  __exportStar(require("./selfUpdate"), exports);
43
+ __exportStar(require("./lock"), exports);
@@ -0,0 +1,2 @@
1
+ import { LockArguments } from "./arguments";
2
+ export declare function lock(commandArgs: LockArguments): Promise<void>;
@@ -0,0 +1,64 @@
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 = lock;
13
+ const trm_core_1 = require("trm-core");
14
+ const commons_1 = require("./commons");
15
+ const trm_commons_1 = require("trm-commons");
16
+ const fs_1 = require("fs");
17
+ function resolveRegistry(registry) {
18
+ if (!registry || registry.trim().toLowerCase() === trm_core_1.PUBLIC_RESERVED_KEYWORD) {
19
+ return 'https://trmregistry.com/registry/';
20
+ }
21
+ else {
22
+ return registry;
23
+ }
24
+ }
25
+ function lock(commandArgs) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ var lock = {
28
+ lockfileVersion: 1,
29
+ packages: []
30
+ };
31
+ const packages = yield commons_1.CommandContext.getSystemPackages();
32
+ const root = packages.find(o => o.compareName(commandArgs.package) && o.compareRegistry(commons_1.CommandContext.getRegistry()));
33
+ if (!root) {
34
+ throw new Error(`Package "${commandArgs.package}" not found`);
35
+ }
36
+ const rootManifest = root.manifest.get();
37
+ var dependencies = rootManifest.dependencies || [];
38
+ lock.name = rootManifest.name;
39
+ lock.version = rootManifest.version;
40
+ for (const dep of dependencies) {
41
+ const registryResolved = resolveRegistry(dep.registry);
42
+ if (!lock.packages.find(o => o.name === dep.name && o.registry === registryResolved)) {
43
+ const depRegistry = trm_core_1.RegistryProvider.getRegistry(dep.registry);
44
+ const depPackage = packages.find(o => o.compareName(dep.name) && o.compareRegistry(depRegistry));
45
+ if (depPackage) {
46
+ const depManifest = depPackage.manifest.get();
47
+ const depIntegrity = yield trm_core_1.SystemConnector.getPackageIntegrity(depPackage);
48
+ lock.packages.push({
49
+ name: dep.name,
50
+ version: depManifest.version,
51
+ registry: registryResolved,
52
+ integrity: depIntegrity
53
+ });
54
+ dependencies = dependencies.concat(depManifest.dependencies || []);
55
+ }
56
+ else {
57
+ trm_commons_1.Logger.warning(`Dependency "${dep.name}", registry "${registryResolved}" not found in system ${trm_core_1.SystemConnector.getDest()}`);
58
+ }
59
+ }
60
+ }
61
+ (0, fs_1.writeFileSync)(commandArgs.outputPath, JSON.stringify(lock, null, 2));
62
+ trm_commons_1.Logger.info(`Generated lock file "${commandArgs.outputPath}"`);
63
+ });
64
+ }
@@ -122,7 +122,7 @@ function publish(commandArgs) {
122
122
  transportTarget: commandArgs.transportTarget
123
123
  }
124
124
  });
125
- const sOutput = `+ ${result.trmPackage.manifest.get().name} ${result.trmPackage.manifest.get().version} on ${commons_1.CommandContext.getRegistry().name}`;
125
+ const sOutput = `+ ${result.trmPackage.manifest.get().name} v${result.trmPackage.manifest.get().version} on ${commons_1.CommandContext.getRegistry().name}`;
126
126
  trm_commons_1.Logger.success(sOutput);
127
127
  });
128
128
  }
package/dist/index.js CHANGED
@@ -14,10 +14,10 @@ dotenv_1.default.config({
14
14
  const program = new commander_1.Command();
15
15
  program
16
16
  .name(`trm`)
17
- .description(`TRM - Transport Request Manager CLI
18
-
19
- Full documentation available at https://docs.trmregistry.com/
20
-
17
+ .description(`TRM - Transport Request Manager CLI
18
+
19
+ Full documentation available at https://docs.trmregistry.com/
20
+
21
21
  © 2025 RegestaItalia https://www.regestaitalia.eu/`)
22
22
  .version((0, utils_1.getClientVersion)());
23
23
  const createAlias = program.command(`createAlias`)
@@ -76,13 +76,13 @@ const publish = program.command(`publish`)
76
76
  .argument(`<package>`, `Name of the package to publish.`)
77
77
  .argument(`[version]`, `Optional: Version of the package to publish. If not specified, check help text for details.`)
78
78
  .description(`Publish package to registry.`)
79
- .addHelpText(`before`, `When no version argument is defined, it will automatically set to:
80
- - When it's the first publish: 1.0.0
81
- - When it's already published: the latest available release with patch increased by 1
82
- When it's the first publish, full manifest definition is asked.
83
- When a release is already published, the latest available manifest is used but can be overwritten.
84
- Translation transport is only generated for packages that contain one or more objects with translations (unless skipped by flag).
85
- Customizing transport is only generated if a valid list of customizing transports is provided (unless skipped by flag).
79
+ .addHelpText(`before`, `When no version argument is defined, it will automatically set to:
80
+ - When it's the first publish: 1.0.0
81
+ - When it's already published: the latest available release with patch increased by 1
82
+ When it's the first publish, full manifest definition is asked.
83
+ When a release is already published, the latest available manifest is used but can be overwritten.
84
+ Translation transport is only generated for packages that contain one or more objects with translations (unless skipped by flag).
85
+ Customizing transport is only generated if a valid list of customizing transports is provided (unless skipped by flag).
86
86
  If a default manifest with dependencies is provided in conjunction with the automatic dependency generation, results will be merged.`)
87
87
  .option(`-p, --private`, `Publish package with private visibility.`)
88
88
  .option(`-np, --noPrompts`, `No prompts (will force some decisions).`, false)
@@ -113,11 +113,11 @@ const pack = program.command(`pack`)
113
113
  .argument(`<package>`, `Name of the package to generate.`)
114
114
  .argument(`[version]`, `Optional: Version of the package to generate. If not specified, check help text for details.`)
115
115
  .description(`Save package locally.`)
116
- .addHelpText(`before`, `When no version is defined, it will automatically set to 1.0.0.
117
- Translation transport is only generated for packages that contain one or more objects with translations (unless skipped by flag).
118
- Customizing transport is only generated if a valid list of customizing transports is provided (unless skipped by flag).
116
+ .addHelpText(`before`, `When no version is defined, it will automatically set to 1.0.0.
117
+ Translation transport is only generated for packages that contain one or more objects with translations (unless skipped by flag).
118
+ Customizing transport is only generated if a valid list of customizing transports is provided (unless skipped by flag).
119
119
  If a default manifest with dependencies is provided in conjunction with the automatic dependency generation, results will be merged.`)
120
- .option(`-o, --output <<outputPath>>`, `Output path.`)
120
+ .option(`-o, --output <outputPath>`, `Output path.`)
121
121
  .option(`-np, --noPrompts`, `No prompts (will force some decisions).`, false)
122
122
  .option(`-nl, --noLanguageTransport`, `Skip language (translations) transport publish.`, false)
123
123
  .option(`-nd, --noDependenciesDetection`, `Skip automatic dependencies detection.`, false)
@@ -176,7 +176,7 @@ const update = program.command(`update`)
176
176
  .argument(`[package]`, `Name of the package to update.`)
177
177
  .argument(`[version]`, `Optional: Target package version to update.`)
178
178
  .description(`Update trm-client / Update package from registry into system.`)
179
- .addHelpText(`before`, `When no package name is specified, trm-client will self-update. All options are invalid, in this case.
179
+ .addHelpText(`before`, `When no package name is specified, trm-client will self-update. All options are invalid, in this case.
180
180
  When no version is specified, the latest will be installed.`)
181
181
  .option(`-np, --noPrompts`, `No prompts (will force some decisions).`, false)
182
182
  .option(`-sf, --safe`, `Safe install (needs package integrity).`, false)
@@ -221,10 +221,19 @@ const _import = program.command(`import <file>`)
221
221
  requiresConnection: true,
222
222
  requiresTrmDependencies: true
223
223
  });
224
+ const lock = program.command(`lock`)
225
+ .argument(`<package>`, `Name of the package to generate lock file.`)
226
+ .argument(`[outputPath]`, `Output path.`, 'trm-lock.json')
227
+ .description(`Generate lock file.`);
228
+ (0, utils_1.registerCommand)(lock, {
229
+ requiresConnection: true,
230
+ requiresRegistry: true,
231
+ ignoreRegistryUnreachable: true
232
+ });
224
233
  const view = program.command(`view`)
225
234
  .argument(`<package>`, `Name of the package to view.`)
226
235
  .description(`View package.`)
227
- .addHelpText(`before`, `Shows package details.
236
+ .addHelpText(`before`, `Shows package details.
228
237
  If the package is not found on the system, it will automatically fall back to the data provided by the registry, granted it exists.`);
229
238
  (0, utils_1.registerCommand)(view, {
230
239
  requiresConnection: true,
@@ -62,7 +62,7 @@ class SystemAlias {
62
62
  if (!connection) {
63
63
  throw new Error(`Unknown connection type "${this.type}". Possible values are ${utils_1.Context.getInstance().getConnections().map(k => k.name).join(', ')}.`);
64
64
  }
65
- connection.setData(this._data.data);
65
+ connection.setData(this._data.data || this._data);
66
66
  return connection.getSystemConnector();
67
67
  }
68
68
  static generateFile(content, filePath) {
package/package.json CHANGED
@@ -1,65 +1,65 @@
1
- {
2
- "name": "trm-client",
3
- "version": "6.0.1",
4
- "description": "TRM (Transport Request Manager) Client",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "files": [
8
- "changelog.txt",
9
- "dist",
10
- "!dist/test.js",
11
- "!dist/test.js.map",
12
- "!dist/test.d.ts",
13
- "!dist/.env",
14
- "!dist/dev_rfc.log"
15
- ],
16
- "bin": {
17
- "trm": "dist/index.js"
18
- },
19
- "scripts": {
20
- "cleanBuild": "rimraf dist/",
21
- "build": "npm run cleanBuild && tsc --sourceMap false",
22
- "prepublishOnly": "npm run build"
23
- },
24
- "keywords": [
25
- "trm",
26
- "abap"
27
- ],
28
- "homepage": "https://www.trmregistry.com",
29
- "repository": {
30
- "type": "git",
31
- "url": "git+https://github.com/RegestaItalia/trm-client.git"
32
- },
33
- "author": {
34
- "name": "Simone Gaffurini",
35
- "email": "simone.gaffurini@regestaitalia.it"
36
- },
37
- "license": "MIT",
38
- "dependencies": {
39
- "@esm2cjs/normalize-url": "^8.0.0",
40
- "chalk": "^4.1.2",
41
- "commander": "^11.0.0",
42
- "dotenv": "^17.2.2",
43
- "execa": "^9.6.0",
44
- "get-latest-version": "^5.1.0",
45
- "get-root-path": "^2.0.2",
46
- "ini": "^4.1.1",
47
- "lodash": "^4.17.21",
48
- "semver": "^7.5.4",
49
- "trm-commons": "^3.4.2",
50
- "trm-core": "^8.0.1",
51
- "trm-registry-types": "^2.0.0",
52
- "xml2js": "^0.6.2"
53
- },
54
- "peerDependencies": {
55
- "trm-commons": "^3.4.2"
56
- },
57
- "devDependencies": {
58
- "@types/ini": "^1.3.31",
59
- "@types/lodash": "^4.17.20",
60
- "@types/node": "^20.4.8",
61
- "@types/semver": "^7.5.3",
62
- "@types/xml2js": "^0.4.11",
63
- "rimraf": "^6.0.1"
64
- }
65
- }
1
+ {
2
+ "name": "trm-client",
3
+ "version": "6.1.1",
4
+ "description": "TRM (Transport Request Manager) Client",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "changelog.txt",
9
+ "dist",
10
+ "!dist/test.js",
11
+ "!dist/test.js.map",
12
+ "!dist/test.d.ts",
13
+ "!dist/.env",
14
+ "!dist/dev_rfc.log"
15
+ ],
16
+ "bin": {
17
+ "trm": "dist/index.js"
18
+ },
19
+ "scripts": {
20
+ "cleanBuild": "rimraf dist/",
21
+ "build": "npm run cleanBuild && tsc --sourceMap false",
22
+ "prepublishOnly": "npm run build"
23
+ },
24
+ "keywords": [
25
+ "trm",
26
+ "abap"
27
+ ],
28
+ "homepage": "https://www.trmregistry.com",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/RegestaItalia/trm-client.git"
32
+ },
33
+ "author": {
34
+ "name": "Simone Gaffurini",
35
+ "email": "simone.gaffurini@regestaitalia.it"
36
+ },
37
+ "license": "MIT",
38
+ "dependencies": {
39
+ "@esm2cjs/normalize-url": "^8.0.0",
40
+ "chalk": "^4.1.2",
41
+ "commander": "^11.0.0",
42
+ "dotenv": "^17.2.2",
43
+ "execa": "^9.6.0",
44
+ "get-latest-version": "^5.1.0",
45
+ "get-root-path": "^2.0.2",
46
+ "ini": "^4.1.1",
47
+ "lodash": "^4.17.21",
48
+ "semver": "^7.5.4",
49
+ "trm-commons": "^3.4.2",
50
+ "trm-core": "^8.0.1",
51
+ "trm-registry-types": "^2.0.0",
52
+ "xml2js": "^0.6.2"
53
+ },
54
+ "peerDependencies": {
55
+ "trm-commons": "^3.4.2"
56
+ },
57
+ "devDependencies": {
58
+ "@types/ini": "^1.3.31",
59
+ "@types/lodash": "^4.17.20",
60
+ "@types/node": "^20.4.8",
61
+ "@types/semver": "^7.5.3",
62
+ "@types/xml2js": "^0.4.11",
63
+ "rimraf": "^6.0.1"
64
+ }
65
+ }