@salesforce/lds-adapters-uiapi 1.110.1 → 1.111.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.
@@ -5826,6 +5826,35 @@ function trimEdges(edges, startOffset, endOffset) {
5826
5826
  }
5827
5827
  }
5828
5828
  return trimmedEdges;
5829
+ }
5830
+ function optimizePagination(metadata, firstArgName, afterArgName, variables) {
5831
+ if (typeof metadata === 'object' && metadata !== null && offsetFromToken(metadata, variables[afterArgName]) >= 0) {
5832
+ // optimize only if after cursor is unspecified in the request or it's already loaded in metadata
5833
+ const length = Object.keys(metadata).length;
5834
+ const lastTokenAndOffset = tokenForAtMost(metadata, length);
5835
+ if (lastTokenAndOffset !== undefined) {
5836
+ const [token, offset] = lastTokenAndOffset;
5837
+ variables[firstArgName + '_original'] = variables[firstArgName];
5838
+ variables[afterArgName + '_original'] = variables[afterArgName];
5839
+ variables[firstArgName] -= variables[afterArgName] === null ? (offset + 1) : (offset - 1);
5840
+ variables[afterArgName] = token;
5841
+ }
5842
+ }
5843
+ }
5844
+ function revertPaginationOptimization(variables) {
5845
+ if (variables) {
5846
+ const toBeRemoved = [];
5847
+ for (const key in variables) {
5848
+ if (key.endsWith('_original')) {
5849
+ const origKey = key.substring(0, key.length - '_original'.length);
5850
+ if (Object.prototype.hasOwnProperty.call(variables, origKey)) {
5851
+ variables[origKey] = variables[key];
5852
+ toBeRemoved.push(key);
5853
+ }
5854
+ }
5855
+ }
5856
+ toBeRemoved.forEach((k) => delete variables[k]);
5857
+ }
5829
5858
  }
5830
5859
 
5831
5860
  const TTL$y = 30000;
@@ -37795,7 +37824,7 @@ function ingest$p(astNode, state) {
37795
37824
  });
37796
37825
  }
37797
37826
  function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fragments) {
37798
- var _a, _b, _c;
37827
+ var _a, _b, _c, _d, _e;
37799
37828
  if (fieldData === null) {
37800
37829
  reader.assignScalar(key, sink, fieldData);
37801
37830
  return sink;
@@ -38414,6 +38443,12 @@ function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fr
38414
38443
  const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
38415
38444
  let trimmedEdges = [];
38416
38445
  let maxOffset = undefined;
38446
+ if (process.env.NODE_ENV !== 'production') {
38447
+ const afterArgIsUnknownToLuvio = afterArgVal !== undefined && (startOffset === undefined || endOffset === undefined);
38448
+ if (afterArgIsUnknownToLuvio) {
38449
+ throw new RangeError("after argument value '" + afterArgVal + "' is unknown in the list. Check that non-paging arguments are constant when paginating.");
38450
+ }
38451
+ }
38417
38452
  if (totalEdges === 0 && listIsComplete) {
38418
38453
  // We have an empty edge list
38419
38454
  // If after token was specified, it will never be a good cursor, so defer to a cache miss
@@ -38453,6 +38488,10 @@ function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fr
38453
38488
  if (trimmedEdges === undefined || !listHasEnoughItems) {
38454
38489
  reader.markMissingLink(fieldData.__ref);
38455
38490
  reader.markMissing();
38491
+ // optimize pagination when "first" and "after" args are part of the variable
38492
+ if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
38493
+ optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
38494
+ }
38456
38495
  return;
38457
38496
  }
38458
38497
  }
@@ -38466,7 +38505,7 @@ function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fr
38466
38505
  const result = select$o(sel, variables, fragments)(paginatedData, reader);
38467
38506
  const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
38468
38507
  if (pageInfo !== undefined) {
38469
- const selectedPageInfo = selectPageInfo$1((_c = sel.selectionSet) === null || _c === void 0 ? void 0 : _c.selections, fragments, pageInfo);
38508
+ const selectedPageInfo = selectPageInfo$1((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
38470
38509
  if (selectedPageInfo !== undefined) {
38471
38510
  reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
38472
38511
  }
@@ -40103,7 +40142,7 @@ function getFieldData$e(source, sel, variables) {
40103
40142
  }
40104
40143
  }
40105
40144
  function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fragments) {
40106
- var _a, _b, _c;
40145
+ var _a, _b, _c, _d, _e;
40107
40146
  if (fieldData === null) {
40108
40147
  reader.assignScalar(key, sink, fieldData);
40109
40148
  return sink;
@@ -40142,6 +40181,12 @@ function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fr
40142
40181
  const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
40143
40182
  let trimmedEdges = [];
40144
40183
  let maxOffset = undefined;
40184
+ if (process.env.NODE_ENV !== 'production') {
40185
+ const afterArgIsUnknownToLuvio = afterArgVal !== undefined && (startOffset === undefined || endOffset === undefined);
40186
+ if (afterArgIsUnknownToLuvio) {
40187
+ throw new RangeError("after argument value '" + afterArgVal + "' is unknown in the list. Check that non-paging arguments are constant when paginating.");
40188
+ }
40189
+ }
40145
40190
  if (totalEdges === 0 && listIsComplete) {
40146
40191
  // We have an empty edge list
40147
40192
  // If after token was specified, it will never be a good cursor, so defer to a cache miss
@@ -40181,6 +40226,10 @@ function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fr
40181
40226
  if (trimmedEdges === undefined || !listHasEnoughItems) {
40182
40227
  reader.markMissingLink(fieldData.__ref);
40183
40228
  reader.markMissing();
40229
+ // optimize pagination when "first" and "after" args are part of the variable
40230
+ if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
40231
+ optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
40232
+ }
40184
40233
  return;
40185
40234
  }
40186
40235
  }
@@ -40194,7 +40243,7 @@ function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fr
40194
40243
  const result = select$o(sel, variables, fragments)(paginatedData, reader);
40195
40244
  const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
40196
40245
  if (pageInfo !== undefined) {
40197
- const selectedPageInfo = selectPageInfo((_c = sel.selectionSet) === null || _c === void 0 ? void 0 : _c.selections, fragments, pageInfo);
40246
+ const selectedPageInfo = selectPageInfo((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
40198
40247
  if (selectedPageInfo !== undefined) {
40199
40248
  reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
40200
40249
  }
@@ -46607,7 +46656,8 @@ function serializeValueNode(valueNode, variables) {
46607
46656
  return aVal < bVal ? -1 : (aVal > bVal) ? 1 : 0;
46608
46657
  }).map((val, i) => serializeValueNode(val, variables) + `[${i}]`).join(',');
46609
46658
  case ("Variable"):
46610
- return variables[valueNode.name.value] + ""; //TODO: Is this correct serialization for object type variables?
46659
+ const variableValue = variables[valueNode.name.value];
46660
+ return typeof variableValue === "string" ? variableValue : JSON.stringify(variableValue);
46611
46661
  case ("NullValue"):
46612
46662
  return "null";
46613
46663
  case ("ObjectValue"):
@@ -47382,6 +47432,9 @@ function ingestSuccess$5(luvio, config, resourceParams, response, snapshotRefres
47382
47432
  const key = keyBuilder$d();
47383
47433
  const { query, variables } = resourceParams.body;
47384
47434
  luvio.storeIngest(key, ingest$7(query, variables), body);
47435
+ // revert the optimized pagination variables back to its original so that subsequent store lookup will include all records, not just the ones loaded by an optimized query
47436
+ // see optimizePagination for initial update to optimize the query
47437
+ revertPaginationOptimization(variables);
47385
47438
  const snapshot = luvio.storeLookup({
47386
47439
  recordId: key,
47387
47440
  node: select$7(luvio, config),
@@ -50653,16 +50706,16 @@ const buildNetworkSnapshot$6 = (luvio, context, config, options) => {
50653
50706
  trackedFields: optionalFieldsTrie,
50654
50707
  serverRequestCount: 1,
50655
50708
  }), body);
50656
- return luvio.storeBroadcast().then(() => {
50657
- const snapshot = buildCachedSnapshot$1(luvio, context, {
50658
- ...config,
50659
- recordTypeId: responseRecordTypeId,
50660
- });
50661
- if (process.env.NODE_ENV !== 'production') {
50662
- if (snapshot.state !== 'Fulfilled') {
50663
- throw new Error('Invalid network response. Expected network response to result in Fulfilled snapshot');
50664
- }
50709
+ const snapshot = buildCachedSnapshot$1(luvio, context, {
50710
+ ...config,
50711
+ recordTypeId: responseRecordTypeId,
50712
+ });
50713
+ if (process.env.NODE_ENV !== 'production') {
50714
+ if (snapshot.state !== 'Fulfilled') {
50715
+ throw new Error('Invalid network response. Expected network response to result in Fulfilled snapshot');
50665
50716
  }
50717
+ }
50718
+ return luvio.storeBroadcast().then(() => {
50666
50719
  return snapshot;
50667
50720
  });
50668
50721
  }, () => {
@@ -36,4 +36,6 @@ export declare function getPreviousPageToken(paginationMetadata: PaginationMetad
36
36
  export declare function tokenFromOffset(paginationMetadata: PaginationMetadata, offset: number): string | TokenMissing;
37
37
  export declare function tokenForAtMost(paginationMetadata: PaginationMetadata, maxOffset: number): [string | undefined, number];
38
38
  export declare function trimEdges(edges: any[] | undefined, startOffset: number, endOffset: number): any[] | undefined;
39
+ export declare function optimizePagination(metadata: PaginationMetadata, firstArgName: string, afterArgName: string, variables: any): void;
40
+ export declare function revertPaginationOptimization(variables: any): void;
39
41
  export {};
@@ -5828,6 +5828,35 @@
5828
5828
  }
5829
5829
  }
5830
5830
  return trimmedEdges;
5831
+ }
5832
+ function optimizePagination(metadata, firstArgName, afterArgName, variables) {
5833
+ if (typeof metadata === 'object' && metadata !== null && offsetFromToken(metadata, variables[afterArgName]) >= 0) {
5834
+ // optimize only if after cursor is unspecified in the request or it's already loaded in metadata
5835
+ const length = Object.keys(metadata).length;
5836
+ const lastTokenAndOffset = tokenForAtMost(metadata, length);
5837
+ if (lastTokenAndOffset !== undefined) {
5838
+ const [token, offset] = lastTokenAndOffset;
5839
+ variables[firstArgName + '_original'] = variables[firstArgName];
5840
+ variables[afterArgName + '_original'] = variables[afterArgName];
5841
+ variables[firstArgName] -= variables[afterArgName] === null ? (offset + 1) : (offset - 1);
5842
+ variables[afterArgName] = token;
5843
+ }
5844
+ }
5845
+ }
5846
+ function revertPaginationOptimization(variables) {
5847
+ if (variables) {
5848
+ const toBeRemoved = [];
5849
+ for (const key in variables) {
5850
+ if (key.endsWith('_original')) {
5851
+ const origKey = key.substring(0, key.length - '_original'.length);
5852
+ if (Object.prototype.hasOwnProperty.call(variables, origKey)) {
5853
+ variables[origKey] = variables[key];
5854
+ toBeRemoved.push(key);
5855
+ }
5856
+ }
5857
+ }
5858
+ toBeRemoved.forEach((k) => delete variables[k]);
5859
+ }
5831
5860
  }
5832
5861
 
5833
5862
  const TTL$y = 30000;
@@ -37797,7 +37826,7 @@
37797
37826
  });
37798
37827
  }
37799
37828
  function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fragments) {
37800
- var _a, _b, _c;
37829
+ var _a, _b, _c, _d, _e;
37801
37830
  if (fieldData === null) {
37802
37831
  reader.assignScalar(key, sink, fieldData);
37803
37832
  return sink;
@@ -38416,6 +38445,12 @@
38416
38445
  const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
38417
38446
  let trimmedEdges = [];
38418
38447
  let maxOffset = undefined;
38448
+ if (process.env.NODE_ENV !== 'production') {
38449
+ const afterArgIsUnknownToLuvio = afterArgVal !== undefined && (startOffset === undefined || endOffset === undefined);
38450
+ if (afterArgIsUnknownToLuvio) {
38451
+ throw new RangeError("after argument value '" + afterArgVal + "' is unknown in the list. Check that non-paging arguments are constant when paginating.");
38452
+ }
38453
+ }
38419
38454
  if (totalEdges === 0 && listIsComplete) {
38420
38455
  // We have an empty edge list
38421
38456
  // If after token was specified, it will never be a good cursor, so defer to a cache miss
@@ -38455,6 +38490,10 @@
38455
38490
  if (trimmedEdges === undefined || !listHasEnoughItems) {
38456
38491
  reader.markMissingLink(fieldData.__ref);
38457
38492
  reader.markMissing();
38493
+ // optimize pagination when "first" and "after" args are part of the variable
38494
+ if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
38495
+ optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
38496
+ }
38458
38497
  return;
38459
38498
  }
38460
38499
  }
@@ -38468,7 +38507,7 @@
38468
38507
  const result = select$o(sel, variables, fragments)(paginatedData, reader);
38469
38508
  const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
38470
38509
  if (pageInfo !== undefined) {
38471
- const selectedPageInfo = selectPageInfo$1((_c = sel.selectionSet) === null || _c === void 0 ? void 0 : _c.selections, fragments, pageInfo);
38510
+ const selectedPageInfo = selectPageInfo$1((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
38472
38511
  if (selectedPageInfo !== undefined) {
38473
38512
  reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
38474
38513
  }
@@ -40105,7 +40144,7 @@
40105
40144
  }
40106
40145
  }
40107
40146
  function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fragments) {
40108
- var _a, _b, _c;
40147
+ var _a, _b, _c, _d, _e;
40109
40148
  if (fieldData === null) {
40110
40149
  reader.assignScalar(key, sink, fieldData);
40111
40150
  return sink;
@@ -40144,6 +40183,12 @@
40144
40183
  const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
40145
40184
  let trimmedEdges = [];
40146
40185
  let maxOffset = undefined;
40186
+ if (process.env.NODE_ENV !== 'production') {
40187
+ const afterArgIsUnknownToLuvio = afterArgVal !== undefined && (startOffset === undefined || endOffset === undefined);
40188
+ if (afterArgIsUnknownToLuvio) {
40189
+ throw new RangeError("after argument value '" + afterArgVal + "' is unknown in the list. Check that non-paging arguments are constant when paginating.");
40190
+ }
40191
+ }
40147
40192
  if (totalEdges === 0 && listIsComplete) {
40148
40193
  // We have an empty edge list
40149
40194
  // If after token was specified, it will never be a good cursor, so defer to a cache miss
@@ -40183,6 +40228,10 @@
40183
40228
  if (trimmedEdges === undefined || !listHasEnoughItems) {
40184
40229
  reader.markMissingLink(fieldData.__ref);
40185
40230
  reader.markMissing();
40231
+ // optimize pagination when "first" and "after" args are part of the variable
40232
+ if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
40233
+ optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
40234
+ }
40186
40235
  return;
40187
40236
  }
40188
40237
  }
@@ -40196,7 +40245,7 @@
40196
40245
  const result = select$o(sel, variables, fragments)(paginatedData, reader);
40197
40246
  const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
40198
40247
  if (pageInfo !== undefined) {
40199
- const selectedPageInfo = selectPageInfo((_c = sel.selectionSet) === null || _c === void 0 ? void 0 : _c.selections, fragments, pageInfo);
40248
+ const selectedPageInfo = selectPageInfo((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
40200
40249
  if (selectedPageInfo !== undefined) {
40201
40250
  reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
40202
40251
  }
@@ -46609,7 +46658,8 @@
46609
46658
  return aVal < bVal ? -1 : (aVal > bVal) ? 1 : 0;
46610
46659
  }).map((val, i) => serializeValueNode(val, variables) + `[${i}]`).join(',');
46611
46660
  case ("Variable"):
46612
- return variables[valueNode.name.value] + ""; //TODO: Is this correct serialization for object type variables?
46661
+ const variableValue = variables[valueNode.name.value];
46662
+ return typeof variableValue === "string" ? variableValue : JSON.stringify(variableValue);
46613
46663
  case ("NullValue"):
46614
46664
  return "null";
46615
46665
  case ("ObjectValue"):
@@ -47384,6 +47434,9 @@
47384
47434
  const key = keyBuilder$d();
47385
47435
  const { query, variables } = resourceParams.body;
47386
47436
  luvio.storeIngest(key, ingest$7(query, variables), body);
47437
+ // revert the optimized pagination variables back to its original so that subsequent store lookup will include all records, not just the ones loaded by an optimized query
47438
+ // see optimizePagination for initial update to optimize the query
47439
+ revertPaginationOptimization(variables);
47387
47440
  const snapshot = luvio.storeLookup({
47388
47441
  recordId: key,
47389
47442
  node: select$7(luvio, config),
@@ -50655,16 +50708,16 @@
50655
50708
  trackedFields: optionalFieldsTrie,
50656
50709
  serverRequestCount: 1,
50657
50710
  }), body);
50658
- return luvio.storeBroadcast().then(() => {
50659
- const snapshot = buildCachedSnapshot$1(luvio, context, {
50660
- ...config,
50661
- recordTypeId: responseRecordTypeId,
50662
- });
50663
- if (process.env.NODE_ENV !== 'production') {
50664
- if (snapshot.state !== 'Fulfilled') {
50665
- throw new Error('Invalid network response. Expected network response to result in Fulfilled snapshot');
50666
- }
50711
+ const snapshot = buildCachedSnapshot$1(luvio, context, {
50712
+ ...config,
50713
+ recordTypeId: responseRecordTypeId,
50714
+ });
50715
+ if (process.env.NODE_ENV !== 'production') {
50716
+ if (snapshot.state !== 'Fulfilled') {
50717
+ throw new Error('Invalid network response. Expected network response to result in Fulfilled snapshot');
50667
50718
  }
50719
+ }
50720
+ return luvio.storeBroadcast().then(() => {
50668
50721
  return snapshot;
50669
50722
  });
50670
50723
  }, () => {
@@ -5901,6 +5901,35 @@
5901
5901
  }
5902
5902
  }
5903
5903
  return trimmedEdges;
5904
+ }
5905
+ function optimizePagination(metadata, firstArgName, afterArgName, variables) {
5906
+ if (typeof metadata === 'object' && metadata !== null && offsetFromToken(metadata, variables[afterArgName]) >= 0) {
5907
+ // optimize only if after cursor is unspecified in the request or it's already loaded in metadata
5908
+ var length_1 = Object.keys(metadata).length;
5909
+ var lastTokenAndOffset = tokenForAtMost(metadata, length_1);
5910
+ if (lastTokenAndOffset !== undefined) {
5911
+ var token = lastTokenAndOffset[0], offset = lastTokenAndOffset[1];
5912
+ variables[firstArgName + '_original'] = variables[firstArgName];
5913
+ variables[afterArgName + '_original'] = variables[afterArgName];
5914
+ variables[firstArgName] -= variables[afterArgName] === null ? (offset + 1) : (offset - 1);
5915
+ variables[afterArgName] = token;
5916
+ }
5917
+ }
5918
+ }
5919
+ function revertPaginationOptimization(variables) {
5920
+ if (variables) {
5921
+ var toBeRemoved = [];
5922
+ for (var key in variables) {
5923
+ if (key.endsWith('_original')) {
5924
+ var origKey = key.substring(0, key.length - '_original'.length);
5925
+ if (Object.prototype.hasOwnProperty.call(variables, origKey)) {
5926
+ variables[origKey] = variables[key];
5927
+ toBeRemoved.push(key);
5928
+ }
5929
+ }
5930
+ }
5931
+ toBeRemoved.forEach(function (k) { return delete variables[k]; });
5932
+ }
5904
5933
  }
5905
5934
 
5906
5935
  var TTL$y = 30000;
@@ -37901,7 +37930,7 @@
37901
37930
  });
37902
37931
  }
37903
37932
  function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fragments) {
37904
- var _a, _b, _c;
37933
+ var _a, _b, _c, _d, _e;
37905
37934
  if (fieldData === null) {
37906
37935
  reader.assignScalar(key, sink, fieldData);
37907
37936
  return sink;
@@ -38516,10 +38545,16 @@
38516
38545
  pageSize: parseInt(pageSize, 10),
38517
38546
  token: afterArgVal
38518
38547
  };
38519
- var _d = getPageMetadata(metadata, paginationParams), startOffset = _d.startOffset, endOffset = _d.endOffset;
38548
+ var _f = getPageMetadata(metadata, paginationParams), startOffset = _f.startOffset, endOffset = _f.endOffset;
38520
38549
  var listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
38521
38550
  var trimmedEdges = [];
38522
38551
  var maxOffset = undefined;
38552
+ if (process.env.NODE_ENV !== 'production') {
38553
+ var afterArgIsUnknownToLuvio = afterArgVal !== undefined && (startOffset === undefined || endOffset === undefined);
38554
+ if (afterArgIsUnknownToLuvio) {
38555
+ throw new RangeError("after argument value '" + afterArgVal + "' is unknown in the list. Check that non-paging arguments are constant when paginating.");
38556
+ }
38557
+ }
38523
38558
  if (totalEdges === 0 && listIsComplete) {
38524
38559
  // We have an empty edge list
38525
38560
  // If after token was specified, it will never be a good cursor, so defer to a cache miss
@@ -38559,6 +38594,10 @@
38559
38594
  if (trimmedEdges === undefined || !listHasEnoughItems) {
38560
38595
  reader.markMissingLink(fieldData.__ref);
38561
38596
  reader.markMissing();
38597
+ // optimize pagination when "first" and "after" args are part of the variable
38598
+ if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
38599
+ optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
38600
+ }
38562
38601
  return;
38563
38602
  }
38564
38603
  }
@@ -38569,7 +38608,7 @@
38569
38608
  var result = select$o(sel, variables, fragments)(paginatedData, reader);
38570
38609
  var pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
38571
38610
  if (pageInfo !== undefined) {
38572
- var selectedPageInfo = selectPageInfo$1((_c = sel.selectionSet) === null || _c === void 0 ? void 0 : _c.selections, fragments, pageInfo);
38611
+ var selectedPageInfo = selectPageInfo$1((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
38573
38612
  if (selectedPageInfo !== undefined) {
38574
38613
  reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
38575
38614
  }
@@ -39953,7 +39992,7 @@
39953
39992
  }
39954
39993
  }
39955
39994
  function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fragments) {
39956
- var _a, _b, _c;
39995
+ var _a, _b, _c, _d, _e;
39957
39996
  if (fieldData === null) {
39958
39997
  reader.assignScalar(key, sink, fieldData);
39959
39998
  return sink;
@@ -39988,10 +40027,16 @@
39988
40027
  pageSize: parseInt(pageSize, 10),
39989
40028
  token: afterArgVal
39990
40029
  };
39991
- var _d = getPageMetadata(metadata, paginationParams), startOffset = _d.startOffset, endOffset = _d.endOffset;
40030
+ var _f = getPageMetadata(metadata, paginationParams), startOffset = _f.startOffset, endOffset = _f.endOffset;
39992
40031
  var listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
39993
40032
  var trimmedEdges = [];
39994
40033
  var maxOffset = undefined;
40034
+ if (process.env.NODE_ENV !== 'production') {
40035
+ var afterArgIsUnknownToLuvio = afterArgVal !== undefined && (startOffset === undefined || endOffset === undefined);
40036
+ if (afterArgIsUnknownToLuvio) {
40037
+ throw new RangeError("after argument value '" + afterArgVal + "' is unknown in the list. Check that non-paging arguments are constant when paginating.");
40038
+ }
40039
+ }
39995
40040
  if (totalEdges === 0 && listIsComplete) {
39996
40041
  // We have an empty edge list
39997
40042
  // If after token was specified, it will never be a good cursor, so defer to a cache miss
@@ -40031,6 +40076,10 @@
40031
40076
  if (trimmedEdges === undefined || !listHasEnoughItems) {
40032
40077
  reader.markMissingLink(fieldData.__ref);
40033
40078
  reader.markMissing();
40079
+ // optimize pagination when "first" and "after" args are part of the variable
40080
+ if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
40081
+ optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
40082
+ }
40034
40083
  return;
40035
40084
  }
40036
40085
  }
@@ -40041,7 +40090,7 @@
40041
40090
  var result = select$o(sel, variables, fragments)(paginatedData, reader);
40042
40091
  var pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
40043
40092
  if (pageInfo !== undefined) {
40044
- var selectedPageInfo = selectPageInfo((_c = sel.selectionSet) === null || _c === void 0 ? void 0 : _c.selections, fragments, pageInfo);
40093
+ var selectedPageInfo = selectPageInfo((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
40045
40094
  if (selectedPageInfo !== undefined) {
40046
40095
  reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
40047
40096
  }
@@ -46328,7 +46377,8 @@
46328
46377
  return aVal < bVal ? -1 : (aVal > bVal) ? 1 : 0;
46329
46378
  }).map(function (val, i) { return serializeValueNode(val, variables) + "[".concat(i, "]"); }).join(',');
46330
46379
  case ("Variable"):
46331
- return variables[valueNode.name.value] + ""; //TODO: Is this correct serialization for object type variables?
46380
+ var variableValue = variables[valueNode.name.value];
46381
+ return typeof variableValue === "string" ? variableValue : JSON.stringify(variableValue);
46332
46382
  case ("NullValue"):
46333
46383
  return "null";
46334
46384
  case ("ObjectValue"):
@@ -47097,6 +47147,9 @@
47097
47147
  var key = keyBuilder$d();
47098
47148
  var _a = resourceParams.body, query = _a.query, variables = _a.variables;
47099
47149
  luvio.storeIngest(key, ingest$7(query, variables), body);
47150
+ // revert the optimized pagination variables back to its original so that subsequent store lookup will include all records, not just the ones loaded by an optimized query
47151
+ // see optimizePagination for initial update to optimize the query
47152
+ revertPaginationOptimization(variables);
47100
47153
  var snapshot = luvio.storeLookup({
47101
47154
  recordId: key,
47102
47155
  node: select$7(luvio, config),
@@ -50341,13 +50394,13 @@
50341
50394
  trackedFields: optionalFieldsTrie,
50342
50395
  serverRequestCount: 1,
50343
50396
  }), body);
50344
- return luvio.storeBroadcast().then(function () {
50345
- var snapshot = buildCachedSnapshot$1(luvio, context, __assign(__assign({}, config), { recordTypeId: responseRecordTypeId }));
50346
- if (process.env.NODE_ENV !== 'production') {
50347
- if (snapshot.state !== 'Fulfilled') {
50348
- throw new Error('Invalid network response. Expected network response to result in Fulfilled snapshot');
50349
- }
50397
+ var snapshot = buildCachedSnapshot$1(luvio, context, __assign(__assign({}, config), { recordTypeId: responseRecordTypeId }));
50398
+ if (process.env.NODE_ENV !== 'production') {
50399
+ if (snapshot.state !== 'Fulfilled') {
50400
+ throw new Error('Invalid network response. Expected network response to result in Fulfilled snapshot');
50350
50401
  }
50402
+ }
50403
+ return luvio.storeBroadcast().then(function () {
50351
50404
  return snapshot;
50352
50405
  });
50353
50406
  }, function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/lds-adapters-uiapi",
3
- "version": "1.110.1",
3
+ "version": "1.111.0",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "description": "Wire adapters for record related UI API endpoints",
6
6
  "main": "dist/umd/es2018/uiapi-records-service.js",
@@ -59,16 +59,16 @@
59
59
  ]
60
60
  },
61
61
  "dependencies": {
62
- "@luvio/graphql-parser": "0.135.4",
63
- "@salesforce/lds-bindings": "^1.110.1",
64
- "@salesforce/lds-default-luvio": "^1.110.1"
62
+ "@luvio/graphql-parser": "0.136.5",
63
+ "@salesforce/lds-bindings": "^1.111.0",
64
+ "@salesforce/lds-default-luvio": "^1.111.0"
65
65
  },
66
66
  "devDependencies": {
67
67
  "@databases/sqlite": "^3.0.0",
68
- "@salesforce/lds-compiler-plugins": "^1.110.1",
69
- "@salesforce/lds-jest": "^1.110.1",
70
- "@salesforce/lds-karma": "^1.110.1",
71
- "@salesforce/lds-store-binary": "^1.110.1",
68
+ "@salesforce/lds-compiler-plugins": "^1.111.0",
69
+ "@salesforce/lds-jest": "^1.111.0",
70
+ "@salesforce/lds-karma": "^1.111.0",
71
+ "@salesforce/lds-store-binary": "^1.111.0",
72
72
  "brotli-size": "4.0.0",
73
73
  "bytes": "3.1.2",
74
74
  "extract-zip": "^2.0.1",
@@ -306,6 +306,26 @@ function tokenFromOffset(paginationMetadata, offset) {
306
306
  }
307
307
  }
308
308
  }
309
+ function tokenForAtMost(paginationMetadata, maxOffset) {
310
+ const tokens = Object.keys(paginationMetadata);
311
+ let tokenResult = undefined;
312
+ let offsetResult = -1;
313
+ for (let i = 0, len = tokens.length; i < len; i++) {
314
+ const token = tokens[i];
315
+ const offset = paginationMetadata[token];
316
+ if (token === '__END__' || offset === undefined) {
317
+ continue;
318
+ }
319
+ if (offset === maxOffset) {
320
+ return [token, offset];
321
+ }
322
+ if (offset < maxOffset && offset > offsetResult) {
323
+ tokenResult = token;
324
+ offsetResult = offset;
325
+ }
326
+ }
327
+ return [tokenResult, offsetResult];
328
+ }
309
329
  function trimEdges(edges, startOffset, endOffset) {
310
330
  const trimmedEdges = [];
311
331
  if (edges !== undefined) {
@@ -317,6 +337,35 @@ function trimEdges(edges, startOffset, endOffset) {
317
337
  }
318
338
  }
319
339
  return trimmedEdges;
340
+ }
341
+ function optimizePagination(metadata, firstArgName, afterArgName, variables) {
342
+ if (typeof metadata === 'object' && metadata !== null && offsetFromToken(metadata, variables[afterArgName]) >= 0) {
343
+ // optimize only if after cursor is unspecified in the request or it's already loaded in metadata
344
+ const length = Object.keys(metadata).length;
345
+ const lastTokenAndOffset = tokenForAtMost(metadata, length);
346
+ if (lastTokenAndOffset !== undefined) {
347
+ const [token, offset] = lastTokenAndOffset;
348
+ variables[firstArgName + '_original'] = variables[firstArgName];
349
+ variables[afterArgName + '_original'] = variables[afterArgName];
350
+ variables[firstArgName] -= variables[afterArgName] === null ? (offset + 1) : (offset - 1);
351
+ variables[afterArgName] = token;
352
+ }
353
+ }
354
+ }
355
+ function revertPaginationOptimization(variables) {
356
+ if (variables) {
357
+ const toBeRemoved = [];
358
+ for (const key in variables) {
359
+ if (key.endsWith('_original')) {
360
+ const origKey = key.substring(0, key.length - '_original'.length);
361
+ if (Object.prototype.hasOwnProperty.call(variables, origKey)) {
362
+ variables[origKey] = variables[key];
363
+ toBeRemoved.push(key);
364
+ }
365
+ }
366
+ }
367
+ toBeRemoved.forEach((k) => delete variables[k]);
368
+ }
320
369
  }
321
370
 
322
371
  function applyToSelection$6(selection, directive, variables) {
@@ -6927,7 +6976,7 @@ function ingest$i(astNode, state) {
6927
6976
  });
6928
6977
  }
6929
6978
  function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fragments) {
6930
- var _a, _b, _c;
6979
+ var _a, _b, _c, _d, _e;
6931
6980
  if (fieldData === null) {
6932
6981
  reader.assignScalar(key, sink, fieldData);
6933
6982
  return sink;
@@ -7546,6 +7595,12 @@ function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fr
7546
7595
  const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
7547
7596
  let trimmedEdges = [];
7548
7597
  let maxOffset = undefined;
7598
+ if (process.env.NODE_ENV !== 'production') {
7599
+ const afterArgIsUnknownToLuvio = afterArgVal !== undefined && (startOffset === undefined || endOffset === undefined);
7600
+ if (afterArgIsUnknownToLuvio) {
7601
+ throw new RangeError("after argument value '" + afterArgVal + "' is unknown in the list. Check that non-paging arguments are constant when paginating.");
7602
+ }
7603
+ }
7549
7604
  if (totalEdges === 0 && listIsComplete) {
7550
7605
  // We have an empty edge list
7551
7606
  // If after token was specified, it will never be a good cursor, so defer to a cache miss
@@ -7585,6 +7640,10 @@ function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fr
7585
7640
  if (trimmedEdges === undefined || !listHasEnoughItems) {
7586
7641
  reader.markMissingLink(fieldData.__ref);
7587
7642
  reader.markMissing();
7643
+ // optimize pagination when "first" and "after" args are part of the variable
7644
+ if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
7645
+ optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
7646
+ }
7588
7647
  return;
7589
7648
  }
7590
7649
  }
@@ -7598,7 +7657,7 @@ function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fr
7598
7657
  const result = select$o(sel, variables, fragments)(paginatedData, reader);
7599
7658
  const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
7600
7659
  if (pageInfo !== undefined) {
7601
- const selectedPageInfo = selectPageInfo$1((_c = sel.selectionSet) === null || _c === void 0 ? void 0 : _c.selections, fragments, pageInfo);
7660
+ const selectedPageInfo = selectPageInfo$1((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
7602
7661
  if (selectedPageInfo !== undefined) {
7603
7662
  reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
7604
7663
  }
@@ -9235,7 +9294,7 @@ function getFieldData$e(source, sel, variables) {
9235
9294
  }
9236
9295
  }
9237
9296
  function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fragments) {
9238
- var _a, _b, _c;
9297
+ var _a, _b, _c, _d, _e;
9239
9298
  if (fieldData === null) {
9240
9299
  reader.assignScalar(key, sink, fieldData);
9241
9300
  return sink;
@@ -9274,6 +9333,12 @@ function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fr
9274
9333
  const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
9275
9334
  let trimmedEdges = [];
9276
9335
  let maxOffset = undefined;
9336
+ if (process.env.NODE_ENV !== 'production') {
9337
+ const afterArgIsUnknownToLuvio = afterArgVal !== undefined && (startOffset === undefined || endOffset === undefined);
9338
+ if (afterArgIsUnknownToLuvio) {
9339
+ throw new RangeError("after argument value '" + afterArgVal + "' is unknown in the list. Check that non-paging arguments are constant when paginating.");
9340
+ }
9341
+ }
9277
9342
  if (totalEdges === 0 && listIsComplete) {
9278
9343
  // We have an empty edge list
9279
9344
  // If after token was specified, it will never be a good cursor, so defer to a cache miss
@@ -9313,6 +9378,10 @@ function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fr
9313
9378
  if (trimmedEdges === undefined || !listHasEnoughItems) {
9314
9379
  reader.markMissingLink(fieldData.__ref);
9315
9380
  reader.markMissing();
9381
+ // optimize pagination when "first" and "after" args are part of the variable
9382
+ if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
9383
+ optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
9384
+ }
9316
9385
  return;
9317
9386
  }
9318
9387
  }
@@ -9326,7 +9395,7 @@ function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fr
9326
9395
  const result = select$o(sel, variables, fragments)(paginatedData, reader);
9327
9396
  const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
9328
9397
  if (pageInfo !== undefined) {
9329
- const selectedPageInfo = selectPageInfo((_c = sel.selectionSet) === null || _c === void 0 ? void 0 : _c.selections, fragments, pageInfo);
9398
+ const selectedPageInfo = selectPageInfo((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
9330
9399
  if (selectedPageInfo !== undefined) {
9331
9400
  reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
9332
9401
  }
@@ -15739,7 +15808,8 @@ function serializeValueNode(valueNode, variables) {
15739
15808
  return aVal < bVal ? -1 : (aVal > bVal) ? 1 : 0;
15740
15809
  }).map((val, i) => serializeValueNode(val, variables) + `[${i}]`).join(',');
15741
15810
  case ("Variable"):
15742
- return variables[valueNode.name.value] + ""; //TODO: Is this correct serialization for object type variables?
15811
+ const variableValue = variables[valueNode.name.value];
15812
+ return typeof variableValue === "string" ? variableValue : JSON.stringify(variableValue);
15743
15813
  case ("NullValue"):
15744
15814
  return "null";
15745
15815
  case ("ObjectValue"):
@@ -16514,6 +16584,9 @@ function ingestSuccess$1(luvio, config, resourceParams, response, snapshotRefres
16514
16584
  const key = keyBuilder$3();
16515
16585
  const { query, variables } = resourceParams.body;
16516
16586
  luvio.storeIngest(key, ingest(query, variables), body);
16587
+ // revert the optimized pagination variables back to its original so that subsequent store lookup will include all records, not just the ones loaded by an optimized query
16588
+ // see optimizePagination for initial update to optimize the query
16589
+ revertPaginationOptimization(variables);
16517
16590
  const snapshot = luvio.storeLookup({
16518
16591
  recordId: key,
16519
16592
  node: select$7(luvio, config),
@@ -17730,4 +17803,4 @@ register({
17730
17803
  });
17731
17804
 
17732
17805
  export { configurationForGraphQLAdapters as configuration, graphql, factory$1 as graphqlAdapterFactory, graphqlBatch, graphqlBatch_imperative, graphql_imperative };
17733
- // version: 1.110.1-cc1242727
17806
+ // version: 1.111.0-f30e5e921
package/sfdc/index.js CHANGED
@@ -33298,16 +33298,16 @@ const buildNetworkSnapshot$6 = (luvio, context, config, options) => {
33298
33298
  trackedFields: optionalFieldsTrie,
33299
33299
  serverRequestCount: 1,
33300
33300
  }), body);
33301
- return luvio.storeBroadcast().then(() => {
33302
- const snapshot = buildCachedSnapshot$1(luvio, context, {
33303
- ...config,
33304
- recordTypeId: responseRecordTypeId,
33305
- });
33306
- if (process.env.NODE_ENV !== 'production') {
33307
- if (snapshot.state !== 'Fulfilled') {
33308
- throw new Error('Invalid network response. Expected network response to result in Fulfilled snapshot');
33309
- }
33301
+ const snapshot = buildCachedSnapshot$1(luvio, context, {
33302
+ ...config,
33303
+ recordTypeId: responseRecordTypeId,
33304
+ });
33305
+ if (process.env.NODE_ENV !== 'production') {
33306
+ if (snapshot.state !== 'Fulfilled') {
33307
+ throw new Error('Invalid network response. Expected network response to result in Fulfilled snapshot');
33310
33308
  }
33309
+ }
33310
+ return luvio.storeBroadcast().then(() => {
33311
33311
  return snapshot;
33312
33312
  });
33313
33313
  }, () => {
@@ -35586,4 +35586,4 @@ withDefaultLuvio((luvio) => {
35586
35586
  });
35587
35587
 
35588
35588
  export { InMemoryRecordRepresentationQueryEvaluator, MRU, RepresentationType$H as ObjectInfoRepresentationType, RepresentationType$M as RecordRepresentationRepresentationType, TTL$u as RecordRepresentationTTL, RepresentationType$M as RecordRepresentationType, VERSION$13 as RecordRepresentationVersion, keyPrefix as UiApiNamespace, configurationForRestAdapters as configuration, createContentDocumentAndVersion, createContentVersion, createIngestRecordWithFields, createRecord, deleteRecord, getActionOverrides, getActionOverrides_imperative, getAllApps, getAllApps_imperative, getAppDetails, getAppDetails_imperative, getDuplicateConfiguration, getDuplicateConfiguration_imperative, getDuplicates, getDuplicates_imperative, getGlobalActions, getGlobalActions_imperative, getKeywordSearchResults, getKeywordSearchResults_imperative, getLayout, getLayoutUserState, getLayoutUserState_imperative, getLayout_imperative, getListInfoByName, getListInfoByName_imperative, getListInfosByName, getListInfosByName_imperative, getListRecordsByName, getListRecordsByName_imperative, getListUi, getListUi_imperative, getLookupActions, getLookupActions_imperative, getLookupMetadata, getLookupMetadata_imperative, getLookupRecords, getLookupRecords_imperative, getNavItems, getNavItems_imperative, getObjectCreateActions, getObjectCreateActions_imperative, getObjectInfo, getObjectInfoAdapterFactory, getObjectInfo_imperative, getObjectInfos, getObjectInfosAdapterFactory, getObjectInfos_imperative, getPicklistValues, getPicklistValuesByRecordType, getPicklistValuesByRecordType_imperative, getPicklistValues_imperative, getQuickActionDefaults, getQuickActionDefaults_imperative, getRecord, getRecordActions, getRecordActions_imperative, factory$e as getRecordAdapterFactory, getRecordAvatars, getRecordAvatars_imperative, getRecordCreateDefaults, getRecordCreateDefaults_imperative, getRecordEditActions, getRecordEditActions_imperative, getRecordId18, getRecordNotifyChange, getRecordTemplateClone, getRecordTemplateClone_imperative, getRecordTemplateCreate, getRecordTemplateCreate_imperative, getRecordUi, getRecordUi_imperative, getRecord_imperative, getRecords, getRecords_imperative, getRelatedListActions, getRelatedListActions_imperative, getRelatedListCount, getRelatedListCount_imperative, getRelatedListInfo, getRelatedListInfoBatch, getRelatedListInfoBatch_imperative, getRelatedListInfo_imperative, getRelatedListPreferences, getRelatedListPreferencesBatch, getRelatedListPreferencesBatch_imperative, getRelatedListPreferences_imperative, getRelatedListRecordActions, getRelatedListRecordActions_imperative, getRelatedListRecords, getRelatedListRecordsBatch, getRelatedListRecordsBatch_imperative, getRelatedListRecords_imperative, getRelatedListsActions, getRelatedListsActions_imperative, getRelatedListsCount, getRelatedListsCount_imperative, getRelatedListsInfo, getRelatedListsInfo_imperative, getResponseCacheKeys as getResponseCacheKeysContentDocumentCompositeRepresentation, getSearchFilterMetadata, getSearchFilterMetadata_imperative, getSearchFilterOptions, getSearchFilterOptions_imperative, getSearchResults, getSearchResults_imperative, getTypeCacheKeys$M as getTypeCacheKeysRecord, ingest as ingestContentDocumentCompositeRepresentation, ingest$A as ingestObjectInfo, ingest$w as ingestQuickActionExecutionRepresentation, ingest$F as ingestRecord, instrument, keyBuilder as keyBuilderContentDocumentCompositeRepresentation, keyBuilderFromType as keyBuilderFromTypeContentDocumentCompositeRepresentation, keyBuilderFromType$w as keyBuilderFromTypeRecordRepresentation, keyBuilder$1C as keyBuilderObjectInfo, keyBuilder$1w as keyBuilderQuickActionExecutionRepresentation, keyBuilder$1N as keyBuilderRecord, notifyRecordUpdateAvailable, performQuickAction, performUpdateRecordQuickAction, refresh, updateLayoutUserState, updateRecord, updateRecordAvatar, updateRelatedListInfo, updateRelatedListPreferences };
35589
- // version: 1.110.1-cc1242727
35589
+ // version: 1.111.0-f30e5e921
@@ -79,7 +79,7 @@ var FragmentReadResultState;
79
79
  ({
80
80
  state: FragmentReadResultState.Missing,
81
81
  });
82
- // engine version: 0.135.4-ca0c061d
82
+ // engine version: 0.136.5-77eb3bb4
83
83
 
84
84
  const { keys: ObjectKeys, freeze: ObjectFreeze, create: ObjectCreate } = Object;
85
85