@salesforce/lds-runtime-mobile 1.136.8 → 1.138.0

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/dist/main.js CHANGED
@@ -6854,78 +6854,22 @@ function dateTimeRange(input, op, field, alias) {
6854
6854
  operator = 'NOT BETWEEN';
6855
6855
  let value;
6856
6856
  let bindings = [];
6857
- switch (key) {
6858
- case DateRange.next_n_days:
6859
- value =
6860
- operator === 'BETWEEN' || operator === 'NOT BETWEEN'
6861
- ? `${dateFunction}('now', ?) AND ${dateFunction}('now', ?)`
6862
- : `${dateFunction}('now', ?)`;
6863
- bindings =
6864
- operator === 'BETWEEN' || operator === 'NOT BETWEEN'
6865
- ? [`${input[key]} days`, '0 days']
6866
- : [`${input[key]} days`];
6867
- break;
6868
- case DateRange.last_n_days:
6869
- value =
6870
- operator === 'BETWEEN' || operator === 'NOT BETWEEN'
6871
- ? `${dateFunction}('now', ?) AND ${dateFunction}('now', ?)`
6872
- : `${dateFunction}('now', ?)`;
6873
- bindings =
6874
- operator === 'BETWEEN' || operator === 'NOT BETWEEN'
6875
- ? [`${-input[key]} days`, '0 days']
6876
- : [`${-input[key]} days`];
6877
- break;
6878
- case DateRange.next_n_months:
6879
- switch (operator) {
6880
- case '<':
6881
- value = `${dateFunction}('now', 'start of month', ?)`;
6882
- bindings = [`${input[key] + 1} months`];
6883
- break;
6884
- case '<=':
6885
- value = `${dateFunction}('now', 'start of month', ?, '-1 day')`;
6886
- bindings = [`1 months`];
6887
- break;
6888
- case '>':
6889
- value = `${dateFunction}('now', 'start of month', ?, '-1 day')`;
6890
- bindings = [`1 months`];
6891
- break;
6892
- case '>=':
6893
- value = `${dateFunction}('now', 'start of month', ?)`;
6894
- bindings = [`${input[key] + 1} months`];
6895
- break;
6896
- default:
6897
- value = `${dateFunction}('now', 'start of month', ?) AND ${dateFunction}('now', 'start of month', ? , '-1 day')`;
6898
- bindings = [`${input[key]} months`, '0 months'];
6899
- break;
6900
- }
6857
+ const { range, binding } = dateRangesFrom(key, input[key], dateFunction);
6858
+ switch (operator) {
6859
+ case '<':
6860
+ case '>=':
6861
+ value = range.lower;
6862
+ bindings = [binding.lower];
6901
6863
  break;
6902
- case DateRange.last_n_months:
6903
- switch (operator) {
6904
- case '<':
6905
- value = `${dateFunction}('now', 'start of month', ?)`;
6906
- bindings = [`${-input[key]} months`];
6907
- break;
6908
- case '<=':
6909
- value = `${dateFunction}('now', 'start of month', ?, '-1 day')`;
6910
- bindings = [`0 months`];
6911
- break;
6912
- case '>':
6913
- value = `${dateFunction}('now', 'start of month', ?, '-1 day')`;
6914
- bindings = [`0 months`];
6915
- break;
6916
- case '>=':
6917
- value = `${dateFunction}('now', 'start of month', ?)`;
6918
- bindings = [`${-input[key]} months`];
6919
- break;
6920
- default:
6921
- value = `${dateFunction}('now', 'start of month', ?) AND ${dateFunction}('now', 'start of month', ? , '-1 day')`;
6922
- bindings = [`${-input[key]} months`, '0 months'];
6923
- break;
6924
- }
6864
+ case '>':
6865
+ case '<=':
6866
+ value = range.upper;
6867
+ bindings = [binding.upper];
6925
6868
  break;
6926
6869
  default:
6927
- // eslint-disable-next-line @salesforce/lds/no-error-in-production
6928
- throw new Error(`DateRangeInput ${key} is not supported in local evalutation`);
6870
+ value = `${range.lower} AND ${range.upper}`;
6871
+ bindings = [binding.lower, binding.upper];
6872
+ break;
6929
6873
  }
6930
6874
  return {
6931
6875
  leftPath: `$.fields.${field.apiName}.value`,
@@ -6937,6 +6881,67 @@ function dateTimeRange(input, op, field, alias) {
6937
6881
  dataType: field.dataType,
6938
6882
  };
6939
6883
  }
6884
+ function dateRangesFrom(dateRange, input, dateFunction) {
6885
+ // use 'start of day' to ensure the timestamp is 00:00:00 for date time values
6886
+ switch (dateRange) {
6887
+ // next_n_days range starts at tomorrow through n days
6888
+ case DateRange.next_n_days: {
6889
+ return {
6890
+ binding: {
6891
+ upper: `${input} days`,
6892
+ lower: '1 days',
6893
+ },
6894
+ range: {
6895
+ upper: `${dateFunction}('now', 'start of day', ?)`,
6896
+ lower: `${dateFunction}('now', 'start of day', ?)`,
6897
+ },
6898
+ };
6899
+ }
6900
+ // last_n_days starts -(n) days until today at the current second
6901
+ case DateRange.last_n_days: {
6902
+ return {
6903
+ binding: {
6904
+ upper: `0 days`,
6905
+ lower: `-${input} days`,
6906
+ },
6907
+ range: {
6908
+ upper: `${dateFunction}('now', ?)`,
6909
+ lower: `${dateFunction}('now', 'start of day', ?)`,
6910
+ },
6911
+ };
6912
+ }
6913
+ // next_n_months range starts the first day of the next month at 00:00:00 and ends end of the nth month 23:59:59
6914
+ case DateRange.next_n_months: {
6915
+ return {
6916
+ binding: {
6917
+ upper: `${input + 1} months`,
6918
+ lower: `1 months`,
6919
+ },
6920
+ range: {
6921
+ upper: `${dateFunction}('now', 'start of month', ?, '-1 seconds')`,
6922
+ lower: `${dateFunction}('now', 'start of month', ?)`,
6923
+ },
6924
+ };
6925
+ }
6926
+ // last_n_months range starts at 00:00:00 first day of n months before the current month and
6927
+ // ends at 23:59:59 the last day of the month before the current month
6928
+ case DateRange.last_n_months: {
6929
+ return {
6930
+ binding: {
6931
+ upper: `0 months`,
6932
+ lower: `${-input} months`,
6933
+ },
6934
+ range: {
6935
+ upper: `${dateFunction}('now', 'start of month', ?, '-1 seconds')`,
6936
+ lower: `${dateFunction}('now', 'start of month', ?)`,
6937
+ },
6938
+ };
6939
+ }
6940
+ default:
6941
+ // eslint-disable-next-line @salesforce/lds/no-error-in-production
6942
+ throw new Error(`DateRangeInput ${dateRange} is not supported in local evalutation`);
6943
+ }
6944
+ }
6940
6945
 
6941
6946
  const MultiPickListValueSeparator = ';';
6942
6947
  function filterToPredicates(where, recordType, alias, objectInfoMap, joins, draftFunctions) {
@@ -15850,4 +15855,4 @@ register({
15850
15855
  });
15851
15856
 
15852
15857
  export { getRuntime, registerReportObserver, reportGraphqlQueryParseError };
15853
- // version: 1.136.8-1a1062e42
15858
+ // version: 1.138.0-040b690de
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/lds-runtime-mobile",
3
- "version": "1.136.8",
3
+ "version": "1.138.0",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "description": "LDS runtime for mobile/hybrid environments.",
6
6
  "main": "dist/main.js",
package/sfdc/main.js CHANGED
@@ -6854,78 +6854,22 @@ function dateTimeRange(input, op, field, alias) {
6854
6854
  operator = 'NOT BETWEEN';
6855
6855
  let value;
6856
6856
  let bindings = [];
6857
- switch (key) {
6858
- case DateRange.next_n_days:
6859
- value =
6860
- operator === 'BETWEEN' || operator === 'NOT BETWEEN'
6861
- ? `${dateFunction}('now', ?) AND ${dateFunction}('now', ?)`
6862
- : `${dateFunction}('now', ?)`;
6863
- bindings =
6864
- operator === 'BETWEEN' || operator === 'NOT BETWEEN'
6865
- ? [`${input[key]} days`, '0 days']
6866
- : [`${input[key]} days`];
6867
- break;
6868
- case DateRange.last_n_days:
6869
- value =
6870
- operator === 'BETWEEN' || operator === 'NOT BETWEEN'
6871
- ? `${dateFunction}('now', ?) AND ${dateFunction}('now', ?)`
6872
- : `${dateFunction}('now', ?)`;
6873
- bindings =
6874
- operator === 'BETWEEN' || operator === 'NOT BETWEEN'
6875
- ? [`${-input[key]} days`, '0 days']
6876
- : [`${-input[key]} days`];
6877
- break;
6878
- case DateRange.next_n_months:
6879
- switch (operator) {
6880
- case '<':
6881
- value = `${dateFunction}('now', 'start of month', ?)`;
6882
- bindings = [`${input[key] + 1} months`];
6883
- break;
6884
- case '<=':
6885
- value = `${dateFunction}('now', 'start of month', ?, '-1 day')`;
6886
- bindings = [`1 months`];
6887
- break;
6888
- case '>':
6889
- value = `${dateFunction}('now', 'start of month', ?, '-1 day')`;
6890
- bindings = [`1 months`];
6891
- break;
6892
- case '>=':
6893
- value = `${dateFunction}('now', 'start of month', ?)`;
6894
- bindings = [`${input[key] + 1} months`];
6895
- break;
6896
- default:
6897
- value = `${dateFunction}('now', 'start of month', ?) AND ${dateFunction}('now', 'start of month', ? , '-1 day')`;
6898
- bindings = [`${input[key]} months`, '0 months'];
6899
- break;
6900
- }
6857
+ const { range, binding } = dateRangesFrom(key, input[key], dateFunction);
6858
+ switch (operator) {
6859
+ case '<':
6860
+ case '>=':
6861
+ value = range.lower;
6862
+ bindings = [binding.lower];
6901
6863
  break;
6902
- case DateRange.last_n_months:
6903
- switch (operator) {
6904
- case '<':
6905
- value = `${dateFunction}('now', 'start of month', ?)`;
6906
- bindings = [`${-input[key]} months`];
6907
- break;
6908
- case '<=':
6909
- value = `${dateFunction}('now', 'start of month', ?, '-1 day')`;
6910
- bindings = [`0 months`];
6911
- break;
6912
- case '>':
6913
- value = `${dateFunction}('now', 'start of month', ?, '-1 day')`;
6914
- bindings = [`0 months`];
6915
- break;
6916
- case '>=':
6917
- value = `${dateFunction}('now', 'start of month', ?)`;
6918
- bindings = [`${-input[key]} months`];
6919
- break;
6920
- default:
6921
- value = `${dateFunction}('now', 'start of month', ?) AND ${dateFunction}('now', 'start of month', ? , '-1 day')`;
6922
- bindings = [`${-input[key]} months`, '0 months'];
6923
- break;
6924
- }
6864
+ case '>':
6865
+ case '<=':
6866
+ value = range.upper;
6867
+ bindings = [binding.upper];
6925
6868
  break;
6926
6869
  default:
6927
- // eslint-disable-next-line @salesforce/lds/no-error-in-production
6928
- throw new Error(`DateRangeInput ${key} is not supported in local evalutation`);
6870
+ value = `${range.lower} AND ${range.upper}`;
6871
+ bindings = [binding.lower, binding.upper];
6872
+ break;
6929
6873
  }
6930
6874
  return {
6931
6875
  leftPath: `$.fields.${field.apiName}.value`,
@@ -6937,6 +6881,67 @@ function dateTimeRange(input, op, field, alias) {
6937
6881
  dataType: field.dataType,
6938
6882
  };
6939
6883
  }
6884
+ function dateRangesFrom(dateRange, input, dateFunction) {
6885
+ // use 'start of day' to ensure the timestamp is 00:00:00 for date time values
6886
+ switch (dateRange) {
6887
+ // next_n_days range starts at tomorrow through n days
6888
+ case DateRange.next_n_days: {
6889
+ return {
6890
+ binding: {
6891
+ upper: `${input} days`,
6892
+ lower: '1 days',
6893
+ },
6894
+ range: {
6895
+ upper: `${dateFunction}('now', 'start of day', ?)`,
6896
+ lower: `${dateFunction}('now', 'start of day', ?)`,
6897
+ },
6898
+ };
6899
+ }
6900
+ // last_n_days starts -(n) days until today at the current second
6901
+ case DateRange.last_n_days: {
6902
+ return {
6903
+ binding: {
6904
+ upper: `0 days`,
6905
+ lower: `-${input} days`,
6906
+ },
6907
+ range: {
6908
+ upper: `${dateFunction}('now', ?)`,
6909
+ lower: `${dateFunction}('now', 'start of day', ?)`,
6910
+ },
6911
+ };
6912
+ }
6913
+ // next_n_months range starts the first day of the next month at 00:00:00 and ends end of the nth month 23:59:59
6914
+ case DateRange.next_n_months: {
6915
+ return {
6916
+ binding: {
6917
+ upper: `${input + 1} months`,
6918
+ lower: `1 months`,
6919
+ },
6920
+ range: {
6921
+ upper: `${dateFunction}('now', 'start of month', ?, '-1 seconds')`,
6922
+ lower: `${dateFunction}('now', 'start of month', ?)`,
6923
+ },
6924
+ };
6925
+ }
6926
+ // last_n_months range starts at 00:00:00 first day of n months before the current month and
6927
+ // ends at 23:59:59 the last day of the month before the current month
6928
+ case DateRange.last_n_months: {
6929
+ return {
6930
+ binding: {
6931
+ upper: `0 months`,
6932
+ lower: `${-input} months`,
6933
+ },
6934
+ range: {
6935
+ upper: `${dateFunction}('now', 'start of month', ?, '-1 seconds')`,
6936
+ lower: `${dateFunction}('now', 'start of month', ?)`,
6937
+ },
6938
+ };
6939
+ }
6940
+ default:
6941
+ // eslint-disable-next-line @salesforce/lds/no-error-in-production
6942
+ throw new Error(`DateRangeInput ${dateRange} is not supported in local evalutation`);
6943
+ }
6944
+ }
6940
6945
 
6941
6946
  const MultiPickListValueSeparator = ';';
6942
6947
  function filterToPredicates(where, recordType, alias, objectInfoMap, joins, draftFunctions) {
@@ -15850,4 +15855,4 @@ register({
15850
15855
  });
15851
15856
 
15852
15857
  export { getRuntime, registerReportObserver, reportGraphqlQueryParseError };
15853
- // version: 1.136.8-1a1062e42
15858
+ // version: 1.138.0-040b690de
@@ -1,2 +0,0 @@
1
- declare const _default: "USD";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "M/d/yyyy";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "M/d/yyyy, h:mm a";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "h:mm a";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "en-US";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "America/Los_Angeles";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "005B0000000GR4OIAW";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare function formattingOptions(pattern: String): String;
2
- export default formattingOptions;
@@ -1,10 +0,0 @@
1
- declare function getNumberFormat(): {
2
- format: () => string;
3
- };
4
- declare function getDateTimeFormat(): {
5
- format: (date: number) => string;
6
- };
7
- declare function getDateTimeISO8601Parser(): {
8
- parse: (input: string) => number | Date;
9
- };
10
- export { getNumberFormat, getDateTimeFormat, getDateTimeISO8601Parser };
@@ -1,2 +0,0 @@
1
- declare const _default: "USD";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "M/d/yyyy";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "M/d/yyyy, h:mm a";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "h:mm a";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "en-US";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "America/Los_Angeles";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: "005B0000000GR4OIAW";
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare function formattingOptions(pattern: String): String;
2
- export default formattingOptions;
@@ -1,10 +0,0 @@
1
- declare function getNumberFormat(): {
2
- format: () => string;
3
- };
4
- declare function getDateTimeFormat(): {
5
- format: (date: number) => string;
6
- };
7
- declare function getDateTimeISO8601Parser(): {
8
- parse: (input: string) => number | Date;
9
- };
10
- export { getNumberFormat, getDateTimeFormat, getDateTimeISO8601Parser };