@ui5/webcomponents-base 2.22.0-rc.3 → 2.22.0-rc.4

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.
@@ -1367,6 +1367,123 @@
1367
1367
  }
1368
1368
  ]
1369
1369
  },
1370
+ {
1371
+ "kind": "javascript-module",
1372
+ "path": "dist/features/F6Navigation.js",
1373
+ "declarations": [],
1374
+ "exports": [
1375
+ {
1376
+ "kind": "js",
1377
+ "name": "default",
1378
+ "declaration": {
1379
+ "name": "F6Navigation",
1380
+ "module": "dist/features/F6Navigation.js"
1381
+ }
1382
+ }
1383
+ ]
1384
+ },
1385
+ {
1386
+ "kind": "javascript-module",
1387
+ "path": "dist/features/InputElementsFormSupport.js",
1388
+ "declarations": [],
1389
+ "exports": []
1390
+ },
1391
+ {
1392
+ "kind": "javascript-module",
1393
+ "path": "dist/features/LegacyDateFormats.js",
1394
+ "declarations": [],
1395
+ "exports": [
1396
+ {
1397
+ "kind": "js",
1398
+ "name": "default",
1399
+ "declaration": {
1400
+ "name": "LegacyDateFormats",
1401
+ "module": "dist/features/LegacyDateFormats.js"
1402
+ }
1403
+ }
1404
+ ]
1405
+ },
1406
+ {
1407
+ "kind": "javascript-module",
1408
+ "path": "dist/features/OpenUI5Element.js",
1409
+ "declarations": [],
1410
+ "exports": [
1411
+ {
1412
+ "kind": "js",
1413
+ "name": "default",
1414
+ "declaration": {
1415
+ "name": "OpenUI5Element",
1416
+ "module": "dist/features/OpenUI5Element.js"
1417
+ }
1418
+ }
1419
+ ]
1420
+ },
1421
+ {
1422
+ "kind": "javascript-module",
1423
+ "path": "dist/features/OpenUI5Enablement.js",
1424
+ "declarations": [],
1425
+ "exports": [
1426
+ {
1427
+ "kind": "js",
1428
+ "name": "default",
1429
+ "declaration": {
1430
+ "name": "OpenUI5Enablement",
1431
+ "module": "dist/features/OpenUI5Enablement.js"
1432
+ }
1433
+ }
1434
+ ]
1435
+ },
1436
+ {
1437
+ "kind": "javascript-module",
1438
+ "path": "dist/features/OpenUI5Support.js",
1439
+ "declarations": [],
1440
+ "exports": [
1441
+ {
1442
+ "kind": "js",
1443
+ "name": "default",
1444
+ "declaration": {
1445
+ "name": "OpenUI5Support",
1446
+ "module": "dist/features/OpenUI5Support.js"
1447
+ }
1448
+ }
1449
+ ]
1450
+ },
1451
+ {
1452
+ "kind": "javascript-module",
1453
+ "path": "dist/features/insertOpenUI5PopupStyles.js",
1454
+ "declarations": [],
1455
+ "exports": [
1456
+ {
1457
+ "kind": "js",
1458
+ "name": "default",
1459
+ "declaration": {
1460
+ "name": "insertOpenUI5PopupStyles",
1461
+ "module": "dist/features/insertOpenUI5PopupStyles.js"
1462
+ }
1463
+ }
1464
+ ]
1465
+ },
1466
+ {
1467
+ "kind": "javascript-module",
1468
+ "path": "dist/features/patchPatcher.js",
1469
+ "declarations": [],
1470
+ "exports": [
1471
+ {
1472
+ "kind": "js",
1473
+ "name": "default",
1474
+ "declaration": {
1475
+ "name": "patchPatcher",
1476
+ "module": "dist/features/patchPatcher.js"
1477
+ }
1478
+ }
1479
+ ]
1480
+ },
1481
+ {
1482
+ "kind": "javascript-module",
1483
+ "path": "dist/features/patchPopup.js",
1484
+ "declarations": [],
1485
+ "exports": []
1486
+ },
1370
1487
  {
1371
1488
  "kind": "javascript-module",
1372
1489
  "path": "dist/delegate/ItemNavigation.js",
@@ -1550,123 +1667,6 @@
1550
1667
  }
1551
1668
  ]
1552
1669
  },
1553
- {
1554
- "kind": "javascript-module",
1555
- "path": "dist/features/F6Navigation.js",
1556
- "declarations": [],
1557
- "exports": [
1558
- {
1559
- "kind": "js",
1560
- "name": "default",
1561
- "declaration": {
1562
- "name": "F6Navigation",
1563
- "module": "dist/features/F6Navigation.js"
1564
- }
1565
- }
1566
- ]
1567
- },
1568
- {
1569
- "kind": "javascript-module",
1570
- "path": "dist/features/InputElementsFormSupport.js",
1571
- "declarations": [],
1572
- "exports": []
1573
- },
1574
- {
1575
- "kind": "javascript-module",
1576
- "path": "dist/features/LegacyDateFormats.js",
1577
- "declarations": [],
1578
- "exports": [
1579
- {
1580
- "kind": "js",
1581
- "name": "default",
1582
- "declaration": {
1583
- "name": "LegacyDateFormats",
1584
- "module": "dist/features/LegacyDateFormats.js"
1585
- }
1586
- }
1587
- ]
1588
- },
1589
- {
1590
- "kind": "javascript-module",
1591
- "path": "dist/features/OpenUI5Element.js",
1592
- "declarations": [],
1593
- "exports": [
1594
- {
1595
- "kind": "js",
1596
- "name": "default",
1597
- "declaration": {
1598
- "name": "OpenUI5Element",
1599
- "module": "dist/features/OpenUI5Element.js"
1600
- }
1601
- }
1602
- ]
1603
- },
1604
- {
1605
- "kind": "javascript-module",
1606
- "path": "dist/features/OpenUI5Enablement.js",
1607
- "declarations": [],
1608
- "exports": [
1609
- {
1610
- "kind": "js",
1611
- "name": "default",
1612
- "declaration": {
1613
- "name": "OpenUI5Enablement",
1614
- "module": "dist/features/OpenUI5Enablement.js"
1615
- }
1616
- }
1617
- ]
1618
- },
1619
- {
1620
- "kind": "javascript-module",
1621
- "path": "dist/features/OpenUI5Support.js",
1622
- "declarations": [],
1623
- "exports": [
1624
- {
1625
- "kind": "js",
1626
- "name": "default",
1627
- "declaration": {
1628
- "name": "OpenUI5Support",
1629
- "module": "dist/features/OpenUI5Support.js"
1630
- }
1631
- }
1632
- ]
1633
- },
1634
- {
1635
- "kind": "javascript-module",
1636
- "path": "dist/features/insertOpenUI5PopupStyles.js",
1637
- "declarations": [],
1638
- "exports": [
1639
- {
1640
- "kind": "js",
1641
- "name": "default",
1642
- "declaration": {
1643
- "name": "insertOpenUI5PopupStyles",
1644
- "module": "dist/features/insertOpenUI5PopupStyles.js"
1645
- }
1646
- }
1647
- ]
1648
- },
1649
- {
1650
- "kind": "javascript-module",
1651
- "path": "dist/features/patchPatcher.js",
1652
- "declarations": [],
1653
- "exports": [
1654
- {
1655
- "kind": "js",
1656
- "name": "default",
1657
- "declaration": {
1658
- "name": "patchPatcher",
1659
- "module": "dist/features/patchPatcher.js"
1660
- }
1661
- }
1662
- ]
1663
- },
1664
- {
1665
- "kind": "javascript-module",
1666
- "path": "dist/features/patchPopup.js",
1667
- "declarations": [],
1668
- "exports": []
1669
- },
1670
1670
  {
1671
1671
  "kind": "javascript-module",
1672
1672
  "path": "dist/locale/Locale.js",
@@ -1349,6 +1349,123 @@
1349
1349
  }
1350
1350
  ]
1351
1351
  },
1352
+ {
1353
+ "kind": "javascript-module",
1354
+ "path": "dist/features/F6Navigation.js",
1355
+ "declarations": [],
1356
+ "exports": [
1357
+ {
1358
+ "kind": "js",
1359
+ "name": "default",
1360
+ "declaration": {
1361
+ "name": "F6Navigation",
1362
+ "module": "dist/features/F6Navigation.js"
1363
+ }
1364
+ }
1365
+ ]
1366
+ },
1367
+ {
1368
+ "kind": "javascript-module",
1369
+ "path": "dist/features/InputElementsFormSupport.js",
1370
+ "declarations": [],
1371
+ "exports": []
1372
+ },
1373
+ {
1374
+ "kind": "javascript-module",
1375
+ "path": "dist/features/LegacyDateFormats.js",
1376
+ "declarations": [],
1377
+ "exports": [
1378
+ {
1379
+ "kind": "js",
1380
+ "name": "default",
1381
+ "declaration": {
1382
+ "name": "LegacyDateFormats",
1383
+ "module": "dist/features/LegacyDateFormats.js"
1384
+ }
1385
+ }
1386
+ ]
1387
+ },
1388
+ {
1389
+ "kind": "javascript-module",
1390
+ "path": "dist/features/OpenUI5Element.js",
1391
+ "declarations": [],
1392
+ "exports": [
1393
+ {
1394
+ "kind": "js",
1395
+ "name": "default",
1396
+ "declaration": {
1397
+ "name": "OpenUI5Element",
1398
+ "module": "dist/features/OpenUI5Element.js"
1399
+ }
1400
+ }
1401
+ ]
1402
+ },
1403
+ {
1404
+ "kind": "javascript-module",
1405
+ "path": "dist/features/OpenUI5Enablement.js",
1406
+ "declarations": [],
1407
+ "exports": [
1408
+ {
1409
+ "kind": "js",
1410
+ "name": "default",
1411
+ "declaration": {
1412
+ "name": "OpenUI5Enablement",
1413
+ "module": "dist/features/OpenUI5Enablement.js"
1414
+ }
1415
+ }
1416
+ ]
1417
+ },
1418
+ {
1419
+ "kind": "javascript-module",
1420
+ "path": "dist/features/OpenUI5Support.js",
1421
+ "declarations": [],
1422
+ "exports": [
1423
+ {
1424
+ "kind": "js",
1425
+ "name": "default",
1426
+ "declaration": {
1427
+ "name": "OpenUI5Support",
1428
+ "module": "dist/features/OpenUI5Support.js"
1429
+ }
1430
+ }
1431
+ ]
1432
+ },
1433
+ {
1434
+ "kind": "javascript-module",
1435
+ "path": "dist/features/insertOpenUI5PopupStyles.js",
1436
+ "declarations": [],
1437
+ "exports": [
1438
+ {
1439
+ "kind": "js",
1440
+ "name": "default",
1441
+ "declaration": {
1442
+ "name": "insertOpenUI5PopupStyles",
1443
+ "module": "dist/features/insertOpenUI5PopupStyles.js"
1444
+ }
1445
+ }
1446
+ ]
1447
+ },
1448
+ {
1449
+ "kind": "javascript-module",
1450
+ "path": "dist/features/patchPatcher.js",
1451
+ "declarations": [],
1452
+ "exports": [
1453
+ {
1454
+ "kind": "js",
1455
+ "name": "default",
1456
+ "declaration": {
1457
+ "name": "patchPatcher",
1458
+ "module": "dist/features/patchPatcher.js"
1459
+ }
1460
+ }
1461
+ ]
1462
+ },
1463
+ {
1464
+ "kind": "javascript-module",
1465
+ "path": "dist/features/patchPopup.js",
1466
+ "declarations": [],
1467
+ "exports": []
1468
+ },
1352
1469
  {
1353
1470
  "kind": "javascript-module",
1354
1471
  "path": "dist/delegate/ItemNavigation.js",
@@ -1524,123 +1641,6 @@
1524
1641
  }
1525
1642
  ]
1526
1643
  },
1527
- {
1528
- "kind": "javascript-module",
1529
- "path": "dist/features/F6Navigation.js",
1530
- "declarations": [],
1531
- "exports": [
1532
- {
1533
- "kind": "js",
1534
- "name": "default",
1535
- "declaration": {
1536
- "name": "F6Navigation",
1537
- "module": "dist/features/F6Navigation.js"
1538
- }
1539
- }
1540
- ]
1541
- },
1542
- {
1543
- "kind": "javascript-module",
1544
- "path": "dist/features/InputElementsFormSupport.js",
1545
- "declarations": [],
1546
- "exports": []
1547
- },
1548
- {
1549
- "kind": "javascript-module",
1550
- "path": "dist/features/LegacyDateFormats.js",
1551
- "declarations": [],
1552
- "exports": [
1553
- {
1554
- "kind": "js",
1555
- "name": "default",
1556
- "declaration": {
1557
- "name": "LegacyDateFormats",
1558
- "module": "dist/features/LegacyDateFormats.js"
1559
- }
1560
- }
1561
- ]
1562
- },
1563
- {
1564
- "kind": "javascript-module",
1565
- "path": "dist/features/OpenUI5Element.js",
1566
- "declarations": [],
1567
- "exports": [
1568
- {
1569
- "kind": "js",
1570
- "name": "default",
1571
- "declaration": {
1572
- "name": "OpenUI5Element",
1573
- "module": "dist/features/OpenUI5Element.js"
1574
- }
1575
- }
1576
- ]
1577
- },
1578
- {
1579
- "kind": "javascript-module",
1580
- "path": "dist/features/OpenUI5Enablement.js",
1581
- "declarations": [],
1582
- "exports": [
1583
- {
1584
- "kind": "js",
1585
- "name": "default",
1586
- "declaration": {
1587
- "name": "OpenUI5Enablement",
1588
- "module": "dist/features/OpenUI5Enablement.js"
1589
- }
1590
- }
1591
- ]
1592
- },
1593
- {
1594
- "kind": "javascript-module",
1595
- "path": "dist/features/OpenUI5Support.js",
1596
- "declarations": [],
1597
- "exports": [
1598
- {
1599
- "kind": "js",
1600
- "name": "default",
1601
- "declaration": {
1602
- "name": "OpenUI5Support",
1603
- "module": "dist/features/OpenUI5Support.js"
1604
- }
1605
- }
1606
- ]
1607
- },
1608
- {
1609
- "kind": "javascript-module",
1610
- "path": "dist/features/insertOpenUI5PopupStyles.js",
1611
- "declarations": [],
1612
- "exports": [
1613
- {
1614
- "kind": "js",
1615
- "name": "default",
1616
- "declaration": {
1617
- "name": "insertOpenUI5PopupStyles",
1618
- "module": "dist/features/insertOpenUI5PopupStyles.js"
1619
- }
1620
- }
1621
- ]
1622
- },
1623
- {
1624
- "kind": "javascript-module",
1625
- "path": "dist/features/patchPatcher.js",
1626
- "declarations": [],
1627
- "exports": [
1628
- {
1629
- "kind": "js",
1630
- "name": "default",
1631
- "declaration": {
1632
- "name": "patchPatcher",
1633
- "module": "dist/features/patchPatcher.js"
1634
- }
1635
- }
1636
- ]
1637
- },
1638
- {
1639
- "kind": "javascript-module",
1640
- "path": "dist/features/patchPopup.js",
1641
- "declarations": [],
1642
- "exports": []
1643
- },
1644
1644
  {
1645
1645
  "kind": "javascript-module",
1646
1646
  "path": "dist/locale/Locale.js",
@@ -1,11 +1,11 @@
1
1
  const VersionInfo = {
2
- version: "2.22.0-rc.3",
2
+ version: "2.22.0-rc.4",
3
3
  major: 2,
4
4
  minor: 22,
5
5
  patch: 0,
6
- suffix: "-rc.3",
6
+ suffix: "-rc.4",
7
7
  isNext: false,
8
- buildTime: 1777538832,
8
+ buildTime: 1778144082,
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,aAAa;IACtB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAU;CACrB,CAAC;AACF,eAAe,WAAW,CAAC","sourcesContent":["const VersionInfo = {\n\tversion: \"2.22.0-rc.3\",\n\tmajor: 2,\n\tminor: 22,\n\tpatch: 0,\n\tsuffix: \"-rc.3\",\n\tisNext: false,\n\tbuildTime: 1777538832,\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,aAAa;IACtB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAU;CACrB,CAAC;AACF,eAAe,WAAW,CAAC","sourcesContent":["const VersionInfo = {\n\tversion: \"2.22.0-rc.4\",\n\tmajor: 2,\n\tminor: 22,\n\tpatch: 0,\n\tsuffix: \"-rc.4\",\n\tisNext: false,\n\tbuildTime: 1778144082,\n};\nexport default VersionInfo;"]}
@@ -1,2 +1,2 @@
1
- "use strict";const e={version:"2.22.0-rc.3",major:2,minor:22,patch:0,suffix:"-rc.3",isNext:!1,buildTime:1777538832};export default e;
1
+ "use strict";const e={version:"2.22.0-rc.4",major:2,minor:22,patch:0,suffix:"-rc.4",isNext:!1,buildTime:1778144082};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.22.0-rc.3\",\n\tmajor: 2,\n\tminor: 22,\n\tpatch: 0,\n\tsuffix: \"-rc.3\",\n\tisNext: false,\n\tbuildTime: 1777538832,\n};\nexport default VersionInfo;"],
4
+ "sourcesContent": ["const VersionInfo = {\n\tversion: \"2.22.0-rc.4\",\n\tmajor: 2,\n\tminor: 22,\n\tpatch: 0,\n\tsuffix: \"-rc.4\",\n\tisNext: false,\n\tbuildTime: 1778144082,\n};\nexport default VersionInfo;"],
5
5
  "mappings": "aAAA,MAAMA,EAAc,CACnB,QAAS,cACT,MAAO,EACP,MAAO,GACP,MAAO,EACP,OAAQ,QACR,OAAQ,GACR,UAAW,UACZ,EACA,eAAeA",
6
6
  "names": ["VersionInfo"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";import{getLocationHref as s}from"./Location.js";const a=e=>{const t=document.querySelector(`META[name="${e}"]`);return t&&t.getAttribute("content")},g=(e,t=!1)=>{const n=a("sap-allowed-theme-origins")??a("sap-allowedThemeOrigins");return n?t?!0:n.split(",").some(r=>r==="*"||e===r.trim()):!1},l=e=>{let t,n=!1;try{if(e.startsWith(".")||e.startsWith("/"))t=new URL(e,s()).toString(),n=!0;else{const r=new URL(e),i=r.origin,o=new URL(s()).origin;if(n=i===o,i&&g(i,n))t=r.toString();else return}return t.endsWith("/")||(t=`${t}/`),`${t}UI5/`}catch{return}};export default l;
1
+ "use strict";import{getLocationHref as s}from"./Location.js";const a=t=>{const e=document.querySelector(`META[name="${t}"]`);return e&&e.getAttribute("content")},g=(t,e=!1)=>{const n=a("sap-allowed-theme-origins")??a("sap-allowedThemeOrigins");return n?e?!0:n.split(",").some(r=>r==="*"||t===r.trim()):!1},l=t=>{let e,n=!1;try{if(t.startsWith(".")||t.startsWith("/")&&!t.startsWith("//"))e=new URL(t,s()).toString(),n=!0;else{const r=t.startsWith("//")?new URL(t,s()):new URL(t),i=r.origin,o=new URL(s()).origin;if(n=i===o,i&&g(i,n))e=r.toString();else return}return e.endsWith("/")||(e=`${e}/`),`${e}UI5/`}catch{return}};export default l;
2
2
  //# sourceMappingURL=validateThemeRoot.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validateThemeRoot.ts"],
4
- "sourcesContent": ["import { getLocationHref } from \"./Location.js\";\n\nconst getMetaTagValue = (metaTagName: string) => {\n\tconst metaTag = document.querySelector(`META[name=\"${metaTagName}\"]`),\n\t\tmetaTagContent = metaTag && metaTag.getAttribute(\"content\");\n\n\treturn metaTagContent;\n};\n\nconst validateThemeOrigin = (origin: string, isSameOrigin: boolean = false) => {\n\tconst allowedOrigins = getMetaTagValue(\"sap-allowed-theme-origins\") ?? getMetaTagValue(\"sap-allowedThemeOrigins\"); // Prioritize the new meta tag name\n\n\t// If no allowed origins are specified, block.\n\tif (!allowedOrigins) {\n\t\treturn false;\n\t}\n\n\t// If it's same-origin (relative URL resolved to current page), allow it when there's any meta tag present\n\t// The presence of the meta tag indicates the user wants to use theme roots\n\tif (isSameOrigin) {\n\t\treturn true;\n\t}\n\n\treturn allowedOrigins.split(\",\").some(allowedOrigin => {\n\t\treturn allowedOrigin === \"*\" || origin === allowedOrigin.trim();\n\t});\n};\n\nconst validateThemeRoot = (themeRoot: string) => {\n\tlet resultUrl;\n\tlet isSameOrigin = false;\n\n\ttry {\n\t\tif (themeRoot.startsWith(\".\") || themeRoot.startsWith(\"/\")) {\n\t\t\t// Handle relative url\n\t\t\t// new URL(\"/newExmPath\", \"http://example.com/exmPath\") => http://example.com/newExmPath\n\t\t\t// new URL(\"./newExmPath\", \"http://example.com/exmPath\") => http://example.com/exmPath/newExmPath\n\t\t\t// new URL(\"../newExmPath\", \"http://example.com/exmPath\") => http://example.com/newExmPath\n\t\t\tresultUrl = new URL(themeRoot, getLocationHref()).toString();\n\t\t\tisSameOrigin = true;\n\t\t} else {\n\t\t\tconst themeRootURL = new URL(themeRoot);\n\t\t\tconst origin = themeRootURL.origin;\n\t\t\tconst currentOrigin = new URL(getLocationHref()).origin;\n\n\t\t\t// Check if the absolute URL is same-origin\n\t\t\tisSameOrigin = origin === currentOrigin;\n\n\t\t\tif (origin && validateThemeOrigin(origin, isSameOrigin)) {\n\t\t\t\t// If origin is allowed, use it\n\t\t\t\tresultUrl = themeRootURL.toString();\n\t\t\t} else {\n\t\t\t\t// If origin is not allowed, return undefined to indicate validation failed\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tif (!resultUrl.endsWith(\"/\")) {\n\t\t\tresultUrl = `${resultUrl}/`;\n\t\t}\n\n\t\treturn `${resultUrl}UI5/`;\n\t} catch (e) {\n\t\t// Catch if URL is not correct\n\t\treturn undefined;\n\t}\n};\n\nexport default validateThemeRoot;\n"],
5
- "mappings": "aAAA,OAAS,mBAAAA,MAAuB,gBAEhC,MAAMC,EAAmBC,GAAwB,CAChD,MAAMC,EAAU,SAAS,cAAc,cAAcD,CAAW,IAAI,EAGpE,OAFkBC,GAAWA,EAAQ,aAAa,SAAS,CAG5D,EAEMC,EAAsB,CAACC,EAAgBC,EAAwB,KAAU,CAC9E,MAAMC,EAAiBN,EAAgB,2BAA2B,GAAKA,EAAgB,yBAAyB,EAGhH,OAAKM,EAMDD,EACI,GAGDC,EAAe,MAAM,GAAG,EAAE,KAAKC,GAC9BA,IAAkB,KAAOH,IAAWG,EAAc,KAAK,CAC9D,EAXO,EAYT,EAEMC,EAAqBC,GAAsB,CAChD,IAAIC,EACAL,EAAe,GAEnB,GAAI,CACH,GAAII,EAAU,WAAW,GAAG,GAAKA,EAAU,WAAW,GAAG,EAKxDC,EAAY,IAAI,IAAID,EAAWV,EAAgB,CAAC,EAAE,SAAS,EAC3DM,EAAe,OACT,CACN,MAAMM,EAAe,IAAI,IAAIF,CAAS,EAChCL,EAASO,EAAa,OACtBC,EAAgB,IAAI,IAAIb,EAAgB,CAAC,EAAE,OAKjD,GAFAM,EAAeD,IAAWQ,EAEtBR,GAAUD,EAAoBC,EAAQC,CAAY,EAErDK,EAAYC,EAAa,SAAS,MAGlC,OAEF,CAEA,OAAKD,EAAU,SAAS,GAAG,IAC1BA,EAAY,GAAGA,CAAS,KAGlB,GAAGA,CAAS,MACpB,MAAY,CAEX,MACD,CACD,EAEA,eAAeF",
4
+ "sourcesContent": ["import { getLocationHref } from \"./Location.js\";\n\nconst getMetaTagValue = (metaTagName: string) => {\n\tconst metaTag = document.querySelector(`META[name=\"${metaTagName}\"]`),\n\t\tmetaTagContent = metaTag && metaTag.getAttribute(\"content\");\n\n\treturn metaTagContent;\n};\n\nconst validateThemeOrigin = (origin: string, isSameOrigin: boolean = false) => {\n\tconst allowedOrigins = getMetaTagValue(\"sap-allowed-theme-origins\") ?? getMetaTagValue(\"sap-allowedThemeOrigins\"); // Prioritize the new meta tag name\n\n\t// If no allowed origins are specified, block.\n\tif (!allowedOrigins) {\n\t\treturn false;\n\t}\n\n\t// If it's same-origin (relative URL resolved to current page), allow it when there's any meta tag present\n\t// The presence of the meta tag indicates the user wants to use theme roots\n\tif (isSameOrigin) {\n\t\treturn true;\n\t}\n\n\treturn allowedOrigins.split(\",\").some(allowedOrigin => {\n\t\treturn allowedOrigin === \"*\" || origin === allowedOrigin.trim();\n\t});\n};\n\nconst validateThemeRoot = (themeRoot: string) => {\n\tlet resultUrl;\n\tlet isSameOrigin = false;\n\n\ttry {\n\t\tif (themeRoot.startsWith(\".\") || (themeRoot.startsWith(\"/\") && !themeRoot.startsWith(\"//\"))) {\n\t\t\t// Handle relative url\n\t\t\t// new URL(\"/newExmPath\", \"http://example.com/exmPath\") => http://example.com/newExmPath\n\t\t\t// new URL(\"./newExmPath\", \"http://example.com/exmPath\") => http://example.com/exmPath/newExmPath\n\t\t\t// new URL(\"../newExmPath\", \"http://example.com/exmPath\") => http://example.com/newExmPath\n\t\t\tresultUrl = new URL(themeRoot, getLocationHref()).toString();\n\t\t\tisSameOrigin = true;\n\t\t} else {\n\t\t\t// Protocol-relative URLs (//host/path) need a base to resolve the protocol\n\t\t\tconst themeRootURL = themeRoot.startsWith(\"//\") ? new URL(themeRoot, getLocationHref()) : new URL(themeRoot);\n\t\t\tconst origin = themeRootURL.origin;\n\t\t\tconst currentOrigin = new URL(getLocationHref()).origin;\n\n\t\t\t// Check if the absolute URL is same-origin\n\t\t\tisSameOrigin = origin === currentOrigin;\n\n\t\t\tif (origin && validateThemeOrigin(origin, isSameOrigin)) {\n\t\t\t\t// If origin is allowed, use it\n\t\t\t\tresultUrl = themeRootURL.toString();\n\t\t\t} else {\n\t\t\t\t// If origin is not allowed, return undefined to indicate validation failed\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tif (!resultUrl.endsWith(\"/\")) {\n\t\t\tresultUrl = `${resultUrl}/`;\n\t\t}\n\n\t\treturn `${resultUrl}UI5/`;\n\t} catch (e) {\n\t\t// Catch if URL is not correct\n\t\treturn undefined;\n\t}\n};\n\nexport default validateThemeRoot;\n"],
5
+ "mappings": "aAAA,OAAS,mBAAAA,MAAuB,gBAEhC,MAAMC,EAAmBC,GAAwB,CAChD,MAAMC,EAAU,SAAS,cAAc,cAAcD,CAAW,IAAI,EAGpE,OAFkBC,GAAWA,EAAQ,aAAa,SAAS,CAG5D,EAEMC,EAAsB,CAACC,EAAgBC,EAAwB,KAAU,CAC9E,MAAMC,EAAiBN,EAAgB,2BAA2B,GAAKA,EAAgB,yBAAyB,EAGhH,OAAKM,EAMDD,EACI,GAGDC,EAAe,MAAM,GAAG,EAAE,KAAKC,GAC9BA,IAAkB,KAAOH,IAAWG,EAAc,KAAK,CAC9D,EAXO,EAYT,EAEMC,EAAqBC,GAAsB,CAChD,IAAIC,EACAL,EAAe,GAEnB,GAAI,CACH,GAAII,EAAU,WAAW,GAAG,GAAMA,EAAU,WAAW,GAAG,GAAK,CAACA,EAAU,WAAW,IAAI,EAKxFC,EAAY,IAAI,IAAID,EAAWV,EAAgB,CAAC,EAAE,SAAS,EAC3DM,EAAe,OACT,CAEN,MAAMM,EAAeF,EAAU,WAAW,IAAI,EAAI,IAAI,IAAIA,EAAWV,EAAgB,CAAC,EAAI,IAAI,IAAIU,CAAS,EACrGL,EAASO,EAAa,OACtBC,EAAgB,IAAI,IAAIb,EAAgB,CAAC,EAAE,OAKjD,GAFAM,EAAeD,IAAWQ,EAEtBR,GAAUD,EAAoBC,EAAQC,CAAY,EAErDK,EAAYC,EAAa,SAAS,MAGlC,OAEF,CAEA,OAAKD,EAAU,SAAS,GAAG,IAC1BA,EAAY,GAAGA,CAAS,KAGlB,GAAGA,CAAS,MACpB,MAAY,CAEX,MACD,CACD,EAEA,eAAeF",
6
6
  "names": ["getLocationHref", "getMetaTagValue", "metaTagName", "metaTag", "validateThemeOrigin", "origin", "isSameOrigin", "allowedOrigins", "allowedOrigin", "validateThemeRoot", "themeRoot", "resultUrl", "themeRootURL", "currentOrigin"]
7
7
  }
@@ -22,7 +22,7 @@ const validateThemeRoot = (themeRoot) => {
22
22
  let resultUrl;
23
23
  let isSameOrigin = false;
24
24
  try {
25
- if (themeRoot.startsWith(".") || themeRoot.startsWith("/")) {
25
+ if (themeRoot.startsWith(".") || (themeRoot.startsWith("/") && !themeRoot.startsWith("//"))) {
26
26
  // Handle relative url
27
27
  // new URL("/newExmPath", "http://example.com/exmPath") => http://example.com/newExmPath
28
28
  // new URL("./newExmPath", "http://example.com/exmPath") => http://example.com/exmPath/newExmPath
@@ -31,7 +31,8 @@ const validateThemeRoot = (themeRoot) => {
31
31
  isSameOrigin = true;
32
32
  }
33
33
  else {
34
- const themeRootURL = new URL(themeRoot);
34
+ // Protocol-relative URLs (//host/path) need a base to resolve the protocol
35
+ const themeRootURL = themeRoot.startsWith("//") ? new URL(themeRoot, getLocationHref()) : new URL(themeRoot);
35
36
  const origin = themeRootURL.origin;
36
37
  const currentOrigin = new URL(getLocationHref()).origin;
37
38
  // Check if the absolute URL is same-origin
@@ -1 +1 @@
1
- {"version":3,"file":"validateThemeRoot.js","sourceRoot":"","sources":["../src/validateThemeRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,WAAW,IAAI,CAAC,EACpE,cAAc,GAAG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAE7D,OAAO,cAAc,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,eAAwB,KAAK,EAAE,EAAE;IAC7E,MAAM,cAAc,GAAG,eAAe,CAAC,2BAA2B,CAAC,IAAI,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAC,mCAAmC;IAEtJ,8CAA8C;IAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,0GAA0G;IAC1G,2EAA2E;IAC3E,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;QACrD,OAAO,aAAa,KAAK,GAAG,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC/C,IAAI,SAAS,CAAC;IACd,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,IAAI,CAAC;QACJ,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,sBAAsB;YACtB,wFAAwF;YACxF,iGAAiG;YACjG,0FAA0F;YAC1F,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC7D,YAAY,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,CAAC;YACP,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;YACnC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;YAExD,2CAA2C;YAC3C,YAAY,GAAG,MAAM,KAAK,aAAa,CAAC;YAExC,IAAI,MAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;gBACzD,+BAA+B;gBAC/B,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACP,2EAA2E;gBAC3E,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,GAAG,GAAG,SAAS,GAAG,CAAC;QAC7B,CAAC;QAED,OAAO,GAAG,SAAS,MAAM,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,8BAA8B;QAC9B,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC","sourcesContent":["import { getLocationHref } from \"./Location.js\";\n\nconst getMetaTagValue = (metaTagName: string) => {\n\tconst metaTag = document.querySelector(`META[name=\"${metaTagName}\"]`),\n\t\tmetaTagContent = metaTag && metaTag.getAttribute(\"content\");\n\n\treturn metaTagContent;\n};\n\nconst validateThemeOrigin = (origin: string, isSameOrigin: boolean = false) => {\n\tconst allowedOrigins = getMetaTagValue(\"sap-allowed-theme-origins\") ?? getMetaTagValue(\"sap-allowedThemeOrigins\"); // Prioritize the new meta tag name\n\n\t// If no allowed origins are specified, block.\n\tif (!allowedOrigins) {\n\t\treturn false;\n\t}\n\n\t// If it's same-origin (relative URL resolved to current page), allow it when there's any meta tag present\n\t// The presence of the meta tag indicates the user wants to use theme roots\n\tif (isSameOrigin) {\n\t\treturn true;\n\t}\n\n\treturn allowedOrigins.split(\",\").some(allowedOrigin => {\n\t\treturn allowedOrigin === \"*\" || origin === allowedOrigin.trim();\n\t});\n};\n\nconst validateThemeRoot = (themeRoot: string) => {\n\tlet resultUrl;\n\tlet isSameOrigin = false;\n\n\ttry {\n\t\tif (themeRoot.startsWith(\".\") || themeRoot.startsWith(\"/\")) {\n\t\t\t// Handle relative url\n\t\t\t// new URL(\"/newExmPath\", \"http://example.com/exmPath\") => http://example.com/newExmPath\n\t\t\t// new URL(\"./newExmPath\", \"http://example.com/exmPath\") => http://example.com/exmPath/newExmPath\n\t\t\t// new URL(\"../newExmPath\", \"http://example.com/exmPath\") => http://example.com/newExmPath\n\t\t\tresultUrl = new URL(themeRoot, getLocationHref()).toString();\n\t\t\tisSameOrigin = true;\n\t\t} else {\n\t\t\tconst themeRootURL = new URL(themeRoot);\n\t\t\tconst origin = themeRootURL.origin;\n\t\t\tconst currentOrigin = new URL(getLocationHref()).origin;\n\n\t\t\t// Check if the absolute URL is same-origin\n\t\t\tisSameOrigin = origin === currentOrigin;\n\n\t\t\tif (origin && validateThemeOrigin(origin, isSameOrigin)) {\n\t\t\t\t// If origin is allowed, use it\n\t\t\t\tresultUrl = themeRootURL.toString();\n\t\t\t} else {\n\t\t\t\t// If origin is not allowed, return undefined to indicate validation failed\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tif (!resultUrl.endsWith(\"/\")) {\n\t\t\tresultUrl = `${resultUrl}/`;\n\t\t}\n\n\t\treturn `${resultUrl}UI5/`;\n\t} catch (e) {\n\t\t// Catch if URL is not correct\n\t\treturn undefined;\n\t}\n};\n\nexport default validateThemeRoot;\n"]}
1
+ {"version":3,"file":"validateThemeRoot.js","sourceRoot":"","sources":["../src/validateThemeRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,WAAW,IAAI,CAAC,EACpE,cAAc,GAAG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAE7D,OAAO,cAAc,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,eAAwB,KAAK,EAAE,EAAE;IAC7E,MAAM,cAAc,GAAG,eAAe,CAAC,2BAA2B,CAAC,IAAI,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAC,mCAAmC;IAEtJ,8CAA8C;IAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,0GAA0G;IAC1G,2EAA2E;IAC3E,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;QACrD,OAAO,aAAa,KAAK,GAAG,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC/C,IAAI,SAAS,CAAC;IACd,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,IAAI,CAAC;QACJ,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC7F,sBAAsB;YACtB,wFAAwF;YACxF,iGAAiG;YACjG,0FAA0F;YAC1F,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC7D,YAAY,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,CAAC;YACP,2EAA2E;YAC3E,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7G,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;YACnC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;YAExD,2CAA2C;YAC3C,YAAY,GAAG,MAAM,KAAK,aAAa,CAAC;YAExC,IAAI,MAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;gBACzD,+BAA+B;gBAC/B,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACP,2EAA2E;gBAC3E,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,GAAG,GAAG,SAAS,GAAG,CAAC;QAC7B,CAAC;QAED,OAAO,GAAG,SAAS,MAAM,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,8BAA8B;QAC9B,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC","sourcesContent":["import { getLocationHref } from \"./Location.js\";\n\nconst getMetaTagValue = (metaTagName: string) => {\n\tconst metaTag = document.querySelector(`META[name=\"${metaTagName}\"]`),\n\t\tmetaTagContent = metaTag && metaTag.getAttribute(\"content\");\n\n\treturn metaTagContent;\n};\n\nconst validateThemeOrigin = (origin: string, isSameOrigin: boolean = false) => {\n\tconst allowedOrigins = getMetaTagValue(\"sap-allowed-theme-origins\") ?? getMetaTagValue(\"sap-allowedThemeOrigins\"); // Prioritize the new meta tag name\n\n\t// If no allowed origins are specified, block.\n\tif (!allowedOrigins) {\n\t\treturn false;\n\t}\n\n\t// If it's same-origin (relative URL resolved to current page), allow it when there's any meta tag present\n\t// The presence of the meta tag indicates the user wants to use theme roots\n\tif (isSameOrigin) {\n\t\treturn true;\n\t}\n\n\treturn allowedOrigins.split(\",\").some(allowedOrigin => {\n\t\treturn allowedOrigin === \"*\" || origin === allowedOrigin.trim();\n\t});\n};\n\nconst validateThemeRoot = (themeRoot: string) => {\n\tlet resultUrl;\n\tlet isSameOrigin = false;\n\n\ttry {\n\t\tif (themeRoot.startsWith(\".\") || (themeRoot.startsWith(\"/\") && !themeRoot.startsWith(\"//\"))) {\n\t\t\t// Handle relative url\n\t\t\t// new URL(\"/newExmPath\", \"http://example.com/exmPath\") => http://example.com/newExmPath\n\t\t\t// new URL(\"./newExmPath\", \"http://example.com/exmPath\") => http://example.com/exmPath/newExmPath\n\t\t\t// new URL(\"../newExmPath\", \"http://example.com/exmPath\") => http://example.com/newExmPath\n\t\t\tresultUrl = new URL(themeRoot, getLocationHref()).toString();\n\t\t\tisSameOrigin = true;\n\t\t} else {\n\t\t\t// Protocol-relative URLs (//host/path) need a base to resolve the protocol\n\t\t\tconst themeRootURL = themeRoot.startsWith(\"//\") ? new URL(themeRoot, getLocationHref()) : new URL(themeRoot);\n\t\t\tconst origin = themeRootURL.origin;\n\t\t\tconst currentOrigin = new URL(getLocationHref()).origin;\n\n\t\t\t// Check if the absolute URL is same-origin\n\t\t\tisSameOrigin = origin === currentOrigin;\n\n\t\t\tif (origin && validateThemeOrigin(origin, isSameOrigin)) {\n\t\t\t\t// If origin is allowed, use it\n\t\t\t\tresultUrl = themeRootURL.toString();\n\t\t\t} else {\n\t\t\t\t// If origin is not allowed, return undefined to indicate validation failed\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tif (!resultUrl.endsWith(\"/\")) {\n\t\t\tresultUrl = `${resultUrl}/`;\n\t\t}\n\n\t\treturn `${resultUrl}UI5/`;\n\t} catch (e) {\n\t\t// Catch if URL is not correct\n\t\treturn undefined;\n\t}\n};\n\nexport default validateThemeRoot;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-base",
3
- "version": "2.22.0-rc.3",
3
+ "version": "2.22.0-rc.4",
4
4
  "description": "UI5 Web Components: webcomponents.base",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -66,7 +66,7 @@
66
66
  "@openui5/sap.ui.core": "1.146.0",
67
67
  "@sap-theming/theming-base-content": "11.35.0",
68
68
  "@ui5/cypress-internal": "0.1.0",
69
- "@ui5/webcomponents-tools": "2.22.0-rc.3",
69
+ "@ui5/webcomponents-tools": "2.22.0-rc.4",
70
70
  "clean-css": "^5.2.2",
71
71
  "cypress": "15.9.0",
72
72
  "mocha": "^11.7.2",
@@ -85,5 +85,5 @@
85
85
  }
86
86
  },
87
87
  "customElements": "dist/custom-elements.json",
88
- "gitHead": "38fe9415447d8f3d68eb801e4c0fab65295dca7f"
88
+ "gitHead": "c6f2ddc2f8bb1c55b9571d0e8f307755d578669d"
89
89
  }