@salesforce/lds-runtime-mobile 1.349.0 → 1.351.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
@@ -52804,6 +52804,7 @@ class PrimingSession extends EventEmitter {
52804
52804
  for (const result of results) {
52805
52805
  this.processFetchedRecords(result, abortController);
52806
52806
  }
52807
+ this.handlePaginations(results, batch);
52807
52808
  });
52808
52809
  },
52809
52810
  cancelFn: () => {
@@ -52816,6 +52817,18 @@ class PrimingSession extends EventEmitter {
52816
52817
  });
52817
52818
  }
52818
52819
  }
52820
+ handlePaginations(results, batch) {
52821
+ const ids = this.recordLoader.getMissingIdsWithPagination(results);
52822
+ if (ids.size > 0) {
52823
+ const batches = chunk(Array.from(ids), this.batchSize).map((chunkOfIds) => ({
52824
+ type: batch.type,
52825
+ ids: chunkOfIds,
52826
+ fields: batch.fields,
52827
+ objectInfo: batch.objectInfo,
52828
+ }));
52829
+ this.enqueueBatches(batches);
52830
+ }
52831
+ }
52819
52832
  processFetchedRecords(result, abortController) {
52820
52833
  if (result.ok === false) {
52821
52834
  const { error } = result;
@@ -52834,7 +52847,7 @@ class PrimingSession extends EventEmitter {
52834
52847
  return;
52835
52848
  }
52836
52849
  const { missingIds } = result;
52837
- if (missingIds.length > 0) {
52850
+ if (missingIds.length > 0 && !this.recordLoader.isResultWithPagination(result)) {
52838
52851
  this.emit('error', {
52839
52852
  ids: missingIds,
52840
52853
  code: 'not-found',
@@ -53043,6 +53056,18 @@ class NetworkRecordLoader {
53043
53056
  }
53044
53057
  }
53045
53058
  }
53059
+ isResultWithPagination(result) {
53060
+ return 'paginationToken' in result;
53061
+ }
53062
+ getMissingIdsWithPagination(results) {
53063
+ const ids = new Set();
53064
+ results.forEach((result) => {
53065
+ if (this.isResultWithPagination(result)) {
53066
+ result.missingIds.forEach((id) => ids.add(id));
53067
+ }
53068
+ });
53069
+ return ids;
53070
+ }
53046
53071
  async sendRequest(request, abortController) {
53047
53072
  let response = await this.networkAdapter.sendRequest(request, abortController);
53048
53073
  if (response.status < 200 || response.status > 299) {
@@ -53460,6 +53485,7 @@ class RecordLoaderSOQLComposite extends NetworkRecordLoader {
53460
53485
  ok: true,
53461
53486
  records,
53462
53487
  missingIds: Array.from(missingRecordIds),
53488
+ ...(queryResult.nextRecordsUrl && { paginationToken: queryResult.nextRecordsUrl }),
53463
53489
  };
53464
53490
  }
53465
53491
  }
@@ -55470,4 +55496,4 @@ register({
55470
55496
  });
55471
55497
 
55472
55498
  export { O11Y_NAMESPACE_LDS_MOBILE, getRuntime, ingest$1o as ingestDenormalizedRecordRepresentation, registerReportObserver, reportGraphqlQueryParseError };
55473
- // version: 1.349.0-3d2a6c656b
55499
+ // version: 1.351.0-0449b64264
@@ -60,6 +60,7 @@ export declare class PrimingSession extends EventEmitter<PrimingEvents> {
60
60
  enqueue(work: PrimingWork): Promise<void>;
61
61
  cancel(): void;
62
62
  private enqueueBatches;
63
+ private handlePaginations;
63
64
  private processFetchedRecords;
64
65
  private handleWriteConflicts;
65
66
  private fetchMetadata;
@@ -7,6 +7,8 @@ export declare abstract class NetworkRecordLoader implements RecordLoader {
7
7
  private readonly networkAdapter;
8
8
  constructor(networkAdapter: PrimingNetworkAdapter);
9
9
  fetchRecordData(batch: AvailableTypedBatch, abortController: LdsAbortController): Promise<RecordFetchResult[]>;
10
+ isResultWithPagination(result: RecordFetchResult): boolean;
11
+ getMissingIdsWithPagination(results: RecordFetchResult[]): Set<string>;
10
12
  private sendRequest;
11
13
  protected abstract makeRequest<T>(batch: AvailableTypedBatch): {
12
14
  request: Request;
@@ -6,14 +6,19 @@ interface RecordFetchResultSuccess {
6
6
  records: DurableRecordRepresentation[];
7
7
  missingIds: string[];
8
8
  }
9
+ export interface RecordFetchResultSuccessWithPagination extends RecordFetchResultSuccess {
10
+ paginationToken: string;
11
+ }
9
12
  interface RecordFetchResultFailure {
10
13
  ok: false;
11
14
  error: 'network-error' | 'service-protection-error' | 'request-error' | 'unknown';
12
15
  messages: string[];
13
16
  missingIds: string[];
14
17
  }
15
- export type RecordFetchResult = RecordFetchResultSuccess | RecordFetchResultFailure;
18
+ export type RecordFetchResult = RecordFetchResultSuccess | RecordFetchResultSuccessWithPagination | RecordFetchResultFailure;
16
19
  export interface RecordLoader {
17
20
  fetchRecordData(batch: AvailableTypedBatch, abortController: LdsAbortController): Promise<RecordFetchResult[]>;
21
+ isResultWithPagination(result: RecordFetchResult): boolean;
22
+ getMissingIdsWithPagination(results: RecordFetchResult[]): Set<string>;
18
23
  }
19
24
  export {};
@@ -1,4 +1,4 @@
1
- export type { RecordLoader, RecordFetchResult } from './RecordLoader';
1
+ export type { RecordLoader, RecordFetchResult, RecordFetchResultSuccessWithPagination, } from './RecordLoader';
2
2
  export { RecordLoaderGraphQL } from './RecordLoaderGraphQL';
3
3
  export { RecordLoaderGraphQLBatch } from './RecordLoaderGraphQLBatch';
4
4
  export { RecordLoaderSOQLComposite } from './RecordLoaderSOQLComposite';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/lds-runtime-mobile",
3
- "version": "1.349.0",
3
+ "version": "1.351.0",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "description": "LDS runtime for mobile/hybrid environments.",
6
6
  "main": "dist/main.js",
@@ -32,23 +32,23 @@
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": "^1.349.0",
36
- "@salesforce/lds-bindings": "^1.349.0",
37
- "@salesforce/lds-instrumentation": "^1.349.0",
35
+ "@salesforce/lds-adapters-uiapi": "^1.351.0",
36
+ "@salesforce/lds-bindings": "^1.351.0",
37
+ "@salesforce/lds-instrumentation": "^1.351.0",
38
38
  "@salesforce/user": "0.0.21",
39
39
  "o11y": "250.7.0"
40
40
  },
41
41
  "devDependencies": {
42
- "@salesforce/lds-adapters-graphql": "^1.349.0",
43
- "@salesforce/lds-drafts": "^1.349.0",
44
- "@salesforce/lds-durable-records": "^1.349.0",
45
- "@salesforce/lds-network-adapter": "^1.349.0",
46
- "@salesforce/lds-network-nimbus": "^1.349.0",
47
- "@salesforce/lds-store-binary": "^1.349.0",
48
- "@salesforce/lds-store-nimbus": "^1.349.0",
49
- "@salesforce/lds-store-sql": "^1.349.0",
50
- "@salesforce/lds-utils-adapters": "^1.349.0",
51
- "@salesforce/nimbus-plugin-lds": "^1.349.0",
42
+ "@salesforce/lds-adapters-graphql": "^1.351.0",
43
+ "@salesforce/lds-drafts": "^1.351.0",
44
+ "@salesforce/lds-durable-records": "^1.351.0",
45
+ "@salesforce/lds-network-adapter": "^1.351.0",
46
+ "@salesforce/lds-network-nimbus": "^1.351.0",
47
+ "@salesforce/lds-store-binary": "^1.351.0",
48
+ "@salesforce/lds-store-nimbus": "^1.351.0",
49
+ "@salesforce/lds-store-sql": "^1.351.0",
50
+ "@salesforce/lds-utils-adapters": "^1.351.0",
51
+ "@salesforce/nimbus-plugin-lds": "^1.351.0",
52
52
  "babel-plugin-dynamic-import-node": "^2.3.3",
53
53
  "wait-for-expect": "^3.0.2"
54
54
  },
package/sfdc/main.js CHANGED
@@ -52804,6 +52804,7 @@ class PrimingSession extends EventEmitter {
52804
52804
  for (const result of results) {
52805
52805
  this.processFetchedRecords(result, abortController);
52806
52806
  }
52807
+ this.handlePaginations(results, batch);
52807
52808
  });
52808
52809
  },
52809
52810
  cancelFn: () => {
@@ -52816,6 +52817,18 @@ class PrimingSession extends EventEmitter {
52816
52817
  });
52817
52818
  }
52818
52819
  }
52820
+ handlePaginations(results, batch) {
52821
+ const ids = this.recordLoader.getMissingIdsWithPagination(results);
52822
+ if (ids.size > 0) {
52823
+ const batches = chunk(Array.from(ids), this.batchSize).map((chunkOfIds) => ({
52824
+ type: batch.type,
52825
+ ids: chunkOfIds,
52826
+ fields: batch.fields,
52827
+ objectInfo: batch.objectInfo,
52828
+ }));
52829
+ this.enqueueBatches(batches);
52830
+ }
52831
+ }
52819
52832
  processFetchedRecords(result, abortController) {
52820
52833
  if (result.ok === false) {
52821
52834
  const { error } = result;
@@ -52834,7 +52847,7 @@ class PrimingSession extends EventEmitter {
52834
52847
  return;
52835
52848
  }
52836
52849
  const { missingIds } = result;
52837
- if (missingIds.length > 0) {
52850
+ if (missingIds.length > 0 && !this.recordLoader.isResultWithPagination(result)) {
52838
52851
  this.emit('error', {
52839
52852
  ids: missingIds,
52840
52853
  code: 'not-found',
@@ -53043,6 +53056,18 @@ class NetworkRecordLoader {
53043
53056
  }
53044
53057
  }
53045
53058
  }
53059
+ isResultWithPagination(result) {
53060
+ return 'paginationToken' in result;
53061
+ }
53062
+ getMissingIdsWithPagination(results) {
53063
+ const ids = new Set();
53064
+ results.forEach((result) => {
53065
+ if (this.isResultWithPagination(result)) {
53066
+ result.missingIds.forEach((id) => ids.add(id));
53067
+ }
53068
+ });
53069
+ return ids;
53070
+ }
53046
53071
  async sendRequest(request, abortController) {
53047
53072
  let response = await this.networkAdapter.sendRequest(request, abortController);
53048
53073
  if (response.status < 200 || response.status > 299) {
@@ -53460,6 +53485,7 @@ class RecordLoaderSOQLComposite extends NetworkRecordLoader {
53460
53485
  ok: true,
53461
53486
  records,
53462
53487
  missingIds: Array.from(missingRecordIds),
53488
+ ...(queryResult.nextRecordsUrl && { paginationToken: queryResult.nextRecordsUrl }),
53463
53489
  };
53464
53490
  }
53465
53491
  }
@@ -55470,4 +55496,4 @@ register({
55470
55496
  });
55471
55497
 
55472
55498
  export { O11Y_NAMESPACE_LDS_MOBILE, getRuntime, ingest$1o as ingestDenormalizedRecordRepresentation, registerReportObserver, reportGraphqlQueryParseError };
55473
- // version: 1.349.0-3d2a6c656b
55499
+ // version: 1.351.0-0449b64264
@@ -60,6 +60,7 @@ export declare class PrimingSession extends EventEmitter<PrimingEvents> {
60
60
  enqueue(work: PrimingWork): Promise<void>;
61
61
  cancel(): void;
62
62
  private enqueueBatches;
63
+ private handlePaginations;
63
64
  private processFetchedRecords;
64
65
  private handleWriteConflicts;
65
66
  private fetchMetadata;
@@ -7,6 +7,8 @@ export declare abstract class NetworkRecordLoader implements RecordLoader {
7
7
  private readonly networkAdapter;
8
8
  constructor(networkAdapter: PrimingNetworkAdapter);
9
9
  fetchRecordData(batch: AvailableTypedBatch, abortController: LdsAbortController): Promise<RecordFetchResult[]>;
10
+ isResultWithPagination(result: RecordFetchResult): boolean;
11
+ getMissingIdsWithPagination(results: RecordFetchResult[]): Set<string>;
10
12
  private sendRequest;
11
13
  protected abstract makeRequest<T>(batch: AvailableTypedBatch): {
12
14
  request: Request;
@@ -6,14 +6,19 @@ interface RecordFetchResultSuccess {
6
6
  records: DurableRecordRepresentation[];
7
7
  missingIds: string[];
8
8
  }
9
+ export interface RecordFetchResultSuccessWithPagination extends RecordFetchResultSuccess {
10
+ paginationToken: string;
11
+ }
9
12
  interface RecordFetchResultFailure {
10
13
  ok: false;
11
14
  error: 'network-error' | 'service-protection-error' | 'request-error' | 'unknown';
12
15
  messages: string[];
13
16
  missingIds: string[];
14
17
  }
15
- export type RecordFetchResult = RecordFetchResultSuccess | RecordFetchResultFailure;
18
+ export type RecordFetchResult = RecordFetchResultSuccess | RecordFetchResultSuccessWithPagination | RecordFetchResultFailure;
16
19
  export interface RecordLoader {
17
20
  fetchRecordData(batch: AvailableTypedBatch, abortController: LdsAbortController): Promise<RecordFetchResult[]>;
21
+ isResultWithPagination(result: RecordFetchResult): boolean;
22
+ getMissingIdsWithPagination(results: RecordFetchResult[]): Set<string>;
18
23
  }
19
24
  export {};
@@ -1,4 +1,4 @@
1
- export type { RecordLoader, RecordFetchResult } from './RecordLoader';
1
+ export type { RecordLoader, RecordFetchResult, RecordFetchResultSuccessWithPagination, } from './RecordLoader';
2
2
  export { RecordLoaderGraphQL } from './RecordLoaderGraphQL';
3
3
  export { RecordLoaderGraphQLBatch } from './RecordLoaderGraphQLBatch';
4
4
  export { RecordLoaderSOQLComposite } from './RecordLoaderSOQLComposite';