@sap-ux/adp-tooling 0.13.19 → 0.13.21
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/dist/base/constants/index.d.ts +19 -0
- package/dist/base/constants/index.js +22 -0
- package/dist/client/abap-provider.d.ts +53 -0
- package/dist/client/abap-provider.js +106 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.js +20 -0
- package/dist/client/target-applications.d.ts +56 -0
- package/dist/client/target-applications.js +112 -0
- package/dist/client/target-systems.d.ts +59 -0
- package/dist/client/target-systems.js +124 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +6 -1
- package/dist/types.d.ts +30 -0
- package/dist/writer/descriptor-content.d.ts +8 -0
- package/dist/writer/descriptor-content.js +20 -0
- package/dist/writer/project-utils.d.ts +9 -1
- package/dist/writer/project-utils.js +21 -0
- package/dist/writer/writer-config.d.ts +28 -0
- package/dist/writer/writer-config.js +54 -0
- package/package.json +7 -6
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const S4HANA_APPS_PARAMS: {
|
|
2
|
+
'sap.app/type': string;
|
|
3
|
+
'sap.fiori/cloudDevAdaptationStatus': string;
|
|
4
|
+
fields: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const ABAP_APPS_PARAMS: {
|
|
7
|
+
fields: string;
|
|
8
|
+
'sap.ui/technology': string;
|
|
9
|
+
'sap.app/type': string;
|
|
10
|
+
fileType: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const ABAP_VARIANT_APPS_PARAMS: {
|
|
13
|
+
fields: string;
|
|
14
|
+
'sap.ui/technology': string;
|
|
15
|
+
'sap.app/type': string;
|
|
16
|
+
fileType: string;
|
|
17
|
+
originLayer: string;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ABAP_VARIANT_APPS_PARAMS = exports.ABAP_APPS_PARAMS = exports.S4HANA_APPS_PARAMS = void 0;
|
|
4
|
+
exports.S4HANA_APPS_PARAMS = {
|
|
5
|
+
'sap.app/type': 'application',
|
|
6
|
+
'sap.fiori/cloudDevAdaptationStatus': 'released',
|
|
7
|
+
'fields': 'sap.app/id,repoName,sap.fiori/cloudDevAdaptationStatus,sap.app/ach,sap.fiori/registrationIds,sap.app/title,url,fileType'
|
|
8
|
+
};
|
|
9
|
+
exports.ABAP_APPS_PARAMS = {
|
|
10
|
+
'fields': 'sap.app/id,sap.app/ach,sap.fiori/registrationIds,sap.app/title,url,fileType,repoName',
|
|
11
|
+
'sap.ui/technology': 'UI5',
|
|
12
|
+
'sap.app/type': 'application',
|
|
13
|
+
'fileType': 'appdescr'
|
|
14
|
+
};
|
|
15
|
+
exports.ABAP_VARIANT_APPS_PARAMS = {
|
|
16
|
+
'fields': 'sap.app/id,sap.app/ach,sap.fiori/registrationIds,sap.app/title,url,fileType,repoName',
|
|
17
|
+
'sap.ui/technology': 'UI5',
|
|
18
|
+
'sap.app/type': 'application',
|
|
19
|
+
'fileType': 'appdescr_variant',
|
|
20
|
+
'originLayer': 'VENDOR'
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { AbapTarget } from '@sap-ux/ui5-config';
|
|
2
|
+
import type { ToolsLogger } from '@sap-ux/logger';
|
|
3
|
+
import type { AbapServiceProvider, AxiosRequestConfig, ProviderConfiguration } from '@sap-ux/axios-extension';
|
|
4
|
+
import type { TargetSystems } from './target-systems';
|
|
5
|
+
export type RequestOptions = AxiosRequestConfig & Partial<ProviderConfiguration>;
|
|
6
|
+
/**
|
|
7
|
+
* Service for managing and providing access to an ABAP service provider.
|
|
8
|
+
*/
|
|
9
|
+
export declare class AbapProvider {
|
|
10
|
+
private readonly targetSystems;
|
|
11
|
+
private readonly logger?;
|
|
12
|
+
private provider;
|
|
13
|
+
private system;
|
|
14
|
+
/**
|
|
15
|
+
* Constructs an instance of AbapProvider.
|
|
16
|
+
*
|
|
17
|
+
* @param {TargetSystems} targetSystems - The endpoints service for retrieving system details.
|
|
18
|
+
* @param {ToolsLogger} [logger] - The logger.
|
|
19
|
+
*/
|
|
20
|
+
constructor(targetSystems: TargetSystems, logger?: ToolsLogger | undefined);
|
|
21
|
+
/**
|
|
22
|
+
* Retrieves the configured ABAP service provider if set, otherwise throws an error.
|
|
23
|
+
*
|
|
24
|
+
* @returns {AbapServiceProvider} - The configured ABAP service provider.
|
|
25
|
+
*/
|
|
26
|
+
getProvider(): AbapServiceProvider;
|
|
27
|
+
/**
|
|
28
|
+
* Retrieves ABAP service provider connected ABAP system.
|
|
29
|
+
*
|
|
30
|
+
* @returns {string | undefined} - the connected system.
|
|
31
|
+
*/
|
|
32
|
+
getSystem(): string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Configures the ABAP service provider using the specified system details and credentials.
|
|
35
|
+
*
|
|
36
|
+
* @param {string} system - The system identifier.
|
|
37
|
+
* @param {string} [client] - The client, if applicable.
|
|
38
|
+
* @param {string} [username] - The username for authentication.
|
|
39
|
+
* @param {string} [password] - The password for authentication.
|
|
40
|
+
*/
|
|
41
|
+
setProvider(system: string, client?: string, username?: string, password?: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Determines the target configuration for the ABAP service provider based on whether the application
|
|
44
|
+
* is running within SAP App Studio or outside of it.
|
|
45
|
+
*
|
|
46
|
+
* @param {string} system - The system identifier, which could be a URL or a system name.
|
|
47
|
+
* @param {RequestOptions} requestOptions - The request options to be configured during this setup.
|
|
48
|
+
* @param {string} [client] - Optional client number, used in systems where multiple clients exist.
|
|
49
|
+
* @returns {Promise<AbapTarget>} - The configuration object for the ABAP service provider, tailored based on the running environment.
|
|
50
|
+
*/
|
|
51
|
+
determineTarget(system: string, requestOptions: RequestOptions, client?: string): Promise<AbapTarget>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=abap-provider.d.ts.map
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbapProvider = void 0;
|
|
4
|
+
const btp_utils_1 = require("@sap-ux/btp-utils");
|
|
5
|
+
const system_access_1 = require("@sap-ux/system-access");
|
|
6
|
+
/**
|
|
7
|
+
* Service for managing and providing access to an ABAP service provider.
|
|
8
|
+
*/
|
|
9
|
+
class AbapProvider {
|
|
10
|
+
targetSystems;
|
|
11
|
+
logger;
|
|
12
|
+
provider;
|
|
13
|
+
system;
|
|
14
|
+
/**
|
|
15
|
+
* Constructs an instance of AbapProvider.
|
|
16
|
+
*
|
|
17
|
+
* @param {TargetSystems} targetSystems - The endpoints service for retrieving system details.
|
|
18
|
+
* @param {ToolsLogger} [logger] - The logger.
|
|
19
|
+
*/
|
|
20
|
+
constructor(targetSystems, logger) {
|
|
21
|
+
this.targetSystems = targetSystems;
|
|
22
|
+
this.logger = logger;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Retrieves the configured ABAP service provider if set, otherwise throws an error.
|
|
26
|
+
*
|
|
27
|
+
* @returns {AbapServiceProvider} - The configured ABAP service provider.
|
|
28
|
+
*/
|
|
29
|
+
getProvider() {
|
|
30
|
+
if (!this.provider) {
|
|
31
|
+
throw new Error('Provider was not set!');
|
|
32
|
+
}
|
|
33
|
+
return this.provider;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Retrieves ABAP service provider connected ABAP system.
|
|
37
|
+
*
|
|
38
|
+
* @returns {string | undefined} - the connected system.
|
|
39
|
+
*/
|
|
40
|
+
getSystem() {
|
|
41
|
+
return this.system;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Configures the ABAP service provider using the specified system details and credentials.
|
|
45
|
+
*
|
|
46
|
+
* @param {string} system - The system identifier.
|
|
47
|
+
* @param {string} [client] - The client, if applicable.
|
|
48
|
+
* @param {string} [username] - The username for authentication.
|
|
49
|
+
* @param {string} [password] - The password for authentication.
|
|
50
|
+
*/
|
|
51
|
+
async setProvider(system, client, username, password) {
|
|
52
|
+
try {
|
|
53
|
+
const requestOptions = {
|
|
54
|
+
ignoreCertErrors: false
|
|
55
|
+
};
|
|
56
|
+
const target = await this.determineTarget(system, requestOptions, client);
|
|
57
|
+
if (username && password) {
|
|
58
|
+
requestOptions.auth = { username, password };
|
|
59
|
+
}
|
|
60
|
+
this.provider = await (0, system_access_1.createAbapServiceProvider)(target, requestOptions, false, {});
|
|
61
|
+
this.system = system;
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
this.logger?.error(`Failed to instantiate provider for system: ${system}. Reason: ${e.message}`);
|
|
65
|
+
throw new Error(e.message);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Determines the target configuration for the ABAP service provider based on whether the application
|
|
70
|
+
* is running within SAP App Studio or outside of it.
|
|
71
|
+
*
|
|
72
|
+
* @param {string} system - The system identifier, which could be a URL or a system name.
|
|
73
|
+
* @param {RequestOptions} requestOptions - The request options to be configured during this setup.
|
|
74
|
+
* @param {string} [client] - Optional client number, used in systems where multiple clients exist.
|
|
75
|
+
* @returns {Promise<AbapTarget>} - The configuration object for the ABAP service provider, tailored based on the running environment.
|
|
76
|
+
*/
|
|
77
|
+
async determineTarget(system, requestOptions, client) {
|
|
78
|
+
let target;
|
|
79
|
+
if ((0, btp_utils_1.isAppStudio)()) {
|
|
80
|
+
target = {
|
|
81
|
+
destination: system
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const details = await this.targetSystems.getSystemByName(system);
|
|
86
|
+
target = {
|
|
87
|
+
client: details?.Client ?? client,
|
|
88
|
+
url: details?.Url
|
|
89
|
+
};
|
|
90
|
+
if (details?.Authentication) {
|
|
91
|
+
target.authenticationType = details?.Authentication;
|
|
92
|
+
}
|
|
93
|
+
const username = details?.Credentials?.username;
|
|
94
|
+
const password = details?.Credentials?.password;
|
|
95
|
+
if (username && password) {
|
|
96
|
+
requestOptions.auth = {
|
|
97
|
+
username,
|
|
98
|
+
password
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return target;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.AbapProvider = AbapProvider;
|
|
106
|
+
//# sourceMappingURL=abap-provider.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./target-applications"), exports);
|
|
18
|
+
__exportStar(require("./target-systems"), exports);
|
|
19
|
+
__exportStar(require("./abap-provider"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { ToolsLogger } from '@sap-ux/logger';
|
|
2
|
+
import type { App } from '@sap-ux/axios-extension';
|
|
3
|
+
import type { TargetApplication } from '../types';
|
|
4
|
+
import type { AbapProvider } from './abap-provider';
|
|
5
|
+
/**
|
|
6
|
+
* Compares two applications for sorting, using the title and falling back to the ID if titles are missing or equal.
|
|
7
|
+
* This function ensures that applications are sorted alphabetically by their title or ID in a case-insensitive manner.
|
|
8
|
+
*
|
|
9
|
+
* @param {TargetApplication} appA - The first application to compare.
|
|
10
|
+
* @param {TargetApplication} appB - The second application to compare.
|
|
11
|
+
* @returns {number} A number indicating the sort order.
|
|
12
|
+
*/
|
|
13
|
+
export declare const filterApps: (appA: TargetApplication, appB: TargetApplication) => number;
|
|
14
|
+
/**
|
|
15
|
+
* Transforms raw application data into a structured Application object.
|
|
16
|
+
* This function maps properties from a loosely typed app data structure to a strongly typed Application object.
|
|
17
|
+
*
|
|
18
|
+
* @param {Partial<App>} app - The raw application data, possibly incomplete.
|
|
19
|
+
* @returns {TargetApplication} A structured application object with defined properties, even if some may be empty.
|
|
20
|
+
*/
|
|
21
|
+
export declare const mapApps: (app: Partial<App>) => TargetApplication;
|
|
22
|
+
/**
|
|
23
|
+
* Provides services related to managing and loading applications from an ABAP provider.
|
|
24
|
+
*/
|
|
25
|
+
export declare class TargetApplications {
|
|
26
|
+
private readonly abapProvider;
|
|
27
|
+
private readonly isCustomerBase;
|
|
28
|
+
private readonly logger?;
|
|
29
|
+
private applications;
|
|
30
|
+
/**
|
|
31
|
+
* Constructs an instance of ApplicationManager.
|
|
32
|
+
*
|
|
33
|
+
* @param {AbapProvider} abapProvider - The instance of AbapProvider class.
|
|
34
|
+
* @param {boolean} isCustomerBase - Indicates if the current base is a customer base, which affects how applications are loaded.
|
|
35
|
+
* @param {ToolsLogger} [logger] - The logger.
|
|
36
|
+
*/
|
|
37
|
+
constructor(abapProvider: AbapProvider, isCustomerBase: boolean, logger?: ToolsLogger | undefined);
|
|
38
|
+
/**
|
|
39
|
+
* Resets the current applications from the state.
|
|
40
|
+
*/
|
|
41
|
+
resetApps(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Retrieves the currently loaded list of applications.
|
|
44
|
+
*
|
|
45
|
+
* @returns {TargetApplication[]} An array of applications.
|
|
46
|
+
*/
|
|
47
|
+
getApps(): Promise<TargetApplication[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Loads applications based on system type and user parameters, merging results from different app sources as needed.
|
|
50
|
+
*
|
|
51
|
+
* @returns {TargetApplication[]} list of applications.
|
|
52
|
+
* @throws {Error} Throws an error if the app data cannot be loaded.
|
|
53
|
+
*/
|
|
54
|
+
private loadApps;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=target-applications.d.ts.map
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TargetApplications = exports.mapApps = exports.filterApps = void 0;
|
|
4
|
+
const constants_1 = require("../base/constants");
|
|
5
|
+
/**
|
|
6
|
+
* Compares two applications for sorting, using the title and falling back to the ID if titles are missing or equal.
|
|
7
|
+
* This function ensures that applications are sorted alphabetically by their title or ID in a case-insensitive manner.
|
|
8
|
+
*
|
|
9
|
+
* @param {TargetApplication} appA - The first application to compare.
|
|
10
|
+
* @param {TargetApplication} appB - The second application to compare.
|
|
11
|
+
* @returns {number} A number indicating the sort order.
|
|
12
|
+
*/
|
|
13
|
+
const filterApps = (appA, appB) => {
|
|
14
|
+
let titleA = appA.title.toUpperCase();
|
|
15
|
+
let titleB = appB.title.toUpperCase();
|
|
16
|
+
if (!titleA.trim()) {
|
|
17
|
+
titleA = appA.id.toUpperCase();
|
|
18
|
+
}
|
|
19
|
+
if (!titleB.trim()) {
|
|
20
|
+
titleB = appB.id.toUpperCase();
|
|
21
|
+
}
|
|
22
|
+
if (titleA < titleB) {
|
|
23
|
+
return -1;
|
|
24
|
+
}
|
|
25
|
+
if (titleA > titleB) {
|
|
26
|
+
return 1;
|
|
27
|
+
}
|
|
28
|
+
return 0;
|
|
29
|
+
};
|
|
30
|
+
exports.filterApps = filterApps;
|
|
31
|
+
/**
|
|
32
|
+
* Transforms raw application data into a structured Application object.
|
|
33
|
+
* This function maps properties from a loosely typed app data structure to a strongly typed Application object.
|
|
34
|
+
*
|
|
35
|
+
* @param {Partial<App>} app - The raw application data, possibly incomplete.
|
|
36
|
+
* @returns {TargetApplication} A structured application object with defined properties, even if some may be empty.
|
|
37
|
+
*/
|
|
38
|
+
const mapApps = (app) => ({
|
|
39
|
+
id: app['sap.app/id'] ?? '',
|
|
40
|
+
title: app['sap.app/title'] ?? '',
|
|
41
|
+
ach: app['sap.app/ach'] ?? '',
|
|
42
|
+
registrationIds: app['sap.fiori/registrationIds'] ?? [],
|
|
43
|
+
fileType: app['fileType'] ?? '',
|
|
44
|
+
bspUrl: app['url'] ?? '',
|
|
45
|
+
bspName: app['repoName'] ?? ''
|
|
46
|
+
});
|
|
47
|
+
exports.mapApps = mapApps;
|
|
48
|
+
/**
|
|
49
|
+
* Provides services related to managing and loading applications from an ABAP provider.
|
|
50
|
+
*/
|
|
51
|
+
class TargetApplications {
|
|
52
|
+
abapProvider;
|
|
53
|
+
isCustomerBase;
|
|
54
|
+
logger;
|
|
55
|
+
applications;
|
|
56
|
+
/**
|
|
57
|
+
* Constructs an instance of ApplicationManager.
|
|
58
|
+
*
|
|
59
|
+
* @param {AbapProvider} abapProvider - The instance of AbapProvider class.
|
|
60
|
+
* @param {boolean} isCustomerBase - Indicates if the current base is a customer base, which affects how applications are loaded.
|
|
61
|
+
* @param {ToolsLogger} [logger] - The logger.
|
|
62
|
+
*/
|
|
63
|
+
constructor(abapProvider, isCustomerBase, logger) {
|
|
64
|
+
this.abapProvider = abapProvider;
|
|
65
|
+
this.isCustomerBase = isCustomerBase;
|
|
66
|
+
this.logger = logger;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Resets the current applications from the state.
|
|
70
|
+
*/
|
|
71
|
+
resetApps() {
|
|
72
|
+
this.applications = undefined;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Retrieves the currently loaded list of applications.
|
|
76
|
+
*
|
|
77
|
+
* @returns {TargetApplication[]} An array of applications.
|
|
78
|
+
*/
|
|
79
|
+
async getApps() {
|
|
80
|
+
if (!this.applications) {
|
|
81
|
+
this.applications = await this.loadApps();
|
|
82
|
+
}
|
|
83
|
+
return this.applications;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Loads applications based on system type and user parameters, merging results from different app sources as needed.
|
|
87
|
+
*
|
|
88
|
+
* @returns {TargetApplication[]} list of applications.
|
|
89
|
+
* @throws {Error} Throws an error if the app data cannot be loaded.
|
|
90
|
+
*/
|
|
91
|
+
async loadApps() {
|
|
92
|
+
let result = [];
|
|
93
|
+
try {
|
|
94
|
+
const provider = this.abapProvider.getProvider();
|
|
95
|
+
const isCloudSystem = await provider.isAbapCloud();
|
|
96
|
+
const appIndex = provider.getAppIndex();
|
|
97
|
+
result = await appIndex.search(isCloudSystem ? constants_1.S4HANA_APPS_PARAMS : constants_1.ABAP_APPS_PARAMS);
|
|
98
|
+
if (!isCloudSystem && this.isCustomerBase) {
|
|
99
|
+
const extraApps = await appIndex.search(constants_1.ABAP_VARIANT_APPS_PARAMS);
|
|
100
|
+
result = result.concat(extraApps);
|
|
101
|
+
}
|
|
102
|
+
return result.map(exports.mapApps).sort(exports.filterApps);
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
const errorMsg = `Could not load applications: ${e.message}`;
|
|
106
|
+
this.logger?.error(errorMsg);
|
|
107
|
+
throw new Error(errorMsg);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.TargetApplications = TargetApplications;
|
|
112
|
+
//# sourceMappingURL=target-applications.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ToolsLogger } from '@sap-ux/logger';
|
|
2
|
+
import type { BackendSystem } from '@sap-ux/store';
|
|
3
|
+
import type { Endpoint } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* Retrieves the names of all stored systems, sorted alphabetically.
|
|
6
|
+
*
|
|
7
|
+
* @param {Endpoint[]} systems - Array of system systems.
|
|
8
|
+
* @returns {string[]} An array of endpoint names as strings in sorted order.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getEndpointNames(systems: Endpoint[]): string[];
|
|
11
|
+
/**
|
|
12
|
+
* Transforms a BackendSystem object into an object matching the legacy Endpoint interface.
|
|
13
|
+
*
|
|
14
|
+
* @param {BackendSystem} system - The backend system to transform.
|
|
15
|
+
* @returns {Endpoint} The transformed endpoint object.
|
|
16
|
+
*/
|
|
17
|
+
export declare const transformBackendSystem: (system: BackendSystem) => Endpoint;
|
|
18
|
+
/**
|
|
19
|
+
* Service class to manage and retrieve information about system systems,
|
|
20
|
+
* including their names, authentication requirements, and specific details.
|
|
21
|
+
*/
|
|
22
|
+
export declare class TargetSystems {
|
|
23
|
+
private readonly logger;
|
|
24
|
+
private systems;
|
|
25
|
+
/**
|
|
26
|
+
* Creates an instance of EndpointsManager.
|
|
27
|
+
*
|
|
28
|
+
* @param {ToolsLogger} logger - The logger.
|
|
29
|
+
*/
|
|
30
|
+
constructor(logger: ToolsLogger);
|
|
31
|
+
/**
|
|
32
|
+
* Returns the stored systems.
|
|
33
|
+
*
|
|
34
|
+
* @returns {Promise<Endpoint[]>} An array of system systems.
|
|
35
|
+
*/
|
|
36
|
+
getSystems(): Promise<Endpoint[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Loads systems from either BAS (via destinations) or from the backend system store.
|
|
39
|
+
*
|
|
40
|
+
* @returns {Promise<Endpoint[]>} A promise that resolves with an array of endpoints.
|
|
41
|
+
* @throws {Error} If fetching the systems fails.
|
|
42
|
+
*/
|
|
43
|
+
private loadSystems;
|
|
44
|
+
/**
|
|
45
|
+
* Retrieves a particular system by its name.
|
|
46
|
+
*
|
|
47
|
+
* @param {string} name - The system name or URL.
|
|
48
|
+
* @returns {Promise<Endpoint | undefined>} System details including client, url, and credentials, or undefined if not found.
|
|
49
|
+
*/
|
|
50
|
+
getSystemByName(name: string): Promise<Endpoint | undefined>;
|
|
51
|
+
/**
|
|
52
|
+
* Determines whether a system requires authentication based on environment.
|
|
53
|
+
*
|
|
54
|
+
* @param {string} system - The system name or URL.
|
|
55
|
+
* @returns {Promise<boolean>} A promise that resolves to true if authentication is required, false otherwise.
|
|
56
|
+
*/
|
|
57
|
+
getSystemRequiresAuth(system: string): Promise<boolean>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=target-systems.d.ts.map
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TargetSystems = exports.transformBackendSystem = void 0;
|
|
4
|
+
exports.getEndpointNames = getEndpointNames;
|
|
5
|
+
const store_1 = require("@sap-ux/store");
|
|
6
|
+
const btp_utils_1 = require("@sap-ux/btp-utils");
|
|
7
|
+
/**
|
|
8
|
+
* Retrieves the names of all stored systems, sorted alphabetically.
|
|
9
|
+
*
|
|
10
|
+
* @param {Endpoint[]} systems - Array of system systems.
|
|
11
|
+
* @returns {string[]} An array of endpoint names as strings in sorted order.
|
|
12
|
+
*/
|
|
13
|
+
function getEndpointNames(systems) {
|
|
14
|
+
return systems
|
|
15
|
+
.map((endpoint) => endpoint.Name)
|
|
16
|
+
.sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase(), 'en', { sensitivity: 'base' }));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Transforms a BackendSystem object into an object matching the legacy Endpoint interface.
|
|
20
|
+
*
|
|
21
|
+
* @param {BackendSystem} system - The backend system to transform.
|
|
22
|
+
* @returns {Endpoint} The transformed endpoint object.
|
|
23
|
+
*/
|
|
24
|
+
const transformBackendSystem = (system) => ({
|
|
25
|
+
Name: system.name,
|
|
26
|
+
Url: system.url,
|
|
27
|
+
Client: system.client,
|
|
28
|
+
UserDisplayName: system.userDisplayName,
|
|
29
|
+
Scp: !!system.serviceKeys,
|
|
30
|
+
Authentication: system.authenticationType,
|
|
31
|
+
Credentials: {
|
|
32
|
+
username: system.username,
|
|
33
|
+
password: system.password
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
exports.transformBackendSystem = transformBackendSystem;
|
|
37
|
+
/**
|
|
38
|
+
* Service class to manage and retrieve information about system systems,
|
|
39
|
+
* including their names, authentication requirements, and specific details.
|
|
40
|
+
*/
|
|
41
|
+
class TargetSystems {
|
|
42
|
+
logger;
|
|
43
|
+
systems;
|
|
44
|
+
/**
|
|
45
|
+
* Creates an instance of EndpointsManager.
|
|
46
|
+
*
|
|
47
|
+
* @param {ToolsLogger} logger - The logger.
|
|
48
|
+
*/
|
|
49
|
+
constructor(logger) {
|
|
50
|
+
this.logger = logger;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns the stored systems.
|
|
54
|
+
*
|
|
55
|
+
* @returns {Promise<Endpoint[]>} An array of system systems.
|
|
56
|
+
*/
|
|
57
|
+
async getSystems() {
|
|
58
|
+
if (!this.systems) {
|
|
59
|
+
this.systems = await this.loadSystems();
|
|
60
|
+
}
|
|
61
|
+
return this.systems;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Loads systems from either BAS (via destinations) or from the backend system store.
|
|
65
|
+
*
|
|
66
|
+
* @returns {Promise<Endpoint[]>} A promise that resolves with an array of endpoints.
|
|
67
|
+
* @throws {Error} If fetching the systems fails.
|
|
68
|
+
*/
|
|
69
|
+
async loadSystems() {
|
|
70
|
+
try {
|
|
71
|
+
let endpoints = [];
|
|
72
|
+
if ((0, btp_utils_1.isAppStudio)()) {
|
|
73
|
+
const destinations = await (0, btp_utils_1.listDestinations)({
|
|
74
|
+
stripS4HCApiHosts: true
|
|
75
|
+
});
|
|
76
|
+
endpoints = Object.values(destinations).filter((dest) => dest.WebIDEUsage?.includes('dev_abap'));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const systemStore = await (0, store_1.getService)({
|
|
80
|
+
entityName: 'system'
|
|
81
|
+
});
|
|
82
|
+
const backendSystems = await systemStore?.getAll();
|
|
83
|
+
endpoints = backendSystems.map(exports.transformBackendSystem);
|
|
84
|
+
}
|
|
85
|
+
return endpoints;
|
|
86
|
+
}
|
|
87
|
+
catch (e) {
|
|
88
|
+
this.logger?.error(`Failed to fetch systems list. Reason: ${e.message}`);
|
|
89
|
+
throw new Error(e.message);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Retrieves a particular system by its name.
|
|
94
|
+
*
|
|
95
|
+
* @param {string} name - The system name or URL.
|
|
96
|
+
* @returns {Promise<Endpoint | undefined>} System details including client, url, and credentials, or undefined if not found.
|
|
97
|
+
*/
|
|
98
|
+
async getSystemByName(name) {
|
|
99
|
+
const systems = await this.getSystems();
|
|
100
|
+
const system = systems.find((e) => e.Name === name || e.Url === name);
|
|
101
|
+
if (!system) {
|
|
102
|
+
this.logger.warn(`No endpoint found for system: ${name}`);
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
return system;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Determines whether a system requires authentication based on environment.
|
|
109
|
+
*
|
|
110
|
+
* @param {string} system - The system name or URL.
|
|
111
|
+
* @returns {Promise<boolean>} A promise that resolves to true if authentication is required, false otherwise.
|
|
112
|
+
*/
|
|
113
|
+
async getSystemRequiresAuth(system) {
|
|
114
|
+
const found = await this.getSystemByName(system);
|
|
115
|
+
if ((0, btp_utils_1.isAppStudio)()) {
|
|
116
|
+
return found?.Authentication === 'NoAuthentication';
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return !found;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.TargetSystems = TargetSystems;
|
|
124
|
+
//# sourceMappingURL=target-systems.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,14 @@ export * from './types';
|
|
|
2
2
|
export * from './prompts';
|
|
3
3
|
export * from './common';
|
|
4
4
|
export * from './base/cf';
|
|
5
|
+
export * from './base/constants';
|
|
5
6
|
export * from './base/project-builder';
|
|
6
7
|
export * from './base/abap/manifest-service';
|
|
7
8
|
export * from './base/helper';
|
|
9
|
+
export * from './client';
|
|
8
10
|
export * from './preview/adp-preview';
|
|
11
|
+
export * from './writer/writer-config';
|
|
12
|
+
export { getCustomConfig } from './writer/project-utils';
|
|
9
13
|
export { generate, migrate } from './writer';
|
|
10
14
|
export { generateChange } from './writer/editors';
|
|
11
15
|
export { generateInboundConfig } from './writer/inbound-navigation';
|
package/dist/index.js
CHANGED
|
@@ -14,15 +14,20 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.promptGeneratorInput = exports.generateInboundConfig = exports.generateChange = exports.migrate = exports.generate = void 0;
|
|
17
|
+
exports.promptGeneratorInput = exports.generateInboundConfig = exports.generateChange = exports.migrate = exports.generate = exports.getCustomConfig = void 0;
|
|
18
18
|
__exportStar(require("./types"), exports);
|
|
19
19
|
__exportStar(require("./prompts"), exports);
|
|
20
20
|
__exportStar(require("./common"), exports);
|
|
21
21
|
__exportStar(require("./base/cf"), exports);
|
|
22
|
+
__exportStar(require("./base/constants"), exports);
|
|
22
23
|
__exportStar(require("./base/project-builder"), exports);
|
|
23
24
|
__exportStar(require("./base/abap/manifest-service"), exports);
|
|
24
25
|
__exportStar(require("./base/helper"), exports);
|
|
26
|
+
__exportStar(require("./client"), exports);
|
|
25
27
|
__exportStar(require("./preview/adp-preview"), exports);
|
|
28
|
+
__exportStar(require("./writer/writer-config"), exports);
|
|
29
|
+
var project_utils_1 = require("./writer/project-utils");
|
|
30
|
+
Object.defineProperty(exports, "getCustomConfig", { enumerable: true, get: function () { return project_utils_1.getCustomConfig; } });
|
|
26
31
|
var writer_1 = require("./writer");
|
|
27
32
|
Object.defineProperty(exports, "generate", { enumerable: true, get: function () { return writer_1.generate; } });
|
|
28
33
|
Object.defineProperty(exports, "migrate", { enumerable: true, get: function () { return writer_1.migrate; } });
|
package/dist/types.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { DestinationAbapTarget, UrlAbapTarget } from '@sap-ux/system-access
|
|
|
3
3
|
import type { Adp, BspApp } from '@sap-ux/ui5-config';
|
|
4
4
|
import type { OperationsType } from '@sap-ux/axios-extension';
|
|
5
5
|
import type { Editor } from 'mem-fs-editor';
|
|
6
|
+
import type { Destination } from '@sap-ux/btp-utils';
|
|
6
7
|
export interface DescriptorVariant {
|
|
7
8
|
layer: UI5FlexLayer;
|
|
8
9
|
reference: string;
|
|
@@ -82,6 +83,35 @@ export interface AdpWriterConfig {
|
|
|
82
83
|
enableTypeScript?: boolean;
|
|
83
84
|
};
|
|
84
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Interface representing the answers collected from the configuration prompts of Adaptation Project generator.
|
|
88
|
+
*/
|
|
89
|
+
export interface ConfigAnswers {
|
|
90
|
+
system: string;
|
|
91
|
+
username: string;
|
|
92
|
+
password: string;
|
|
93
|
+
application: TargetApplication;
|
|
94
|
+
}
|
|
95
|
+
export interface TargetApplication {
|
|
96
|
+
id: string;
|
|
97
|
+
title: string;
|
|
98
|
+
ach: string;
|
|
99
|
+
registrationIds: string[];
|
|
100
|
+
fileType: string;
|
|
101
|
+
bspUrl: string;
|
|
102
|
+
bspName: string;
|
|
103
|
+
}
|
|
104
|
+
export interface Endpoint extends Partial<Destination> {
|
|
105
|
+
Name: string;
|
|
106
|
+
Url?: string;
|
|
107
|
+
Client?: string;
|
|
108
|
+
Credentials?: {
|
|
109
|
+
username?: string;
|
|
110
|
+
password?: string;
|
|
111
|
+
};
|
|
112
|
+
UserDisplayName?: string;
|
|
113
|
+
Scp?: boolean;
|
|
114
|
+
}
|
|
85
115
|
export interface ChangeInboundNavigation {
|
|
86
116
|
/** Identifier for the inbound navigation. */
|
|
87
117
|
inboundId: string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Content } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a model enhancement change configuration.
|
|
4
|
+
*
|
|
5
|
+
* @returns {Content} The model change configuration.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getNewModelEnhanceWithChange(): Content;
|
|
8
|
+
//# sourceMappingURL=descriptor-content.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNewModelEnhanceWithChange = getNewModelEnhanceWithChange;
|
|
4
|
+
/**
|
|
5
|
+
* Returns a model enhancement change configuration.
|
|
6
|
+
*
|
|
7
|
+
* @returns {Content} The model change configuration.
|
|
8
|
+
*/
|
|
9
|
+
function getNewModelEnhanceWithChange() {
|
|
10
|
+
return {
|
|
11
|
+
changeType: 'appdescr_ui5_addNewModelEnhanceWith',
|
|
12
|
+
content: {
|
|
13
|
+
modelId: 'i18n',
|
|
14
|
+
bundleUrl: 'i18n/i18n.properties',
|
|
15
|
+
supportedLocales: [''],
|
|
16
|
+
fallbackLocale: ''
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=descriptor-content.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Editor } from 'mem-fs-editor';
|
|
2
|
-
import type { AdpWriterConfig } from '../types';
|
|
2
|
+
import type { AdpWriterConfig, CustomConfig } from '../types';
|
|
3
|
+
import type { OperationsType } from '@sap-ux/axios-extension';
|
|
3
4
|
type PackageJSON = {
|
|
4
5
|
name: string;
|
|
5
6
|
version: string;
|
|
@@ -10,6 +11,13 @@ type PackageJSON = {
|
|
|
10
11
|
* @returns {PackageJSON} An object containing the `name` and `version` of the package.
|
|
11
12
|
*/
|
|
12
13
|
export declare function getPackageJSONInfo(): PackageJSON;
|
|
14
|
+
/**
|
|
15
|
+
* Constructs a custom configuration object.
|
|
16
|
+
*
|
|
17
|
+
* @param {OperationsType} environment - The operations type indicating a cloud or on-premise project.
|
|
18
|
+
* @returns {CustomConfig} The generated custom configuration.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getCustomConfig(environment: OperationsType): CustomConfig;
|
|
13
21
|
/**
|
|
14
22
|
* Writes a given project template files within a specified folder in the project directory.
|
|
15
23
|
*
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPackageJSONInfo = getPackageJSONInfo;
|
|
4
|
+
exports.getCustomConfig = getCustomConfig;
|
|
4
5
|
exports.writeTemplateToFolder = writeTemplateToFolder;
|
|
5
6
|
exports.writeUI5Yaml = writeUI5Yaml;
|
|
6
7
|
exports.writeUI5DeployYaml = writeUI5DeployYaml;
|
|
7
8
|
const path_1 = require("path");
|
|
8
9
|
const fs_1 = require("fs");
|
|
10
|
+
const uuid_1 = require("uuid");
|
|
9
11
|
const options_1 = require("./options");
|
|
10
12
|
const ui5_config_1 = require("@sap-ux/ui5-config");
|
|
11
13
|
/**
|
|
@@ -25,6 +27,25 @@ function getPackageJSONInfo() {
|
|
|
25
27
|
return defaultPackage;
|
|
26
28
|
}
|
|
27
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Constructs a custom configuration object.
|
|
32
|
+
*
|
|
33
|
+
* @param {OperationsType} environment - The operations type indicating a cloud or on-premise project.
|
|
34
|
+
* @returns {CustomConfig} The generated custom configuration.
|
|
35
|
+
*/
|
|
36
|
+
function getCustomConfig(environment) {
|
|
37
|
+
const { name: id, version } = getPackageJSONInfo();
|
|
38
|
+
return {
|
|
39
|
+
adp: {
|
|
40
|
+
environment,
|
|
41
|
+
support: {
|
|
42
|
+
id,
|
|
43
|
+
version,
|
|
44
|
+
toolsId: (0, uuid_1.v4)()
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
28
49
|
/**
|
|
29
50
|
* Writes a given project template files within a specified folder in the project directory.
|
|
30
51
|
*
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { AbapProvider } from '../client';
|
|
2
|
+
import type { AdpWriterConfig, ConfigAnswers, FlexLayer } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* A class that handles the construction of the ADP writer configuration needed from generating an Adaptation Project.
|
|
5
|
+
*/
|
|
6
|
+
export declare class WriterConfig {
|
|
7
|
+
private readonly abapProvider;
|
|
8
|
+
private readonly layer;
|
|
9
|
+
/**
|
|
10
|
+
* Constructs an instance of WriterConfig class.
|
|
11
|
+
*
|
|
12
|
+
* @param {AbapProvider} abapProvider - The instance of AbapProvider class.
|
|
13
|
+
* @param {FlexLayer} layer - The FlexLayer used to determine the base (customer or otherwise).
|
|
14
|
+
*/
|
|
15
|
+
constructor(abapProvider: AbapProvider, layer: FlexLayer);
|
|
16
|
+
/**
|
|
17
|
+
* Generates the configuration object for the Adaptation Project.
|
|
18
|
+
*
|
|
19
|
+
* @param {ConfigAnswers} configAnswers - The configuration answers (i.e system, application).
|
|
20
|
+
* @param {object} defaults - Default project parameters.
|
|
21
|
+
* @param {string} defaults.namespace - The namespace for the project.
|
|
22
|
+
* @returns {Promise<AdpWriterConfig>} The generated project configuration.
|
|
23
|
+
*/
|
|
24
|
+
getConfig(configAnswers: ConfigAnswers, defaults: {
|
|
25
|
+
namespace: string;
|
|
26
|
+
}): Promise<AdpWriterConfig>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=writer-config.d.ts.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WriterConfig = void 0;
|
|
4
|
+
const project_utils_1 = require("./project-utils");
|
|
5
|
+
const descriptor_content_1 = require("./descriptor-content");
|
|
6
|
+
/**
|
|
7
|
+
* A class that handles the construction of the ADP writer configuration needed from generating an Adaptation Project.
|
|
8
|
+
*/
|
|
9
|
+
class WriterConfig {
|
|
10
|
+
abapProvider;
|
|
11
|
+
layer;
|
|
12
|
+
/**
|
|
13
|
+
* Constructs an instance of WriterConfig class.
|
|
14
|
+
*
|
|
15
|
+
* @param {AbapProvider} abapProvider - The instance of AbapProvider class.
|
|
16
|
+
* @param {FlexLayer} layer - The FlexLayer used to determine the base (customer or otherwise).
|
|
17
|
+
*/
|
|
18
|
+
constructor(abapProvider, layer) {
|
|
19
|
+
this.abapProvider = abapProvider;
|
|
20
|
+
this.layer = layer;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Generates the configuration object for the Adaptation Project.
|
|
24
|
+
*
|
|
25
|
+
* @param {ConfigAnswers} configAnswers - The configuration answers (i.e system, application).
|
|
26
|
+
* @param {object} defaults - Default project parameters.
|
|
27
|
+
* @param {string} defaults.namespace - The namespace for the project.
|
|
28
|
+
* @returns {Promise<AdpWriterConfig>} The generated project configuration.
|
|
29
|
+
*/
|
|
30
|
+
async getConfig(configAnswers, defaults) {
|
|
31
|
+
const provider = this.abapProvider.getProvider();
|
|
32
|
+
const ato = await provider.getAtoInfo();
|
|
33
|
+
const operationsType = ato.operationsType ?? 'P';
|
|
34
|
+
const target = await this.abapProvider.determineTarget(configAnswers.system, {});
|
|
35
|
+
const customConfig = (0, project_utils_1.getCustomConfig)(operationsType);
|
|
36
|
+
return {
|
|
37
|
+
app: {
|
|
38
|
+
id: defaults.namespace,
|
|
39
|
+
reference: configAnswers.application.id,
|
|
40
|
+
layer: this.layer,
|
|
41
|
+
title: '',
|
|
42
|
+
content: [(0, descriptor_content_1.getNewModelEnhanceWithChange)()]
|
|
43
|
+
},
|
|
44
|
+
customConfig,
|
|
45
|
+
target,
|
|
46
|
+
options: {
|
|
47
|
+
fioriTools: true,
|
|
48
|
+
enableTypeScript: false
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.WriterConfig = WriterConfig;
|
|
54
|
+
//# sourceMappingURL=writer-config.js.map
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"bugs": {
|
|
10
10
|
"url": "https://github.com/SAP/open-ux-tools/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3Aadp-tooling"
|
|
11
11
|
},
|
|
12
|
-
"version": "0.13.
|
|
12
|
+
"version": "0.13.21",
|
|
13
13
|
"license": "Apache-2.0",
|
|
14
14
|
"author": "@SAP/ux-tools-team",
|
|
15
15
|
"main": "dist/index.js",
|
|
@@ -32,17 +32,18 @@
|
|
|
32
32
|
"prompts": "2.4.2",
|
|
33
33
|
"sanitize-filename": "1.6.3",
|
|
34
34
|
"uuid": "10.0.0",
|
|
35
|
-
"@sap-ux/axios-extension": "1.19.
|
|
35
|
+
"@sap-ux/axios-extension": "1.19.2",
|
|
36
36
|
"@sap-ux/btp-utils": "1.0.2",
|
|
37
|
-
"@sap-ux/inquirer-common": "0.6.
|
|
37
|
+
"@sap-ux/inquirer-common": "0.6.32",
|
|
38
38
|
"@sap-ux/logger": "0.6.0",
|
|
39
39
|
"@sap-ux/project-access": "1.29.18",
|
|
40
|
-
"@sap-ux/project-input-validator": "0.
|
|
41
|
-
"@sap-ux/system-access": "0.5.
|
|
40
|
+
"@sap-ux/project-input-validator": "0.5.0",
|
|
41
|
+
"@sap-ux/system-access": "0.5.34",
|
|
42
42
|
"@sap-ux/ui5-config": "0.26.5",
|
|
43
43
|
"@sap-ux/odata-service-writer": "0.26.13",
|
|
44
44
|
"@sap-ux/nodejs-utils": "0.1.8",
|
|
45
|
-
"@sap-ux/i18n": "0.2.3"
|
|
45
|
+
"@sap-ux/i18n": "0.2.3",
|
|
46
|
+
"@sap-ux/store": "1.0.0"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
49
|
"@types/adm-zip": "0.5.5",
|