@sapui5/sap.ushell_abap 1.148.1 → 1.149.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 (51) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell_abap/.library +2 -1
  3. package/src/main/js/sap/ushell_abap/adapters/abap/AppStateAdapter.js +1 -1
  4. package/src/main/js/sap/ushell_abap/adapters/abap/ClientSideTargetResolutionAdapter.js +3 -3
  5. package/src/main/js/sap/ushell_abap/adapters/abap/CommonDataModelAdapter.js +1 -1
  6. package/src/main/js/sap/ushell_abap/adapters/abap/ConfigurationDefaultsAdapter.js +1 -1
  7. package/src/main/js/sap/ushell_abap/adapters/abap/ContainerAdapter.js +4 -2
  8. package/src/main/js/sap/ushell_abap/adapters/abap/FlpLaunchPageAdapter.js +1 -1
  9. package/src/main/js/sap/ushell_abap/adapters/abap/LaunchPageAdapter.js +1 -1
  10. package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionAdapter.js +1 -1
  11. package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionInternalAdapter.js +1 -1
  12. package/src/main/js/sap/ushell_abap/adapters/abap/PageBuildingAdapter.js +4 -2
  13. package/src/main/js/sap/ushell_abap/adapters/abap/PagePersistenceAdapter.js +4 -2
  14. package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationAdapter.js +1 -1
  15. package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationV2Adapter.js +1 -1
  16. package/src/main/js/sap/ushell_abap/adapters/abap/SearchAdapter.js +1 -1
  17. package/src/main/js/sap/ushell_abap/adapters/abap/SupportTicketAdapter.js +1 -1
  18. package/src/main/js/sap/ushell_abap/adapters/abap/Ui5ComponentLoaderAdapter.js +1 -1
  19. package/src/main/js/sap/ushell_abap/adapters/abap/UserInfoAdapter.js +3 -1
  20. package/src/main/js/sap/ushell_abap/adapters/hana/ContainerAdapter.js +1 -1
  21. package/src/main/js/sap/ushell_abap/bootstrap/BootTask/MarkPerformance.js +25 -0
  22. package/src/main/js/sap/ushell_abap/bootstrap/BootTask/PrepareDirectAppStart.js +18 -0
  23. package/src/main/js/sap/ushell_abap/bootstrap/BootTask/RequestGroups.js +36 -2
  24. package/src/main/js/sap/ushell_abap/bootstrap/BootTask/RequestTargetMappings.js +11 -0
  25. package/src/main/js/sap/ushell_abap/bootstrap/BootTask.js +32 -14
  26. package/src/main/js/sap/ushell_abap/bootstrap/DirectAppStart.js +71 -10
  27. package/src/main/js/sap/ushell_abap/bootstrap/LoadLaunchpad/CreateRenderer.js +21 -2
  28. package/src/main/js/sap/ushell_abap/bootstrap/LoadLaunchpad/InitXhrLogon.js +59 -19
  29. package/src/main/js/sap/ushell_abap/bootstrap/LoadLaunchpad/RequestPages.js +56 -5
  30. package/src/main/js/sap/ushell_abap/bootstrap/LoadLaunchpad.js +32 -11
  31. package/src/main/js/sap/ushell_abap/bootstrap/LoadLaunchpadModule.js +4 -1
  32. package/src/main/js/sap/ushell_abap/bootstrap/PageSetsRequestHandler.js +54 -42
  33. package/src/main/js/sap/ushell_abap/bootstrap/PlatformConfig.js +7 -9
  34. package/src/main/js/sap/ushell_abap/bootstrap/SAPCompanionConditionSetter.js +33 -28
  35. package/src/main/js/sap/ushell_abap/bootstrap/StartupRequestHandler.js +34 -23
  36. package/src/main/js/sap/ushell_abap/bootstrap/ThemeHandler.js +90 -2
  37. package/src/main/js/sap/ushell_abap/bootstrap/XhrFactory.js +23 -13
  38. package/src/main/js/sap/ushell_abap/bootstrap/XhrLogonEventHandler.js +33 -10
  39. package/src/main/js/sap/ushell_abap/bootstrap/XhrLogonLibLoader.js +49 -1
  40. package/src/main/js/sap/ushell_abap/bootstrap/abap-def-dev.js +1 -0
  41. package/src/main/js/sap/ushell_abap/bootstrap/abap-def-loader.js +4 -0
  42. package/src/main/js/sap/ushell_abap/bootstrap/abap-def.js +1 -0
  43. package/src/main/js/sap/ushell_abap/bootstrap/abapConstants.js +3 -0
  44. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.js +2 -0
  45. package/src/main/js/sap/ushell_abap/components/TCodeNavigation.js +1 -1
  46. package/src/main/js/sap/ushell_abap/integration/WebSsoBridge.js +57 -0
  47. package/src/main/js/sap/ushell_abap/library.js +1 -1
  48. package/src/main/js/sap/ushell_abap/pbServices/ui2/Contracts.js +3 -3
  49. package/src/main/js/sap/ushell_abap/pbServices/ui2/PageBuildingService.js +4 -16
  50. package/src/main/js/sap/ushell_abap/pbServices/ui2/Utils.js +3 -2
  51. package/ui5.yaml +18 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.ushell_abap",
3
- "version": "1.148.1",
3
+ "version": "1.149.0",
4
4
  "description": "SAPUI5 Library sap.ushell_abap",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -2,7 +2,7 @@
2
2
  <library xmlns="http://www.sap.com/sap.ui.library.xsd">
3
3
  <name>sap.ushell_abap</name>
4
4
  <vendor>SAP SE</vendor>
5
- <version>1.148.1</version>
5
+ <version>1.149.0</version>
6
6
  <copyright>Copyright (c) 2009-2026 SAP SE, All Rights Reserved</copyright>
7
7
  <documentation>SAP library: sap.ushell_abap</documentation>
8
8
 
@@ -39,6 +39,7 @@
39
39
  <exclude name="**/*-preload" />
40
40
  <exclude name="**/preload-bundles/**/*" />
41
41
  <exclude name="sap/ushell_abap/bootstrap/appruntime-min*" />
42
+ <exclude name="sap/ushell_abap/bootstrap/bootBundle*" />
42
43
  <exclude name="sap/ushell_abap/bootstrap/evo/abap*" />
43
44
  <exclude name="sap/ushell_abap/bootstrap/evo/core-min*" />
44
45
  <exclude name="sap/ushell_abap/bootstrap/evo/core-ext-light*" />
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The Unified Shell's AppStateAdapter for the ABAP platform.
5
- * @version 1.148.1
5
+ * @version 1.149.0
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/util/ObjectPath",
@@ -9,15 +9,15 @@
9
9
  * <li>provide the resolveHashFragmentFallback function, a fallback method called by ClientSideTargetResolution service.</li>
10
10
  * </ul>
11
11
  *
12
- * @version 1.148.1
12
+ * @version 1.149.0
13
13
  */
14
14
  sap.ui.define([
15
15
  "sap/base/util/ObjectPath",
16
16
  "sap/base/util/isPlainObject",
17
17
  "sap/base/util/deepExtend",
18
18
  "sap/ushell/base/SAPBusinessClientEnablement",
19
+ "sap/ushell/base/UrlParsing",
19
20
  "sap/ushell/utils",
20
- "sap/ushell/utils/UrlParsing",
21
21
  "sap/base/Log",
22
22
  "sap/ushell_abap/pbServices/ui2/ODataWrapper",
23
23
  "sap/ushell_abap/pbServices/ui2/Utils",
@@ -29,8 +29,8 @@ sap.ui.define([
29
29
  isPlainObject,
30
30
  deepExtend,
31
31
  SAPBusinessClientEnablement,
32
- ushellUtils,
33
32
  UrlParsing,
33
+ ushellUtils,
34
34
  Log,
35
35
  ODataWrapper,
36
36
  Utils,
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @fileOverview The Unified Shell's CommonDataModelAdapter for the ABAP platform, it is used to avoid 404 when no adapter is found
4
4
  *
5
- * @version 1.148.1
5
+ * @version 1.149.0
6
6
  */
7
7
  sap.ui.define([
8
8
  ], () => {
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The ConfigurationDefaults adapter for the ABAP platform.
5
- * @version 1.148.1
5
+ * @version 1.149.0
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ushell_abap/bootstrap/abapConstants",
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @fileOverview The Unified Shell's container adapter for the ABAP platform.
4
4
  *
5
- * @version 1.148.1
5
+ * @version 1.149.0
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ui/thirdparty/jquery",
@@ -17,6 +17,7 @@ sap.ui.define([
17
17
  "sap/base/util/deepClone",
18
18
  "sap/base/util/ObjectPath",
19
19
  "sap/base/Log",
20
+ "sap/ushell/Config",
20
21
  "sap/ushell/Container"
21
22
  ], (
22
23
  jQuery,
@@ -31,6 +32,7 @@ sap.ui.define([
31
32
  deepClone,
32
33
  ObjectPath,
33
34
  Log,
35
+ Config,
34
36
  Container
35
37
  ) => {
36
38
  "use strict";
@@ -513,7 +515,7 @@ sap.ui.define([
513
515
  function isUserImageEnabled () {
514
516
  // just as quick workaround, we read the renderer configuration directly
515
517
  // will be removed later
516
- const oConfig = window["sap-ushell-config"];
518
+ const oConfig = Config.getRawBootstrapConfig();
517
519
  const vUserImageEnabled = ObjectPath.get("renderers.fiori2.componentData.config.enableUserImage", oConfig);
518
520
 
519
521
  return !!vUserImageEnabled;
@@ -3,7 +3,7 @@
3
3
  /**
4
4
  * @fileoverview The Unified Shell's page building adapter for the ABAP platform. Private copy. Classical home page functions are deprecated.
5
5
  * @since 1.121
6
- * @version 1.148.1
6
+ * @version 1.149.0
7
7
  */
8
8
  sap.ui.define([
9
9
  "sap/ui/thirdparty/URI",
@@ -4,7 +4,7 @@
4
4
  * @fileOverview The Unified Shell's page building adapter for the ABAP platform.
5
5
  *
6
6
  * @deprecated since 1.100
7
- * @version 1.148.1
7
+ * @version 1.149.0
8
8
  */
9
9
  sap.ui.define([
10
10
  "sap/ushell_abap/adapters/abap/FlpLaunchPageAdapter"
@@ -8,7 +8,7 @@
8
8
  * service now calls the ClientSideTargetResolution service in the ABAP
9
9
  * platform.
10
10
  *
11
- * @version 1.148.1
11
+ * @version 1.149.0
12
12
  */
13
13
  sap.ui.define([], () => {
14
14
  "use strict";
@@ -8,7 +8,7 @@
8
8
  * service now calls the ClientSideTargetResolution service in the ABAP
9
9
  * platform.
10
10
  *
11
- * @version 1.148.1
11
+ * @version 1.149.0
12
12
  * @since 1.121
13
13
  */
14
14
  sap.ui.define([], () => {
@@ -2,15 +2,17 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The Unified Shell's page building adapter for the ABAP platform.
5
- * @version 1.148.1
5
+ * @version 1.149.0
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/util/ObjectPath",
9
9
  "sap/base/Log",
10
+ "sap/ushell/Config",
10
11
  "sap/ushell_abap/pbServices/ui2/Factory"
11
12
  ], (
12
13
  ObjectPath,
13
14
  Log,
15
+ Config,
14
16
  Factory
15
17
  ) => {
16
18
  "use strict";
@@ -90,7 +92,7 @@ sap.ui.define([
90
92
  }
91
93
 
92
94
  // Get CacheId for PAGE_BUILDER_PERS when available
93
- const sCacheId = ObjectPath.get("sap-ushell-config.services.Container.adapter.config.services.pbFioriHome.cacheId");
95
+ const sCacheId = ObjectPath.get("services.Container.adapter.config.services.pbFioriHome.cacheId", Config.getRawBootstrapConfig());
94
96
 
95
97
  const oFactory = Factory.createFactory(
96
98
  sPageBuilderServiceUrl,
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview PagePersistenceAdapter for the ABAP platform.
5
- * @version 1.148.1
5
+ * @version 1.149.0
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/i18n/Localization",
@@ -11,6 +11,7 @@ sap.ui.define([
11
11
  "sap/ushell/resources",
12
12
  "sap/ushell/utils/chipsUtils",
13
13
  "sap/ushell/Container",
14
+ "sap/ushell/Config",
14
15
  "sap/ushell/utils/LaunchpadError"
15
16
  ], (
16
17
  Localization,
@@ -19,6 +20,7 @@ sap.ui.define([
19
20
  ushellResources,
20
21
  chipsUtils,
21
22
  Container,
23
+ Config,
22
24
  LaunchpadError
23
25
  ) => {
24
26
  "use strict";
@@ -31,7 +33,7 @@ sap.ui.define([
31
33
  * @returns {string} the service url.
32
34
  */
33
35
  function getServiceUrl () {
34
- const oServiceConfig = (window["sap-ushell-config"].services && window["sap-ushell-config"].services.PagePersistence) || {};
36
+ const oServiceConfig = Config.getRawBootstrapConfig().services?.PagePersistence || {};
35
37
  return (ObjectPath.get("config.serviceUrl", oServiceConfig.adapter) || "").replace(/\/?$/, "/");
36
38
  }
37
39
 
@@ -7,7 +7,7 @@
7
7
  * Container header properties transported via pseudo-items are mapped to the
8
8
  * respective header properties in setItem/getItem/delItem
9
9
  *
10
- * @version 1.148.1
10
+ * @version 1.149.0
11
11
  */
12
12
  sap.ui.define([
13
13
  "sap/ushell_abap/adapters/abap/AdapterContainer",
@@ -7,7 +7,7 @@
7
7
  * Container header properties transported via pseudo-items are mapped to the
8
8
  * respective header properties in setItem/getItem/delItem
9
9
  *
10
- * @version 1.148.1
10
+ * @version 1.149.0
11
11
  */
12
12
  sap.ui.define([
13
13
  "./PersonalizationAdapter"
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The Search adapter for the ABAP platform.
5
- * @version 1.148.1
5
+ * @version 1.149.0
6
6
  */
7
7
  sap.ui.define([], () => {
8
8
  "use strict";
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The SupportTicket adapter for the ABAP platform.
5
- * @version 1.148.1
5
+ * @version 1.149.0
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/util/isEmptyObject",
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @fileOverview The Unified Shell's Ui5ComponentLoaderAdapter for the ABAP platform
4
4
  *
5
- * @version 1.148.1
5
+ * @version 1.149.0
6
6
  */
7
7
  sap.ui.define([
8
8
  ], () => {
@@ -8,6 +8,7 @@ sap.ui.define([
8
8
  "sap/base/Log",
9
9
  "sap/ushell/resources",
10
10
  "sap/base/i18n/date/CalendarWeekNumbering",
11
+ "sap/ushell/Config",
11
12
  "sap/ushell/utils/LaunchpadError"
12
13
  ], (
13
14
  ODataWrapper,
@@ -17,6 +18,7 @@ sap.ui.define([
17
18
  Log,
18
19
  resources,
19
20
  CalendarWeekNumbering,
21
+ Config,
20
22
  LaunchpadError
21
23
  ) => {
22
24
  "use strict";
@@ -47,7 +49,7 @@ sap.ui.define([
47
49
  this._getThemeList = async function () {
48
50
  let sThemingAPI = "/sap/bc/rest/themes"; // ABAP end point
49
51
 
50
- const sClient = window["sap-ushell-config"]?.startupConfig?.client;
52
+ const sClient = Config.getRawBootstrapConfig()?.startupConfig?.client;
51
53
  if (sClient) {
52
54
  sThemingAPI += `/~client-${sClient}`;
53
55
  }
@@ -3,7 +3,7 @@
3
3
  /**
4
4
  * @fileOverview The Unified Shell's container adapter for the HANA platform.
5
5
  *
6
- * @version 1.148.1
6
+ * @version 1.149.0
7
7
  */
8
8
  sap.ui.define([
9
9
  "sap/ui/thirdparty/jquery",
@@ -1,14 +1,39 @@
1
1
  // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+ /**
3
+ * @fileoverview This module marks the performance of the ABAP bootstrap process.
4
+ */
2
5
  sap.ui.define([
3
6
  ], (
4
7
  ) => {
5
8
  "use strict";
6
9
 
10
+ /**
11
+ * @alias sap.ushell_abap.bootstrap.BootTask.MarkPerformance
12
+ * @namespace
13
+ * @description This module marks the performance of the ABAP bootstrap process.
14
+ *
15
+ * @since 1.147.0
16
+ * @private
17
+ */
7
18
  class MarkPerformance {
19
+ /**
20
+ * Marks the start of the ABAP bootstrap process.
21
+ * @returns {Promise<undefined>} A promise that resolves when the operation is complete.
22
+ *
23
+ * @since 1.147.0
24
+ * @private
25
+ */
8
26
  async run () {
9
27
  performance?.mark("FLP - boottask start");
10
28
  }
11
29
 
30
+ /**
31
+ * Marks the end of the ABAP bootstrap process.
32
+ * @returns {Promise<undefined>} A promise that resolves when the operation is complete.
33
+ *
34
+ * @since 1.147.0
35
+ * @private
36
+ */
12
37
  async beforeReady () {
13
38
  performance?.mark("FLP - boottask end");
14
39
  }
@@ -1,4 +1,7 @@
1
1
  // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+ /**
3
+ * @fileoverview This module prepares the direct app start by preloading necessary resources.
4
+ */
2
5
  sap.ui.define([
3
6
  "sap/base/Log",
4
7
  "sap/ushell_abap/bootstrap/DirectAppStart"
@@ -8,7 +11,22 @@ sap.ui.define([
8
11
  ) => {
9
12
  "use strict";
10
13
 
14
+ /**
15
+ * @alias sap.ushell_abap.bootstrap.BootTask.PrepareDirectAppStart
16
+ * @namespace
17
+ * @description This bootTask prepares the direct app start by preloading necessary resources.
18
+ *
19
+ * @since 1.147.0
20
+ * @private
21
+ */
11
22
  class PrepareDirectAppStart {
23
+ /**
24
+ * Prepares the direct app start by preloading necessary resources.
25
+ * @returns {Promise<undefined>} A promise that resolves when the operation is complete.
26
+ *
27
+ * @since 1.147.0
28
+ * @private
29
+ */
12
30
  async run () {
13
31
  DirectAppStart.prepare().catch((oError) => {
14
32
  Log.error("Error during the preparation of direct app start", oError, "sap.ushell_abap.bootstrap.BootTask");
@@ -1,4 +1,8 @@
1
1
  // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+ /**
3
+ * @fileoverview This bootTask handles the early fetch of data for the classic homepage.
4
+ * @deprecated since 1.136. Deprecated without successor together with the classic homepage.
5
+ */
2
6
  sap.ui.define([
3
7
  "sap/base/util/ObjectPath",
4
8
  "sap/ushell_abap/bootstrap/PageSetsRequestHandler",
@@ -10,16 +14,30 @@ sap.ui.define([
10
14
  ) => {
11
15
  "use strict";
12
16
 
17
+ /**
18
+ * @alias sap.ushell_abap.bootstrap.BootTask.RequestGroups
19
+ * @namespace
20
+ * @description This bootTask handles the early fetch of data for the classic homepage.
21
+ *
22
+ * @since 1.147.0
23
+ * @private
24
+ * @deprecated since 1.136. Deprecated without successor together with the classic homepage.
25
+ */
13
26
  class RequestGroups {
14
27
  #aInternTargets = [
15
28
  "#Shell-home",
16
29
  "#Launchpad-openFLPPage",
17
30
  "#Shell-appfinder",
18
- "#Shell-catalog",
19
- "#shell-catalog",
20
31
  "#Action-search"
21
32
  ];
22
33
 
34
+ /**
35
+ * Checks whether conditions apply for this module.
36
+ * @returns {boolean} True if this module is relevant and should be executed, false otherwise.
37
+ *
38
+ * @since 1.147.0
39
+ * @private
40
+ */
23
41
  #isRelevant () {
24
42
  const oUshellConfig = BootstrapConfig.get();
25
43
  if (ObjectPath.get("ushell.spaces.enabled", oUshellConfig)) {
@@ -31,6 +49,14 @@ sap.ui.define([
31
49
  return this.#aInternTargets.some((sTarget) => sHash.startsWith(sTarget));
32
50
  }
33
51
 
52
+ /**
53
+ * Executes the boot task.
54
+ * Result is not awaited, as the results are handled via the datajs cache.
55
+ * @returns {Promise<undefined>} A promise that resolves instantly
56
+ *
57
+ * @since 1.147.0
58
+ * @private
59
+ */
34
60
  async run () {
35
61
  if (!this.#isRelevant()) {
36
62
  return;
@@ -42,6 +68,14 @@ sap.ui.define([
42
68
  PageSetsRequestHandler.requestPageSets(oContainerAdapterConfig);
43
69
  }
44
70
 
71
+ /**
72
+ * Returns the window.location.hash string.
73
+ * Extracted as a method to allow stubbing in tests.
74
+ * @returns {string} The hash portion of the URL
75
+ *
76
+ * @since 1.147.0
77
+ * @private
78
+ */
45
79
  getLocationHash () {
46
80
  return window.location.hash || "#";
47
81
  }
@@ -1,4 +1,7 @@
1
1
  // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+ /**
3
+ * @fileoverview Boot task to request the target mappings from the backend.
4
+ */
2
5
  sap.ui.define([
3
6
  "sap/base/util/ObjectPath",
4
7
  "sap/ushell_abap/bootstrap/StartupRequestHandler",
@@ -10,6 +13,14 @@ sap.ui.define([
10
13
  ) => {
11
14
  "use strict";
12
15
 
16
+ /**
17
+ * @alias sap.ushell_abap.bootstrap.BootTask.RequestTargetMappings
18
+ * @namespace
19
+ * @description This bootTask requests ALL target mappings from the backend and stores the resulting promise in the ushell config.
20
+ *
21
+ * @since 1.147.0
22
+ * @private
23
+ */
13
24
  class RequestTargetMappings {
14
25
  async run () {
15
26
  const oUshellConfig = BootstrapConfig.get();
@@ -1,52 +1,70 @@
1
1
  // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+ /**
3
+ * @fileoverview This modules combines all bootTasks to be consumable for the xx-boottask setting.
4
+ * @deprecated since 1.136. Use the bootManifest instead.
5
+ */
2
6
  sap.ui.define([
3
7
  "sap/base/Log",
4
8
  "sap/ui/performance/trace/initTraces",
9
+ "sap/ushell_abap/bootstrap/BootTask/MarkPerformance",
5
10
  "sap/ushell_abap/bootstrap/BootTask/PrepareDirectAppStart",
6
- "sap/ushell_abap/bootstrap/BootTask/RequestTargetMappings",
7
11
  "sap/ushell_abap/bootstrap/BootTask/RequestGroups",
8
- "sap/ushell_abap/bootstrap/BootTask/MarkPerformance"
12
+ "sap/ushell_abap/bootstrap/BootTask/RequestTargetMappings"
9
13
  ], (
10
14
  Log,
11
15
  initTraces,
16
+ MarkPerformance,
12
17
  PrepareDirectAppStart,
13
- RequestTargetMappings,
14
18
  RequestGroups,
15
- MarkPerformance
19
+ RequestTargetMappings
16
20
  ) => {
17
21
  "use strict";
18
22
 
19
23
  class BootTask {
24
+ #aParallelPromises = [];
25
+
20
26
  async run (fnCallback, fnErrorCallback) {
27
+ this.#aParallelPromises = [];
28
+
21
29
  try {
22
- MarkPerformance.run().catch((oError) => {
30
+ this.#aParallelPromises.push(MarkPerformance.run().catch((oError) => {
23
31
  Log.error("Error during performance marking", oError, "sap.ushell_abap.bootstrap.BootTask");
24
- });
32
+ }));
25
33
 
26
34
  // initialize UI5 performance tracing (FESR) before first request is sent, so that this is also instrumented
27
35
  initTraces();
28
36
 
29
- PrepareDirectAppStart.run().catch((oError) => {
37
+ this.#aParallelPromises.push(PrepareDirectAppStart.run().catch((oError) => {
30
38
  Log.error("Error during the preparation of direct app start", oError, "sap.ushell_abap.bootstrap.BootTask");
31
- });
39
+ }));
32
40
 
33
- RequestGroups.run().catch((oError) => {
41
+ this.#aParallelPromises.push(RequestGroups.run().catch((oError) => {
34
42
  Log.error("Error during request of groups", oError, "sap.ushell_abap.bootstrap.BootTask");
35
- });
43
+ }));
36
44
 
37
- RequestTargetMappings.run().catch((oError) => {
45
+ this.#aParallelPromises.push(RequestTargetMappings.run().catch((oError) => {
38
46
  Log.error("Error during request of target mappings", oError, "sap.ushell_abap.bootstrap.BootTask");
39
- });
47
+ }));
40
48
 
41
- MarkPerformance.beforeReady().catch((oError) => {
49
+ this.#aParallelPromises.push(MarkPerformance.beforeReady().catch((oError) => {
42
50
  Log.error("Error during performance marking", oError, "sap.ushell_abap.bootstrap.BootTask");
43
- });
51
+ }));
44
52
 
45
53
  fnCallback();
46
54
  } catch (oError) {
47
55
  fnErrorCallback(oError);
48
56
  }
49
57
  }
58
+
59
+ /**
60
+ * Helper for testing to await async processes
61
+ *
62
+ * @since 1.148.0
63
+ * @private
64
+ */
65
+ async awaitParallelTasks () {
66
+ await Promise.all(this.#aParallelPromises);
67
+ }
50
68
  }
51
69
 
52
70
  return new BootTask();