@salesforce/lds-runtime-mobile 1.309.0-dev11 → 1.309.0-dev13

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
@@ -5533,7 +5533,7 @@ class DurableDraftQueue {
5533
5533
  switch (result) {
5534
5534
  case ProcessActionResult.BLOCKED_ON_ERROR:
5535
5535
  this.state = DraftQueueState.Error;
5536
- return Promise.reject();
5536
+ return Promise.reject('Unable to start queue - first action is in error state');
5537
5537
  default:
5538
5538
  return Promise.resolve();
5539
5539
  }
@@ -6839,16 +6839,17 @@ class DraftManager {
6839
6839
  return Promise.reject('cannot edit incompatible action type or uploading actions');
6840
6840
  }
6841
6841
  action.data.body.fields = { ...action.data.body.fields, ...fields };
6842
+ action.status = DraftActionStatus.Pending;
6842
6843
  await this.draftQueue.updateDraftAction(action);
6843
6844
  return this.buildDraftQueueItem(action);
6844
6845
  }
6845
6846
  isValidFieldMap(fields) {
6846
6847
  const keys$1 = keys$6(fields);
6847
- const validTypes = ['string', 'number', 'null', 'boolean'];
6848
+ const validTypes = ['string', 'number', 'boolean'];
6848
6849
  for (let i = 0; i < keys$1.length; i++) {
6849
6850
  const key = keys$1[i];
6850
6851
  const value = fields[key];
6851
- if (!validTypes.includes(typeof value)) {
6852
+ if (!validTypes.includes(typeof value) && value !== null) {
6852
6853
  return false;
6853
6854
  }
6854
6855
  }
@@ -6876,6 +6877,7 @@ class DraftManager {
6876
6877
  }
6877
6878
  const data = action.data;
6878
6879
  data.body.fields = { ...data.body.fields, ...fields };
6880
+ action.status = DraftActionStatus.Pending;
6879
6881
  await this.draftQueue.updateDraftAction(action);
6880
6882
  return this.buildDraftQueueItem(action);
6881
6883
  }
@@ -10464,8 +10466,12 @@ function filterToPredicates(where, recordType, alias, objectInfoMap, joins, draf
10464
10466
  // handles spanning field filter. For example, for 'OwnerId' field within 'Account' objectInfo, both 'OwnerId' and 'Owner' can be
10465
10467
  // treated as reference type, while 'Owner' field spanns since it equals to 'relationshipName'
10466
10468
  if (fieldInfo.dataType === 'Reference' && fieldInfo.relationshipName === field) {
10469
+ let leftPath = `$.fields.${fieldInfo.apiName}.value`;
10470
+ if (fieldInfo.apiName === 'RecordTypeId') {
10471
+ leftPath = '$.recordTypeId';
10472
+ }
10467
10473
  const path = {
10468
- leftPath: `$.fields.${fieldInfo.apiName}.value`,
10474
+ leftPath: leftPath,
10469
10475
  rightPath: `$.id`,
10470
10476
  };
10471
10477
  const childAlias = `${alias}_${field}`;
@@ -14830,8 +14836,9 @@ function createErrorSnapshot(result, snapshot) {
14830
14836
  },
14831
14837
  };
14832
14838
  }
14833
- function createLocalEvalSnapshot(data, seenRecords, recordId, rebuildWithLocalEval) {
14839
+ function createLocalEvalSnapshot(data, seenRecords, recordId, rebuildWithLocalEval, refresh) {
14834
14840
  return {
14841
+ refresh,
14835
14842
  recordId,
14836
14843
  variables: {},
14837
14844
  seenRecords,
@@ -15049,11 +15056,11 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
15049
15056
  isDraftId,
15050
15057
  getCanonicalId,
15051
15058
  };
15059
+ const eventEmitter = createCustomAdapterEventEmitter(GRAPHQL_EVAL_NAMESPACE, requestContext.eventObservers || []);
15052
15060
  try {
15053
15061
  // NB: This occurs BEFORE synthetic field injection on purpose to
15054
15062
  // ensure we don't charge the caller for spanning records we inject
15055
15063
  // on their behalf.
15056
- const eventEmitter = createCustomAdapterEventEmitter(GRAPHQL_EVAL_NAMESPACE, requestContext.eventObservers || []);
15057
15064
  const queryInstrumentation = instrumentLimits(copy, config.variables || {});
15058
15065
  eventEmitter({
15059
15066
  type: 'graphql-query-instrumentation',
@@ -15185,7 +15192,7 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
15185
15192
  // the error is network error or 504), otherwise we spread over
15186
15193
  // the non-eval'ed snapshot (which will be either Fulfilled or Stale)
15187
15194
  const resultSnapshot = nonEvaluatedSnapshot.state === 'Error'
15188
- ? createLocalEvalSnapshot(gqlResult, seenRecords, recordId, rebuildWithLocalEval)
15195
+ ? createLocalEvalSnapshot(gqlResult, seenRecords, recordId, rebuildWithLocalEval, nonEvaluatedSnapshot.refresh)
15189
15196
  : {
15190
15197
  ...nonEvaluatedSnapshot,
15191
15198
  data: gqlResult,
@@ -15208,6 +15215,9 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
15208
15215
  },
15209
15216
  };
15210
15217
  }
15218
+ if (refresh === undefined) {
15219
+ eventEmitter({ type: 'graphql-luvio-refresh-undefined' });
15220
+ }
15211
15221
  if (possibleStaleRecordMap.size > 0) {
15212
15222
  initiateStaleRecordRefresh(luvio, possibleStaleRecordMap);
15213
15223
  resultSnapshot.state = 'Stale';
@@ -16425,6 +16435,7 @@ const GRAPHQL_EVAL_ROOT_QUERY_COUNT = 'gql-eval-root-query-count';
16425
16435
  const GRAPHQL_EVAL_TOTAL_QUERY_COUNT = 'gql-eval-total-query-count';
16426
16436
  const GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT = 'gql-eval-max-child-count';
16427
16437
  const GRAPHQL_EVAL_QUERY_RECORD_COUNT = 'gql-eval-query-record-count';
16438
+ const GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED = 'gql-snapshot-refresh-undefined';
16428
16439
  /** Draft Queue */
16429
16440
  const DRAFT_QUEUE_STATE_STARTED = 'draft-queue-state-started';
16430
16441
  const DRAFT_QUEUE_STATE_ERROR = 'draft-queue-state-error';
@@ -16492,6 +16503,9 @@ function reportGraphqlQueryInstrumentation(data) {
16492
16503
  ldsMobileInstrumentation.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
16493
16504
  ldsMobileInstrumentation.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
16494
16505
  }
16506
+ function incrementGraphQLRefreshUndfined() {
16507
+ ldsMobileInstrumentation.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
16508
+ }
16495
16509
  function reportDraftActionEvent(state) {
16496
16510
  switch (state) {
16497
16511
  case 'added':
@@ -16908,6 +16922,9 @@ function instrumentGraphQLEval(adapter) {
16908
16922
  case 'graphql-query-instrumentation':
16909
16923
  reportGraphqlQueryInstrumentation(data.data);
16910
16924
  break;
16925
+ case 'graphql-luvio-refresh-undefined':
16926
+ incrementGraphQLRefreshUndfined();
16927
+ break;
16911
16928
  }
16912
16929
  }
16913
16930
  },
@@ -19180,4 +19197,4 @@ register({
19180
19197
  });
19181
19198
 
19182
19199
  export { O11Y_NAMESPACE_LDS_MOBILE, getRuntime, registerReportObserver, reportGraphqlQueryParseError };
19183
- // version: 1.309.0-dev11-ffe70308a8
19200
+ // version: 1.309.0-dev13-579febfe20
@@ -8,6 +8,7 @@ export declare function reportGraphqlCreateSnapshotError(err: unknown): void;
8
8
  export declare function reportGraphQlEvalDbReadDuration(duration: number): void;
9
9
  export declare function reportGraphqlAdapterError(errorCode: string): void;
10
10
  export declare function reportGraphqlQueryInstrumentation(data: QueryInstrumentation): void;
11
+ export declare function incrementGraphQLRefreshUndfined(): void;
11
12
  export declare function reportDraftActionEvent(state: 'added' | 'uploading' | 'completed' | 'deleted' | 'updated' | 'failed'): void;
12
13
  export declare function reportDraftQueueState(state: 'started' | 'error' | 'waiting' | 'stopped'): void;
13
14
  export declare function reportDraftAwareContentDocumentVersionSynthesizeError(err: unknown): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/lds-runtime-mobile",
3
- "version": "1.309.0-dev11",
3
+ "version": "1.309.0-dev13",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "description": "LDS runtime for mobile/hybrid environments.",
6
6
  "main": "dist/main.js",
@@ -32,27 +32,27 @@
32
32
  "release:corejar": "yarn build && ../core-build/scripts/core.js --name=lds-runtime-mobile"
33
33
  },
34
34
  "dependencies": {
35
- "@salesforce/lds-adapters-uiapi-mobile": "^1.309.0-dev11",
36
- "@salesforce/lds-bindings": "^1.309.0-dev11",
37
- "@salesforce/lds-instrumentation": "^1.309.0-dev11",
38
- "@salesforce/lds-priming": "^1.309.0-dev11",
35
+ "@salesforce/lds-adapters-uiapi-mobile": "^1.309.0-dev13",
36
+ "@salesforce/lds-bindings": "^1.309.0-dev13",
37
+ "@salesforce/lds-instrumentation": "^1.309.0-dev13",
38
+ "@salesforce/lds-priming": "^1.309.0-dev13",
39
39
  "@salesforce/user": "0.0.21",
40
40
  "o11y": "250.7.0"
41
41
  },
42
42
  "devDependencies": {
43
- "@salesforce/lds-adapters-graphql": "^1.309.0-dev11",
44
- "@salesforce/lds-drafts": "^1.309.0-dev11",
45
- "@salesforce/lds-drafts-adapters-uiapi": "^1.309.0-dev11",
46
- "@salesforce/lds-durable-records": "^1.309.0-dev11",
47
- "@salesforce/lds-graphql-eval": "^1.309.0-dev11",
48
- "@salesforce/lds-graphql-local-evaluation": "^1.309.0-dev11",
49
- "@salesforce/lds-network-adapter": "^1.309.0-dev11",
50
- "@salesforce/lds-network-nimbus": "^1.309.0-dev11",
51
- "@salesforce/lds-store-binary": "^1.309.0-dev11",
52
- "@salesforce/lds-store-nimbus": "^1.309.0-dev11",
53
- "@salesforce/lds-store-sql": "^1.309.0-dev11",
54
- "@salesforce/lds-utils-adapters": "^1.309.0-dev11",
55
- "@salesforce/nimbus-plugin-lds": "^1.309.0-dev11",
43
+ "@salesforce/lds-adapters-graphql": "^1.309.0-dev13",
44
+ "@salesforce/lds-drafts": "^1.309.0-dev13",
45
+ "@salesforce/lds-drafts-adapters-uiapi": "^1.309.0-dev13",
46
+ "@salesforce/lds-durable-records": "^1.309.0-dev13",
47
+ "@salesforce/lds-graphql-eval": "^1.309.0-dev13",
48
+ "@salesforce/lds-graphql-local-evaluation": "^1.309.0-dev13",
49
+ "@salesforce/lds-network-adapter": "^1.309.0-dev13",
50
+ "@salesforce/lds-network-nimbus": "^1.309.0-dev13",
51
+ "@salesforce/lds-store-binary": "^1.309.0-dev13",
52
+ "@salesforce/lds-store-nimbus": "^1.309.0-dev13",
53
+ "@salesforce/lds-store-sql": "^1.309.0-dev13",
54
+ "@salesforce/lds-utils-adapters": "^1.309.0-dev13",
55
+ "@salesforce/nimbus-plugin-lds": "^1.309.0-dev13",
56
56
  "babel-plugin-dynamic-import-node": "^2.3.3",
57
57
  "wait-for-expect": "^3.0.2"
58
58
  },
package/sfdc/main.js CHANGED
@@ -5533,7 +5533,7 @@ class DurableDraftQueue {
5533
5533
  switch (result) {
5534
5534
  case ProcessActionResult.BLOCKED_ON_ERROR:
5535
5535
  this.state = DraftQueueState.Error;
5536
- return Promise.reject();
5536
+ return Promise.reject('Unable to start queue - first action is in error state');
5537
5537
  default:
5538
5538
  return Promise.resolve();
5539
5539
  }
@@ -6839,16 +6839,17 @@ class DraftManager {
6839
6839
  return Promise.reject('cannot edit incompatible action type or uploading actions');
6840
6840
  }
6841
6841
  action.data.body.fields = { ...action.data.body.fields, ...fields };
6842
+ action.status = DraftActionStatus.Pending;
6842
6843
  await this.draftQueue.updateDraftAction(action);
6843
6844
  return this.buildDraftQueueItem(action);
6844
6845
  }
6845
6846
  isValidFieldMap(fields) {
6846
6847
  const keys$1 = keys$6(fields);
6847
- const validTypes = ['string', 'number', 'null', 'boolean'];
6848
+ const validTypes = ['string', 'number', 'boolean'];
6848
6849
  for (let i = 0; i < keys$1.length; i++) {
6849
6850
  const key = keys$1[i];
6850
6851
  const value = fields[key];
6851
- if (!validTypes.includes(typeof value)) {
6852
+ if (!validTypes.includes(typeof value) && value !== null) {
6852
6853
  return false;
6853
6854
  }
6854
6855
  }
@@ -6876,6 +6877,7 @@ class DraftManager {
6876
6877
  }
6877
6878
  const data = action.data;
6878
6879
  data.body.fields = { ...data.body.fields, ...fields };
6880
+ action.status = DraftActionStatus.Pending;
6879
6881
  await this.draftQueue.updateDraftAction(action);
6880
6882
  return this.buildDraftQueueItem(action);
6881
6883
  }
@@ -10464,8 +10466,12 @@ function filterToPredicates(where, recordType, alias, objectInfoMap, joins, draf
10464
10466
  // handles spanning field filter. For example, for 'OwnerId' field within 'Account' objectInfo, both 'OwnerId' and 'Owner' can be
10465
10467
  // treated as reference type, while 'Owner' field spanns since it equals to 'relationshipName'
10466
10468
  if (fieldInfo.dataType === 'Reference' && fieldInfo.relationshipName === field) {
10469
+ let leftPath = `$.fields.${fieldInfo.apiName}.value`;
10470
+ if (fieldInfo.apiName === 'RecordTypeId') {
10471
+ leftPath = '$.recordTypeId';
10472
+ }
10467
10473
  const path = {
10468
- leftPath: `$.fields.${fieldInfo.apiName}.value`,
10474
+ leftPath: leftPath,
10469
10475
  rightPath: `$.id`,
10470
10476
  };
10471
10477
  const childAlias = `${alias}_${field}`;
@@ -14830,8 +14836,9 @@ function createErrorSnapshot(result, snapshot) {
14830
14836
  },
14831
14837
  };
14832
14838
  }
14833
- function createLocalEvalSnapshot(data, seenRecords, recordId, rebuildWithLocalEval) {
14839
+ function createLocalEvalSnapshot(data, seenRecords, recordId, rebuildWithLocalEval, refresh) {
14834
14840
  return {
14841
+ refresh,
14835
14842
  recordId,
14836
14843
  variables: {},
14837
14844
  seenRecords,
@@ -15049,11 +15056,11 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
15049
15056
  isDraftId,
15050
15057
  getCanonicalId,
15051
15058
  };
15059
+ const eventEmitter = createCustomAdapterEventEmitter(GRAPHQL_EVAL_NAMESPACE, requestContext.eventObservers || []);
15052
15060
  try {
15053
15061
  // NB: This occurs BEFORE synthetic field injection on purpose to
15054
15062
  // ensure we don't charge the caller for spanning records we inject
15055
15063
  // on their behalf.
15056
- const eventEmitter = createCustomAdapterEventEmitter(GRAPHQL_EVAL_NAMESPACE, requestContext.eventObservers || []);
15057
15064
  const queryInstrumentation = instrumentLimits(copy, config.variables || {});
15058
15065
  eventEmitter({
15059
15066
  type: 'graphql-query-instrumentation',
@@ -15185,7 +15192,7 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
15185
15192
  // the error is network error or 504), otherwise we spread over
15186
15193
  // the non-eval'ed snapshot (which will be either Fulfilled or Stale)
15187
15194
  const resultSnapshot = nonEvaluatedSnapshot.state === 'Error'
15188
- ? createLocalEvalSnapshot(gqlResult, seenRecords, recordId, rebuildWithLocalEval)
15195
+ ? createLocalEvalSnapshot(gqlResult, seenRecords, recordId, rebuildWithLocalEval, nonEvaluatedSnapshot.refresh)
15189
15196
  : {
15190
15197
  ...nonEvaluatedSnapshot,
15191
15198
  data: gqlResult,
@@ -15208,6 +15215,9 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
15208
15215
  },
15209
15216
  };
15210
15217
  }
15218
+ if (refresh === undefined) {
15219
+ eventEmitter({ type: 'graphql-luvio-refresh-undefined' });
15220
+ }
15211
15221
  if (possibleStaleRecordMap.size > 0) {
15212
15222
  initiateStaleRecordRefresh(luvio, possibleStaleRecordMap);
15213
15223
  resultSnapshot.state = 'Stale';
@@ -16425,6 +16435,7 @@ const GRAPHQL_EVAL_ROOT_QUERY_COUNT = 'gql-eval-root-query-count';
16425
16435
  const GRAPHQL_EVAL_TOTAL_QUERY_COUNT = 'gql-eval-total-query-count';
16426
16436
  const GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT = 'gql-eval-max-child-count';
16427
16437
  const GRAPHQL_EVAL_QUERY_RECORD_COUNT = 'gql-eval-query-record-count';
16438
+ const GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED = 'gql-snapshot-refresh-undefined';
16428
16439
  /** Draft Queue */
16429
16440
  const DRAFT_QUEUE_STATE_STARTED = 'draft-queue-state-started';
16430
16441
  const DRAFT_QUEUE_STATE_ERROR = 'draft-queue-state-error';
@@ -16492,6 +16503,9 @@ function reportGraphqlQueryInstrumentation(data) {
16492
16503
  ldsMobileInstrumentation.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
16493
16504
  ldsMobileInstrumentation.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
16494
16505
  }
16506
+ function incrementGraphQLRefreshUndfined() {
16507
+ ldsMobileInstrumentation.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
16508
+ }
16495
16509
  function reportDraftActionEvent(state) {
16496
16510
  switch (state) {
16497
16511
  case 'added':
@@ -16908,6 +16922,9 @@ function instrumentGraphQLEval(adapter) {
16908
16922
  case 'graphql-query-instrumentation':
16909
16923
  reportGraphqlQueryInstrumentation(data.data);
16910
16924
  break;
16925
+ case 'graphql-luvio-refresh-undefined':
16926
+ incrementGraphQLRefreshUndfined();
16927
+ break;
16911
16928
  }
16912
16929
  }
16913
16930
  },
@@ -19180,4 +19197,4 @@ register({
19180
19197
  });
19181
19198
 
19182
19199
  export { O11Y_NAMESPACE_LDS_MOBILE, getRuntime, registerReportObserver, reportGraphqlQueryParseError };
19183
- // version: 1.309.0-dev11-ffe70308a8
19200
+ // version: 1.309.0-dev13-579febfe20
@@ -8,6 +8,7 @@ export declare function reportGraphqlCreateSnapshotError(err: unknown): void;
8
8
  export declare function reportGraphQlEvalDbReadDuration(duration: number): void;
9
9
  export declare function reportGraphqlAdapterError(errorCode: string): void;
10
10
  export declare function reportGraphqlQueryInstrumentation(data: QueryInstrumentation): void;
11
+ export declare function incrementGraphQLRefreshUndfined(): void;
11
12
  export declare function reportDraftActionEvent(state: 'added' | 'uploading' | 'completed' | 'deleted' | 'updated' | 'failed'): void;
12
13
  export declare function reportDraftQueueState(state: 'started' | 'error' | 'waiting' | 'stopped'): void;
13
14
  export declare function reportDraftAwareContentDocumentVersionSynthesizeError(err: unknown): void;