@sap/cds-dk 7.4.0 → 7.5.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.
Files changed (179) hide show
  1. package/bin/activate.js +1 -1
  2. package/bin/add.js +6 -4
  3. package/bin/build.js +10 -12
  4. package/bin/cds.js +4 -1
  5. package/bin/deploy/index.js +5 -2
  6. package/bin/eval.js +1 -1
  7. package/bin/extend.js +3 -3
  8. package/bin/login.js +2 -2
  9. package/bin/logout.js +1 -1
  10. package/bin/pull.js +1 -1
  11. package/bin/push.js +5 -5
  12. package/bin/subscribe.js +2 -2
  13. package/bin/unsubscribe.js +2 -2
  14. package/bin/upgrade.js +2 -2
  15. package/bin/version.js +2 -2
  16. package/bin/watch.js +1 -1
  17. package/lib/bind/bindingUtil.js +6 -3
  18. package/lib/bind/cfKeyProvider.js +1 -1
  19. package/lib/bind/userCdsrcJsonStorageProvider.js +1 -1
  20. package/lib/build/buildPlugin.js +6 -12
  21. package/lib/build/buildTaskEngine.js +24 -19
  22. package/lib/build/buildTaskFactory.js +27 -33
  23. package/lib/build/buildTaskProvider.js +1 -1
  24. package/lib/build/buildTaskProviderFactory.js +26 -41
  25. package/lib/build/constants.js +0 -1
  26. package/lib/build/index.js +3 -3
  27. package/lib/build/plugins.js +15 -15
  28. package/lib/build/provider/edmxBuildPlugin.js +6 -7
  29. package/lib/build/provider/fiori/index.js +8 -8
  30. package/lib/build/provider/hana/2migration.js +12 -16
  31. package/lib/build/provider/hana/index.js +5 -7
  32. package/lib/build/provider/hana/template/package.json +1 -1
  33. package/lib/build/provider/internalBuildPlugin.js +0 -8
  34. package/lib/build/provider/internalBuildTaskProvider.js +17 -21
  35. package/lib/build/provider/java/index.js +2 -1
  36. package/lib/build/provider/mtx-extension/index.js +8 -5
  37. package/lib/build/provider/mtx-sidecar/index.js +2 -1
  38. package/lib/build/provider/nodejs/index.js +64 -58
  39. package/lib/compile/openapi/csdl2openapi.js +29 -15
  40. package/lib/compile/openapi/index.js +6 -6
  41. package/lib/deploy/to-hana/hana.js +5 -3
  42. package/lib/env/schema.js +2 -3
  43. package/lib/index.js +68 -28
  44. package/lib/init/add.js +17 -0
  45. package/lib/init/constants.js +5 -3
  46. package/lib/init/index.js +39 -25
  47. package/lib/init/{util/merge.js → merge.js} +32 -20
  48. package/lib/init/{util/mvn.js → mvn.js} +5 -5
  49. package/lib/init/plugin.js +85 -0
  50. package/lib/init/projectReader.js +145 -0
  51. package/lib/init/registries/mta.js +151 -0
  52. package/lib/init/template/{kibana → application-logging}/files/mta.yaml.hbs +3 -3
  53. package/lib/init/template/application-logging/index.js +49 -0
  54. package/lib/init/template/approuter/files/mta.yaml.hbs +11 -11
  55. package/lib/init/template/approuter/files/xs-app.json.hbs +2 -2
  56. package/lib/init/template/approuter/index.js +36 -81
  57. package/lib/init/template/cf-manifest/files/manifest.yml.hbs +3 -3
  58. package/lib/init/template/cf-manifest/files/services-manifest.yml.hbs +4 -4
  59. package/lib/init/template/cf-manifest/index.js +4 -4
  60. package/lib/init/template/connectivity/index.js +22 -35
  61. package/lib/init/template/data/index.js +3 -2
  62. package/lib/init/template/destination/files/values.yaml +9 -0
  63. package/lib/init/template/destination/index.js +15 -47
  64. package/lib/init/template/enterprise-messaging/index.js +26 -58
  65. package/lib/init/template/enterprise-messaging-shared/index.js +23 -39
  66. package/lib/init/template/extensibility/index.js +16 -30
  67. package/lib/init/template/file-based-messaging/index.js +7 -8
  68. package/lib/init/template/h2/index.js +4 -4
  69. package/lib/init/template/hana/files/mta.yaml.hbs +8 -8
  70. package/lib/init/template/hana/index.js +29 -115
  71. package/lib/init/template/helm/files/chart/templates/NOTES.txt +12 -0
  72. package/lib/init/template/helm/files/chart/templates/_deployment_helpers.tpl +82 -0
  73. package/lib/init/template/helm/files/chart/templates/_helpers.tpl +28 -0
  74. package/lib/init/template/helm/files/chart/values.root.schema.json +61 -0
  75. package/lib/init/template/helm/files/chart/values.schema.json +366 -0
  76. package/lib/init/template/helm/{subcharts → files}/web-application/Chart.yaml +1 -1
  77. package/lib/init/template/helm/{subcharts → files}/web-application/templates/_api.tpl +1 -1
  78. package/lib/init/template/helm/{subcharts → files}/web-application/values.yaml +1 -1
  79. package/lib/init/template/helm/index.js +84 -85
  80. package/lib/init/template/helm-unified-runtime/files/Chart.yaml.hbs +10 -0
  81. package/lib/init/template/helm-unified-runtime/files/values.yaml.hbs +26 -0
  82. package/lib/init/template/helm-unified-runtime/index.js +91 -0
  83. package/lib/init/template/helm-unified-runtime/lib/build.js +0 -0
  84. package/lib/init/template/helm-unified-runtime/package.json +4 -0
  85. package/lib/init/template/html5-repo/files/values.yaml.hbs +28 -0
  86. package/lib/init/template/html5-repo/index.js +23 -97
  87. package/lib/init/template/java/index.js +3 -3
  88. package/lib/init/template/lint/index.js +2 -2
  89. package/lib/init/template/liquibase/index.js +16 -0
  90. package/lib/init/template/local-messaging/index.js +7 -8
  91. package/lib/init/template/mta/index.js +7 -19
  92. package/lib/init/template/mtx/index.js +2 -2
  93. package/lib/init/template/multitenancy/index.js +38 -89
  94. package/lib/init/template/nodejs/index.js +5 -4
  95. package/lib/init/template/notebook/index.js +1 -1
  96. package/lib/init/template/notifications/index.js +16 -19
  97. package/lib/init/template/pipeline/index.js +1 -1
  98. package/lib/init/template/postgres/index.js +25 -31
  99. package/lib/init/template/redis-messaging/index.js +23 -27
  100. package/lib/init/template/sample/index.js +4 -4
  101. package/lib/init/template/samples/index.js +2 -2
  102. package/lib/init/template/sqlite/files/{package.json.hbs → package.json} +0 -2
  103. package/lib/init/template/sqlite/index.js +6 -10
  104. package/lib/init/template/tiny-sample/index.js +6 -6
  105. package/lib/init/template/toggles/index.js +7 -8
  106. package/lib/init/template/typer/index.js +6 -6
  107. package/lib/init/template/xsuaa/files/mta.yaml.hbs +3 -3
  108. package/lib/init/template/xsuaa/files/values.yaml.hbs +3 -3
  109. package/lib/init/template/xsuaa/index.js +27 -52
  110. package/lib/init/{util/template.js → template.js} +1 -1
  111. package/lib/{client → mtx}/activate.js +15 -11
  112. package/lib/{client → mtx}/auth_manager.js +5 -4
  113. package/lib/{client → mtx}/download_legacy.js +6 -4
  114. package/lib/{client → mtx}/extend.js +14 -9
  115. package/lib/{client → mtx}/index.js +1 -1
  116. package/lib/{client → mtx}/params.js +4 -1
  117. package/lib/{client → mtx}/pull.js +6 -4
  118. package/lib/{client → mtx}/push.js +11 -10
  119. package/lib/{client → mtx}/settings_manager.js +8 -6
  120. package/lib/{client → mtx}/tenant_action.js +9 -8
  121. package/lib/{client/helper/cf_helper.js → mtx/util/cf.js} +4 -3
  122. package/lib/{client/helper/dependency_helper.js → mtx/util/dependencies.js} +1 -0
  123. package/lib/mtx/util/errors.js +27 -0
  124. package/lib/mtx/util/legacy_ext.js +16 -0
  125. package/lib/{client/helper/url_helper.js → mtx/util/urls.js} +12 -1
  126. package/lib/util/fs.js +5 -1
  127. package/lib/util/pruneAxiosErrors.js +35 -18
  128. package/lib/util/write.js +1 -1
  129. package/npm-shrinkwrap.json +27 -27
  130. package/package.json +10 -1
  131. package/lib/client/base_command.js +0 -54
  132. package/lib/init/template/_merging/registry-mta.js +0 -304
  133. package/lib/init/template/helm/Model.d.ts +0 -53
  134. package/lib/init/template/kibana/files/package.json.hbs +0 -17
  135. package/lib/init/template/kibana/index.js +0 -54
  136. package/lib/init/template/templateBase.js +0 -100
  137. package/lib/init/util/md5.js +0 -86
  138. package/lib/init/util/projectReader.js +0 -94
  139. /package/lib/init/{util/indent.js → indent.js} +0 -0
  140. /package/lib/init/template/helm/{subcharts → files}/content-deployment/Chart.yaml +0 -0
  141. /package/lib/init/template/helm/{subcharts → files}/content-deployment/templates/_helpers.tpl +0 -0
  142. /package/lib/init/template/helm/{subcharts → files}/content-deployment/templates/job.yaml +0 -0
  143. /package/lib/init/template/helm/{subcharts → files}/content-deployment/templates/secret.yaml +0 -0
  144. /package/lib/init/template/helm/{subcharts → files}/content-deployment/templates/service-account.yaml +0 -0
  145. /package/lib/init/template/helm/{subcharts → files}/content-deployment/templates/service-binding.yaml +0 -0
  146. /package/lib/init/template/helm/{subcharts → files}/content-deployment/values.schema.json +0 -0
  147. /package/lib/init/template/helm/{subcharts → files}/content-deployment/values.yaml +0 -0
  148. /package/lib/init/template/helm/{subcharts → files}/service-instance/Chart.yaml +0 -0
  149. /package/lib/init/template/helm/{subcharts → files}/service-instance/templates/_helpers.tpl +0 -0
  150. /package/lib/init/template/helm/{subcharts → files}/service-instance/templates/serviceinstance.yaml +0 -0
  151. /package/lib/init/template/helm/{subcharts → files}/service-instance/values.schema.json +0 -0
  152. /package/lib/init/template/helm/{subcharts → files}/service-instance/values.yaml +0 -0
  153. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/NOTES.txt +0 -0
  154. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/_helpers.tpl +0 -0
  155. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/api-rule.yaml +0 -0
  156. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/deployment.yaml +0 -0
  157. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/network-policy.yaml +0 -0
  158. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/pod-disruption-budget.yaml +0 -0
  159. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/rbac.yaml +0 -0
  160. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/secret.yaml +0 -0
  161. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/service-account.yaml +0 -0
  162. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/service-binding.yaml +0 -0
  163. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/service.yaml +0 -0
  164. /package/lib/init/template/helm/{subcharts → files}/web-application/templates/virtual-service.yaml +0 -0
  165. /package/lib/init/template/helm/{subcharts → files}/web-application/values.schema.json +0 -0
  166. /package/lib/init/template/{helm/chart → helm-unified-runtime/files}/templates/NOTES.txt +0 -0
  167. /package/lib/init/template/{helm/chart → helm-unified-runtime/files}/templates/_deployment_helpers.tpl +0 -0
  168. /package/lib/init/template/{helm/chart → helm-unified-runtime/files}/templates/_helpers.tpl +0 -0
  169. /package/lib/init/template/{helm/chart → helm-unified-runtime/files}/values.root.schema.json +0 -0
  170. /package/lib/init/template/{helm/chart → helm-unified-runtime/files}/values.schema.json +0 -0
  171. /package/lib/init/template/postgres/files/{mta.yaml.hbs → mta.yml.hbs} +0 -0
  172. /package/lib/init/{util/xml.js → xml.js} +0 -0
  173. /package/lib/{client/helper/env_helper.js → mtx/util/env.js} +0 -0
  174. /package/lib/{client/helper/fs_helper.js → mtx/util/fs.js} +0 -0
  175. /package/lib/{client/helper → mtx/util}/logging.js +0 -0
  176. /package/lib/{client/helper → mtx/util}/question.js +0 -0
  177. /package/lib/{client/helper/string_helper.js → mtx/util/strings.js} +0 -0
  178. /package/lib/util/{cfUtil.js → cf.js} +0 -0
  179. /package/lib/util/{gitUtil.js → git.js} +0 -0
@@ -1,54 +0,0 @@
1
- const { join } = require('path')
2
- const { readProject } = require('../../util/projectReader')
3
- const { mergeJSON, mergeYAML } = require('../../util/merge')
4
- const { srvNode4, srvJava4, mtxSidecar4, kibana, approuter } = require('../_merging/registry-mta')
5
-
6
- module.exports = class KibanaTemplate extends require('../templateBase') {
7
-
8
- static hasFacet(env) {
9
- return env.features.kibana_formatter
10
- }
11
-
12
- async canRun() {
13
- const { hasMta, hasHelm, isJava } = await readProject()
14
- if (hasHelm && !hasMta) throw `'cds add kibana' is not available for Kyma yet`
15
- if (isJava) throw `'cds add kibana' is not available for Java yet`
16
- return true
17
- }
18
-
19
- async run() {
20
- const project = await readProject()
21
- const { configFile } = project
22
- await mergeJSON(configFile, join(__dirname, 'files', 'package.json.hbs'), project)
23
- }
24
-
25
- async runDependentMerging() {
26
- const project = await readProject()
27
- const { hasMta, hasApprouter, isJava, isMultitenant, srvPath } = project
28
-
29
- if (hasMta) {
30
- const srv = (isJava ? srvJava4 : srvNode4)(srvPath)
31
- const additions = [srv, kibana]
32
- const relationships = [{
33
- insert: [kibana, 'name'],
34
- into: [srv, 'requires', 'name']
35
- }]
36
- if (isMultitenant) {
37
- const mtxSidecar = mtxSidecar4(isJava ? 'mtx/sidecar' : 'gen/mtx/sidecar')
38
- additions.push(mtxSidecar)
39
- relationships.push({
40
- insert: [kibana, 'name'],
41
- into: [mtxSidecar, 'requires', 'name']
42
- })
43
- }
44
- if (hasApprouter) {
45
- additions.push(approuter)
46
- relationships.push({
47
- insert: [kibana, 'name'],
48
- into: [approuter, 'requires', 'name']
49
- })
50
- }
51
- await mergeYAML('mta.yaml', join(__dirname, 'files', 'mta.yaml.hbs'), project, { additions, relationships })
52
- }
53
- }
54
- }
@@ -1,100 +0,0 @@
1
- const cds = require('../../cds')
2
-
3
- module.exports = class TemplateBase {
4
-
5
- /**
6
- * @constructor
7
- */
8
- constructor() {
9
- this.name = this.constructor.name.replace(/template/i, '').replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()
10
- }
11
-
12
- /**
13
- * Returns an array of required templates. These templates will also be added if not already included.
14
- * @function getDependencies
15
- * @returns {Array} Dependent facets. Default is an empty array.
16
- */
17
- getDependencies() {
18
- return []
19
- }
20
-
21
- /**
22
- * Returns an array of related facets that might change the result of applying the current facet.
23
- * Important: there must not be circular relationships between facets.
24
- * @function getRelatedFacets()
25
- * @returns {Array} Related facets. Default is an empty array.
26
- */
27
- getRelatedFacets() {
28
- return []
29
- }
30
-
31
- /**
32
- * Checks whether the given template should handle this request
33
- * @returns true, if template should handle this request, false otherwise
34
- * @throws Error, if request is invalid, e.g. a file exists already
35
- */
36
- async canRun() {
37
- return true;
38
- }
39
-
40
- // eslint-disable-next-line no-unused-vars
41
- static hasFacet(env) {
42
- return true;
43
- }
44
-
45
- /**
46
- * calls cds env and caches result
47
- * @returns {object} the current cds env
48
- */
49
- async getEnv(profile = 'production') {
50
- const cdsEnvVar = process.env.CDS_ENV
51
- process.env.CDS_ENV = profile
52
- try {
53
- return cds.env.for('cds');
54
- } finally {
55
- cdsEnvVar ? process.env.CDS_ENV = cdsEnvVar : delete process.env.CDS_ENV
56
- }
57
- }
58
-
59
- /**
60
- * @abstract
61
- * Executes the given template's merging steps which are dependent on another template.
62
- * The separation from `run()` is necessary to preserve templating associativity,
63
- * i.e. the order in which you apply them does not matter.
64
- * Ex.: Assume `cds add hana` is called before `cds add mta`. We want `cds add mta`
65
- * to create the base mta.yaml template and merge the hana mta.yaml in, but _don't_
66
- * want any other steps from the hana template performed (e.g. creating the .hdiconfig).
67
- * Separating the two let's us run this _only_ the merging part of the template.
68
- * In addition, this partial merging avoids cyclic template dependencies.
69
- */
70
- async runDependentMerging() {
71
-
72
- }
73
-
74
- /**
75
- * @abstract
76
- * Executes steps for related facets that are set up for the project.
77
- */
78
- async runRelatedMerging() {
79
- for (const facet of this.getRelatedFacets()) {
80
- const Template = require('./'+facet)
81
- const template = new Template()
82
- if (Template.hasFacet(await this.getEnv())) await template.runDependentMerging()
83
- }
84
- }
85
-
86
- /**
87
- * @abstract
88
- * Executes the given template.
89
- * @throws Error, if handling failed.
90
- */
91
- async run() {
92
- }
93
-
94
- /**
95
- * @abstract
96
- * Called when generation is finished
97
- */
98
- async finalize() {
99
- }
100
- }
@@ -1,86 +0,0 @@
1
- const cds = require('../../cds')
2
- const { exists, mkdirp, isdir, readdir, read, write, copy, path } = cds.utils;
3
- const { dirname, join } = path
4
-
5
- const crypto = require('crypto');
6
- const os = require('os');
7
- const { copyRenderedYAML } = require('../../util/fs');
8
-
9
- async function copyAndTrack(source, dest, context = {}, { force = false, project } = {}) {
10
- await mkdirp(dirname(dest));
11
- if (isdir(source)) {
12
- const dirents = await readdir(source);
13
- return Promise.all(dirents.map(each => copyAndTrack(join(source, each), join(dest, each), context)))
14
- } else {
15
- const data = exists(source) ? await read(source, 'utf-8') : undefined
16
- if (!force && await _isChartFileModified(dest, context)) {
17
- console.log('Chart file ' + dest + ' has been modified and will not be updated.');
18
- } else {
19
- _track(dest, data, context);
20
- if (project) return copyRenderedYAML(source, dest, project)
21
- return copy(source).to(dest);
22
- }
23
- }
24
- }
25
-
26
-
27
- /**
28
- * Takes path of md5 file as an argument and returns a JSON object containing hashes of files stored in MD5 file.
29
- * @param {String} file
30
- * @returns {Promise<JSON>}
31
- */
32
- async function parseMd5File(file) {
33
- const md5 = exists(file) ? await read(file) : undefined
34
- if (!md5) return {}
35
- return Object.fromEntries(md5.split(os.EOL).map(line => line.split(' ').reverse()))
36
- }
37
-
38
- /**
39
- * Takes json object containing key as filename and value as MD5 hash and generates a md5sum format file.
40
- * @param {String} file
41
- * @param {Promise<JSON>} data
42
- */
43
- async function writeMd5File(file, data) {
44
- await write(Object.entries(data).map(([filename, hash]) =>
45
- `${hash} ${filename}` + os.EOL
46
- ).join('')).to(file)
47
- }
48
-
49
-
50
- // REVISIT: Why pass entire 'context' if we're only interested in one key in the old tracking data? -> decrease coupling
51
- async function _isChartFileModified(file, context = {}) {
52
- const data = exists(file) ? await read(file, 'utf-8') : undefined
53
- if (!data) return false;
54
- const key = _pathKey(join(cds.root, 'chart'), file);
55
- const hashedContent = _hash(data);
56
- return context.newTrackingData[key] ? context.newTrackingData[key] !== hashedContent : context.oldTrackingData?.[key] !== hashedContent;
57
- }
58
-
59
- function _hash(data) {
60
- return crypto.createHash('md5').update(data).digest('base64');
61
- }
62
-
63
- function _pathKey(basePath, cPath) {
64
- return path.posix.normalize(_toPosix(path.relative(basePath, cPath)))
65
- }
66
-
67
- function _toPosix(path) {
68
- return path.replace(/\\/g, '/');
69
- }
70
-
71
- // REVISIT: Replace inout parameter 'context' by return value of new tracking data
72
- async function _track(filePath, data, context = {}) {
73
- const key = _pathKey(path.join(cds.root, 'chart'), filePath);
74
- const hashedContent = _hash(data);
75
- if (context.oldTrackingData != undefined && context.oldTrackingData[key] != undefined) {
76
- context.oldTrackingData[key] = hashedContent;
77
- }
78
- context.newTrackingData[key] = hashedContent;
79
- }
80
-
81
- // REVISIT: Can we make copyAndTrack the only public API?
82
- module.exports = {
83
- copyAndTrack,
84
- parseMd5File,
85
- writeMd5File
86
- }
@@ -1,94 +0,0 @@
1
- const cds = require('../../cds')
2
- const { join, resolve, basename } = require('path')
3
- const { fs, exists } = cds.utils
4
- const { parseXml } = require('./xml')
5
- const { REGEX_JAVA_VERSION } = require('../constants')
6
- const DEBUG = cds.debug('cli')
7
-
8
- module.exports = new class ProjectReader {
9
-
10
- constructor() {
11
- this.readProject = this.readProject.bind(this)
12
-
13
- // 1. Use project name and static default values
14
- this.appVersion = cds.cli.options.add?.has('java') ? '1.0.0-SNAPSHOT' : '1.0.0'
15
- this.appName = this.appId = basename(cds.root)
16
- this.appDescription = 'A simple CAP project.'
17
-
18
- // 2. Use either pom.xml or package.json
19
- if (exists('pom.xml')) {
20
- const { artifactId = [], description = [], version = [], properties = [] } = parseXml(resolve(cds.root, 'pom.xml')) ?? {}
21
- const v = version[0] === '${revision}' ? properties[0]?.revision[0] : version[0]
22
- if (v && REGEX_JAVA_VERSION.test(v)) this.appVersion = v
23
- if (artifactId[0]) this.appName = this.appId = artifactId[0].split(/-parent/)[0]
24
- if (description[0]) this.appDescription = description[0]
25
- }
26
- else if (exists('package.json')) {
27
- const { name, version, description } = JSON.parse(fs.readFileSync(join(cds.root, 'package.json')))
28
- this.appVersion = version
29
- const segments = name.trim().replace(/@/g, '').split('/').map(encodeURIComponent)
30
- this.appName = segments[segments.length - 1]
31
- this.appId = segments.join('.')
32
- this.appDescription = description ?? this.appDescription
33
- }
34
- }
35
-
36
- // REVISIT: There should be a better (and parallelizable) API provided by cds.env
37
- /**
38
- * Returns cds.env using 'production' profile by default as mta deployment is executed with having production profile set.
39
- */
40
- getEnv(profile = 'production') {
41
- const cdsEnvVar = process.env.CDS_ENV
42
- process.env.CDS_ENV = profile
43
- try {
44
- // REVISIT: this is invoked 5 times for cds add multitenancy
45
- return cds.env.for('cds')
46
- } finally {
47
- cdsEnvVar ? process.env.CDS_ENV = cdsEnvVar : delete process.env.CDS_ENV
48
- }
49
- }
50
-
51
- async readProject() {
52
- const env = this.getEnv()
53
- const { appVersion, appName, appId, appDescription } = this
54
- DEBUG?.({ env })
55
-
56
- const _hasFacet = template => require(`../template/${template}`).hasFacet(env)
57
- const project = {
58
- get profile() { return cds.cli.options?.for },
59
- get language() { return exists('pom.xml') ? 'java' : 'nodejs' },
60
- get srvPath() { return join(env.build.target, env.folders.srv.replace(/\/$/, '')).replace(/\\/g, '/') },
61
- get archiveName() {
62
- const pom = parseXml(resolve(cds.root, env.folders.srv, 'pom.xml'))
63
- return (pom?.artifactId?.[0] ?? basename(cds.root)) + '-exec.' + pom?.packaging?.[0]
64
- },
65
- get db() {
66
- const folder = env.folders.db
67
- const name = folder.replace(/\/$/, '')
68
- const path = join(env.build.target, name).replace(/\\/g, '/')
69
- return { folder, name, path }
70
- },
71
- get configFile() { return exists('pom.xml') ? '.cdsrc.json' : 'package.json' },
72
- get isNodejs() { return _hasFacet('nodejs') },
73
- get isJava() { return _hasFacet('java') },
74
- get isMultitenant() { return _hasFacet('multitenancy') },
75
- get isExtensible() { return _hasFacet('extensibility') },
76
- get hasHana() { return _hasFacet('hana') },
77
- get hasXsuaa() { return _hasFacet('xsuaa') },
78
- get hasApprouter() { return _hasFacet('approuter') },
79
- get hasDestination() { return _hasFacet('destination') },
80
- get hasHtml5Repo() { return _hasFacet('html5-repo') },
81
- get hasMta() { return _hasFacet('mta') },
82
- get hasHelm() { return _hasFacet('helm') },
83
- get appPath() { return env.folders.app ?? 'app' },
84
- get appVersion() { return appVersion },
85
- get appName() { return appName },
86
- get cleanedAppName() { return appName.replace('_', '-') }, // Required when _ isn't allowed in the namespace
87
- get appId() { return appId },
88
- get appDescription() { return appDescription },
89
- }
90
-
91
- DEBUG?.({ project })
92
- return project
93
- }
94
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes