@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 +28 -2
- package/dist/types/priming/PrimingSession.d.ts +1 -0
- package/dist/types/priming/recordLoaders/NetworkRecordLoader.d.ts +2 -0
- package/dist/types/priming/recordLoaders/RecordLoader.d.ts +6 -1
- package/dist/types/priming/recordLoaders/index.d.ts +1 -1
- package/package.json +14 -14
- package/sfdc/main.js +28 -2
- package/sfdc/types/priming/PrimingSession.d.ts +1 -0
- package/sfdc/types/priming/recordLoaders/NetworkRecordLoader.d.ts +2 -0
- package/sfdc/types/priming/recordLoaders/RecordLoader.d.ts +6 -1
- package/sfdc/types/priming/recordLoaders/index.d.ts +1 -1
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.
|
|
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.
|
|
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.
|
|
36
|
-
"@salesforce/lds-bindings": "^1.
|
|
37
|
-
"@salesforce/lds-instrumentation": "^1.
|
|
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.
|
|
43
|
-
"@salesforce/lds-drafts": "^1.
|
|
44
|
-
"@salesforce/lds-durable-records": "^1.
|
|
45
|
-
"@salesforce/lds-network-adapter": "^1.
|
|
46
|
-
"@salesforce/lds-network-nimbus": "^1.
|
|
47
|
-
"@salesforce/lds-store-binary": "^1.
|
|
48
|
-
"@salesforce/lds-store-nimbus": "^1.
|
|
49
|
-
"@salesforce/lds-store-sql": "^1.
|
|
50
|
-
"@salesforce/lds-utils-adapters": "^1.
|
|
51
|
-
"@salesforce/nimbus-plugin-lds": "^1.
|
|
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.
|
|
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';
|