@sapui5/sap.ushell_abap 1.148.2 → 1.149.1

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
@@ -1,11 +1,15 @@
1
1
  // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
-
2
+ /**
3
+ * @fileoverview This module provides a helper class to handle events from the XHR logon lib.
4
+ */
3
5
  sap.ui.define([
6
+ "sap/base/Log",
4
7
  "sap/base/util/ObjectPath",
5
- "sap/base/Log"
8
+ "sap/ushell/Config"
6
9
  ], (
10
+ Log,
7
11
  ObjectPath,
8
- Log
12
+ Config
9
13
  ) => {
10
14
  "use strict";
11
15
 
@@ -14,9 +18,11 @@ sap.ui.define([
14
18
  const S_RELOAD_QUERY_PARAM = "sap-ushell-reloaded";
15
19
 
16
20
  /**
17
- * Helper class for handling events from XHR logon frame provider
18
- * @param {Window} [oWindow=window] - the window object to use for reloading the page
19
- * @param {string} [sXhrLogonMode="reload"] - the XHR logon mode, either "reload" or "logoffAndRedirect"
21
+ * @alias sap.ushell_abap.bootstrap.XhrLogonEventHandler
22
+ * @class
23
+ * @classdesc Helper class for handling events from XHR logon frame provider
24
+ * @param {Window} [oWindow=window] the window object to use for reloading the page
25
+ * @param {string} [sXhrLogonMode="reload"] the XHR logon mode, either "reload" or "logoffAndRedirect"
20
26
  *
21
27
  * @private
22
28
  */
@@ -26,6 +32,14 @@ sap.ui.define([
26
32
  this._bPending = false;
27
33
  }
28
34
 
35
+ /**
36
+ * Handles an XHR logon event.
37
+ *
38
+ * @param {Event} oEvent The event object.
39
+ * @returns {boolean} Always returns true.
40
+ *
41
+ * @private
42
+ */
29
43
  XhrLogonEventHandler.prototype.handleEvent = function (oEvent) {
30
44
  if (this._bPending) {
31
45
  // only handle first logon event
@@ -65,9 +79,9 @@ sap.ui.define([
65
79
  * ensures that the reload is always triggering a GET request. This is important because with SAML logon,
66
80
  * window.location.reload() would trigger a POST request with an outdated SAML assertion;
67
81
  * the ABAP server does not a redirect to the IDP login page in that case.
68
- *
69
- * @param {string} sCurrentLocationSearch - current location search string
82
+ * @param {string} sCurrentLocationSearch current location search string
70
83
  * @returns {string} an updated location search string triggering a page reload
84
+ *
71
85
  * @private
72
86
  */
73
87
  XhrLogonEventHandler.prototype._getUpdatedLocationSearchForReload = function (sCurrentLocationSearch) {
@@ -125,7 +139,7 @@ sap.ui.define([
125
139
  */
126
140
  XhrLogonEventHandler.prototype._logoffAndRedirect = function () {
127
141
  const sLocationHref = this.getLocationHref();
128
- const sClientId = ObjectPath.get("sap-ushell-config.services.Container.adapter.config.client");
142
+ const sClientId = ObjectPath.get("services.Container.adapter.config.client", Config.getRawBootstrapConfig());
129
143
 
130
144
  const sUrl = new URI("/sap/public/bc/icf/logoff")
131
145
  .absoluteTo(sLocationHref)
@@ -136,7 +150,6 @@ sap.ui.define([
136
150
 
137
151
  /**
138
152
  * Checks if the page is currently being reloaded by the XHR logon which triggers this by setting query-parameter sap-ushell-reloaded
139
- *
140
153
  * @returns {boolean} true if the page is reloaded, false otherwise
141
154
  *
142
155
  * @private
@@ -145,6 +158,12 @@ sap.ui.define([
145
158
  return new RegExp(["[?&]", S_RELOAD_QUERY_PARAM].join("")).test(this._oWindow.location.search);
146
159
  };
147
160
 
161
+ /**
162
+ * Handles authentication required scenario when UI5 is not yet loaded.
163
+ * @param {function} fnReload The function to call to reload the page.
164
+ *
165
+ * @private
166
+ */
148
167
  XhrLogonEventHandler.prototype._handleAuthenticationRequiredNoUi5 = function (fnReload) {
149
168
  // In reload mode, this should not happen (can only occur in very early XHR requests, i.e. start_up).
150
169
  // But then the session should still be valid. So if we get in here, the HTML page itself has been cached or
@@ -183,6 +202,8 @@ sap.ui.define([
183
202
  * @param {object} oMessageText text key and default text for the dialog message
184
203
  * @param {function} fnReload function that is executed to do the actual reload
185
204
  * @param {function} fnFallbackIfUi5NotLoaded a fallback function which is executed if UI5 not yet loaded
205
+ *
206
+ * @private
186
207
  */
187
208
  XhrLogonEventHandler.prototype._showErrorAndReload = function (oTitleText, oMessageText, fnReload, fnFallbackIfUi5NotLoaded) {
188
209
  let sTitle;
@@ -238,6 +259,8 @@ sap.ui.define([
238
259
  * @param {object} oText text key and default text
239
260
  * @param {object} oResources i18n resources
240
261
  * @returns {string} the translated text if the key exists or the provided fallback text
262
+ *
263
+ * @private
241
264
  */
242
265
  XhrLogonEventHandler.prototype._getText = function (oText, oResources) {
243
266
  const sText = oResources.i18n.getText(oText.key);
@@ -1,5 +1,7 @@
1
1
  // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
-
2
+ /**
3
+ * @fileoverview This module loads the XHR logon library.
4
+ */
3
5
  sap.ui.define([
4
6
  ], (
5
7
  ) => {
@@ -7,6 +9,16 @@ sap.ui.define([
7
9
 
8
10
  const sUiDebugKey = "sap-ui-debug";
9
11
 
12
+ /**
13
+ * @alias sap.ushell_abap.bootstrap.XhrLogonLibLoader
14
+ * @namespace
15
+ * @description This module loads the XHR logon library.
16
+ * The lib is loaded automatically when this module is required.
17
+ * No call to {@link sap.ushell_abap.bootstrap.XhrLogonLibLoader#getLib} is required.
18
+ *
19
+ * @since 1.147.0
20
+ * @private
21
+ */
10
22
  class XhrLogonLibLoader {
11
23
  #pLib;
12
24
 
@@ -14,6 +26,13 @@ sap.ui.define([
14
26
  this.#pLib = this.#loadLib();
15
27
  }
16
28
 
29
+ /**
30
+ * Determines whether to load the XHR logon library in debug mode.
31
+ * @returns {boolean} true if the XHR logon lib should be loaded in debug mode, false otherwise
32
+ *
33
+ * @since 1.147.0
34
+ * @private
35
+ */
17
36
  #isDebug () {
18
37
  let sStoredSapUiDebugValue;
19
38
  let bDebugSources = /[?&]sap-ui-debug=(true|x|X)(&|$)/.test(this.getWindowLocationSearch());
@@ -28,20 +47,49 @@ sap.ui.define([
28
47
  return bDebugSources;
29
48
  }
30
49
 
50
+ /**
51
+ * Loads the XHR logon library.
52
+ * @returns {Promise<object>} Resolves the XHR logon library.
53
+ *
54
+ * @since 1.147.0
55
+ * @private
56
+ */
31
57
  #loadLib () {
32
58
  const sFileName = `sap/ushell_abap/thirdparty/sap-xhrlib-esm${this.#isDebug() ? "-dbg" : ""}.js`;
33
59
  const sPath = sap.ui.require.toUrl(sFileName);
34
60
  return import(sPath).then((oModule) => oModule.xhrlib);
35
61
  }
36
62
 
63
+ /**
64
+ * Returns a promise that resolves the XHR logon library.
65
+ * @returns {Promise<object>} Resolves the XHR logon library.
66
+ *
67
+ * @since 1.147.0
68
+ * @private
69
+ */
37
70
  getLib () {
38
71
  return this.#pLib;
39
72
  }
40
73
 
74
+ /**
75
+ * Returns the window.location.search string.
76
+ * Extracted as a method to allow stubbing in tests.
77
+ * @returns {string} The query string portion of the URL
78
+ *
79
+ * @since 1.147.0
80
+ * @private
81
+ */
41
82
  getWindowLocationSearch () {
42
83
  return window.location.search;
43
84
  }
44
85
 
86
+ /**
87
+ * Resets the internal state of the loader.
88
+ * Only for testing purposes.
89
+ *
90
+ * @since 1.147.0
91
+ * @private
92
+ */
45
93
  reset () {
46
94
  this.#pLib = this.#loadLib();
47
95
  }
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @fileoverview This module is the root of the ABAP bootstrap
4
4
  * to be used ONLY in DEVELOPMENT ENVIRONMENT.
5
+ * @deprecated since 1.136. Use the bootManifest instead.
5
6
  */
6
7
  sap.ui.define([
7
8
  "sap/base/config",
@@ -1,4 +1,8 @@
1
1
  // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+ /**
3
+ * @fileoverview This module is the root of the ABAP bootstrap.
4
+ * @deprecated since 1.136. Use the bootManifest instead.
5
+ */
2
6
  (function () {
3
7
  "use strict";
4
8
 
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
2
  /**
3
3
  * @fileoverview This module is the root of the ABAP bootstrap.
4
+ * @deprecated since 1.136. Use the bootManifest instead.
4
5
  */
5
6
  sap.ui.define([
6
7
  "sap/base/config",
@@ -1,4 +1,7 @@
1
1
  // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+ /**
3
+ * @fileoverview This module provides constants for the ABAP platform.
4
+ */
2
5
  sap.ui.define([
3
6
  ], (
4
7
  ) => {
@@ -5,6 +5,8 @@
5
5
  *
6
6
  * In a development environment, this script serves as the root of the ABAP bootstrap.
7
7
  * And it will load all bootstrap modules and the SAPUI5 modules each as a single requested resource (no preloads and no bundling).
8
+ *
9
+ * @deprecated since 1.136. Use the bootManifest instead.
8
10
  */
9
11
  (function () {
10
12
  "use strict";
@@ -8,7 +8,7 @@ sap.ui.define([
8
8
  "sap/ushell/api/performance/NavigationSource",
9
9
  "sap/ushell_abap/components/TCodeNavigation/TCodeNavigationError",
10
10
  "sap/ushell_abap/components/TCodeNavigation/MessageCode",
11
- "sap/ushell/utils/UrlParsing"
11
+ "sap/ushell/base/UrlParsing"
12
12
  ], (
13
13
  Container,
14
14
  Log,
@@ -0,0 +1,57 @@
1
+ // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/ushell/Container",
5
+ "sap/base/Log"
6
+ ], (
7
+ Container,
8
+ Log
9
+ ) => {
10
+ "use strict";
11
+
12
+ /**
13
+ * @alias sap.ushell_abap.integration.WebSsoBridge
14
+ * @namespace
15
+ * @description ushell API for WebSSO Process, used by Joule Plug-In in S/4 HANA Private Cloud scenarios.
16
+ *
17
+ * @since 1.136.18
18
+ * @private
19
+ */
20
+ class WebSsoBridge {
21
+ async init () {
22
+ try {
23
+ const oMessageBrokerService = await Container.getServiceAsync("MessageBroker");
24
+
25
+ // Ensure that client ID is free and can be used - by disconnecting first (mainly relevant for tests)
26
+ try {
27
+ await oMessageBrokerService.disconnect("WebSsoBridge");
28
+ } catch { /* when "disconnect" fails, it hasn't been connected before... Which is a valid scenario. Therefore, nothing is done here. */ }
29
+
30
+ await oMessageBrokerService.connect("WebSsoBridge", () => { /* No generic handling needed. */ });
31
+
32
+ await oMessageBrokerService.subscribe("WebSsoBridge", [{ channelId: "com.sap.joule.flp.websso" }], async (sSenderId, sChannelId, sMessageName) => {
33
+ let oData;
34
+ try {
35
+ const response = await fetch(`${location.origin + location.pathname}/websso/url`);
36
+ if (response.status >= 200 && response.status < 300) {
37
+ oData = await response.json();
38
+ oData.status = "success";
39
+ }
40
+ } catch (oError) {
41
+ Log.error(`Retrieving WebSSO URL from ABAP backend failed. Error: ${oError}`, "sap.ushell_abap.integration.WebSsoBridge");
42
+ }
43
+
44
+ if (oData === undefined) {
45
+ oData = {
46
+ status: "error"
47
+ };
48
+ }
49
+ await oMessageBrokerService.publish("com.sap.joule.flp.websso", "WebSsoBridge", "UrlResponse", "*", oData);
50
+ });
51
+ } catch (oGlobalError) {
52
+ Log.error(`Init of WebSSO Bridge failed. Error: ${oGlobalError}`, "sap.ushell_abap.integration.WebSsoBridge");
53
+ }
54
+ }
55
+ }
56
+ return new WebSsoBridge();
57
+ });
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  const ushellAbapLib = Library.init({
33
33
  name: "sap.ushell_abap",
34
34
  apiVersion: 2,
35
- version: "1.148.2",
35
+ version: "1.149.1",
36
36
  dependencies: [
37
37
  "sap.ui.core",
38
38
  "sap.m",
@@ -5,15 +5,15 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
- "sap/ushell/utils"
8
+ "sap/ushell/base/requireAsync"
9
9
  ], (
10
- ushellUtils
10
+ requireAsync
11
11
  ) => {
12
12
  "use strict";
13
13
 
14
14
  class Contracts {
15
15
  async load () {
16
- await ushellUtils.requireAsync([
16
+ await requireAsync([
17
17
  "sap/ushell_abap/pbServices/ui2/contracts/bag",
18
18
  "sap/ushell_abap/pbServices/ui2/contracts/configuration",
19
19
  "sap/ushell_abap/pbServices/ui2/contracts/configurationUi",
@@ -821,37 +821,25 @@ sap.ui.define([
821
821
  * - CHIP instances and their CHIPs, <br>
822
822
  * - bags and properties (page, CHIP and CHIP instance bags), <br>
823
823
  * - RemoteCatalog data.
824
- * <p>
825
- * Via the parameter <code>sCustomExpand</code> you can specify a different $expand statement.
826
824
  *
827
825
  * @param {string} sId
828
826
  * ID of the page to be read
829
827
  * @param {function(object)} fnSuccess
830
828
  * a callback function that is executed if the request succeeds, taking the processed data
831
- * @param {function(string, object=)} [fnFailure]
829
+ * @param {function(string, object)} [fnFailure]
832
830
  * error handler taking an error message and, since version 1.28.6, an
833
831
  * optional object containing the complete error information as delivered
834
832
  * by the ODataService. See fnFailure parameter of {@link ODataWrapper#onError}
835
833
  * for more details.
836
- * @param {string} [sCustomExpand="Bags/Properties,PageChipInstances/Chip/ChipBags/ChipProperties,PageChipInstances/RemoteCatalog,PageChipInstances/ChipInstanceBags/ChipInstanceProperties"]
837
- * (since 1.30.0) can be used to overwrite the default $expand value. If "" is used, the
838
- * entire $expand parameter will be skipped
839
834
  * @since 1.2.0
840
835
  */
841
- this.readPage = function (sId, fnSuccess, fnFailure, sCustomExpand) {
842
- let sUrl = `Pages('${encodeURIComponent(sId)}')`;
836
+ this.readPage = function (sId, fnSuccess, fnFailure) {
843
837
  if (!sId) {
844
838
  throw new SrvcError("Missing page ID", "PageBuildingService");
845
839
  }
846
840
 
847
- if (sCustomExpand === undefined) {
848
- // use default expand
849
- sUrl += "?$expand=Bags/Properties,PageChipInstances/Chip/ChipBags/ChipProperties,"
850
- + "PageChipInstances/RemoteCatalog,"
851
- + "PageChipInstances/ChipInstanceBags/ChipInstanceProperties";
852
- } else if (sCustomExpand !== "") {
853
- sUrl += `?$expand=${sCustomExpand}`;
854
- }
841
+ const sUrl = `Pages('${encodeURIComponent(sId)}')?$expand=PageChipInstances/Chip/ChipBags/ChipProperties,`
842
+ + "PageChipInstances/RemoteCatalog,PageChipInstances/ChipInstanceBags/ChipInstanceProperties";
855
843
 
856
844
  oWrapper.read(sUrl, fnSuccess, fnFailure);
857
845
  };
@@ -9,11 +9,13 @@
9
9
  sap.ui.define([
10
10
  "sap/ui/thirdparty/URI",
11
11
  "sap/base/Log",
12
+ "sap/ushell/Config",
12
13
  "sap/ushell_abap/pbServices/ui2/Error",
13
14
  "sap/ui/Device"
14
15
  ], (
15
16
  URI,
16
17
  Log,
18
+ Config,
17
19
  SrvcError,
18
20
  Device
19
21
  ) => {
@@ -334,8 +336,7 @@ sap.ui.define([
334
336
  */
335
337
  Utils.addCacheBusterTokenUsingUshellConfig = function (sUrl) {
336
338
  // TODO move to sap.ushell.utils
337
- const oCacheBusting = window["sap-ushell-config"] &&
338
- window["sap-ushell-config"].cacheBusting;
339
+ const oCacheBusting = Config.getRawBootstrapConfig()?.cacheBusting;
339
340
  const oPatterns = oCacheBusting && oCacheBusting.patterns;
340
341
  let sCacheBusterUrl = sUrl;
341
342
  let aParameterMap = [];
package/ui5.yaml CHANGED
@@ -47,14 +47,6 @@ builder:
47
47
  # as the boot should ALWAYS include bootstrap
48
48
  # It rather ensures that the ushell can always be used via library
49
49
  sections:
50
- - mode: provided
51
- filters: &exclude-external-libs
52
- - "**/" # assume everything as provided ...
53
- - "!sap/ushell_abap/" # ... except the modules from sap/ushell_abap
54
- - "**/designtime/" # also exclude all designtime ...
55
- - "**/*.designtime.js" #
56
- - "**/support/" # ... and support files
57
- - "**/*.support.js" #
58
50
  - mode: preload
59
51
  filters:
60
52
  - sap/ushell_abap/bootstrap/
@@ -316,10 +308,13 @@ builder:
316
308
  # filter to ensure that no other dependencies sneak into the boot bundle
317
309
  # and break the assumptions that only base and bootstrap modules are used during boot
318
310
  filters:
319
- - "**/" # assume everything as provided ...
320
- - "!sap/ushell/bootstrap/" # ... except the modules from sap/ushell/bootstrap
321
- - "!sap/ushell/base/" # ... and sap/ushell/base
322
- - "!sap/ushell_abap/bootstrap/" # ... and abap related bootstrap parts
311
+ - "**/" # assume everything as provided ...
312
+ - "!sap/ushell/bootstrap/" # ... except the modules from sap/ushell/bootstrap
313
+ - "!sap/ushell/base/" # ... and sap/ushell/base
314
+ - "!sap/ushell_abap/bootstrap/" # ... and abap related bootstrap parts
315
+ - "!sap/ushell_abap/thirdparty/sap-xhrlib-esm*.js" # ... and thirdparty that contains ESM modules which
316
+ - "!sap/ui/integration/thirdparty/" # can't be bundled anyways and would cause build errors
317
+ - "!sap/ui/vk/thirdparty/"
323
318
  - mode: preload
324
319
  filters:
325
320
  - sap/ushell_abap/bootstrap/ConfigurationProvider.js
@@ -649,7 +644,15 @@ builder:
649
644
  - sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js
650
645
  resolve: false
651
646
  - mode: provided
652
- filters: *exclude-external-libs
647
+ filters: &exclude-external-libs
648
+ - "**/" # assume everything as provided ...
649
+ - "!sap/ushell_abap/" # ... except the modules from sap/ushell_abap
650
+ - "**/designtime/" # also exclude all designtime ...
651
+ - "**/*.designtime.js" #
652
+ - "**/support/" # ... and support files
653
+ - "**/*.support.js" #
654
+ - "!sap/ui/integration/thirdparty/" # Do not include thirdparty that contains ESM modules which
655
+ - "!sap/ui/vk/thirdparty/" # can't be bundled anyways and would cause build errors
653
656
  # Include Chunks --------------------------
654
657
  - mode: bundleInfo
655
658
  name: sap/ushell_abap/library-preload-bootstrap.js
@@ -670,6 +673,8 @@ builder:
670
673
  - "!sap/ushell_abap/bootstrap/evo/abap.js"
671
674
  - "!sap/ushell_abap/bootstrap/appruntime-min*.js"
672
675
  - "!sap/ushell_abap/bootstrap/evo/core-min*.js"
676
+ # Exclude thirdparty that contains ESM modules which can't be bundled and would cause build errors
677
+ - "!sap/ushell_abap/thirdparty/sap-xhrlib-esm*.js"
673
678
  resolve: true
674
679
  renderer: true
675
680
  bundleOptions: