@pitcher/canvas-ui 2025.12.16-231823-beta → 2025.12.16-235205-beta
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.
- package/canvas-ui.js +29 -11
- package/canvas-ui.js.map +1 -1
- package/lib/util/smart-store.util.spec.d.ts +1 -0
- package/package.json +1 -1
package/canvas-ui.js
CHANGED
|
@@ -87806,6 +87806,12 @@ function convertFieldToSmartStore(field, primaryObject, objectAliases) {
|
|
|
87806
87806
|
if (isSqlKeyword(trimmed) || isLiteralValue(trimmed)) {
|
|
87807
87807
|
return trimmed;
|
|
87808
87808
|
}
|
|
87809
|
+
if (trimmed === "__FIELDS_ALL_PLACEHOLDER__") {
|
|
87810
|
+
return `{${primaryObject}:_soup}`;
|
|
87811
|
+
}
|
|
87812
|
+
if (trimmed === "*") {
|
|
87813
|
+
return "*";
|
|
87814
|
+
}
|
|
87809
87815
|
if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
|
|
87810
87816
|
return trimmed;
|
|
87811
87817
|
}
|
|
@@ -88035,17 +88041,23 @@ function convertSoqlToSmartQuery(soqlQuery) {
|
|
|
88035
88041
|
if (!soqlQuery || typeof soqlQuery !== "string") {
|
|
88036
88042
|
return "";
|
|
88037
88043
|
}
|
|
88038
|
-
|
|
88039
|
-
const selectMatch = normalizedQuery.match(/SELECT\s+([\s\S]+?)\s+FROM\s+/i);
|
|
88040
|
-
if (!selectMatch) {
|
|
88041
|
-
return soqlQuery;
|
|
88042
|
-
}
|
|
88044
|
+
let normalizedQuery = soqlQuery.replace(/\s+/g, " ").trim();
|
|
88043
88045
|
const fromMatch = normalizedQuery.match(
|
|
88044
88046
|
/FROM\s+([\s\S]+?)(?=\s+WHERE\s+|\s+ORDER\s+BY\s+|\s+GROUP\s+BY\s+|\s+HAVING\s+|\s+LIMIT\s+|\s+OFFSET\s+|$)/i
|
|
88045
88047
|
);
|
|
88046
88048
|
if (!fromMatch) {
|
|
88047
88049
|
return soqlQuery;
|
|
88048
88050
|
}
|
|
88051
|
+
const fromParsed = parseFromClause(fromMatch[1].trim());
|
|
88052
|
+
const primaryObject = fromParsed.primary;
|
|
88053
|
+
if (!primaryObject) {
|
|
88054
|
+
return soqlQuery;
|
|
88055
|
+
}
|
|
88056
|
+
normalizedQuery = normalizedQuery.replace(/\bFIELDS\s*\(\s*(ALL|STANDARD|CUSTOM)\s*\)/gi, "__FIELDS_ALL_PLACEHOLDER__");
|
|
88057
|
+
const selectMatch = normalizedQuery.match(/SELECT\s+([\s\S]+?)\s+FROM\s+/i);
|
|
88058
|
+
if (!selectMatch) {
|
|
88059
|
+
return soqlQuery;
|
|
88060
|
+
}
|
|
88049
88061
|
const whereMatch = normalizedQuery.match(
|
|
88050
88062
|
/WHERE\s+([\s\S]+?)(?=\s+ORDER\s+BY\s+|\s+GROUP\s+BY\s+|\s+HAVING\s+|\s+LIMIT\s+|\s+OFFSET\s+|$)/i
|
|
88051
88063
|
);
|
|
@@ -88056,11 +88068,6 @@ function convertSoqlToSmartQuery(soqlQuery) {
|
|
|
88056
88068
|
const orderByMatch = normalizedQuery.match(/ORDER\s+BY\s+([\s\S]+?)(?=\s+LIMIT\s+|\s+OFFSET\s+|$)/i);
|
|
88057
88069
|
const limitMatch = normalizedQuery.match(/LIMIT\s+(\d+)/i);
|
|
88058
88070
|
const offsetMatch = normalizedQuery.match(/OFFSET\s+(\d+)/i);
|
|
88059
|
-
const fromParsed = parseFromClause(fromMatch[1].trim());
|
|
88060
|
-
const primaryObject = fromParsed.primary;
|
|
88061
|
-
if (!primaryObject) {
|
|
88062
|
-
return soqlQuery;
|
|
88063
|
-
}
|
|
88064
88071
|
const objectAliases = /* @__PURE__ */ new Map();
|
|
88065
88072
|
if (fromParsed.alias) {
|
|
88066
88073
|
objectAliases.set(fromParsed.alias.toLowerCase(), primaryObject);
|
|
@@ -88161,6 +88168,10 @@ function setNestedProperty(obj, path, value) {
|
|
|
88161
88168
|
}
|
|
88162
88169
|
current[parts[parts.length - 1]] = value;
|
|
88163
88170
|
}
|
|
88171
|
+
function isAllFieldsSelector(field) {
|
|
88172
|
+
const trimmed = field.trim();
|
|
88173
|
+
return trimmed === "*" || /^FIELDS\s*\(\s*(ALL|STANDARD|CUSTOM)\s*\)$/i.test(trimmed);
|
|
88174
|
+
}
|
|
88164
88175
|
function transformSmartStoreResults(smartStoreResults, fields, objectName) {
|
|
88165
88176
|
if (!smartStoreResults || !Array.isArray(smartStoreResults)) {
|
|
88166
88177
|
return [];
|
|
@@ -88169,7 +88180,14 @@ function transformSmartStoreResults(smartStoreResults, fields, objectName) {
|
|
|
88169
88180
|
const record = {};
|
|
88170
88181
|
fields.forEach((field, index) => {
|
|
88171
88182
|
if (index < row.length) {
|
|
88172
|
-
|
|
88183
|
+
const value = row[index];
|
|
88184
|
+
if (isAllFieldsSelector(field)) {
|
|
88185
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
88186
|
+
Object.assign(record, value);
|
|
88187
|
+
}
|
|
88188
|
+
} else {
|
|
88189
|
+
setNestedProperty(record, field, value);
|
|
88190
|
+
}
|
|
88173
88191
|
}
|
|
88174
88192
|
});
|
|
88175
88193
|
const recordId = record["Id"] || record["id"] || "";
|