trm-core 6.8.0 → 6.9.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/changelog.txt CHANGED
@@ -8,7 +8,13 @@ Legend
8
8
  + : added
9
9
  - : removed
10
10
 
11
- 2025-05-27 v6.7.2
11
+ 2025-05-29 v6.9.0
12
+ -------------------
13
+ ! check server api auth before install and publish
14
+ ! trm-server ^3.1.0
15
+ ! read wb transport from package
16
+
17
+ 2025-05-27 v6.8.0
12
18
  -------------------
13
19
  ! on install transport update, check tasks before add object attempt
14
20
  * commit before post activity run on RFC
@@ -0,0 +1,3 @@
1
+ import { Step } from "@simonegaffurini/sammarksworkflow";
2
+ import { IActionContext } from "..";
3
+ export declare const checkServerAuth: Step<IActionContext>;
@@ -0,0 +1,25 @@
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.checkServerAuth = void 0;
13
+ const trm_commons_1 = require("trm-commons");
14
+ const systemConnector_1 = require("../../systemConnector");
15
+ const client_1 = require("../../client");
16
+ exports.checkServerAuth = {
17
+ name: 'check-server-auth',
18
+ run: (context) => __awaiter(void 0, void 0, void 0, function* () {
19
+ trm_commons_1.Logger.log('Check server auth step', true);
20
+ const auth = yield systemConnector_1.SystemConnector.isServerApisAllowed();
21
+ if (auth instanceof client_1.ClientError) {
22
+ throw auth;
23
+ }
24
+ })
25
+ };
@@ -1,2 +1,3 @@
1
1
  export * from "./IActionContext";
2
2
  export * from "./setSystemPackages";
3
+ export * from "./checkServerAuth";
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./IActionContext"), exports);
18
18
  __exportStar(require("./setSystemPackages"), exports);
19
+ __exportStar(require("./checkServerAuth"), exports);
@@ -13,7 +13,7 @@ exports.setSystemPackages = void 0;
13
13
  const trm_commons_1 = require("trm-commons");
14
14
  const systemConnector_1 = require("../../systemConnector");
15
15
  exports.setSystemPackages = {
16
- name: 'setSystemPackages',
16
+ name: 'set-system-packages',
17
17
  run: (context) => __awaiter(void 0, void 0, void 0, function* () {
18
18
  trm_commons_1.Logger.log('Set system packages step', true);
19
19
  if (context.rawInput.contextData.systemPackages === undefined) {
@@ -12,7 +12,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.generateInstallTransport = void 0;
13
13
  const trm_commons_1 = require("trm-commons");
14
14
  const commons_1 = require("../../commons");
15
- const systemConnector_1 = require("../../systemConnector");
16
15
  const transport_1 = require("../../transport");
17
16
  exports.generateInstallTransport = {
18
17
  name: 'generate-install-transport',
@@ -33,7 +32,7 @@ exports.generateInstallTransport = {
33
32
  return;
34
33
  }
35
34
  trm_commons_1.Logger.loading(`Checking install transport...`);
36
- context.runtime.installData.transport = yield systemConnector_1.SystemConnector.getPackageWorkbenchTransport(context.runtime.remotePackageData.trmPackage);
35
+ context.runtime.installData.transport = yield context.runtime.remotePackageData.trmPackage.getWbTransport();
37
36
  if (context.runtime.installData.transport) {
38
37
  trm_commons_1.Logger.log(`Install transport (${context.runtime.installData.transport.trkorr}) already exists, won't create a new one.`, true);
39
38
  trm_commons_1.Logger.loading(`Updating install transport...`);
@@ -17,6 +17,7 @@ const sammarksworkflow_1 = __importDefault(require("@simonegaffurini/sammarkswor
17
17
  const util_1 = require("util");
18
18
  const trm_commons_1 = require("trm-commons");
19
19
  const init_1 = require("./init");
20
+ const __1 = require("..");
20
21
  const setSystemPackages_1 = require("../commons/setSystemPackages");
21
22
  const checkAlreadyInstalled_1 = require("./checkAlreadyInstalled");
22
23
  const checkIntegrity_1 = require("./checkIntegrity");
@@ -47,6 +48,7 @@ const WORKFLOW_NAME = 'install';
47
48
  function install(inputData) {
48
49
  return __awaiter(this, void 0, void 0, function* () {
49
50
  const workflow = [
51
+ __1.checkServerAuth,
50
52
  init_1.init,
51
53
  setSystemPackages_1.setSystemPackages,
52
54
  setTrmServerUpgradeService_1.setTrmServerUpgradeService,
@@ -31,13 +31,14 @@ exports.getSourceCode = {
31
31
  if ((0, minimatch_1.minimatch)(abapgitObject.fullPath, pattern, { matchBase: true })) {
32
32
  if (!context.runtime.abapGitData.sourceCode.ignoredObjects.find(k => k.pgmid === o.pgmid && k.object === o.object && k.objName === o.objName)) {
33
33
  context.runtime.abapGitData.sourceCode.ignoredObjects.push(o);
34
+ trm_commons_1.Logger.log(`Excluding ${o.pgmid} ${o.object} ${o.objName} (.abapgit ignore)`, true);
34
35
  }
35
36
  }
36
37
  });
37
38
  }
38
39
  });
39
40
  if (ignoredPatterns.length > 0) {
40
- trm_commons_1.Logger.info(`Excluding ${context.runtime.abapGitData.sourceCode.ignoredObjects.length} object(s) as configured in .abapgit.xml:\n${ignoredPatterns.join('\n ')}`);
41
+ trm_commons_1.Logger.info(`Excluding ${context.runtime.abapGitData.sourceCode.ignoredObjects.length} object(s) as configured in .abapgit.xml: ${ignoredPatterns.join(', ')}`);
41
42
  }
42
43
  }
43
44
  catch (e) {
@@ -37,6 +37,7 @@ const WORKFLOW_NAME = 'publish';
37
37
  function publish(inputData) {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
39
  const workflow = [
40
+ __1.checkServerAuth,
40
41
  init_1.init,
41
42
  __1.setSystemPackages,
42
43
  setTransportTarget_1.setTransportTarget,
@@ -1,7 +1,7 @@
1
1
  import * as components from "./components";
2
2
  import * as struct from "./struct";
3
3
  import { IClient } from "./IClient";
4
- import { Login, SapMessage } from ".";
4
+ import { Login, RESTClientError, SapMessage } from ".";
5
5
  export declare class RESTClient implements IClient {
6
6
  endpoint: string;
7
7
  rfcdest: components.RFCDEST;
@@ -65,4 +65,5 @@ export declare class RESTClient implements IClient {
65
65
  execute?: boolean;
66
66
  }>;
67
67
  getInstalledPackagesBackend(): Promise<struct.ZTY_TRM_PACKAGE[]>;
68
+ isServerApisAllowed(): Promise<true | RESTClientError>;
68
69
  }
@@ -650,10 +650,22 @@ class RESTClient {
650
650
  transport: {
651
651
  trkorr: o.transport ? o.transport.trkorr : undefined,
652
652
  migration: o.transport ? o.transport.migration === 'X' : undefined
653
- }
653
+ },
654
+ trkorr: o.trkorr
654
655
  };
655
656
  });
656
657
  });
657
658
  }
659
+ isServerApisAllowed() {
660
+ return __awaiter(this, void 0, void 0, function* () {
661
+ try {
662
+ yield this._axiosInstance.post('/check_auth');
663
+ return true;
664
+ }
665
+ catch (e) {
666
+ return e;
667
+ }
668
+ });
669
+ }
658
670
  }
659
671
  exports.RESTClient = RESTClient;
@@ -1,7 +1,7 @@
1
1
  import * as components from "./components";
2
2
  import * as struct from "./struct";
3
3
  import { IClient } from "./IClient";
4
- import { SapMessage } from ".";
4
+ import { RFCClientError, SapMessage } from ".";
5
5
  export declare class RFCClient implements IClient {
6
6
  private _rfcClientArgs;
7
7
  private _cLangu;
@@ -65,4 +65,5 @@ export declare class RFCClient implements IClient {
65
65
  execute?: boolean;
66
66
  }>;
67
67
  getInstalledPackagesBackend(): Promise<struct.ZTY_TRM_PACKAGE[]>;
68
+ isServerApisAllowed(): Promise<true | RFCClientError>;
68
69
  }
@@ -655,10 +655,22 @@ class RFCClient {
655
655
  trkorr: o['TRANSPORT']['TRKORR']['_text'],
656
656
  migration: o['TRANSPORT']['MIGRATION']['_text'] === 'X',
657
657
  },
658
- tdevc: (0, commons_1.normalize)(flatTdevc)
658
+ tdevc: (0, commons_1.normalize)(flatTdevc),
659
+ trkorr: o['TRKORR']['_text']
659
660
  };
660
661
  });
661
662
  });
662
663
  }
664
+ isServerApisAllowed() {
665
+ return __awaiter(this, void 0, void 0, function* () {
666
+ try {
667
+ yield this._call("ZTRM_CHECK_AUTH");
668
+ return true;
669
+ }
670
+ catch (e) {
671
+ return e;
672
+ }
673
+ });
674
+ }
663
675
  }
664
676
  exports.RFCClient = RFCClient;
@@ -10,4 +10,5 @@ export type ZTY_TRM_PACKAGE = {
10
10
  trkorr?: TRKORR;
11
11
  migration?: boolean;
12
12
  };
13
+ trkorr?: TRKORR;
13
14
  };
@@ -1,4 +1,4 @@
1
- import { SapMessage } from "../client";
1
+ import { ClientError, SapMessage } from "../client";
2
2
  import * as components from "../client/components";
3
3
  import * as struct from "../client/struct";
4
4
  import { ISystemConnectorBase } from "./ISystemConnectorBase";
@@ -58,4 +58,5 @@ export interface ISystemConnector extends ISystemConnectorBase {
58
58
  messages: struct.SYMSG[];
59
59
  execute?: boolean;
60
60
  }>;
61
+ isServerApisAllowed: () => Promise<true | ClientError>;
61
62
  }
@@ -6,7 +6,7 @@ import * as components from "../client/components";
6
6
  import * as struct from "../client/struct";
7
7
  import { SystemConnectorBase } from "./SystemConnectorBase";
8
8
  import { RESTConnection } from "./RESTConnection";
9
- import { SapMessage } from "../client";
9
+ import { ClientError, SapMessage } from "../client";
10
10
  import { SystemConnectorSupportedBulk } from "./SystemConnectorSupportedBulk";
11
11
  export declare class RESTSystemConnector extends SystemConnectorBase implements ISystemConnector {
12
12
  private _connection;
@@ -15,6 +15,7 @@ export declare class RESTSystemConnector extends SystemConnectorBase implements
15
15
  private _lang;
16
16
  private _user;
17
17
  private _client;
18
+ private _isServerApisAllowed;
18
19
  supportedBulk: SystemConnectorSupportedBulk;
19
20
  constructor(_connection: RESTConnection, _login: Login);
20
21
  protected getSysname(): string;
@@ -77,4 +78,5 @@ export declare class RESTSystemConnector extends SystemConnectorBase implements
77
78
  messages: struct.SYMSG[];
78
79
  execute?: boolean;
79
80
  }>;
81
+ isServerApisAllowed(): Promise<true | ClientError>;
80
82
  }
@@ -319,5 +319,13 @@ class RESTSystemConnector extends SystemConnectorBase_1.SystemConnectorBase {
319
319
  return this._client.executePostActivity(data, pre);
320
320
  });
321
321
  }
322
+ isServerApisAllowed() {
323
+ return __awaiter(this, void 0, void 0, function* () {
324
+ if (this._isServerApisAllowed === undefined) {
325
+ this._isServerApisAllowed = yield this._client.isServerApisAllowed();
326
+ }
327
+ return this._isServerApisAllowed;
328
+ });
329
+ }
322
330
  }
323
331
  exports.RESTSystemConnector = RESTSystemConnector;
@@ -1,4 +1,4 @@
1
- import { SapMessage } from "../client";
1
+ import { ClientError, SapMessage } from "../client";
2
2
  import { DEVCLASS } from "../client/components";
3
3
  import { TADIR } from "../client/struct";
4
4
  import { RFCConnection } from "./RFCConnection";
@@ -15,6 +15,7 @@ export declare class RFCSystemConnector extends SystemConnectorBase implements I
15
15
  private _lang;
16
16
  private _user;
17
17
  private _client;
18
+ private _isServerApisAllowed;
18
19
  supportedBulk: SystemConnectorSupportedBulk;
19
20
  constructor(_connection: RFCConnection, _login: Login, _traceDir?: string);
20
21
  protected getSysname(): string;
@@ -76,4 +77,5 @@ export declare class RFCSystemConnector extends SystemConnectorBase implements I
76
77
  messages: struct.SYMSG[];
77
78
  execute?: boolean;
78
79
  }>;
80
+ isServerApisAllowed(): Promise<true | ClientError>;
79
81
  }
@@ -295,5 +295,13 @@ class RFCSystemConnector extends SystemConnectorBase_1.SystemConnectorBase {
295
295
  return this._client.executePostActivity(data, pre);
296
296
  });
297
297
  }
298
+ isServerApisAllowed() {
299
+ return __awaiter(this, void 0, void 0, function* () {
300
+ if (this._isServerApisAllowed === undefined) {
301
+ this._isServerApisAllowed = yield this._client.isServerApisAllowed();
302
+ }
303
+ return this._isServerApisAllowed;
304
+ });
305
+ }
298
306
  }
299
307
  exports.RFCSystemConnector = RFCSystemConnector;
@@ -1,4 +1,4 @@
1
- import { TRKORR, DEVCLASS, TDEVC, TMSCSYS, TADIR, PGMID, TROBJTYPE, SOBJ_NAME } from "../client";
1
+ import { TRKORR, DEVCLASS, TDEVC, TMSCSYS, TADIR, PGMID, TROBJTYPE, SOBJ_NAME, ClientError } from "../client";
2
2
  import { AbstractRegistry } from "../registry";
3
3
  import { Transport } from "../transport";
4
4
  import { TrmPackage } from "../trmPackage";
@@ -91,4 +91,5 @@ export declare namespace SystemConnector {
91
91
  execute?: boolean;
92
92
  }>;
93
93
  function readClassDescriptions(clsname: components.SEOCLSNAME): Promise<struct.SEOCLASSTX[]>;
94
+ function isServerApisAllowed(): Promise<true | ClientError>;
94
95
  }
@@ -520,4 +520,11 @@ var SystemConnector;
520
520
  });
521
521
  }
522
522
  SystemConnector.readClassDescriptions = readClassDescriptions;
523
+ function isServerApisAllowed() {
524
+ return __awaiter(this, void 0, void 0, function* () {
525
+ yield checkSystemConnector();
526
+ return SystemConnector.systemConnector.isServerApisAllowed();
527
+ });
528
+ }
529
+ SystemConnector.isServerApisAllowed = isServerApisAllowed;
523
530
  })(SystemConnector || (exports.SystemConnector = SystemConnector = {}));
@@ -208,6 +208,7 @@ class SystemConnectorBase {
208
208
  trmPackage.setDevclass(o.tdevc[0].devclass);
209
209
  }
210
210
  }
211
+ trmPackage.setWbTransport(o.trkorr ? new transport_1.Transport(o.trkorr) : null);
211
212
  trmPackages.push(trmPackage);
212
213
  }
213
214
  fromBackend = true;
@@ -3,6 +3,7 @@ import { AbstractRegistry } from "../registry";
3
3
  import { TrmArtifact } from "./TrmArtifact";
4
4
  import { DEVCLASS } from "../client";
5
5
  import { R3transOptions } from "node-r3trans";
6
+ import { Transport } from "../transport";
6
7
  export declare const DEFAULT_VERSION: string;
7
8
  export declare class TrmPackage {
8
9
  packageName: string;
@@ -13,9 +14,12 @@ export declare class TrmPackage {
13
14
  private _remoteArtifacts;
14
15
  private _remoteContent;
15
16
  private _devclass;
17
+ private _wbTransport;
16
18
  constructor(packageName: string, registry: AbstractRegistry, manifest?: Manifest);
17
19
  setDevclass(devclass: DEVCLASS): TrmPackage;
18
20
  getDevclass(): DEVCLASS;
21
+ setWbTransport(transport: Transport): TrmPackage;
22
+ getWbTransport(): Promise<Transport>;
19
23
  exists(version?: string): Promise<boolean>;
20
24
  canPublishReleases(): Promise<{
21
25
  canPublishReleases: boolean;
@@ -46,6 +46,7 @@ exports.TrmPackage = exports.DEFAULT_VERSION = void 0;
46
46
  const semver = __importStar(require("semver"));
47
47
  const trm_commons_1 = require("trm-commons");
48
48
  const manifest_1 = require("../manifest");
49
+ const systemConnector_1 = require("../systemConnector");
49
50
  exports.DEFAULT_VERSION = "1.0.0";
50
51
  class TrmPackage {
51
52
  constructor(packageName, registry, manifest) {
@@ -62,6 +63,18 @@ class TrmPackage {
62
63
  getDevclass() {
63
64
  return this._devclass;
64
65
  }
66
+ setWbTransport(transport) {
67
+ this._wbTransport = transport;
68
+ return this;
69
+ }
70
+ getWbTransport() {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ if (this._wbTransport === undefined) {
73
+ this._wbTransport = yield systemConnector_1.SystemConnector.getPackageWorkbenchTransport(this);
74
+ }
75
+ return this._wbTransport;
76
+ });
77
+ }
65
78
  exists() {
66
79
  return __awaiter(this, arguments, void 0, function* (version = 'latest') {
67
80
  return (yield this.registry.packageExists(this.packageName, version));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trm-core",
3
- "version": "6.8.0",
3
+ "version": "6.9.0",
4
4
  "description": "TRM (Transport Request Manager) Core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "license": "MIT",
36
36
  "trmDependencies": {
37
- "trm-server": "^3.0.0"
37
+ "trm-server": "^3.1.0"
38
38
  },
39
39
  "dependencies": {
40
40
  "@esm2cjs/normalize-url": "^8.0.0",