@ui5/webcomponents-base 2.20.1 → 2.20.3

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 (31) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/.tsbuildinfobuild +1 -1
  3. package/dist/custom-elements-internal.json +192 -192
  4. package/dist/custom-elements.json +192 -192
  5. package/dist/generated/VersionInfo.js +3 -3
  6. package/dist/generated/VersionInfo.js.map +1 -1
  7. package/dist/prod/generated/VersionInfo.js +1 -1
  8. package/dist/prod/generated/VersionInfo.js.map +1 -1
  9. package/dist/prod/sap/base/Log.js +15 -29
  10. package/dist/prod/sap/base/assert.js +1 -1
  11. package/dist/prod/sap/base/config/MemoryConfigurationProvider.js +1 -1
  12. package/dist/prod/sap/base/security/URLListValidator.js +9 -5
  13. package/dist/prod/sap/base/security/encodeCSS.js +1 -1
  14. package/dist/prod/sap/base/security/encodeXML.js +1 -1
  15. package/dist/prod/sap/base/security/sanitizeHTML.js +1 -1
  16. package/dist/prod/sap/base/strings/toHex.js +1 -1
  17. package/dist/prod/sap/base/util/now.js +7 -13
  18. package/dist/prod/sap/base/util/uid.js +1 -1
  19. package/dist/prod/sap/ui/thirdparty/caja-html-sanitizer.js +15 -3
  20. package/dist/sap/base/Log.js +15 -29
  21. package/dist/sap/base/assert.js +1 -1
  22. package/dist/sap/base/config/MemoryConfigurationProvider.js +1 -1
  23. package/dist/sap/base/security/URLListValidator.js +9 -5
  24. package/dist/sap/base/security/encodeCSS.js +1 -1
  25. package/dist/sap/base/security/encodeXML.js +1 -1
  26. package/dist/sap/base/security/sanitizeHTML.js +1 -1
  27. package/dist/sap/base/strings/toHex.js +1 -1
  28. package/dist/sap/base/util/now.js +7 -13
  29. package/dist/sap/base/util/uid.js +1 -1
  30. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +15 -3
  31. package/package.json +4 -4
@@ -1001,81 +1001,6 @@
1001
1001
  }
1002
1002
  ]
1003
1003
  },
1004
- {
1005
- "kind": "javascript-module",
1006
- "path": "dist/animations/AnimationQueue.js",
1007
- "declarations": [],
1008
- "exports": [
1009
- {
1010
- "kind": "js",
1011
- "name": "default",
1012
- "declaration": {
1013
- "name": "AnimationQueue",
1014
- "module": "dist/animations/AnimationQueue.js"
1015
- }
1016
- }
1017
- ]
1018
- },
1019
- {
1020
- "kind": "javascript-module",
1021
- "path": "dist/animations/animate.js",
1022
- "declarations": [],
1023
- "exports": [
1024
- {
1025
- "kind": "js",
1026
- "name": "default",
1027
- "declaration": {
1028
- "name": "animate",
1029
- "module": "dist/animations/animate.js"
1030
- }
1031
- }
1032
- ]
1033
- },
1034
- {
1035
- "kind": "javascript-module",
1036
- "path": "dist/animations/scroll.js",
1037
- "declarations": [],
1038
- "exports": [
1039
- {
1040
- "kind": "js",
1041
- "name": "default",
1042
- "declaration": {
1043
- "name": "scroll",
1044
- "module": "dist/animations/scroll.js"
1045
- }
1046
- }
1047
- ]
1048
- },
1049
- {
1050
- "kind": "javascript-module",
1051
- "path": "dist/animations/slideDown.js",
1052
- "declarations": [],
1053
- "exports": [
1054
- {
1055
- "kind": "js",
1056
- "name": "default",
1057
- "declaration": {
1058
- "name": "slideDown",
1059
- "module": "dist/animations/slideDown.js"
1060
- }
1061
- }
1062
- ]
1063
- },
1064
- {
1065
- "kind": "javascript-module",
1066
- "path": "dist/animations/slideUp.js",
1067
- "declarations": [],
1068
- "exports": [
1069
- {
1070
- "kind": "js",
1071
- "name": "default",
1072
- "declaration": {
1073
- "name": "slideUp",
1074
- "module": "dist/animations/slideUp.js"
1075
- }
1076
- }
1077
- ]
1078
- },
1079
1004
  {
1080
1005
  "kind": "javascript-module",
1081
1006
  "path": "dist/asset-registries/Icons.js",
@@ -1178,6 +1103,81 @@
1178
1103
  "declarations": [],
1179
1104
  "exports": []
1180
1105
  },
1106
+ {
1107
+ "kind": "javascript-module",
1108
+ "path": "dist/animations/AnimationQueue.js",
1109
+ "declarations": [],
1110
+ "exports": [
1111
+ {
1112
+ "kind": "js",
1113
+ "name": "default",
1114
+ "declaration": {
1115
+ "name": "AnimationQueue",
1116
+ "module": "dist/animations/AnimationQueue.js"
1117
+ }
1118
+ }
1119
+ ]
1120
+ },
1121
+ {
1122
+ "kind": "javascript-module",
1123
+ "path": "dist/animations/animate.js",
1124
+ "declarations": [],
1125
+ "exports": [
1126
+ {
1127
+ "kind": "js",
1128
+ "name": "default",
1129
+ "declaration": {
1130
+ "name": "animate",
1131
+ "module": "dist/animations/animate.js"
1132
+ }
1133
+ }
1134
+ ]
1135
+ },
1136
+ {
1137
+ "kind": "javascript-module",
1138
+ "path": "dist/animations/scroll.js",
1139
+ "declarations": [],
1140
+ "exports": [
1141
+ {
1142
+ "kind": "js",
1143
+ "name": "default",
1144
+ "declaration": {
1145
+ "name": "scroll",
1146
+ "module": "dist/animations/scroll.js"
1147
+ }
1148
+ }
1149
+ ]
1150
+ },
1151
+ {
1152
+ "kind": "javascript-module",
1153
+ "path": "dist/animations/slideDown.js",
1154
+ "declarations": [],
1155
+ "exports": [
1156
+ {
1157
+ "kind": "js",
1158
+ "name": "default",
1159
+ "declaration": {
1160
+ "name": "slideDown",
1161
+ "module": "dist/animations/slideDown.js"
1162
+ }
1163
+ }
1164
+ ]
1165
+ },
1166
+ {
1167
+ "kind": "javascript-module",
1168
+ "path": "dist/animations/slideUp.js",
1169
+ "declarations": [],
1170
+ "exports": [
1171
+ {
1172
+ "kind": "js",
1173
+ "name": "default",
1174
+ "declaration": {
1175
+ "name": "slideUp",
1176
+ "module": "dist/animations/slideUp.js"
1177
+ }
1178
+ }
1179
+ ]
1180
+ },
1181
1181
  {
1182
1182
  "kind": "javascript-module",
1183
1183
  "path": "dist/converters/DOMReference.js",
@@ -1343,6 +1343,123 @@
1343
1343
  }
1344
1344
  ]
1345
1345
  },
1346
+ {
1347
+ "kind": "javascript-module",
1348
+ "path": "dist/features/F6Navigation.js",
1349
+ "declarations": [],
1350
+ "exports": [
1351
+ {
1352
+ "kind": "js",
1353
+ "name": "default",
1354
+ "declaration": {
1355
+ "name": "F6Navigation",
1356
+ "module": "dist/features/F6Navigation.js"
1357
+ }
1358
+ }
1359
+ ]
1360
+ },
1361
+ {
1362
+ "kind": "javascript-module",
1363
+ "path": "dist/features/InputElementsFormSupport.js",
1364
+ "declarations": [],
1365
+ "exports": []
1366
+ },
1367
+ {
1368
+ "kind": "javascript-module",
1369
+ "path": "dist/features/LegacyDateFormats.js",
1370
+ "declarations": [],
1371
+ "exports": [
1372
+ {
1373
+ "kind": "js",
1374
+ "name": "default",
1375
+ "declaration": {
1376
+ "name": "LegacyDateFormats",
1377
+ "module": "dist/features/LegacyDateFormats.js"
1378
+ }
1379
+ }
1380
+ ]
1381
+ },
1382
+ {
1383
+ "kind": "javascript-module",
1384
+ "path": "dist/features/OpenUI5Element.js",
1385
+ "declarations": [],
1386
+ "exports": [
1387
+ {
1388
+ "kind": "js",
1389
+ "name": "default",
1390
+ "declaration": {
1391
+ "name": "OpenUI5Element",
1392
+ "module": "dist/features/OpenUI5Element.js"
1393
+ }
1394
+ }
1395
+ ]
1396
+ },
1397
+ {
1398
+ "kind": "javascript-module",
1399
+ "path": "dist/features/OpenUI5Enablement.js",
1400
+ "declarations": [],
1401
+ "exports": [
1402
+ {
1403
+ "kind": "js",
1404
+ "name": "default",
1405
+ "declaration": {
1406
+ "name": "OpenUI5Enablement",
1407
+ "module": "dist/features/OpenUI5Enablement.js"
1408
+ }
1409
+ }
1410
+ ]
1411
+ },
1412
+ {
1413
+ "kind": "javascript-module",
1414
+ "path": "dist/features/OpenUI5Support.js",
1415
+ "declarations": [],
1416
+ "exports": [
1417
+ {
1418
+ "kind": "js",
1419
+ "name": "default",
1420
+ "declaration": {
1421
+ "name": "OpenUI5Support",
1422
+ "module": "dist/features/OpenUI5Support.js"
1423
+ }
1424
+ }
1425
+ ]
1426
+ },
1427
+ {
1428
+ "kind": "javascript-module",
1429
+ "path": "dist/features/insertOpenUI5PopupStyles.js",
1430
+ "declarations": [],
1431
+ "exports": [
1432
+ {
1433
+ "kind": "js",
1434
+ "name": "default",
1435
+ "declaration": {
1436
+ "name": "insertOpenUI5PopupStyles",
1437
+ "module": "dist/features/insertOpenUI5PopupStyles.js"
1438
+ }
1439
+ }
1440
+ ]
1441
+ },
1442
+ {
1443
+ "kind": "javascript-module",
1444
+ "path": "dist/features/patchPatcher.js",
1445
+ "declarations": [],
1446
+ "exports": [
1447
+ {
1448
+ "kind": "js",
1449
+ "name": "default",
1450
+ "declaration": {
1451
+ "name": "patchPatcher",
1452
+ "module": "dist/features/patchPatcher.js"
1453
+ }
1454
+ }
1455
+ ]
1456
+ },
1457
+ {
1458
+ "kind": "javascript-module",
1459
+ "path": "dist/features/patchPopup.js",
1460
+ "declarations": [],
1461
+ "exports": []
1462
+ },
1346
1463
  {
1347
1464
  "kind": "javascript-module",
1348
1465
  "path": "dist/delegate/ItemNavigation.js",
@@ -1518,123 +1635,6 @@
1518
1635
  }
1519
1636
  ]
1520
1637
  },
1521
- {
1522
- "kind": "javascript-module",
1523
- "path": "dist/features/F6Navigation.js",
1524
- "declarations": [],
1525
- "exports": [
1526
- {
1527
- "kind": "js",
1528
- "name": "default",
1529
- "declaration": {
1530
- "name": "F6Navigation",
1531
- "module": "dist/features/F6Navigation.js"
1532
- }
1533
- }
1534
- ]
1535
- },
1536
- {
1537
- "kind": "javascript-module",
1538
- "path": "dist/features/InputElementsFormSupport.js",
1539
- "declarations": [],
1540
- "exports": []
1541
- },
1542
- {
1543
- "kind": "javascript-module",
1544
- "path": "dist/features/LegacyDateFormats.js",
1545
- "declarations": [],
1546
- "exports": [
1547
- {
1548
- "kind": "js",
1549
- "name": "default",
1550
- "declaration": {
1551
- "name": "LegacyDateFormats",
1552
- "module": "dist/features/LegacyDateFormats.js"
1553
- }
1554
- }
1555
- ]
1556
- },
1557
- {
1558
- "kind": "javascript-module",
1559
- "path": "dist/features/OpenUI5Element.js",
1560
- "declarations": [],
1561
- "exports": [
1562
- {
1563
- "kind": "js",
1564
- "name": "default",
1565
- "declaration": {
1566
- "name": "OpenUI5Element",
1567
- "module": "dist/features/OpenUI5Element.js"
1568
- }
1569
- }
1570
- ]
1571
- },
1572
- {
1573
- "kind": "javascript-module",
1574
- "path": "dist/features/OpenUI5Enablement.js",
1575
- "declarations": [],
1576
- "exports": [
1577
- {
1578
- "kind": "js",
1579
- "name": "default",
1580
- "declaration": {
1581
- "name": "OpenUI5Enablement",
1582
- "module": "dist/features/OpenUI5Enablement.js"
1583
- }
1584
- }
1585
- ]
1586
- },
1587
- {
1588
- "kind": "javascript-module",
1589
- "path": "dist/features/OpenUI5Support.js",
1590
- "declarations": [],
1591
- "exports": [
1592
- {
1593
- "kind": "js",
1594
- "name": "default",
1595
- "declaration": {
1596
- "name": "OpenUI5Support",
1597
- "module": "dist/features/OpenUI5Support.js"
1598
- }
1599
- }
1600
- ]
1601
- },
1602
- {
1603
- "kind": "javascript-module",
1604
- "path": "dist/features/insertOpenUI5PopupStyles.js",
1605
- "declarations": [],
1606
- "exports": [
1607
- {
1608
- "kind": "js",
1609
- "name": "default",
1610
- "declaration": {
1611
- "name": "insertOpenUI5PopupStyles",
1612
- "module": "dist/features/insertOpenUI5PopupStyles.js"
1613
- }
1614
- }
1615
- ]
1616
- },
1617
- {
1618
- "kind": "javascript-module",
1619
- "path": "dist/features/patchPatcher.js",
1620
- "declarations": [],
1621
- "exports": [
1622
- {
1623
- "kind": "js",
1624
- "name": "default",
1625
- "declaration": {
1626
- "name": "patchPatcher",
1627
- "module": "dist/features/patchPatcher.js"
1628
- }
1629
- }
1630
- ]
1631
- },
1632
- {
1633
- "kind": "javascript-module",
1634
- "path": "dist/features/patchPopup.js",
1635
- "declarations": [],
1636
- "exports": []
1637
- },
1638
1638
  {
1639
1639
  "kind": "javascript-module",
1640
1640
  "path": "dist/locale/Locale.js",
@@ -1,11 +1,11 @@
1
1
  const VersionInfo = {
2
- version: "2.20.1",
2
+ version: "2.20.3",
3
3
  major: 2,
4
4
  minor: 20,
5
- patch: 1,
5
+ patch: 3,
6
6
  suffix: "",
7
7
  isNext: false,
8
- buildTime: 1773431170,
8
+ buildTime: 1776343301,
9
9
  };
10
10
  export default VersionInfo;
11
11
  //# sourceMappingURL=VersionInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VersionInfo.js","sourceRoot":"","sources":["../../src/generated/VersionInfo.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IACnB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAU;CACrB,CAAC;AACF,eAAe,WAAW,CAAC","sourcesContent":["const VersionInfo = {\n\tversion: \"2.20.1\",\n\tmajor: 2,\n\tminor: 20,\n\tpatch: 1,\n\tsuffix: \"\",\n\tisNext: false,\n\tbuildTime: 1773431170,\n};\nexport default VersionInfo;"]}
1
+ {"version":3,"file":"VersionInfo.js","sourceRoot":"","sources":["../../src/generated/VersionInfo.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IACnB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAU;CACrB,CAAC;AACF,eAAe,WAAW,CAAC","sourcesContent":["const VersionInfo = {\n\tversion: \"2.20.3\",\n\tmajor: 2,\n\tminor: 20,\n\tpatch: 3,\n\tsuffix: \"\",\n\tisNext: false,\n\tbuildTime: 1776343301,\n};\nexport default VersionInfo;"]}
@@ -1,2 +1,2 @@
1
- "use strict";const e={version:"2.20.1",major:2,minor:20,patch:1,suffix:"",isNext:!1,buildTime:1773431170};export default e;
1
+ "use strict";const e={version:"2.20.3",major:2,minor:20,patch:3,suffix:"",isNext:!1,buildTime:1776343301};export default e;
2
2
  //# sourceMappingURL=VersionInfo.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/generated/VersionInfo.ts"],
4
- "sourcesContent": ["const VersionInfo = {\n\tversion: \"2.20.1\",\n\tmajor: 2,\n\tminor: 20,\n\tpatch: 1,\n\tsuffix: \"\",\n\tisNext: false,\n\tbuildTime: 1773431170,\n};\nexport default VersionInfo;"],
4
+ "sourcesContent": ["const VersionInfo = {\n\tversion: \"2.20.3\",\n\tmajor: 2,\n\tminor: 20,\n\tpatch: 3,\n\tsuffix: \"\",\n\tisNext: false,\n\tbuildTime: 1776343301,\n};\nexport default VersionInfo;"],
5
5
  "mappings": "aAAA,MAAMA,EAAc,CACnB,QAAS,SACT,MAAO,EACP,MAAO,GACP,MAAO,EACP,OAAQ,GACR,OAAQ,GACR,UAAW,UACZ,EACA,eAAeA",
6
6
  "names": ["VersionInfo"]
7
7
  }
@@ -1,9 +1,8 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
- import BaseConfig from "./config.js";
7
6
  import now from "./util/now.js";
8
7
  /**
9
8
  * A Logging API for JavaScript.
@@ -202,8 +201,8 @@ function getLogEntryListenerInstance() {
202
201
  * Name of the component that produced the log entry
203
202
  * @param {function} [fnSupportInfo]
204
203
  * Callback that returns an additional support object to be logged in support mode.
205
- * This function is only called if support info mode is turned on with
206
- * <code>logSupportInfo(true)</code>. To avoid negative effects regarding execution times and
204
+ * This function is only called if support info mode is turned on via
205
+ * the Support Assistant. To avoid negative effects regarding execution times and
207
206
  * memory consumption, the returned object should be a simple immutable JSON object with mostly
208
207
  * static and stable content.
209
208
  * @public
@@ -225,8 +224,8 @@ Log.fatal = function (sMessage, vDetails, sComponent, fnSupportInfo) {
225
224
  * Name of the component that produced the log entry
226
225
  * @param {function} [fnSupportInfo]
227
226
  * Callback that returns an additional support object to be logged in support mode.
228
- * This function is only called if support info mode is turned on with
229
- * <code>logSupportInfo(true)</code>. To avoid negative effects regarding execution times and
227
+ * This function is only called if support info mode is turned on via
228
+ * the Support Assistant. To avoid negative effects regarding execution times and
230
229
  * memory consumption, the returned object should be a simple immutable JSON object with mostly
231
230
  * static and stable content.
232
231
  * @public
@@ -248,8 +247,8 @@ Log.error = function (sMessage, vDetails, sComponent, fnSupportInfo) {
248
247
  * Name of the component that produced the log entry
249
248
  * @param {function} [fnSupportInfo]
250
249
  * Callback that returns an additional support object to be logged in support mode.
251
- * This function is only called if support info mode is turned on with
252
- * <code>logSupportInfo(true)</code>. To avoid negative effects regarding execution times and
250
+ * This function is only called if support info mode is turned on via
251
+ * the Support Assistant. To avoid negative effects regarding execution times and
253
252
  * memory consumption, the returned object should be a simple immutable JSON object with mostly
254
253
  * static and stable content.
255
254
  * @public
@@ -271,8 +270,8 @@ Log.warning = function (sMessage, vDetails, sComponent, fnSupportInfo) {
271
270
  * Name of the component that produced the log entry
272
271
  * @param {function} [fnSupportInfo]
273
272
  * Callback that returns an additional support object to be logged in support mode.
274
- * This function is only called if support info mode is turned on with
275
- * <code>logSupportInfo(true)</code>. To avoid negative effects regarding execution times and
273
+ * This function is only called if support info mode is turned on via
274
+ * the Support Assistant. To avoid negative effects regarding execution times and
276
275
  * memory consumption, the returned object should be a simple immutable JSON object with mostly
277
276
  * static and stable content.
278
277
  * @public
@@ -294,8 +293,8 @@ Log.info = function (sMessage, vDetails, sComponent, fnSupportInfo) {
294
293
  * Name of the component that produced the log entry
295
294
  * @param {function} [fnSupportInfo]
296
295
  * Callback that returns an additional support object to be logged in support mode.
297
- * This function is only called if support info mode is turned on with
298
- * <code>logSupportInfo(true)</code>. To avoid negative effects regarding execution times and
296
+ * This function is only called if support info mode is turned on via
297
+ * the Support Assistant. To avoid negative effects regarding execution times and
299
298
  * memory consumption, the returned object should be a simple immutable JSON object with mostly
300
299
  * static and stable content.
301
300
  * @public
@@ -317,8 +316,8 @@ Log.debug = function (sMessage, vDetails, sComponent, fnSupportInfo) {
317
316
  * Name of the component that produced the log entry
318
317
  * @param {function} [fnSupportInfo]
319
318
  * Callback that returns an additional support object to be logged in support mode.
320
- * This function is only called if support info mode is turned on with
321
- * <code>logSupportInfo(true)</code>. To avoid negative effects regarding execution times and
319
+ * This function is only called if support info mode is turned on via
320
+ * the Support Assistant. To avoid negative effects regarding execution times and
322
321
  * memory consumption, the returned object should be a simple immutable JSON object with mostly
323
322
  * static and stable content.
324
323
  * @public
@@ -418,8 +417,8 @@ Log.logSupportInfo = function (bEnabled) {
418
417
  * @param {string} [sComponent]
419
418
  * The log component under which the message should be logged
420
419
  * @param {function} [fnSupportInfo] Callback that returns an additional support object to be
421
- * logged in support mode. This function is only called if support info mode is turned on with
422
- * <code>logSupportInfo(true)</code>. To avoid negative effects regarding execution times and
420
+ * logged in support mode. This function is only called if support info mode is turned on via
421
+ * the Support Assistant. To avoid negative effects regarding execution times and
423
422
  * memory consumption, the returned object should be a simple immutable JSON object with mostly
424
423
  * static and stable content.
425
424
  * @returns {module:sap/base/Log.Entry}
@@ -734,17 +733,4 @@ Log.getLogger = function (sComponent, iDefaultLogLevel) {
734
733
  }
735
734
  return new Logger(sComponent);
736
735
  };
737
-
738
- // set LogLevel
739
- const sLogLevel = BaseConfig.get({
740
- name: "sapUiLogLevel",
741
- type: BaseConfig.Type.String,
742
- defaultValue: undefined,
743
- external: true
744
- });
745
- if (sLogLevel) {
746
- Log.setLevel(Log.Level[sLogLevel.toUpperCase()] || parseInt(sLogLevel));
747
- } else if (!globalThis["sap-ui-optimized"]) {
748
- Log.setLevel(Log.Level.DEBUG);
749
- }
750
736
  export default Log;
@@ -19,7 +19,7 @@
19
19
  *
20
20
  */ /*!
21
21
  * OpenUI5
22
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
22
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
23
23
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
24
24
  */
25
25
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  import uid from "../util/uid.js";
@@ -1,11 +1,11 @@
1
1
  // validation regexes
2
2
  /*!
3
3
  * OpenUI5
4
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
4
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
5
5
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
6
6
  */
7
7
 
8
- var rBasicUrl = /^(?:([^:\/?#]+):)?((?:[\/\\]{2,}((?:\[[^\]]+\]|[^\/?#:]+))(?::([0-9]+))?)?([^?#]*))(?:\?([^#]*))?(?:#(.*))?$/;
8
+ var rBasicUrl = /^(?:([^:\/?#]+):)?((?:[\/\\]{2,}(?:(?:[^@\/?#]*@)?(\[[^\]]+\]|[^\/?#:]+)(?::([0-9]+))?)?)?([^?#]*))(?:\?([^#]*))?(?:#(.*))?$/;
9
9
  var rCheckPath = /^([a-z0-9-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*$/i;
10
10
  var rCheckQuery = /^([a-z0-9-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*$/i;
11
11
  var rCheckFragment = rCheckQuery;
@@ -104,7 +104,8 @@ oURLListValidator.clear = function () {
104
104
  * @param {string} [protocol] The protocol of the URL, can be falsy to allow all protocols for an entry e.g. "", "http", "mailto"
105
105
  * @param {string} [host] The host of the URL, can be falsy to allow all hosts. A wildcard asterisk can be set at the beginning, e.g. "examples.com", "*.example.com"
106
106
  * @param {string} [port] The port of the URL, can be falsy to allow all ports, e.g. "", "8080"
107
- * @param {string} [path] the path of the URL, path of the url, can be falsy to allow all paths. A wildcard asterisk can be set at the end, e.g. "/my-example*", "/my-news"
107
+ * @param {string} [path] the path of the URL, e.g. "/my-news". Can be falsy to allow all paths. A wildcard asterisk can be set at the end to ensure a path starts with the given string, e.g. "/my-example*".
108
+ * When using wildcards, make sure to only provide normalized URLs to the validate function in order to mitigate the risk of path traversal attacks.
108
109
  * @public
109
110
  */
110
111
  oURLListValidator.add = function (protocol, host, port, path) {
@@ -139,13 +140,16 @@ oURLListValidator.entries = function () {
139
140
  * Validates a URL. Check if it's not a script or other security issue.
140
141
  *
141
142
  * <b>Note</b>:
142
- * It is strongly recommended to validate only absolute URLs. There's almost no case
143
+ * It is strongly recommended to validate only absolute, normalized URLs. There's almost no case
143
144
  * where checking only the path of a URL would allow to ensure its validity.
144
- * For compatibility reasons, this API cannot automatically resolve URLs relative to
145
+ * For compatibility reasons, this API does not normalize URLs and cannot automatically resolve URLs relative to
145
146
  * <code>document.baseURI</code>, but callers should do so. In that case, and when the
146
147
  * allow list is not empty, an entry for the origin of <code>document.baseURI</code>
147
148
  * must be added to the allow list.
148
149
  *
150
+ * Any measures to mitigate path traversal or similar attack vectors must be taken by the caller, e.g. by using the
151
+ * {@link https://developer.mozilla.org/docs/Web/API/URL URL} API to normalize the URL beforehand.
152
+ *
149
153
  * <h3>Details</h3>
150
154
  * Splits the given URL into components and checks for allowed characters according to RFC 3986:
151
155
  *
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  import toHex from "../strings/toHex.js";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  import toHex from "../strings/toHex.js";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  /*
@@ -15,7 +15,7 @@
15
15
  * @returns {string} padded hex representation of the given character code
16
16
  */ /*!
17
17
  * OpenUI5
18
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
18
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
19
19
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
20
20
  */
21
21
  /*