@sap-ux/generator-adp 0.9.40 → 0.9.42

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.
@@ -227,11 +227,12 @@ class default_1 extends yeoman_generator_1.default {
227
227
  }
228
228
  else {
229
229
  const isExtensibilityExtInstalled = (0, fiori_generator_shared_1.isExtensionInstalled)(this.vscode, 'SAP.vscode-bas-extensibility');
230
- const isInternalUsage = (0, feature_toggle_1.isInternalFeaturesSettingEnabled)();
231
230
  const configQuestions = this.prompter.getPrompts({
232
231
  projectType: {
233
- default: isInternalUsage ? axios_extension_1.AdaptationProjectType.ON_PREMISE : axios_extension_1.AdaptationProjectType.CLOUD_READY
232
+ default: axios_extension_1.AdaptationProjectType.CLOUD_READY
234
233
  },
234
+ projectTypeCli: { hide: !this.isCli },
235
+ projectTypeClassicLabel: { hide: this.isCli },
235
236
  appValidationCli: { hide: !this.isCli },
236
237
  systemValidationCli: { hide: !this.isCli },
237
238
  shouldCreateExtProject: { isExtensibilityExtInstalled }
@@ -603,13 +604,16 @@ class default_1 extends yeoman_generator_1.default {
603
604
  const supportedProject = await (0, adp_tooling_1.getSupportedProject)(this.abapProvider);
604
605
  let selectedProjectType = axios_extension_1.AdaptationProjectType.ON_PREMISE;
605
606
  if (supportedProject === adp_tooling_1.SupportedProject.CLOUD_READY_AND_ON_PREM) {
606
- selectedProjectType = projectType ?? axios_extension_1.AdaptationProjectType.CLOUD_READY;
607
+ const isInternalUsage = (0, feature_toggle_1.isInternalFeaturesSettingEnabled)();
608
+ selectedProjectType = isInternalUsage
609
+ ? axios_extension_1.AdaptationProjectType.ON_PREMISE
610
+ : (projectType ?? axios_extension_1.AdaptationProjectType.CLOUD_READY);
607
611
  }
608
612
  else if (supportedProject === adp_tooling_1.SupportedProject.CLOUD_READY) {
609
613
  selectedProjectType = axios_extension_1.AdaptationProjectType.CLOUD_READY;
610
614
  }
611
615
  this.projectType = selectedProjectType;
612
- const applications = await (0, adp_tooling_1.loadApps)(this.abapProvider, this.isCustomerBase, selectedProjectType);
616
+ const applications = await (0, adp_tooling_1.loadApps)(this.abapProvider, this.isCustomerBase, supportedProject);
613
617
  this.telemetryCollector.setBatch({ numberOfApplications: applications.length });
614
618
  const application = applications.find((application) => application.id === baseApplicationName);
615
619
  if (!application) {
@@ -14,6 +14,7 @@ export declare class ConfigPrompter {
14
14
  private readonly systemLookup;
15
15
  private readonly logger;
16
16
  private readonly telemetryCollector;
17
+ private readonly CLOUD_DEV_ADP_STATUS_RELEASED;
17
18
  /**
18
19
  * Indicates if the current layer is based on a customer base.
19
20
  */
@@ -205,6 +206,21 @@ export declare class ConfigPrompter {
205
206
  * @returns {ListQuestion<ConfigAnswers>} The project type prompt configuration.
206
207
  */
207
208
  private getProjectTypeListPrompt;
209
+ /**
210
+ * Prompt with `when` hook only, which runs the project type propmt validation in a CLI context only.
211
+ * This overcomes yeoman limitation for prompts of type `list` for which the validation hook is not
212
+ * triggered by design in a CLI context.
213
+ *
214
+ * @returns {YUIQuestion} The project type for cli prompt configuration.
215
+ */
216
+ private getProjectTypeListPromptForCli;
217
+ /**
218
+ * Creates a label for the project type `classic`.
219
+ *
220
+ * @param {ProjectTypeClassicLabelPromptOptions} options - The project type `classic` label options.
221
+ * @returns {InputQuestion<ConfigAnswers>} The project type `classic` label configurations.
222
+ */
223
+ private getProjectTypeClassicLabelPrompt;
208
224
  /**
209
225
  * Creates the application list prompt configuration.
210
226
  *
@@ -311,6 +327,14 @@ export declare class ConfigPrompter {
311
327
  * @returns {void} Returns when validation is complete.
312
328
  */
313
329
  private validateManifest;
330
+ /**
331
+ * Validates the project type prompt.
332
+ *
333
+ * @param {AdaptationProjectType} projectType - The selected project type.
334
+ * @param {SourceApplication} application - The selected application.
335
+ * @returns {Promise<string|boolean>} A promise that resolves to true if valid, or an error message string if validation fails.
336
+ */
337
+ private validateProjectTypePrompt;
314
338
  /**
315
339
  * Sets the support flags for given application.
316
340
  *
@@ -320,5 +344,37 @@ export declare class ConfigPrompter {
320
344
  * @returns {void} Returns when flags are set.
321
345
  */
322
346
  private setSupportFlags;
347
+ /**
348
+ * Checks if the application is a released app on a mixed system that requires
349
+ * explicit project type selection by the user.
350
+ *
351
+ * @param {SourceApplication} application - The selected application.
352
+ * @returns {boolean} True if the application is released on a mixed system.
353
+ */
354
+ private isReleasedAppOnMixedSystem;
355
+ /**
356
+ * Checks if the application is a classic (non-released) app on a mixed system
357
+ * that should default to on-premise project type.
358
+ *
359
+ * @param {SourceApplication} application - The selected application.
360
+ * @returns {boolean} True if the application is classic on a mixed system.
361
+ */
362
+ private isClassicAppOnMixedSystem;
363
+ /**
364
+ * Determines the project type prompt visibility. In case the user is external,
365
+ * the selected application is released and the system is mixed the prompt need to be visible.
366
+ *
367
+ * @param {SourceApplication} application - The selected application.
368
+ * @returns {boolean} True if the project type must be displayed.
369
+ */
370
+ private shouldDisplayProjectTypePrompt;
371
+ /**
372
+ * Determines the project type classic label visibility. In case the user is external,
373
+ * the selected application is NOT released and the system is mixed the label need to be visible.
374
+ *
375
+ * @param {SourceApplication} application - The selected application.
376
+ * @returns {boolean} True if the project type classic label must be displayed.
377
+ */
378
+ private shouldDisplayProjectTypeClassicLabel;
323
379
  }
324
380
  //# sourceMappingURL=configuration.d.ts.map
@@ -22,6 +22,7 @@ class ConfigPrompter {
22
22
  systemLookup;
23
23
  logger;
24
24
  telemetryCollector;
25
+ CLOUD_DEV_ADP_STATUS_RELEASED = 'released';
25
26
  /**
26
27
  * Indicates if the current layer is based on a customer base.
27
28
  */
@@ -199,9 +200,11 @@ class ConfigPrompter {
199
200
  [types_1.configPromptNames.username]: this.getUsernamePrompt(promptOptions?.[types_1.configPromptNames.username]),
200
201
  [types_1.configPromptNames.password]: this.getPasswordPrompt(promptOptions?.[types_1.configPromptNames.password]),
201
202
  [types_1.configPromptNames.storeCredentials]: this.getStoreCredentialsPrompt(promptOptions?.[types_1.configPromptNames.storeCredentials]),
202
- [types_1.configPromptNames.projectType]: this.getProjectTypeListPrompt(promptOptions?.[types_1.configPromptNames.projectType]),
203
203
  [types_1.configPromptNames.application]: this.getApplicationListPrompt(promptOptions?.[types_1.configPromptNames.application]),
204
204
  [types_1.configPromptNames.appValidationCli]: this.getApplicationValidationPromptForCli(),
205
+ [types_1.configPromptNames.projectType]: this.getProjectTypeListPrompt(promptOptions?.[types_1.configPromptNames.projectType]),
206
+ [types_1.configPromptNames.projectTypeCli]: this.getProjectTypeListPromptForCli(),
207
+ [types_1.configPromptNames.projectTypeClassicLabel]: this.getProjectTypeClassicLabelPrompt(promptOptions?.[types_1.configPromptNames.projectTypeClassicLabel]),
205
208
  [types_1.configPromptNames.fioriId]: this.getFioriIdPrompt(),
206
209
  [types_1.configPromptNames.ach]: this.getAchPrompt(),
207
210
  [types_1.configPromptNames.shouldCreateExtProject]: this.getShouldCreateExtProjectPrompt(promptOptions?.[types_1.configPromptNames.shouldCreateExtProject])
@@ -356,27 +359,60 @@ class ConfigPrompter {
356
359
  },
357
360
  choices: choices_1.getProjectTypeChoices,
358
361
  default: options?.default,
359
- // We include the system in the validation to avoid prompt appearance
360
- // after pressing start over from the template wizard. This is needed
361
- // because the prompter is cached adn we do not want to reset cached data, because
362
- // back/forward navigation will be affected if we do so.
363
- when: ({ system }) => !!system && this.supportedProject === adp_tooling_1.SupportedProject.CLOUD_READY_AND_ON_PREM,
364
- validate: async (projectType) => {
365
- this.selectedProjectType = projectType;
366
- const isInternalUsage = (0, feature_toggle_1.isInternalFeaturesSettingEnabled)();
367
- if (this.selectedProjectType === axios_extension_1.AdaptationProjectType.CLOUD_READY && isInternalUsage) {
368
- return (0, i18n_1.t)('error.cloudSystemsForInternalUsers');
369
- }
370
- try {
371
- this.targetApps = await (0, adp_tooling_1.loadApps)(this.abapProvider, this.isCustomerBase, this.selectedProjectType);
362
+ when: ({ application }) => this.shouldDisplayProjectTypePrompt(application),
363
+ validate: async (projectType, { application }) => this.validateProjectTypePrompt(projectType, application),
364
+ additionalMessages: (_, answers) => (0, additional_messages_1.getAppAdditionalMessages)(answers?.application, {
365
+ hasSyncViews: this.containsSyncViews,
366
+ isV4AppInternalMode: this.isV4AppInternalMode,
367
+ isSupported: this.isSupported && !this.isPartiallySupported,
368
+ isPartiallySupported: this.isPartiallySupported
369
+ }, this.isApplicationSupported)
370
+ };
371
+ }
372
+ /**
373
+ * Prompt with `when` hook only, which runs the project type propmt validation in a CLI context only.
374
+ * This overcomes yeoman limitation for prompts of type `list` for which the validation hook is not
375
+ * triggered by design in a CLI context.
376
+ *
377
+ * @returns {YUIQuestion} The project type for cli prompt configuration.
378
+ */
379
+ getProjectTypeListPromptForCli() {
380
+ return {
381
+ name: types_1.configPromptNames.projectTypeCli,
382
+ when: async ({ application, projectType }) => {
383
+ if (!application || !projectType) {
384
+ return false;
372
385
  }
373
- catch (error) {
374
- return error.message;
386
+ const projectTypeValidationResult = await this.validateProjectTypePrompt(projectType, application);
387
+ if (typeof projectTypeValidationResult === 'string') {
388
+ throw new Error(projectTypeValidationResult);
375
389
  }
376
- return true;
390
+ return false;
377
391
  }
378
392
  };
379
393
  }
394
+ /**
395
+ * Creates a label for the project type `classic`.
396
+ *
397
+ * @param {ProjectTypeClassicLabelPromptOptions} options - The project type `classic` label options.
398
+ * @returns {InputQuestion<ConfigAnswers>} The project type `classic` label configurations.
399
+ */
400
+ getProjectTypeClassicLabelPrompt(options) {
401
+ return {
402
+ type: 'input',
403
+ name: types_1.configPromptNames.projectTypeClassicLabel,
404
+ message: '',
405
+ guiOptions: {
406
+ type: 'label',
407
+ mandatory: false
408
+ },
409
+ when: ({ application }) => !options?.hide && this.shouldDisplayProjectTypeClassicLabel(application),
410
+ additionalMessages: () => ({
411
+ message: (0, i18n_1.t)('prompts.projectTypeClassicLabel'),
412
+ severity: yeoman_ui_types_1.Severity.information
413
+ })
414
+ };
415
+ }
380
416
  /**
381
417
  * Creates the application list prompt configuration.
382
418
  *
@@ -396,14 +432,29 @@ class ConfigPrompter {
396
432
  },
397
433
  choices: () => (0, choices_1.getApplicationChoices)(this.targetApps),
398
434
  default: options?.default,
399
- validate: async (value) => await this.validateAppPrompt(value),
435
+ validate: (application) => {
436
+ if (this.shouldDisplayProjectTypePrompt(application)) {
437
+ // Move the app validation into the projectType prompt.
438
+ return true;
439
+ }
440
+ if (this.isClassicAppOnMixedSystem(application)) {
441
+ this.selectedProjectType = axios_extension_1.AdaptationProjectType.ON_PREMISE;
442
+ }
443
+ return this.validateAppPrompt(application);
444
+ },
400
445
  when: (answers) => (0, conditions_1.showApplicationQuestion)(answers, !!this.targetApps?.length, this.isAuthRequired, this.isLoginSuccessful),
401
- additionalMessages: (app) => (0, additional_messages_1.getAppAdditionalMessages)(app, {
402
- hasSyncViews: this.containsSyncViews,
403
- isV4AppInternalMode: this.isV4AppInternalMode,
404
- isSupported: this.isSupported && !this.isPartiallySupported,
405
- isPartiallySupported: this.isPartiallySupported
406
- }, this.isApplicationSupported)
446
+ additionalMessages: (input) => {
447
+ const application = input;
448
+ if (this.shouldDisplayProjectTypePrompt(application)) {
449
+ return undefined;
450
+ }
451
+ return (0, additional_messages_1.getAppAdditionalMessages)(application, {
452
+ hasSyncViews: this.containsSyncViews,
453
+ isV4AppInternalMode: this.isV4AppInternalMode,
454
+ isSupported: this.isSupported && !this.isPartiallySupported,
455
+ isPartiallySupported: this.isPartiallySupported
456
+ }, this.isApplicationSupported);
457
+ }
407
458
  };
408
459
  }
409
460
  /**
@@ -414,11 +465,14 @@ class ConfigPrompter {
414
465
  getApplicationValidationPromptForCli() {
415
466
  return {
416
467
  name: types_1.configPromptNames.appValidationCli,
417
- when: async (answers) => {
418
- if (!answers.application) {
468
+ when: async ({ application }) => {
469
+ if (!application || this.shouldDisplayProjectTypePrompt(application)) {
419
470
  return false;
420
471
  }
421
- const result = await this.validateAppPrompt(answers.application);
472
+ if (this.isClassicAppOnMixedSystem(application)) {
473
+ this.selectedProjectType = axios_extension_1.AdaptationProjectType.ON_PREMISE;
474
+ }
475
+ const result = await this.validateAppPrompt(application);
422
476
  if (typeof result === 'string') {
423
477
  throw new Error(result);
424
478
  }
@@ -566,7 +620,7 @@ class ConfigPrompter {
566
620
  return validationResult;
567
621
  }
568
622
  this.telemetryCollector.startTiming('applicationListLoadingTime');
569
- this.targetApps = await (0, adp_tooling_1.loadApps)(this.abapProvider, this.isCustomerBase, this.selectedProjectType);
623
+ this.targetApps = await (0, adp_tooling_1.loadApps)(this.abapProvider, this.isCustomerBase, this.supportedProject);
570
624
  this.telemetryCollector.setBatch({ numberOfApplications: this.targetApps.length });
571
625
  this.telemetryCollector.endTiming('applicationListLoadingTime');
572
626
  this.isLoginSuccessful = true;
@@ -612,7 +666,7 @@ class ConfigPrompter {
612
666
  return validationResult;
613
667
  }
614
668
  this.telemetryCollector.startTiming('applicationListLoadingTime');
615
- this.targetApps = await (0, adp_tooling_1.loadApps)(this.abapProvider, this.isCustomerBase, this.selectedProjectType);
669
+ this.targetApps = await (0, adp_tooling_1.loadApps)(this.abapProvider, this.isCustomerBase, this.supportedProject);
616
670
  this.telemetryCollector.setBatch({ numberOfApplications: this.targetApps.length });
617
671
  this.telemetryCollector.endTiming('applicationListLoadingTime');
618
672
  return true;
@@ -629,6 +683,8 @@ class ConfigPrompter {
629
683
  */
630
684
  async validateAppData(app) {
631
685
  try {
686
+ // Reset the flag when we are selecting a new application from the list.
687
+ this.isApplicationSupported = false;
632
688
  const sourceManifest = new adp_tooling_1.SourceManifest(this.abapProvider, app.id, this.logger);
633
689
  const isSupported = await (0, adp_tooling_1.isAppSupported)(this.abapProvider, app.id, this.logger);
634
690
  if (isSupported) {
@@ -677,6 +733,10 @@ class ConfigPrompter {
677
733
  else if (this.supportedProject === adp_tooling_1.SupportedProject.ON_PREM) {
678
734
  this.selectedProjectType = axios_extension_1.AdaptationProjectType.ON_PREMISE;
679
735
  }
736
+ else if (this.supportedProject === adp_tooling_1.SupportedProject.CLOUD_READY_AND_ON_PREM &&
737
+ (0, feature_toggle_1.isInternalFeaturesSettingEnabled)()) {
738
+ this.selectedProjectType = axios_extension_1.AdaptationProjectType.ON_PREMISE;
739
+ }
680
740
  }
681
741
  catch (error) {
682
742
  this.handleSystemError(error);
@@ -752,6 +812,21 @@ class ConfigPrompter {
752
812
  throw new Error((0, i18n_1.t)('error.appDoesNotSupportFlexibility'));
753
813
  }
754
814
  }
815
+ /**
816
+ * Validates the project type prompt.
817
+ *
818
+ * @param {AdaptationProjectType} projectType - The selected project type.
819
+ * @param {SourceApplication} application - The selected application.
820
+ * @returns {Promise<string|boolean>} A promise that resolves to true if valid, or an error message string if validation fails.
821
+ */
822
+ async validateProjectTypePrompt(projectType, application) {
823
+ this.selectedProjectType = projectType;
824
+ const appValidationResult = await this.validateAppPrompt(application);
825
+ if (typeof appValidationResult === 'string') {
826
+ return appValidationResult;
827
+ }
828
+ return true;
829
+ }
755
830
  /**
756
831
  * Sets the support flags for given application.
757
832
  *
@@ -766,6 +841,48 @@ class ConfigPrompter {
766
841
  this.isV4AppInternalMode = (0, adp_tooling_1.isV4Application)(this.appManifest) && !this.isCustomerBase;
767
842
  this.containsSyncViews = (0, adp_tooling_1.isSyncLoadedView)(this.appManifest?.['sap.ui5']);
768
843
  }
844
+ /**
845
+ * Checks if the application is a released app on a mixed system that requires
846
+ * explicit project type selection by the user.
847
+ *
848
+ * @param {SourceApplication} application - The selected application.
849
+ * @returns {boolean} True if the application is released on a mixed system.
850
+ */
851
+ isReleasedAppOnMixedSystem(application) {
852
+ return (application?.cloudDevAdaptationStatus === this.CLOUD_DEV_ADP_STATUS_RELEASED &&
853
+ this.supportedProject === adp_tooling_1.SupportedProject.CLOUD_READY_AND_ON_PREM);
854
+ }
855
+ /**
856
+ * Checks if the application is a classic (non-released) app on a mixed system
857
+ * that should default to on-premise project type.
858
+ *
859
+ * @param {SourceApplication} application - The selected application.
860
+ * @returns {boolean} True if the application is classic on a mixed system.
861
+ */
862
+ isClassicAppOnMixedSystem(application) {
863
+ return (this.supportedProject === adp_tooling_1.SupportedProject.CLOUD_READY_AND_ON_PREM &&
864
+ application?.cloudDevAdaptationStatus === '');
865
+ }
866
+ /**
867
+ * Determines the project type prompt visibility. In case the user is external,
868
+ * the selected application is released and the system is mixed the prompt need to be visible.
869
+ *
870
+ * @param {SourceApplication} application - The selected application.
871
+ * @returns {boolean} True if the project type must be displayed.
872
+ */
873
+ shouldDisplayProjectTypePrompt(application) {
874
+ return !(0, feature_toggle_1.isInternalFeaturesSettingEnabled)() && this.isReleasedAppOnMixedSystem(application);
875
+ }
876
+ /**
877
+ * Determines the project type classic label visibility. In case the user is external,
878
+ * the selected application is NOT released and the system is mixed the label need to be visible.
879
+ *
880
+ * @param {SourceApplication} application - The selected application.
881
+ * @returns {boolean} True if the project type classic label must be displayed.
882
+ */
883
+ shouldDisplayProjectTypeClassicLabel(application) {
884
+ return !(0, feature_toggle_1.isInternalFeaturesSettingEnabled)() && this.isClassicAppOnMixedSystem(application);
885
+ }
769
886
  }
770
887
  exports.ConfigPrompter = ConfigPrompter;
771
888
  //# sourceMappingURL=configuration.js.map
@@ -18,7 +18,7 @@ const getSystemAdditionalMessages = (flexUICapability, projectType) => {
18
18
  }
19
19
  if (projectType === axios_extension_1.AdaptationProjectType.CLOUD_READY) {
20
20
  return {
21
- message: `${(0, i18n_1.t)('prompts.projectTypeLabel')}: ${axios_extension_1.AdaptationProjectType.CLOUD_READY}`,
21
+ message: (0, i18n_1.t)('prompts.projectTypeCloudReadyLabel'),
22
22
  severity: yeoman_ui_types_1.Severity.information
23
23
  };
24
24
  }
@@ -26,7 +26,7 @@ const getSystemAdditionalMessages = (flexUICapability, projectType) => {
26
26
  if (isUIFlexSupported) {
27
27
  return isDtaFolderDeploymentSupported
28
28
  ? {
29
- message: `${(0, i18n_1.t)('prompts.projectTypeLabel')}: ${axios_extension_1.AdaptationProjectType.ON_PREMISE}`,
29
+ message: (0, i18n_1.t)('prompts.projectTypeClassicLabel'),
30
30
  severity: yeoman_ui_types_1.Severity.information
31
31
  }
32
32
  : {
@@ -36,6 +36,8 @@ export declare enum configPromptNames {
36
36
  password = "password",
37
37
  storeCredentials = "storeCredentials",
38
38
  projectType = "projectType",
39
+ projectTypeCli = "projectTypeCli",
40
+ projectTypeClassicLabel = "projectTypeClassicLabel",
39
41
  application = "application",
40
42
  appValidationCli = "appValidationCli",
41
43
  fioriId = "fioriId",
@@ -69,6 +71,9 @@ export interface ProjectTypePromptOptions {
69
71
  default?: string;
70
72
  hide?: boolean;
71
73
  }
74
+ export interface ProjectTypeClassicLabelPromptOptions {
75
+ hide?: boolean;
76
+ }
72
77
  export interface ApplicationPromptOptions {
73
78
  default?: string;
74
79
  hide?: boolean;
@@ -93,6 +98,8 @@ export type ConfigPromptOptions = Partial<{
93
98
  [configPromptNames.password]: PasswordPromptOptions;
94
99
  [configPromptNames.storeCredentials]: StoreCredentialsPromptOptions;
95
100
  [configPromptNames.projectType]: ProjectTypePromptOptions;
101
+ [configPromptNames.projectTypeCli]: CliValidationPromptOptions;
102
+ [configPromptNames.projectTypeClassicLabel]: ProjectTypeClassicLabelPromptOptions;
96
103
  [configPromptNames.application]: ApplicationPromptOptions;
97
104
  [configPromptNames.appValidationCli]: CliValidationPromptOptions;
98
105
  [configPromptNames.fioriId]: FioriIdPromptOptions;
@@ -12,6 +12,8 @@ var configPromptNames;
12
12
  configPromptNames["password"] = "password";
13
13
  configPromptNames["storeCredentials"] = "storeCredentials";
14
14
  configPromptNames["projectType"] = "projectType";
15
+ configPromptNames["projectTypeCli"] = "projectTypeCli";
16
+ configPromptNames["projectTypeClassicLabel"] = "projectTypeClassicLabel";
15
17
  configPromptNames["application"] = "application";
16
18
  configPromptNames["appValidationCli"] = "appValidationCli";
17
19
  configPromptNames["fioriId"] = "fioriId";
@@ -39,12 +39,13 @@
39
39
  "extProjectSuggestion": "Do you want to create an extension project instead?",
40
40
  "createExtProjectWithSyncViewsLabel": "Do you want to create an extension project instead? An extension project gives you the ability to create controller extensions for synchronous and asynchronous views.",
41
41
  "createExtProjectContinueLabel": "Please select whether you want to continue.",
42
- "projectTypeLabel": "Project Type",
43
42
  "projectNameLabel": "Project Name",
44
43
  "projectNameTooltip": "Enter the project name for your application variant.",
45
- "projectTypeListLabel": "Select Project Type",
44
+ "projectTypeListLabel": "Project Type",
46
45
  "projectTypeCloudReadyName": "Cloud Ready",
47
- "projectTypeOnPremName": "onPremise",
46
+ "projectTypeOnPremName": "Classic",
47
+ "projectTypeClassicLabel": "Project Type: Classic",
48
+ "projectTypeCloudReadyLabel": "Project Type: Cloud Ready",
48
49
  "appTitleLabel": "Application Title",
49
50
  "appTitleTooltip": "Enter the application title for your application variant.",
50
51
  "appTitleDefault": "App Variant Title",
@@ -92,7 +93,7 @@
92
93
  "writingPhase": "An error occurred in the writing phase of the adaptation project generation. To see the error, view the logs.",
93
94
  "telemetry": "An error occurred when sending telemetry data: {{- error}}. To see the error, view the logs.",
94
95
  "updatingApp": "An error occurred when creating a new adaptation project. To see the error, view the logs.",
95
- "cloudSystemsForInternalUsers": "You have selected a system that does not support On-Premise adaptation projects. Please select a supported system.",
96
+ "cloudSystemsForInternalUsers": "You have selected a system that does not support Classic adaptation projects. Please select a supported system.",
96
97
  "notDeployableNotFlexEnabledSystemError": "The system that you have selected is not an ABAP On-Premise system. Adaptation projects are only supported on those systems. Please choose an ABAP On-Premise system which supports flexibility and DTA_FOLDER deployment.",
97
98
  "notDeployableSystemError": "The system that you have selected is not an ABAP On-Premise system which supports `DTA_FOLDER` deployment. Adaptation projects are only supported on those systems. Please choose an ABAP On-Premise system which supports `DTA_FOLDER` deployment.",
98
99
  "notFlexEnabledError": "The system that you have selected is not an ABAP On-Premise system which supports flexibility. Adaptation projects are only supported on those systems. Please choose an ABAP On-Premise system which supports flexibility. If you continue, you will only be able to create an extension project.",
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "displayName": "SAPUI5 Adaptation Project",
4
4
  "homepage": "https://help.sap.com/viewer/584e0bcbfd4a4aff91c815cefa0bce2d/Cloud/en-US/ada9567b767941aba8d49fdb4fdedea7.html",
5
5
  "description": "Adaptation project allows you to create an app variant for an existing SAP Fiori elements-based or SAPUI5 freestyle application, without changing the original application.",
6
- "version": "0.9.40",
6
+ "version": "0.9.42",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "https://github.com/SAP/open-ux-tools.git",
@@ -30,19 +30,19 @@
30
30
  "i18next": "25.8.20",
31
31
  "yeoman-generator": "5.10.0",
32
32
  "uuid": "11.1.0",
33
- "@sap-ux/adp-tooling": "0.18.102",
33
+ "@sap-ux/adp-tooling": "0.18.104",
34
34
  "@sap-ux/axios-extension": "1.25.26",
35
35
  "@sap-ux/btp-utils": "1.1.11",
36
36
  "@sap-ux/feature-toggle": "0.3.7",
37
- "@sap-ux/inquirer-common": "0.11.28",
37
+ "@sap-ux/inquirer-common": "0.11.29",
38
38
  "@sap-ux/logger": "0.8.3",
39
- "@sap-ux/project-access": "1.35.16",
39
+ "@sap-ux/project-access": "1.35.17",
40
40
  "@sap-ux/store": "1.5.11",
41
41
  "@sap-ux/system-access": "0.7.2",
42
- "@sap-ux/project-input-validator": "0.6.71",
43
- "@sap-ux/fiori-generator-shared": "0.13.90",
44
- "@sap-ux/odata-service-writer": "0.31.2",
45
- "@sap-ux/telemetry": "0.6.90"
42
+ "@sap-ux/project-input-validator": "0.6.72",
43
+ "@sap-ux/fiori-generator-shared": "0.13.91",
44
+ "@sap-ux/odata-service-writer": "0.31.3",
45
+ "@sap-ux/telemetry": "0.6.91"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@jest/types": "30.2.0",
@@ -57,7 +57,7 @@
57
57
  "fs-extra": "11.3.4",
58
58
  "rimraf": "6.1.3",
59
59
  "yeoman-test": "6.3.0",
60
- "@sap-ux/deploy-config-sub-generator": "0.5.123"
60
+ "@sap-ux/deploy-config-sub-generator": "0.5.125"
61
61
  },
62
62
  "engines": {
63
63
  "node": ">=20.x"