@sap-ux/axios-extension 1.12.5 → 1.13.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.
@@ -99,7 +99,8 @@ class V2CatalogService extends base_1.CatalogService {
99
99
  $format: 'json',
100
100
  $filter: `Title eq '${title}' and TechnicalServiceVersion eq ${version}`
101
101
  };
102
- const response = yield this.get(`/${this.entitySet}`, { params });
102
+ const requestPath = this.entitySet ? `/${this.entitySet}` : '/ServiceCollection';
103
+ const response = yield this.get(requestPath, { params });
103
104
  const services = response.odata();
104
105
  if (services.length > 1) {
105
106
  // #14793: Fix for user created multi namespaces for the same service
@@ -126,9 +127,6 @@ class V2CatalogService extends base_1.CatalogService {
126
127
  */
127
128
  getServiceAnnotations({ id, title, path }) {
128
129
  return __awaiter(this, void 0, void 0, function* () {
129
- if (!this.entitySet) {
130
- yield this.determineEntitySet();
131
- }
132
130
  if (!id) {
133
131
  const ServiceConfig = yield this.findService({ title, path });
134
132
  if (ServiceConfig) {
@@ -136,7 +134,7 @@ class V2CatalogService extends base_1.CatalogService {
136
134
  }
137
135
  }
138
136
  if (id) {
139
- const response = yield this.get(`/${this.entitySet}('${encodeURIComponent(id)}')/Annotations`, {
137
+ const response = yield this.get(`/ServiceCollection('${encodeURIComponent(id)}')/Annotations`, {
140
138
  params: { $format: 'json' }
141
139
  });
142
140
  return response.odata();
@@ -119,7 +119,7 @@ class Ui5AbapRepositoryService extends odata_service_1.ODataService {
119
119
  return __awaiter(this, void 0, void 0, function* () {
120
120
  const info = yield this.getInfo(bsp.name);
121
121
  const payload = this.createPayload(archive, bsp.name, bsp.description || 'Deployed with SAP Fiori tools', info ? info.Package : bsp.package);
122
- this.log.debug(`Payload:\n${payload}`);
122
+ this.log.debug(`Payload:\n ID: ${this.publicUrl}/Repositories('${bsp.name}') \n ABAP Package: ${info ? info.Package : bsp.package}`);
123
123
  const config = this.createConfig(bsp.transport, testMode, safeMode);
124
124
  const frontendUrl = this.getAbapFrontendUrl();
125
125
  try {
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Test for sap domains and patching to trust SAPs root certificate
3
+ *
4
+ */
5
+ export declare class TlsPatch {
6
+ private static _patched;
7
+ /**
8
+ * Test if the patch is already applied.
9
+ *
10
+ * @returns true if the patch is already applied
11
+ */
12
+ static get isPatched(): boolean;
13
+ /**
14
+ * Test if the patch is required.
15
+ *
16
+ * @param url the url to test
17
+ * @returns true if the patch is required
18
+ */
19
+ static isPatchRequired(url: string): boolean;
20
+ /**
21
+ * Monkey patching the secure context to also support SAPs root CA.
22
+ */
23
+ static apply(): void;
24
+ }
25
+ //# sourceMappingURL=patchTls.d.ts.map
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TlsPatch = void 0;
7
+ const tls_1 = __importDefault(require("tls"));
8
+ const sap_global_root_ca_1 = require("../cacerts/sap-global-root-ca");
9
+ /**
10
+ * Test for sap domains and patching to trust SAPs root certificate
11
+ *
12
+ */
13
+ class TlsPatch {
14
+ /**
15
+ * Test if the patch is already applied.
16
+ *
17
+ * @returns true if the patch is already applied
18
+ */
19
+ static get isPatched() {
20
+ return TlsPatch._patched;
21
+ }
22
+ /**
23
+ * Test if the patch is required.
24
+ *
25
+ * @param url the url to test
26
+ * @returns true if the patch is required
27
+ */
28
+ static isPatchRequired(url) {
29
+ return !TlsPatch.isPatched && url && (url.includes('.sap.corp') || url.includes('.net.sap'));
30
+ }
31
+ /**
32
+ * Monkey patching the secure context to also support SAPs root CA.
33
+ */
34
+ static apply() {
35
+ if (TlsPatch.isPatched) {
36
+ return;
37
+ }
38
+ const origCreateSecureContext = tls_1.default.createSecureContext;
39
+ tls_1.default.createSecureContext = (options) => {
40
+ const context = origCreateSecureContext(options);
41
+ const pem = sap_global_root_ca_1.sapGlobalRootCaCert.replace(/\r\n/g, '\n');
42
+ const certs = pem.match(/-----BEGIN CERTIFICATE-----\n[\s\S]+?\n-----END CERTIFICATE-----/g);
43
+ certs.forEach((cert) => {
44
+ context.context.addCACert(cert.trim());
45
+ });
46
+ return context;
47
+ };
48
+ TlsPatch._patched = true;
49
+ }
50
+ }
51
+ exports.TlsPatch = TlsPatch;
52
+ //# sourceMappingURL=patchTls.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SAP Global Root CA certificate is publicly available from:
3
+ * https://github.com/SAP/SapMachine/blob/sapmachine/src/java.base/share/data/cacerts/sapglobalrootca
4
+ *
5
+ */
6
+ export declare const sapGlobalRootCaCert = "\nOwner: CN=SAP Global Root CA, O=SAP AG, L=Walldorf, C=DE\nIssuer: CN=SAP Global Root CA, O=SAP AG, L=Walldorf, C=DE\nSerial number: 5d03d93d31615d8f488b3970c78f1b99\nValid from: Thu Apr 26 15:41:55 GMT 2012 until: Mon Apr 26 15:46:27 GMT 2032\nSignature algorithm name: SHA256withRSA\nSubject Public Key Algorithm: 4096-bit RSA key\nVersion: 3\n-----BEGIN CERTIFICATE-----\n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\n-----END CERTIFICATE-----\n";
7
+ //# sourceMappingURL=sap-global-root-ca.d.ts.map
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sapGlobalRootCaCert = void 0;
4
+ /**
5
+ * SAP Global Root CA certificate is publicly available from:
6
+ * https://github.com/SAP/SapMachine/blob/sapmachine/src/java.base/share/data/cacerts/sapglobalrootca
7
+ *
8
+ */
9
+ exports.sapGlobalRootCaCert = `
10
+ Owner: CN=SAP Global Root CA, O=SAP AG, L=Walldorf, C=DE
11
+ Issuer: CN=SAP Global Root CA, O=SAP AG, L=Walldorf, C=DE
12
+ Serial number: 5d03d93d31615d8f488b3970c78f1b99
13
+ Valid from: Thu Apr 26 15:41:55 GMT 2012 until: Mon Apr 26 15:46:27 GMT 2032
14
+ Signature algorithm name: SHA256withRSA
15
+ Subject Public Key Algorithm: 4096-bit RSA key
16
+ Version: 3
17
+ -----BEGIN CERTIFICATE-----
18
+ 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
52
+ -----END CERTIFICATE-----
53
+ `;
54
+ //# sourceMappingURL=sap-global-root-ca.js.map
package/dist/factory.js CHANGED
@@ -31,6 +31,7 @@ const auth_1 = require("./auth");
31
31
  const service_provider_1 = require("./base/service-provider");
32
32
  const abap_1 = require("./abap");
33
33
  const util_1 = require("util");
34
+ const patchTls_1 = require("./base/patchTls");
34
35
  /**
35
36
  * Create a new instance of given type and set default configuration merged with the given config.
36
37
  *
@@ -72,6 +73,9 @@ function createInstance(ProviderType, config) {
72
73
  instance.cookies.addCookie(singleCookieStr.trim());
73
74
  });
74
75
  }
76
+ if (patchTls_1.TlsPatch.isPatchRequired(config.baseURL)) {
77
+ patchTls_1.TlsPatch.apply();
78
+ }
75
79
  return instance;
76
80
  }
77
81
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap-ux/axios-extension",
3
- "version": "1.12.5",
3
+ "version": "1.13.0",
4
4
  "description": "Extension of the Axios module adding convenience methods to interact with SAP systems especially with OData services.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,7 +29,7 @@
29
29
  "@types/lodash": "4.14.202",
30
30
  "nock": "13.4.0",
31
31
  "supertest": "6.3.3",
32
- "@sap-ux/project-access": "1.20.1"
32
+ "@sap-ux/project-access": "1.21.0"
33
33
  },
34
34
  "files": [
35
35
  "dist",