@sap-ux/project-access 1.33.2 → 1.34.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/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { FileName, DirName, FioriToolsSettings, MinCdsPluginUi5Version, MinCdsVersion, fioriToolsDirectory } from './constants';
2
2
  export { getFilePaths } from './file';
3
- export { addPackageDevDependency, clearCdsModuleCache, createApplicationAccess, createProjectAccess, deleteCapApp, filterDataSourcesByType, findAllApps, findCapProjectRoot, findCapProjects, findFioriArtifacts, findProjectRoot, findRootsForPath, getAllUi5YamlFileNames, getAppRootFromWebappPath, getAppProgrammingLanguage, getAppType, getCapCustomPaths, getCapEnvironment, getCapModelAndServices, getCapServiceName, getCapProjectType, getCdsFiles, getCdsRoots, getCdsServices, getCapI18nFolderNames, getSpecification, getSpecificationModuleFromCache, getSpecificationPath, getI18nPropertiesPaths, getI18nBundles, getMinUI5VersionFromManifest, getMinUI5VersionAsArray, getMinimumUI5Version, getMtaPath, getMockServerConfig, getMockDataPath, getNodeModulesPath, getPathMappings, getProject, getProjectType, getWebappPath, hasUI5CliV3, isCapProject, isCapJavaProject, isCapNodeJsProject, loadModuleFromProject, readCapServiceMetadataEdmx, readUi5Yaml, refreshSpecificationDistTags, toReferenceUri, updatePackageScript, getWorkspaceInfo, hasMinCdsVersion, checkCdsUi5PluginEnabled, readFlexChanges } from './project';
3
+ export { normalizePath } from './path';
4
+ export { addPackageDevDependency, clearCdsModuleCache, createApplicationAccess, createProjectAccess, deleteCapApp, filterDataSourcesByType, findAllApps, findCapProjectRoot, findCapProjects, findFioriArtifacts, findProjectRoot, findRootsForPath, getAllUi5YamlFileNames, getAppRootFromWebappPath, getAppProgrammingLanguage, getAppType, getCapCustomPaths, getCapEnvironment, getCapModelAndServices, getCapServiceName, getCapProjectType, getCdsFiles, getCdsRoots, getCdsServices, getCapI18nFolderNames, getSpecification, getSpecificationModuleFromCache, getSpecificationPath, getI18nPropertiesPaths, getI18nBundles, getMinUI5VersionFromManifest, getMinUI5VersionAsArray, getMinimumUI5Version, getMtaPath, getMockServerConfig, getMockDataPath, getNodeModulesPath, getPathMappings, getProject, getProjectType, getWebappPath, hasUI5CliV3, isCapProject, isCapJavaProject, isCapNodeJsProject, loadModuleFromProject, readCapServiceMetadataEdmx, readUi5Yaml, refreshSpecificationDistTags, toReferenceUri, updatePackageScript, getWorkspaceInfo, hasMinCdsVersion, checkCdsUi5PluginEnabled, readFlexChanges, processServices, getMainService } from './project';
4
5
  export { execNpmCommand } from './command/npm-command';
5
6
  export * from './types';
6
7
  export * from './library';
package/dist/index.js CHANGED
@@ -14,8 +14,8 @@ 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.isCapProject = exports.hasUI5CliV3 = exports.getWebappPath = exports.getProjectType = exports.getProject = exports.getPathMappings = exports.getNodeModulesPath = exports.getMockDataPath = exports.getMockServerConfig = exports.getMtaPath = exports.getMinimumUI5Version = exports.getMinUI5VersionAsArray = exports.getMinUI5VersionFromManifest = exports.getI18nBundles = exports.getI18nPropertiesPaths = exports.getSpecificationPath = exports.getSpecificationModuleFromCache = exports.getSpecification = exports.getCapI18nFolderNames = exports.getCdsServices = exports.getCdsRoots = exports.getCdsFiles = exports.getCapProjectType = exports.getCapServiceName = exports.getCapModelAndServices = exports.getCapEnvironment = exports.getCapCustomPaths = exports.getAppType = exports.getAppProgrammingLanguage = exports.getAppRootFromWebappPath = exports.getAllUi5YamlFileNames = exports.findRootsForPath = exports.findProjectRoot = exports.findFioriArtifacts = exports.findCapProjects = exports.findCapProjectRoot = exports.findAllApps = exports.filterDataSourcesByType = exports.deleteCapApp = exports.createProjectAccess = exports.createApplicationAccess = exports.clearCdsModuleCache = exports.addPackageDevDependency = exports.getFilePaths = exports.fioriToolsDirectory = exports.MinCdsVersion = exports.MinCdsPluginUi5Version = exports.FioriToolsSettings = exports.DirName = exports.FileName = void 0;
18
- exports.hasDependency = exports.execNpmCommand = exports.readFlexChanges = exports.checkCdsUi5PluginEnabled = exports.hasMinCdsVersion = exports.getWorkspaceInfo = exports.updatePackageScript = exports.toReferenceUri = exports.refreshSpecificationDistTags = exports.readUi5Yaml = exports.readCapServiceMetadataEdmx = exports.loadModuleFromProject = exports.isCapNodeJsProject = exports.isCapJavaProject = void 0;
17
+ exports.hasUI5CliV3 = exports.getWebappPath = exports.getProjectType = exports.getProject = exports.getPathMappings = exports.getNodeModulesPath = exports.getMockDataPath = exports.getMockServerConfig = exports.getMtaPath = exports.getMinimumUI5Version = exports.getMinUI5VersionAsArray = exports.getMinUI5VersionFromManifest = exports.getI18nBundles = exports.getI18nPropertiesPaths = exports.getSpecificationPath = exports.getSpecificationModuleFromCache = exports.getSpecification = exports.getCapI18nFolderNames = exports.getCdsServices = exports.getCdsRoots = exports.getCdsFiles = exports.getCapProjectType = exports.getCapServiceName = exports.getCapModelAndServices = exports.getCapEnvironment = exports.getCapCustomPaths = exports.getAppType = exports.getAppProgrammingLanguage = exports.getAppRootFromWebappPath = exports.getAllUi5YamlFileNames = exports.findRootsForPath = exports.findProjectRoot = exports.findFioriArtifacts = exports.findCapProjects = exports.findCapProjectRoot = exports.findAllApps = exports.filterDataSourcesByType = exports.deleteCapApp = exports.createProjectAccess = exports.createApplicationAccess = exports.clearCdsModuleCache = exports.addPackageDevDependency = exports.normalizePath = exports.getFilePaths = exports.fioriToolsDirectory = exports.MinCdsVersion = exports.MinCdsPluginUi5Version = exports.FioriToolsSettings = exports.DirName = exports.FileName = void 0;
18
+ exports.hasDependency = exports.execNpmCommand = exports.getMainService = exports.processServices = exports.readFlexChanges = exports.checkCdsUi5PluginEnabled = exports.hasMinCdsVersion = exports.getWorkspaceInfo = exports.updatePackageScript = exports.toReferenceUri = exports.refreshSpecificationDistTags = exports.readUi5Yaml = exports.readCapServiceMetadataEdmx = exports.loadModuleFromProject = exports.isCapNodeJsProject = exports.isCapJavaProject = exports.isCapProject = void 0;
19
19
  var constants_1 = require("./constants");
20
20
  Object.defineProperty(exports, "FileName", { enumerable: true, get: function () { return constants_1.FileName; } });
21
21
  Object.defineProperty(exports, "DirName", { enumerable: true, get: function () { return constants_1.DirName; } });
@@ -25,6 +25,8 @@ Object.defineProperty(exports, "MinCdsVersion", { enumerable: true, get: functio
25
25
  Object.defineProperty(exports, "fioriToolsDirectory", { enumerable: true, get: function () { return constants_1.fioriToolsDirectory; } });
26
26
  var file_1 = require("./file");
27
27
  Object.defineProperty(exports, "getFilePaths", { enumerable: true, get: function () { return file_1.getFilePaths; } });
28
+ var path_1 = require("./path");
29
+ Object.defineProperty(exports, "normalizePath", { enumerable: true, get: function () { return path_1.normalizePath; } });
28
30
  var project_1 = require("./project");
29
31
  Object.defineProperty(exports, "addPackageDevDependency", { enumerable: true, get: function () { return project_1.addPackageDevDependency; } });
30
32
  Object.defineProperty(exports, "clearCdsModuleCache", { enumerable: true, get: function () { return project_1.clearCdsModuleCache; } });
@@ -81,6 +83,8 @@ Object.defineProperty(exports, "getWorkspaceInfo", { enumerable: true, get: func
81
83
  Object.defineProperty(exports, "hasMinCdsVersion", { enumerable: true, get: function () { return project_1.hasMinCdsVersion; } });
82
84
  Object.defineProperty(exports, "checkCdsUi5PluginEnabled", { enumerable: true, get: function () { return project_1.checkCdsUi5PluginEnabled; } });
83
85
  Object.defineProperty(exports, "readFlexChanges", { enumerable: true, get: function () { return project_1.readFlexChanges; } });
86
+ Object.defineProperty(exports, "processServices", { enumerable: true, get: function () { return project_1.processServices; } });
87
+ Object.defineProperty(exports, "getMainService", { enumerable: true, get: function () { return project_1.getMainService; } });
84
88
  var npm_command_1 = require("./command/npm-command");
85
89
  Object.defineProperty(exports, "execNpmCommand", { enumerable: true, get: function () { return npm_command_1.execNpmCommand; } });
86
90
  __exportStar(require("./types"), exports);
@@ -54,6 +54,13 @@ export declare function getCapModelAndServices(projectRoot: string | {
54
54
  services: ServiceInfo[];
55
55
  cdsVersionInfo: CdsVersionInfo;
56
56
  }>;
57
+ /**
58
+ * Filter and normalize service definitions from CAP project.
59
+ *
60
+ * @param services - list of services from cds.compile.to['serviceinfo'](model)
61
+ * @returns list of normalized service info
62
+ */
63
+ export declare function processServices(services: ServiceInfo[] | object | undefined): ServiceInfo[];
57
64
  /**
58
65
  * Returns a list of cds file paths (layers). By default return list of all, but you can also restrict it to one envRoot.
59
66
  *
@@ -7,6 +7,7 @@ exports.getCapProjectType = getCapProjectType;
7
7
  exports.isCapProject = isCapProject;
8
8
  exports.getCapCustomPaths = getCapCustomPaths;
9
9
  exports.getCapModelAndServices = getCapModelAndServices;
10
+ exports.processServices = processServices;
10
11
  exports.getCdsFiles = getCdsFiles;
11
12
  exports.getCdsRoots = getCdsRoots;
12
13
  exports.getCdsServices = getCdsServices;
@@ -169,14 +170,31 @@ async function getCapModelAndServices(projectRoot) {
169
170
  _logger?.info(`@sap-ux/project-access:getCapModelAndServices - Using 'cds.root': ${cds.root}`);
170
171
  _logger?.info(`@sap-ux/project-access:getCapModelAndServices - Using 'projectRoot': ${_projectRoot}`);
171
172
  let services = cds.compile.to.serviceinfo(model, { root: _projectRoot }) ?? [];
173
+ services = processServices(services);
174
+ return {
175
+ model,
176
+ services,
177
+ cdsVersionInfo: {
178
+ home: cds.home,
179
+ version: cds.version,
180
+ root: cds.root
181
+ }
182
+ };
183
+ }
184
+ /**
185
+ * Filter and normalize service definitions from CAP project.
186
+ *
187
+ * @param services - list of services from cds.compile.to['serviceinfo'](model)
188
+ * @returns list of normalized service info
189
+ */
190
+ function processServices(services) {
172
191
  // filter services that have ( urlPath defined AND no endpoints) OR have endpoints with kind 'odata'
173
192
  // i.e. ignore services for websockets and other unsupported protocols
174
- if (services.filter) {
175
- services = services.filter((service) => (service.urlPath && service.endpoints === undefined) ||
176
- service.endpoints?.find(filterCapServiceEndpoints));
177
- }
178
- if (services.map) {
179
- services = services.map((value) => {
193
+ if (services && Array.isArray(services)) {
194
+ return services
195
+ .filter((service) => (service.urlPath && service.endpoints === undefined) ||
196
+ service.endpoints?.find(filterCapServiceEndpoints))
197
+ .map((value) => {
180
198
  const { endpoints, urlPath } = value;
181
199
  const odataEndpoint = endpoints?.find(filterCapServiceEndpoints);
182
200
  const endpointPath = odataEndpoint?.path ?? urlPath;
@@ -187,15 +205,7 @@ async function getCapModelAndServices(projectRoot) {
187
205
  };
188
206
  });
189
207
  }
190
- return {
191
- model,
192
- services,
193
- cdsVersionInfo: {
194
- home: cds.home,
195
- version: cds.version,
196
- root: cds.root
197
- }
198
- };
208
+ return [];
199
209
  }
200
210
  /**
201
211
  * Returns a list of cds file paths (layers). By default return list of all, but you can also restrict it to one envRoot.
@@ -1,5 +1,5 @@
1
- export { clearCdsModuleCache, deleteCapApp, getCapCustomPaths, getCapEnvironment, getCapModelAndServices, getCapProjectType, getCapServiceName, getCdsFiles, getCdsRoots, getCdsServices, isCapProject, isCapJavaProject, isCapNodeJsProject, readCapServiceMetadataEdmx, toReferenceUri, getWorkspaceInfo, hasMinCdsVersion, checkCdsUi5PluginEnabled } from './cap';
2
- export { filterDataSourcesByType } from './service';
1
+ export { clearCdsModuleCache, deleteCapApp, getCapCustomPaths, getCapEnvironment, getCapModelAndServices, getCapProjectType, getCapServiceName, getCdsFiles, getCdsRoots, getCdsServices, isCapProject, isCapJavaProject, isCapNodeJsProject, readCapServiceMetadataEdmx, toReferenceUri, getWorkspaceInfo, hasMinCdsVersion, checkCdsUi5PluginEnabled, processServices } from './cap';
2
+ export { filterDataSourcesByType, getMainService } from './service';
3
3
  export { addPackageDevDependency, getNodeModulesPath, hasDependency } from './dependencies';
4
4
  export { getCapI18nFolderNames, getI18nPropertiesPaths, getI18nBundles } from './i18n';
5
5
  export { getAppProgrammingLanguage, getAppType, getMinUI5VersionFromManifest, getMinUI5VersionAsArray, getMinimumUI5Version, getProject, getProjectType } from './info';
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updatePackageScript = exports.createProjectAccess = exports.createApplicationAccess = exports.getMtaPath = exports.getPathMappings = exports.getMockDataPath = exports.getMockServerConfig = exports.getAllUi5YamlFileNames = exports.readUi5Yaml = exports.getWebappPath = exports.findRootsForPath = exports.findCapProjectRoot = exports.getAppRootFromWebappPath = exports.findProjectRoot = exports.findFioriArtifacts = exports.findCapProjects = exports.findAllApps = exports.loadModuleFromProject = exports.getProjectType = exports.getProject = exports.getMinimumUI5Version = exports.getMinUI5VersionAsArray = exports.getMinUI5VersionFromManifest = exports.getAppType = exports.getAppProgrammingLanguage = exports.getI18nBundles = exports.getI18nPropertiesPaths = exports.getCapI18nFolderNames = exports.hasDependency = exports.getNodeModulesPath = exports.addPackageDevDependency = exports.filterDataSourcesByType = exports.checkCdsUi5PluginEnabled = exports.hasMinCdsVersion = exports.getWorkspaceInfo = exports.toReferenceUri = exports.readCapServiceMetadataEdmx = exports.isCapNodeJsProject = exports.isCapJavaProject = exports.isCapProject = exports.getCdsServices = exports.getCdsRoots = exports.getCdsFiles = exports.getCapServiceName = exports.getCapProjectType = exports.getCapModelAndServices = exports.getCapEnvironment = exports.getCapCustomPaths = exports.deleteCapApp = exports.clearCdsModuleCache = void 0;
4
- exports.readFlexChanges = exports.refreshSpecificationDistTags = exports.getSpecificationPath = exports.getSpecificationModuleFromCache = exports.getSpecification = exports.hasUI5CliV3 = void 0;
3
+ exports.createApplicationAccess = exports.getMtaPath = exports.getPathMappings = exports.getMockDataPath = exports.getMockServerConfig = exports.getAllUi5YamlFileNames = exports.readUi5Yaml = exports.getWebappPath = exports.findRootsForPath = exports.findCapProjectRoot = exports.getAppRootFromWebappPath = exports.findProjectRoot = exports.findFioriArtifacts = exports.findCapProjects = exports.findAllApps = exports.loadModuleFromProject = exports.getProjectType = exports.getProject = exports.getMinimumUI5Version = exports.getMinUI5VersionAsArray = exports.getMinUI5VersionFromManifest = exports.getAppType = exports.getAppProgrammingLanguage = exports.getI18nBundles = exports.getI18nPropertiesPaths = exports.getCapI18nFolderNames = exports.hasDependency = exports.getNodeModulesPath = exports.addPackageDevDependency = exports.getMainService = exports.filterDataSourcesByType = exports.processServices = exports.checkCdsUi5PluginEnabled = exports.hasMinCdsVersion = exports.getWorkspaceInfo = exports.toReferenceUri = exports.readCapServiceMetadataEdmx = exports.isCapNodeJsProject = exports.isCapJavaProject = exports.isCapProject = exports.getCdsServices = exports.getCdsRoots = exports.getCdsFiles = exports.getCapServiceName = exports.getCapProjectType = exports.getCapModelAndServices = exports.getCapEnvironment = exports.getCapCustomPaths = exports.deleteCapApp = exports.clearCdsModuleCache = void 0;
4
+ exports.readFlexChanges = exports.refreshSpecificationDistTags = exports.getSpecificationPath = exports.getSpecificationModuleFromCache = exports.getSpecification = exports.hasUI5CliV3 = exports.updatePackageScript = exports.createProjectAccess = void 0;
5
5
  var cap_1 = require("./cap");
6
6
  Object.defineProperty(exports, "clearCdsModuleCache", { enumerable: true, get: function () { return cap_1.clearCdsModuleCache; } });
7
7
  Object.defineProperty(exports, "deleteCapApp", { enumerable: true, get: function () { return cap_1.deleteCapApp; } });
@@ -21,8 +21,10 @@ Object.defineProperty(exports, "toReferenceUri", { enumerable: true, get: functi
21
21
  Object.defineProperty(exports, "getWorkspaceInfo", { enumerable: true, get: function () { return cap_1.getWorkspaceInfo; } });
22
22
  Object.defineProperty(exports, "hasMinCdsVersion", { enumerable: true, get: function () { return cap_1.hasMinCdsVersion; } });
23
23
  Object.defineProperty(exports, "checkCdsUi5PluginEnabled", { enumerable: true, get: function () { return cap_1.checkCdsUi5PluginEnabled; } });
24
+ Object.defineProperty(exports, "processServices", { enumerable: true, get: function () { return cap_1.processServices; } });
24
25
  var service_1 = require("./service");
25
26
  Object.defineProperty(exports, "filterDataSourcesByType", { enumerable: true, get: function () { return service_1.filterDataSourcesByType; } });
27
+ Object.defineProperty(exports, "getMainService", { enumerable: true, get: function () { return service_1.getMainService; } });
26
28
  var dependencies_1 = require("./dependencies");
27
29
  Object.defineProperty(exports, "addPackageDevDependency", { enumerable: true, get: function () { return dependencies_1.addPackageDevDependency; } });
28
30
  Object.defineProperty(exports, "getNodeModulesPath", { enumerable: true, get: function () { return dependencies_1.getNodeModulesPath; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap-ux/project-access",
3
- "version": "1.33.2",
3
+ "version": "1.34.0",
4
4
  "description": "Library to access SAP Fiori tools projects",
5
5
  "repository": {
6
6
  "type": "git",