@veloceapps/sdk 7.0.2-73 → 7.0.2-74
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/utils/encoding.utils.d.ts +2 -0
- package/esm2020/cms/utils/element.utils.mjs +8 -8
- package/esm2020/cms/utils/encoding.utils.mjs +28 -0
- package/fesm2015/veloceapps-sdk-cms.mjs +35 -7
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +34 -7
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/package.json +1 -1
@@ -1765,6 +1765,34 @@ const CONFIG = {
|
|
1765
1765
|
},
|
1766
1766
|
};
|
1767
1767
|
|
1768
|
+
function btoaSafe(str) {
|
1769
|
+
if (!str) {
|
1770
|
+
return '';
|
1771
|
+
}
|
1772
|
+
try {
|
1773
|
+
const encoder = new TextEncoder();
|
1774
|
+
const charCodes = encoder.encode(str);
|
1775
|
+
return window.btoa(String.fromCharCode(...charCodes)) || '';
|
1776
|
+
}
|
1777
|
+
catch (e) {
|
1778
|
+
return '';
|
1779
|
+
}
|
1780
|
+
}
|
1781
|
+
function atobSafe(str) {
|
1782
|
+
if (!str) {
|
1783
|
+
return '';
|
1784
|
+
}
|
1785
|
+
try {
|
1786
|
+
const binary = window.atob(str);
|
1787
|
+
const bytes = Uint8Array.from({ length: binary.length }, (_, index) => binary.charCodeAt(index));
|
1788
|
+
const decoder = new TextDecoder('utf-8');
|
1789
|
+
return decoder.decode(bytes);
|
1790
|
+
}
|
1791
|
+
catch (e) {
|
1792
|
+
return '';
|
1793
|
+
}
|
1794
|
+
}
|
1795
|
+
|
1768
1796
|
const EXPORTED_CLASS_REGEX = /export class (\S+)/;
|
1769
1797
|
const METADATA_DECORATOR_REGEX = /@ElementDefinition\(([\s\S]+)\)(\n|\r\n|.)*export class/g;
|
1770
1798
|
class UiBuildError extends Error {
|
@@ -1775,9 +1803,9 @@ class UiBuildError extends Error {
|
|
1775
1803
|
}
|
1776
1804
|
}
|
1777
1805
|
const elementToMetadata = (el, parentPath) => {
|
1778
|
-
const script =
|
1779
|
-
const template =
|
1780
|
-
const styles =
|
1806
|
+
const script = atobSafe(el.script);
|
1807
|
+
const template = atobSafe(el.template);
|
1808
|
+
const styles = atobSafe(el.styles);
|
1781
1809
|
const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];
|
1782
1810
|
if (!exportedClassName) {
|
1783
1811
|
throw new Error("Script doesn't have exported class");
|
@@ -1809,10 +1837,9 @@ const metadataToElement = (metadata, recursive = true) => {
|
|
1809
1837
|
if (!metadata.script || !EXPORTED_CLASS_REGEX.test(metadata.script)) {
|
1810
1838
|
throw new UiBuildError(`'${metadata.name}' component script is missing an exported class`, metadata);
|
1811
1839
|
}
|
1812
|
-
const script = metadata.script
|
1813
|
-
|
1814
|
-
const
|
1815
|
-
const styles = metadata.styles && window.btoa(metadata.styles);
|
1840
|
+
const script = btoaSafe(metadata.script?.replace(EXPORTED_CLASS_REGEX, `@ElementDefinition(${stringifyElementMetadata(normalizedElMetadata)})\nexport class Script`));
|
1841
|
+
const template = btoaSafe(metadata.template);
|
1842
|
+
const styles = btoaSafe(metadata.styles);
|
1816
1843
|
return {
|
1817
1844
|
script,
|
1818
1845
|
template,
|