@salesforce/lds-runtime-aura 1.299.0 → 1.301.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/ldsEngineCreator.js +287 -216
- package/dist/types/__mocks__/aura.d.ts +1 -1
- package/dist/types/__mocks__/force/ldsGraphqlParser.d.ts +1 -1
- package/dist/types/predictive-loading/common/index.d.ts +7 -0
- package/dist/types/predictive-loading/pages/lex-default-page.d.ts +1 -1
- package/dist/types/predictive-loading/pages/object-home-page.d.ts +1 -4
- package/dist/types/predictive-loading/pages/predictive-prefetch-page.d.ts +2 -4
- package/dist/types/predictive-loading/pages/record-home-page.d.ts +1 -4
- package/dist/types/predictive-loading/prefetcher/lex-predictive-prefetcher.d.ts +1 -1
- package/dist/types/predictive-loading/prefetcher/predictive-prefetcher.d.ts +12 -2
- package/dist/types/predictive-loading/prefetcher/utils.d.ts +16 -0
- package/dist/types/predictive-loading/repository/prefetch-repository.d.ts +3 -1
- package/dist/types/predictive-loading/request-strategy/get-apex-request-strategy.d.ts +7 -1
- package/dist/types/predictive-loading/request-strategy/get-components-request-strategy.d.ts +1 -1
- package/dist/types/predictive-loading/request-strategy/get-list-info-by-name-request-strategy.d.ts +1 -1
- package/dist/types/predictive-loading/request-strategy/get-list-infos-by-object-name-request-strategy.d.ts +1 -1
- package/dist/types/predictive-loading/request-strategy/get-list-records-by-name-request-strategy.d.ts +1 -1
- package/dist/types/predictive-loading/request-strategy/get-object-info-request-strategy.d.ts +0 -4
- package/dist/types/predictive-loading/request-strategy/get-object-infos-request-strategy.d.ts +15 -1
- package/dist/types/predictive-loading/request-strategy/get-record-actions-request-strategy.d.ts +1 -4
- package/dist/types/predictive-loading/request-strategy/get-record-avatars-request-strategy.d.ts +1 -4
- package/dist/types/predictive-loading/request-strategy/get-record-request-strategy.d.ts +1 -4
- package/dist/types/predictive-loading/request-strategy/get-records-request-strategy.d.ts +1 -4
- package/dist/types/predictive-loading/request-strategy/get-related-list-records-batch-request-strategy.d.ts +1 -4
- package/dist/types/predictive-loading/request-strategy/get-related-list-records-request-strategy.d.ts +1 -4
- package/dist/types/predictive-loading/request-strategy/get-related-lists-actions-request-strategy.d.ts +1 -4
- package/dist/types/predictive-loading/request-strategy/luvio-adapter-request-strategy.d.ts +15 -4
- package/dist/types/predictive-loading/request-strategy/request-strategy.d.ts +2 -5
- package/package.json +12 -12
package/dist/ldsEngineCreator.js
CHANGED
|
@@ -19,6 +19,7 @@ import useApexPredictions from '@salesforce/gate/lds.pdl.useApexPredictions';
|
|
|
19
19
|
import useRelatedListsPredictions from '@salesforce/gate/lds.pdl.useRelatedListsPredictions';
|
|
20
20
|
import useCmpDefPredictions from '@salesforce/gate/lds.pdl.useCmpDefPredictions';
|
|
21
21
|
import applyPredictionRequestLimit from '@salesforce/gate/lds.pdl.applyRequestLimit';
|
|
22
|
+
import useExactMatchesPlus from '@salesforce/gate/lds.pdl.useExactMatchesPlus';
|
|
22
23
|
import { GetApexWireAdapterFactory, registerPrefetcher as registerPrefetcher$1 } from 'force/ldsAdaptersApex';
|
|
23
24
|
import { instrument, getRecordAvatarsAdapterFactory, getRecordAdapterFactory, coerceFieldIdArray, getRecordsAdapterFactory, getRecordActionsAdapterFactory, getObjectInfosAdapterFactory, coerceObjectIdArray, getObjectInfoAdapterFactory, coerceObjectId, getRelatedListsActionsAdapterFactory, getRelatedListInfoBatchAdapterFactory, getRelatedListRecordsBatchAdapterFactory, getRelatedListRecordsAdapterFactory, getListInfoByNameAdapterFactory, getListInfosByObjectNameAdapterFactory, getListRecordsByNameAdapterFactory, configuration, InMemoryRecordRepresentationQueryEvaluator, UiApiNamespace, RecordRepresentationRepresentationType, registerPrefetcher } from 'force/ldsAdaptersUiapi';
|
|
24
25
|
import { serviceBroker } from 'force/luvioServiceBroker4';
|
|
@@ -762,7 +763,7 @@ class LexDefaultPage extends PredictivePrefetchPage {
|
|
|
762
763
|
super(context);
|
|
763
764
|
}
|
|
764
765
|
buildSaveRequestData(request) {
|
|
765
|
-
return { context: this.context, request };
|
|
766
|
+
return [{ context: this.context, request }];
|
|
766
767
|
}
|
|
767
768
|
resolveSimilarRequest(similarRequest) {
|
|
768
769
|
return similarRequest;
|
|
@@ -785,18 +786,18 @@ class RecordHomePage extends PredictivePrefetchPage {
|
|
|
785
786
|
buildSaveRequestData(request) {
|
|
786
787
|
const { adapterName } = request;
|
|
787
788
|
const matchingRequestStrategy = this.requestStrategies[adapterName];
|
|
788
|
-
if (matchingRequestStrategy) {
|
|
789
|
-
return
|
|
789
|
+
if (matchingRequestStrategy === undefined) {
|
|
790
|
+
return [];
|
|
790
791
|
}
|
|
791
|
-
return
|
|
792
|
+
return matchingRequestStrategy.buildSaveRequestData(this.similarContext, this.context, request);
|
|
792
793
|
}
|
|
793
794
|
resolveSimilarRequest(similarRequest) {
|
|
794
795
|
const { adapterName } = similarRequest;
|
|
795
796
|
const matchingRequestStrategy = this.requestStrategies[adapterName];
|
|
796
|
-
if (matchingRequestStrategy) {
|
|
797
|
-
return
|
|
797
|
+
if (matchingRequestStrategy === undefined) {
|
|
798
|
+
return similarRequest;
|
|
798
799
|
}
|
|
799
|
-
return similarRequest;
|
|
800
|
+
return matchingRequestStrategy.buildConcreteRequest(similarRequest, this.context);
|
|
800
801
|
}
|
|
801
802
|
// Record Home performs best when we always do a minimal getRecord alongside the other requests.
|
|
802
803
|
getAlwaysRunRequests() {
|
|
@@ -833,7 +834,7 @@ class ObjectHomePage extends PredictivePrefetchPage {
|
|
|
833
834
|
if (matchingRequestStrategy) {
|
|
834
835
|
return matchingRequestStrategy.buildSaveRequestData(this.similarContext, this.context, request);
|
|
835
836
|
}
|
|
836
|
-
return
|
|
837
|
+
return [];
|
|
837
838
|
}
|
|
838
839
|
// no similar requests between LVs
|
|
839
840
|
resolveSimilarRequest(similarRequest) {
|
|
@@ -1475,17 +1476,22 @@ class ApplicationPredictivePrefetcher {
|
|
|
1475
1476
|
}
|
|
1476
1477
|
startRecording() {
|
|
1477
1478
|
this.isRecording = true;
|
|
1479
|
+
this.repository.markPageStart();
|
|
1478
1480
|
this.repository.clearRequestBuffer();
|
|
1479
1481
|
}
|
|
1480
1482
|
saveRequest(request) {
|
|
1481
1483
|
if (!this.isRecording) {
|
|
1482
|
-
return
|
|
1484
|
+
return;
|
|
1483
1485
|
}
|
|
1484
|
-
|
|
1485
|
-
const
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1486
|
+
executeAsyncActivity(METRIC_KEYS.PREDICTIVE_DATA_LOADING_SAVE_REQUEST, (_act) => {
|
|
1487
|
+
const saveBuckets = this.page.buildSaveRequestData(request);
|
|
1488
|
+
saveBuckets.forEach((saveBucket) => {
|
|
1489
|
+
const { request: requestToSave, context } = saveBucket;
|
|
1490
|
+
// No need to differentiate from predictions requests because these
|
|
1491
|
+
// are made from the adapters factory, which are not prediction aware.
|
|
1492
|
+
this.repository.saveRequest(context, requestToSave);
|
|
1493
|
+
});
|
|
1494
|
+
return Promise.resolve().then();
|
|
1489
1495
|
}, PDL_EXECUTE_ASYNC_OPTIONS);
|
|
1490
1496
|
}
|
|
1491
1497
|
async predict() {
|
|
@@ -1531,7 +1537,52 @@ class ApplicationPredictivePrefetcher {
|
|
|
1531
1537
|
}
|
|
1532
1538
|
}
|
|
1533
1539
|
|
|
1534
|
-
|
|
1540
|
+
/**
|
|
1541
|
+
* Runs a list of requests with a specified concurrency limit.
|
|
1542
|
+
*
|
|
1543
|
+
* @template Request - The type of the requests being processed.
|
|
1544
|
+
* @param {RequestEntry<Request>[]} requests - An array of request entries to be processed in the array order.
|
|
1545
|
+
* @param {RequestRunner<Request>} runner - The runner instance responsible for executing the requests.
|
|
1546
|
+
* @param {number} concurrentRequestsLimit - The maximum number of concurrent requests allowed.
|
|
1547
|
+
* @param {number} pageStartTime - The start time of the page load, used to calculate the time elapsed since the page starts loading.
|
|
1548
|
+
* @returns {Promise<void>} A promise that resolves when all requests have been processed.
|
|
1549
|
+
*
|
|
1550
|
+
* This function manages a queue of pending requests and processes them with a concurrency limit.
|
|
1551
|
+
* Requests are only processed if their `requestTime` is less than the time elapsed since `pageStartTime`.
|
|
1552
|
+
*/
|
|
1553
|
+
async function runRequestsWithLimit(requests, runner, concurrentRequestsLimit, pageStartTime) {
|
|
1554
|
+
// queue for pending prediction requests
|
|
1555
|
+
const requestQueue = [...requests];
|
|
1556
|
+
// Function to process the next request in the queue
|
|
1557
|
+
const processNextRequest = async () => {
|
|
1558
|
+
const timeInWaterfall = Date.now() - pageStartTime - 5; /* 5ms padding */
|
|
1559
|
+
while (requestQueue.length > 0 &&
|
|
1560
|
+
requestQueue[0].requestMetadata.requestTime < timeInWaterfall) {
|
|
1561
|
+
requestQueue.shift();
|
|
1562
|
+
}
|
|
1563
|
+
if (requestQueue.length > 0) {
|
|
1564
|
+
// (!) requestQueue will always have at least one element ensured by the above check.
|
|
1565
|
+
const nextRequest = requestQueue.shift();
|
|
1566
|
+
try {
|
|
1567
|
+
// Run the request and wait for it to complete
|
|
1568
|
+
await runner.runRequest(nextRequest.request);
|
|
1569
|
+
}
|
|
1570
|
+
finally {
|
|
1571
|
+
await processNextRequest();
|
|
1572
|
+
}
|
|
1573
|
+
}
|
|
1574
|
+
};
|
|
1575
|
+
// Start processing requests up to concurrentRequestsLimit
|
|
1576
|
+
const initialRequests = Math.min(concurrentRequestsLimit, requestQueue.length);
|
|
1577
|
+
const promises = [];
|
|
1578
|
+
for (let i = 0; i < initialRequests; i++) {
|
|
1579
|
+
promises.push(processNextRequest());
|
|
1580
|
+
}
|
|
1581
|
+
// Wait for all initial requests to complete
|
|
1582
|
+
await Promise.all(promises);
|
|
1583
|
+
}
|
|
1584
|
+
|
|
1585
|
+
function isCmpDefsRequest({ request: { adapterName } }) {
|
|
1535
1586
|
return adapterName === 'getComponentsDef';
|
|
1536
1587
|
}
|
|
1537
1588
|
class LexPredictivePrefetcher extends ApplicationPredictivePrefetcher {
|
|
@@ -1563,7 +1614,7 @@ class LexPredictivePrefetcher extends ApplicationPredictivePrefetcher {
|
|
|
1563
1614
|
const alwaysRequestEntries = alwaysRequests.map((request) => {
|
|
1564
1615
|
return {
|
|
1565
1616
|
request,
|
|
1566
|
-
requestMetadata: { requestTime: 0 }, // ensures always requests are executed first.
|
|
1617
|
+
requestMetadata: { requestTime: 0 }, // ensures always requests are executed, and executed first.
|
|
1567
1618
|
};
|
|
1568
1619
|
});
|
|
1569
1620
|
const reducedPredictions = this.requestRunner.reduceRequests([
|
|
@@ -1574,16 +1625,11 @@ class LexPredictivePrefetcher extends ApplicationPredictivePrefetcher {
|
|
|
1574
1625
|
const nonCmpDefPredictions = reducedPredictions.filter((r) => !isCmpDefsRequest(r));
|
|
1575
1626
|
const cmpDefPredictions = reducedPredictions.filter(isCmpDefsRequest);
|
|
1576
1627
|
// Non CmpDefs requests are limited by AuraActions concurent inflight limit.
|
|
1577
|
-
const reducedRequests = nonCmpDefPredictions
|
|
1578
|
-
.sort((a, b) => a.requestMetadata.requestTime - b.requestMetadata.requestTime) // In future - choose sort algorithm via Gate?
|
|
1579
|
-
.slice(0, this.options.inflightRequestLimit - alwaysRequests.length)
|
|
1580
|
-
.map((entry) => entry.request);
|
|
1581
1628
|
// Always requests must go by themself - Some of them are essential to keep the page rendering at the beginning.
|
|
1582
|
-
const predictedRequestsWithLimit = [...
|
|
1583
|
-
this.
|
|
1584
|
-
const inflightPredictionRequests = predictedRequestsWithLimit.map((request) => this.requestRunner.runRequest(request));
|
|
1629
|
+
const predictedRequestsWithLimit = [...alwaysRequestEntries, ...nonCmpDefPredictions].sort((a, b) => a.requestMetadata.requestTime - b.requestMetadata.requestTime); // In future - choose sort algorithm via Gate?;
|
|
1630
|
+
const inflightPredictionRequests = runRequestsWithLimit(predictedRequestsWithLimit, this.requestRunner, this.options.inflightRequestLimit, this.repository.pageStartTime);
|
|
1585
1631
|
const inflightCmpRequests = cmpDefPredictions.map((request) => this.requestRunner.runRequest(request.request));
|
|
1586
|
-
return Promise.all([
|
|
1632
|
+
return Promise.all([inflightPredictionRequests, ...inflightCmpRequests]).then();
|
|
1587
1633
|
}
|
|
1588
1634
|
}
|
|
1589
1635
|
|
|
@@ -1681,10 +1727,14 @@ class PrefetchRepository {
|
|
|
1681
1727
|
constructor(storage) {
|
|
1682
1728
|
this.storage = storage;
|
|
1683
1729
|
this.requestBuffer = new Map();
|
|
1730
|
+
this.pageStartTime = Date.now();
|
|
1684
1731
|
}
|
|
1685
1732
|
clearRequestBuffer() {
|
|
1686
1733
|
this.requestBuffer.clear();
|
|
1687
1734
|
}
|
|
1735
|
+
markPageStart() {
|
|
1736
|
+
this.pageStartTime = Date.now();
|
|
1737
|
+
}
|
|
1688
1738
|
async flushRequestsToStorage() {
|
|
1689
1739
|
const setPromises = [];
|
|
1690
1740
|
for (const [id, batch] of this.requestBuffer) {
|
|
@@ -1711,12 +1761,12 @@ class PrefetchRepository {
|
|
|
1711
1761
|
getKeyId(key) {
|
|
1712
1762
|
return stableJSONStringify(key);
|
|
1713
1763
|
}
|
|
1714
|
-
|
|
1764
|
+
saveRequest(key, request) {
|
|
1715
1765
|
const identifier = this.getKeyId(key);
|
|
1716
1766
|
const batchForKey = this.requestBuffer.get(identifier) || [];
|
|
1717
1767
|
batchForKey.push({
|
|
1718
1768
|
request,
|
|
1719
|
-
requestTime: Date.now(),
|
|
1769
|
+
requestTime: Date.now() - this.pageStartTime,
|
|
1720
1770
|
});
|
|
1721
1771
|
this.requestBuffer.set(identifier, batchForKey);
|
|
1722
1772
|
}
|
|
@@ -1743,6 +1793,10 @@ class RequestStrategy {
|
|
|
1743
1793
|
}
|
|
1744
1794
|
|
|
1745
1795
|
class LuvioAdapterRequestStrategy extends RequestStrategy {
|
|
1796
|
+
constructor(options = {}) {
|
|
1797
|
+
super();
|
|
1798
|
+
this.prefetcherOptions = options;
|
|
1799
|
+
}
|
|
1746
1800
|
/**
|
|
1747
1801
|
* Perform any transformations required to prepare the request for saving.
|
|
1748
1802
|
*
|
|
@@ -1839,14 +1893,34 @@ class LuvioAdapterRequestStrategy extends RequestStrategy {
|
|
|
1839
1893
|
* - handling the cases where the request is context dependent (this is homework for the subclass)
|
|
1840
1894
|
* @param _similarContext Context with at least one parameter as a wildcard '*'
|
|
1841
1895
|
* @param context Exact context for a given page
|
|
1842
|
-
* @param request
|
|
1843
|
-
* @returns
|
|
1896
|
+
* @param request Request to build save request data for
|
|
1897
|
+
* @returns Save request data
|
|
1844
1898
|
*/
|
|
1845
|
-
buildSaveRequestData(
|
|
1846
|
-
|
|
1899
|
+
buildSaveRequestData(similarContext, context, request) {
|
|
1900
|
+
const saveRequestDataBuckets = [];
|
|
1901
|
+
if (this.isContextDependent(context, request)) {
|
|
1902
|
+
saveRequestDataBuckets.push({
|
|
1903
|
+
request: this.transformForSaveSimilarRequest(request),
|
|
1904
|
+
context: similarContext,
|
|
1905
|
+
});
|
|
1906
|
+
const useSaveBuckets = this.prefetcherOptions && this.prefetcherOptions.useSaveBuckets;
|
|
1907
|
+
if (!useSaveBuckets) {
|
|
1908
|
+
return saveRequestDataBuckets;
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1911
|
+
saveRequestDataBuckets.push({
|
|
1847
1912
|
request: this.transformForSave(request),
|
|
1848
1913
|
context,
|
|
1849
|
-
};
|
|
1914
|
+
});
|
|
1915
|
+
return saveRequestDataBuckets;
|
|
1916
|
+
}
|
|
1917
|
+
/**
|
|
1918
|
+
* Transforms the request for saving similar requests
|
|
1919
|
+
* @param request Request to transform for saving similar requests
|
|
1920
|
+
* @returns Transformed request
|
|
1921
|
+
*/
|
|
1922
|
+
transformForSaveSimilarRequest(request) {
|
|
1923
|
+
return this.transformForSave(request);
|
|
1850
1924
|
}
|
|
1851
1925
|
}
|
|
1852
1926
|
|
|
@@ -1979,10 +2053,12 @@ class GetComponentsDefStrategy extends ConfigBasedRequestStrategy {
|
|
|
1979
2053
|
};
|
|
1980
2054
|
}
|
|
1981
2055
|
buildSaveRequestData(similarContext, _context, request) {
|
|
1982
|
-
return
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
2056
|
+
return [
|
|
2057
|
+
{
|
|
2058
|
+
request: this.transformForSave(request),
|
|
2059
|
+
context: similarContext,
|
|
2060
|
+
},
|
|
2061
|
+
];
|
|
1986
2062
|
}
|
|
1987
2063
|
transformForSave(request) {
|
|
1988
2064
|
return {
|
|
@@ -2021,23 +2097,14 @@ class GetRecordAvatarsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2021
2097
|
},
|
|
2022
2098
|
};
|
|
2023
2099
|
}
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
},
|
|
2033
|
-
}),
|
|
2034
|
-
context: similarContext,
|
|
2035
|
-
};
|
|
2036
|
-
}
|
|
2037
|
-
return {
|
|
2038
|
-
request: this.transformForSave(request),
|
|
2039
|
-
context,
|
|
2040
|
-
};
|
|
2100
|
+
transformForSaveSimilarRequest(request) {
|
|
2101
|
+
return this.transformForSave({
|
|
2102
|
+
...request,
|
|
2103
|
+
config: {
|
|
2104
|
+
...request.config,
|
|
2105
|
+
recordIds: ['*'],
|
|
2106
|
+
},
|
|
2107
|
+
});
|
|
2041
2108
|
}
|
|
2042
2109
|
isContextDependent(context, request) {
|
|
2043
2110
|
return (request.config.recordIds &&
|
|
@@ -2117,23 +2184,14 @@ class GetRecordRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2117
2184
|
isContextDependent(context, request) {
|
|
2118
2185
|
return request.config.recordId === context.recordId;
|
|
2119
2186
|
}
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
},
|
|
2129
|
-
}),
|
|
2130
|
-
context: similarContext,
|
|
2131
|
-
};
|
|
2132
|
-
}
|
|
2133
|
-
return {
|
|
2134
|
-
request: this.transformForSave(request),
|
|
2135
|
-
context,
|
|
2136
|
-
};
|
|
2187
|
+
transformForSaveSimilarRequest(request) {
|
|
2188
|
+
return this.transformForSave({
|
|
2189
|
+
...request,
|
|
2190
|
+
config: {
|
|
2191
|
+
...request.config,
|
|
2192
|
+
recordId: '*',
|
|
2193
|
+
},
|
|
2194
|
+
});
|
|
2137
2195
|
}
|
|
2138
2196
|
}
|
|
2139
2197
|
|
|
@@ -2156,28 +2214,19 @@ class GetRecordsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2156
2214
|
const isSingleRecordRequest = request.config.records.length === 1 && request.config.records[0].recordIds.length === 1;
|
|
2157
2215
|
return isSingleRecordRequest && request.config.records[0].recordIds[0] === context.recordId;
|
|
2158
2216
|
}
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
records
|
|
2167
|
-
|
|
2168
|
-
...request.config.records[0],
|
|
2169
|
-
recordIds: ['*'],
|
|
2170
|
-
},
|
|
2171
|
-
],
|
|
2217
|
+
transformForSaveSimilarRequest(request) {
|
|
2218
|
+
return this.transformForSave({
|
|
2219
|
+
...request,
|
|
2220
|
+
config: {
|
|
2221
|
+
...request.config,
|
|
2222
|
+
records: [
|
|
2223
|
+
{
|
|
2224
|
+
...request.config.records[0],
|
|
2225
|
+
recordIds: ['*'],
|
|
2172
2226
|
},
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
}
|
|
2177
|
-
return {
|
|
2178
|
-
request: this.transformForSave(request),
|
|
2179
|
-
context: context,
|
|
2180
|
-
};
|
|
2227
|
+
],
|
|
2228
|
+
},
|
|
2229
|
+
});
|
|
2181
2230
|
}
|
|
2182
2231
|
}
|
|
2183
2232
|
|
|
@@ -2208,23 +2257,14 @@ class GetRecordActionsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2208
2257
|
},
|
|
2209
2258
|
};
|
|
2210
2259
|
}
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
},
|
|
2220
|
-
}),
|
|
2221
|
-
context: similarContext,
|
|
2222
|
-
};
|
|
2223
|
-
}
|
|
2224
|
-
return {
|
|
2225
|
-
request: this.transformForSave(request),
|
|
2226
|
-
context,
|
|
2227
|
-
};
|
|
2260
|
+
transformForSaveSimilarRequest(request) {
|
|
2261
|
+
return this.transformForSave({
|
|
2262
|
+
...request,
|
|
2263
|
+
config: {
|
|
2264
|
+
...request.config,
|
|
2265
|
+
recordIds: ['*'],
|
|
2266
|
+
},
|
|
2267
|
+
});
|
|
2228
2268
|
}
|
|
2229
2269
|
canCombine(reqA, reqB) {
|
|
2230
2270
|
return (reqA.retrievalMode === reqB.retrievalMode &&
|
|
@@ -2254,6 +2294,14 @@ class GetRecordActionsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2254
2294
|
}
|
|
2255
2295
|
|
|
2256
2296
|
const GET_OBJECT_INFO_BATCH_ADAPTER_NAME = 'getObjectInfos';
|
|
2297
|
+
/**
|
|
2298
|
+
* Returns true if A is a superset of B
|
|
2299
|
+
* @param a
|
|
2300
|
+
* @param b
|
|
2301
|
+
*/
|
|
2302
|
+
function isSuperSet(a, b) {
|
|
2303
|
+
return b.every((oan) => a.has(oan));
|
|
2304
|
+
}
|
|
2257
2305
|
class GetObjectInfosRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
2258
2306
|
constructor() {
|
|
2259
2307
|
super(...arguments);
|
|
@@ -2273,6 +2321,51 @@ class GetObjectInfosRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2273
2321
|
},
|
|
2274
2322
|
};
|
|
2275
2323
|
}
|
|
2324
|
+
/**
|
|
2325
|
+
* Reduces the given GetObjectInfosRequest requests by eliminating those for which config.objectApiNames
|
|
2326
|
+
* is a subset of another GetObjectInfosRequest.
|
|
2327
|
+
*
|
|
2328
|
+
* @param unfilteredRequests - Array of unfiltered requests
|
|
2329
|
+
* @returns RequestEntry<GetObjectInfosRequest>[] - Array of reduced requests
|
|
2330
|
+
*/
|
|
2331
|
+
reduce(unfilteredRequests) {
|
|
2332
|
+
// Filter and sort requests by the length of objectApiNames in ascending order.
|
|
2333
|
+
// This ensures a superset of request (i) can only be found in a request (j) such that i < j.
|
|
2334
|
+
const objectInfosRequests = this.filterRequests(unfilteredRequests).sort((a, b) => a.request.config.objectApiNames.length - b.request.config.objectApiNames.length);
|
|
2335
|
+
// Convert request configurations to sets for easier comparison, avoiding a new set construction each iteration.
|
|
2336
|
+
const requestConfigAsSet = objectInfosRequests.map((r) => new Set(r.request.config.objectApiNames));
|
|
2337
|
+
const reducedRequests = [];
|
|
2338
|
+
// Iterate over each request to determine if it is a subset of others
|
|
2339
|
+
for (let i = 0, n = objectInfosRequests.length; i < n; i++) {
|
|
2340
|
+
const current = objectInfosRequests[i];
|
|
2341
|
+
const { request: { config: currentRequestConfig }, requestMetadata: currentRequestMetadata, } = current;
|
|
2342
|
+
let isCurrentSubsetOfOthers = false;
|
|
2343
|
+
// Check if the current request is a subset of any subsequent requests
|
|
2344
|
+
for (let j = i + 1; j < n; j++) {
|
|
2345
|
+
const possibleSuperset = objectInfosRequests[j];
|
|
2346
|
+
if (isSuperSet(requestConfigAsSet[j], currentRequestConfig.objectApiNames)) {
|
|
2347
|
+
isCurrentSubsetOfOthers = true;
|
|
2348
|
+
if (currentRequestMetadata.requestTime <
|
|
2349
|
+
possibleSuperset.requestMetadata.requestTime) {
|
|
2350
|
+
possibleSuperset.requestMetadata.requestTime =
|
|
2351
|
+
currentRequestMetadata.requestTime;
|
|
2352
|
+
}
|
|
2353
|
+
}
|
|
2354
|
+
}
|
|
2355
|
+
if (!isCurrentSubsetOfOthers) {
|
|
2356
|
+
reducedRequests.push(current);
|
|
2357
|
+
}
|
|
2358
|
+
}
|
|
2359
|
+
return reducedRequests;
|
|
2360
|
+
}
|
|
2361
|
+
buildSaveRequestData(similarContext, context, request) {
|
|
2362
|
+
return [
|
|
2363
|
+
{
|
|
2364
|
+
request: this.transformForSave(request),
|
|
2365
|
+
context,
|
|
2366
|
+
},
|
|
2367
|
+
];
|
|
2368
|
+
}
|
|
2276
2369
|
}
|
|
2277
2370
|
|
|
2278
2371
|
class GetObjectInfoRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
@@ -2290,18 +2383,6 @@ class GetObjectInfoRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2290
2383
|
},
|
|
2291
2384
|
};
|
|
2292
2385
|
}
|
|
2293
|
-
buildSaveRequestData(similarContext, context, request) {
|
|
2294
|
-
if (this.isContextDependent(context, request)) {
|
|
2295
|
-
return {
|
|
2296
|
-
request: this.transformForSave(request),
|
|
2297
|
-
context: similarContext,
|
|
2298
|
-
};
|
|
2299
|
-
}
|
|
2300
|
-
return {
|
|
2301
|
-
request: this.transformForSave(request),
|
|
2302
|
-
context,
|
|
2303
|
-
};
|
|
2304
|
-
}
|
|
2305
2386
|
transformForSave(request) {
|
|
2306
2387
|
return {
|
|
2307
2388
|
...request,
|
|
@@ -2356,23 +2437,14 @@ class GetRelatedListsActionsRequestStrategy extends LuvioAdapterRequestStrategy
|
|
|
2356
2437
|
},
|
|
2357
2438
|
};
|
|
2358
2439
|
}
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
},
|
|
2368
|
-
}),
|
|
2369
|
-
context: similarContext,
|
|
2370
|
-
};
|
|
2371
|
-
}
|
|
2372
|
-
return {
|
|
2373
|
-
request: this.transformForSave(request),
|
|
2374
|
-
context,
|
|
2375
|
-
};
|
|
2440
|
+
transformForSaveSimilarRequest(request) {
|
|
2441
|
+
return this.transformForSave({
|
|
2442
|
+
...request,
|
|
2443
|
+
config: {
|
|
2444
|
+
...request.config,
|
|
2445
|
+
recordIds: ['*'],
|
|
2446
|
+
},
|
|
2447
|
+
});
|
|
2376
2448
|
}
|
|
2377
2449
|
isContextDependent(context, request) {
|
|
2378
2450
|
const isForContext = request.config.recordIds &&
|
|
@@ -2451,23 +2523,14 @@ class GetRelatedListRecordsBatchRequestStrategy extends LuvioAdapterRequestStrat
|
|
|
2451
2523
|
},
|
|
2452
2524
|
};
|
|
2453
2525
|
}
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
},
|
|
2463
|
-
}),
|
|
2464
|
-
context: similarContext,
|
|
2465
|
-
};
|
|
2466
|
-
}
|
|
2467
|
-
return {
|
|
2468
|
-
request: this.transformForSave(request),
|
|
2469
|
-
context,
|
|
2470
|
-
};
|
|
2526
|
+
transformForSaveSimilarRequest(request) {
|
|
2527
|
+
return this.transformForSave({
|
|
2528
|
+
...request,
|
|
2529
|
+
config: {
|
|
2530
|
+
...request.config,
|
|
2531
|
+
parentRecordId: '*',
|
|
2532
|
+
},
|
|
2533
|
+
});
|
|
2471
2534
|
}
|
|
2472
2535
|
isContextDependent(context, request) {
|
|
2473
2536
|
return context.recordId === request.config.parentRecordId;
|
|
@@ -2546,23 +2609,14 @@ class GetRelatedListRecordsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2546
2609
|
return !(batchForParentRecordId && batchForParentRecordId.has(relatedListId));
|
|
2547
2610
|
});
|
|
2548
2611
|
}
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
},
|
|
2558
|
-
}),
|
|
2559
|
-
context: similarContext,
|
|
2560
|
-
};
|
|
2561
|
-
}
|
|
2562
|
-
return {
|
|
2563
|
-
request: this.transformForSave(request),
|
|
2564
|
-
context,
|
|
2565
|
-
};
|
|
2612
|
+
transformForSaveSimilarRequest(request) {
|
|
2613
|
+
return this.transformForSave({
|
|
2614
|
+
...request,
|
|
2615
|
+
config: {
|
|
2616
|
+
...request.config,
|
|
2617
|
+
parentRecordId: '*',
|
|
2618
|
+
},
|
|
2619
|
+
});
|
|
2566
2620
|
}
|
|
2567
2621
|
isContextDependent(context, request) {
|
|
2568
2622
|
return context.recordId === request.config.parentRecordId;
|
|
@@ -2583,6 +2637,14 @@ class GetApexRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2583
2637
|
buildConcreteRequest(similarRequest) {
|
|
2584
2638
|
return similarRequest;
|
|
2585
2639
|
}
|
|
2640
|
+
buildSaveRequestData(_similarContext, context, request) {
|
|
2641
|
+
return [
|
|
2642
|
+
{
|
|
2643
|
+
request: this.transformForSave(request),
|
|
2644
|
+
context,
|
|
2645
|
+
},
|
|
2646
|
+
];
|
|
2647
|
+
}
|
|
2586
2648
|
}
|
|
2587
2649
|
|
|
2588
2650
|
const GET_LIST_INFO_BY_NAME_ADAPTER_NAME = 'getListInfoByName';
|
|
@@ -2606,10 +2668,12 @@ class GetListInfoByNameRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2606
2668
|
};
|
|
2607
2669
|
}
|
|
2608
2670
|
buildSaveRequestData(_similarContext, context, request) {
|
|
2609
|
-
return
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2671
|
+
return [
|
|
2672
|
+
{
|
|
2673
|
+
request: this.transformForSave(request),
|
|
2674
|
+
context,
|
|
2675
|
+
},
|
|
2676
|
+
];
|
|
2613
2677
|
}
|
|
2614
2678
|
canCombine(reqA, reqB) {
|
|
2615
2679
|
return (reqA.objectApiName === reqB.objectApiName &&
|
|
@@ -2641,10 +2705,12 @@ class GetListInfosByObjectNameRequestStrategy extends LuvioAdapterRequestStrateg
|
|
|
2641
2705
|
};
|
|
2642
2706
|
}
|
|
2643
2707
|
buildSaveRequestData(_similarContext, context, request) {
|
|
2644
|
-
return
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2708
|
+
return [
|
|
2709
|
+
{
|
|
2710
|
+
request: this.transformForSave(request),
|
|
2711
|
+
context,
|
|
2712
|
+
},
|
|
2713
|
+
];
|
|
2648
2714
|
}
|
|
2649
2715
|
canCombine(reqA, reqB) {
|
|
2650
2716
|
return (reqA.objectApiName === reqB.objectApiName &&
|
|
@@ -2688,10 +2754,12 @@ class GetListRecordsByNameRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
2688
2754
|
return request;
|
|
2689
2755
|
}
|
|
2690
2756
|
buildSaveRequestData(_similarContext, context, request) {
|
|
2691
|
-
return
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2757
|
+
return [
|
|
2758
|
+
{
|
|
2759
|
+
request: this.transformForSave(request),
|
|
2760
|
+
context,
|
|
2761
|
+
},
|
|
2762
|
+
];
|
|
2695
2763
|
}
|
|
2696
2764
|
}
|
|
2697
2765
|
|
|
@@ -2700,21 +2768,21 @@ class LexRequestRunner {
|
|
|
2700
2768
|
constructor(luvio) {
|
|
2701
2769
|
this.luvio = luvio;
|
|
2702
2770
|
this.requestStrategies = {
|
|
2703
|
-
getRecord: new GetRecordRequestStrategy(),
|
|
2704
|
-
getRecords: new GetRecordsRequestStrategy(),
|
|
2705
|
-
getRecordActions: new GetRecordActionsRequestStrategy(),
|
|
2706
|
-
getRecordAvatars: new GetRecordAvatarsRequestStrategy(),
|
|
2707
|
-
getObjectInfo: new GetObjectInfoRequestStrategy(),
|
|
2708
|
-
getObjectInfos: new GetObjectInfosRequestStrategy(),
|
|
2709
|
-
getRelatedListsActions: new GetRelatedListsActionsRequestStrategy(),
|
|
2710
|
-
getRelatedListInfoBatch: new GetRelatedListInfoBatchRequestStrategy(),
|
|
2711
|
-
getRelatedListRecords: new GetRelatedListRecordsRequestStrategy(),
|
|
2712
|
-
getRelatedListRecordsBatch: new GetRelatedListRecordsBatchRequestStrategy(),
|
|
2713
|
-
getListInfoByName: new GetListInfoByNameRequestStrategy(),
|
|
2714
|
-
getListRecordsByName: new GetListRecordsByNameRequestStrategy(),
|
|
2715
|
-
getApex: new GetApexRequestStrategy(),
|
|
2716
|
-
getComponentsDef: new GetComponentsDefStrategy(),
|
|
2717
|
-
getListInfosByObjectName: new GetListInfosByObjectNameRequestStrategy(),
|
|
2771
|
+
getRecord: new GetRecordRequestStrategy({}),
|
|
2772
|
+
getRecords: new GetRecordsRequestStrategy({}),
|
|
2773
|
+
getRecordActions: new GetRecordActionsRequestStrategy({}),
|
|
2774
|
+
getRecordAvatars: new GetRecordAvatarsRequestStrategy({}),
|
|
2775
|
+
getObjectInfo: new GetObjectInfoRequestStrategy({}),
|
|
2776
|
+
getObjectInfos: new GetObjectInfosRequestStrategy({}),
|
|
2777
|
+
getRelatedListsActions: new GetRelatedListsActionsRequestStrategy({}),
|
|
2778
|
+
getRelatedListInfoBatch: new GetRelatedListInfoBatchRequestStrategy({}),
|
|
2779
|
+
getRelatedListRecords: new GetRelatedListRecordsRequestStrategy({}),
|
|
2780
|
+
getRelatedListRecordsBatch: new GetRelatedListRecordsBatchRequestStrategy({}),
|
|
2781
|
+
getListInfoByName: new GetListInfoByNameRequestStrategy({}),
|
|
2782
|
+
getListRecordsByName: new GetListRecordsByNameRequestStrategy({}),
|
|
2783
|
+
getApex: new GetApexRequestStrategy({}),
|
|
2784
|
+
getComponentsDef: new GetComponentsDefStrategy({}),
|
|
2785
|
+
getListInfosByObjectName: new GetListInfosByObjectNameRequestStrategy({}),
|
|
2718
2786
|
};
|
|
2719
2787
|
}
|
|
2720
2788
|
reduceRequests(requests) {
|
|
@@ -2965,25 +3033,28 @@ function setupPredictivePrefetcher(luvio) {
|
|
|
2965
3033
|
const inflightRequestLimit = applyPredictionRequestLimit.isOpen({ fallback: false })
|
|
2966
3034
|
? HARDCODED_REQUEST_LIMIT
|
|
2967
3035
|
: 1000;
|
|
2968
|
-
const
|
|
2969
|
-
|
|
2970
|
-
getRecords: new GetRecordsRequestStrategy(),
|
|
2971
|
-
getRecordActions: new GetRecordActionsRequestStrategy(),
|
|
2972
|
-
getRecordAvatars: new GetRecordAvatarsRequestStrategy(),
|
|
2973
|
-
getObjectInfo: new GetObjectInfoRequestStrategy(),
|
|
2974
|
-
getObjectInfos: new GetObjectInfosRequestStrategy(),
|
|
2975
|
-
getRelatedListsActions: new GetRelatedListsActionsRequestStrategy(),
|
|
2976
|
-
getRelatedListRecords: new GetRelatedListRecordsRequestStrategy(),
|
|
2977
|
-
getRelatedListRecordsBatch: new GetRelatedListRecordsBatchRequestStrategy(),
|
|
2978
|
-
getRelatedListInfoBatch: new GetRelatedListInfoBatchRequestStrategy(),
|
|
2979
|
-
getListInfoByName: new GetListInfoByNameRequestStrategy(),
|
|
2980
|
-
getListRecordsByName: new GetListRecordsByNameRequestStrategy(),
|
|
2981
|
-
getApexStrategy: new GetApexRequestStrategy(),
|
|
2982
|
-
getComponentsDef: new GetComponentsDefStrategy(),
|
|
2983
|
-
getListInfosByObjectName: new GetListInfosByObjectNameRequestStrategy(),
|
|
2984
|
-
}, {
|
|
3036
|
+
const useSaveBuckets = useExactMatchesPlus.isOpen({ fallback: false });
|
|
3037
|
+
const prefetcherOptions = {
|
|
2985
3038
|
inflightRequestLimit,
|
|
2986
|
-
|
|
3039
|
+
useSaveBuckets,
|
|
3040
|
+
};
|
|
3041
|
+
const prefetcher = new LexPredictivePrefetcher({ context: 'unknown' }, repository, requestRunner, {
|
|
3042
|
+
getRecord: new GetRecordRequestStrategy(prefetcherOptions),
|
|
3043
|
+
getRecords: new GetRecordsRequestStrategy(prefetcherOptions),
|
|
3044
|
+
getRecordActions: new GetRecordActionsRequestStrategy(prefetcherOptions),
|
|
3045
|
+
getRecordAvatars: new GetRecordAvatarsRequestStrategy(prefetcherOptions),
|
|
3046
|
+
getObjectInfo: new GetObjectInfoRequestStrategy(prefetcherOptions),
|
|
3047
|
+
getObjectInfos: new GetObjectInfosRequestStrategy(prefetcherOptions),
|
|
3048
|
+
getRelatedListsActions: new GetRelatedListsActionsRequestStrategy(prefetcherOptions),
|
|
3049
|
+
getRelatedListRecords: new GetRelatedListRecordsRequestStrategy(prefetcherOptions),
|
|
3050
|
+
getRelatedListRecordsBatch: new GetRelatedListRecordsBatchRequestStrategy(prefetcherOptions),
|
|
3051
|
+
getRelatedListInfoBatch: new GetRelatedListInfoBatchRequestStrategy(prefetcherOptions),
|
|
3052
|
+
getListInfoByName: new GetListInfoByNameRequestStrategy(prefetcherOptions),
|
|
3053
|
+
getListRecordsByName: new GetListRecordsByNameRequestStrategy(prefetcherOptions),
|
|
3054
|
+
getApexStrategy: new GetApexRequestStrategy(prefetcherOptions),
|
|
3055
|
+
getComponentsDef: new GetComponentsDefStrategy(prefetcherOptions),
|
|
3056
|
+
getListInfosByObjectName: new GetListInfosByObjectNameRequestStrategy(prefetcherOptions),
|
|
3057
|
+
}, prefetcherOptions);
|
|
2987
3058
|
registerPrefetcher(luvio, prefetcher);
|
|
2988
3059
|
if (useApexPredictions.isOpen({ fallback: false })) {
|
|
2989
3060
|
registerPrefetcher$1(luvio, prefetcher);
|
|
@@ -3150,4 +3221,4 @@ function ldsEngineCreator() {
|
|
|
3150
3221
|
}
|
|
3151
3222
|
|
|
3152
3223
|
export { buildPredictorForContext, ldsEngineCreator as default, initializeLDS, initializeOneStore };
|
|
3153
|
-
// version: 1.
|
|
3224
|
+
// version: 1.301.0-ecd340c2e1
|
|
@@ -6,7 +6,7 @@ export declare class LexDefaultPage extends PredictivePrefetchPage<LexRequest, D
|
|
|
6
6
|
buildSaveRequestData(request: LexRequest): {
|
|
7
7
|
context: DefaultPageContext;
|
|
8
8
|
request: LexRequest;
|
|
9
|
-
};
|
|
9
|
+
}[];
|
|
10
10
|
resolveSimilarRequest(similarRequest: LexRequest): LexRequest;
|
|
11
11
|
getAlwaysRunRequests(): LexRequest[];
|
|
12
12
|
}
|
|
@@ -16,10 +16,7 @@ export declare class ObjectHomePage extends PredictivePrefetchPage<ObjectHomePag
|
|
|
16
16
|
getListInfosByObjectName: GetListInfosByObjectNameRequestStrategy;
|
|
17
17
|
getObjectInfos: GetObjectInfosRequestStrategy;
|
|
18
18
|
});
|
|
19
|
-
buildSaveRequestData(request: ObjectHomePageRequest):
|
|
20
|
-
request: any;
|
|
21
|
-
context: any;
|
|
22
|
-
};
|
|
19
|
+
buildSaveRequestData(request: ObjectHomePageRequest): import("..").SaveRequestData<any, any>[];
|
|
23
20
|
resolveSimilarRequest(similarRequest: ObjectHomePageRequest): ObjectHomePageRequest;
|
|
24
21
|
getAlwaysRunRequests(): ObjectHomePageRequest[];
|
|
25
22
|
static handlesContext(context: LexContext): context is ObjectHomePageContext;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
+
import type { SaveRequestData } from '../common';
|
|
1
2
|
export declare abstract class PredictivePrefetchPage<Request, Context> {
|
|
2
3
|
context: Context;
|
|
3
4
|
similarContext: Partial<Context> | undefined;
|
|
4
5
|
constructor(context: Context);
|
|
5
|
-
abstract buildSaveRequestData(request: Request):
|
|
6
|
-
context: Context;
|
|
7
|
-
request: Request;
|
|
8
|
-
};
|
|
6
|
+
abstract buildSaveRequestData(request: Request): SaveRequestData<Request, Context>[];
|
|
9
7
|
abstract resolveSimilarRequest(similarRequest: Request): Request;
|
|
10
8
|
abstract getAlwaysRunRequests(): Request[];
|
|
11
9
|
}
|
|
@@ -24,10 +24,7 @@ export declare class RecordHomePage extends PredictivePrefetchPage<RecordHomePag
|
|
|
24
24
|
private requestStrategies;
|
|
25
25
|
similarContext: RecordHomePageContext;
|
|
26
26
|
constructor(context: RecordHomePageContext, requestStrategies: RecordHomePageRequestStrategies);
|
|
27
|
-
buildSaveRequestData(request: RecordHomePageRequest):
|
|
28
|
-
request: any;
|
|
29
|
-
context: any;
|
|
30
|
-
};
|
|
27
|
+
buildSaveRequestData(request: RecordHomePageRequest): import("..").SaveRequestData<any, any>[];
|
|
31
28
|
resolveSimilarRequest(similarRequest: RecordHomePageRequest): RecordHomePageRequest;
|
|
32
29
|
getAlwaysRunRequests(): RecordHomePageRequest[];
|
|
33
30
|
static handlesContext(context: LexContext): context is RecordHomePageContext;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { ApplicationPredictivePrefetcher } from './predictive-prefetcher';
|
|
1
2
|
import type { DefaultPageContext, PredictivePrefetchPage } from '../pages';
|
|
2
3
|
import type { PrefetcherOptions } from './predictive-prefetcher';
|
|
3
|
-
import { ApplicationPredictivePrefetcher } from './predictive-prefetcher';
|
|
4
4
|
import type { GetRecordActionsRequestStrategy, GetRecordAvatarsRequestStrategy, GetRecordRequestStrategy, GetRecordsRequestStrategy, GetObjectInfoRequestStrategy, GetObjectInfosRequestStrategy, GetRelatedListsActionsRequestStrategy, GetRelatedListInfoBatchRequestStrategy, GetRelatedListRecordsRequestStrategy, GetRelatedListRecordsBatchRequestStrategy, GetListInfoByNameRequestStrategy, GetListRecordsByNameRequestStrategy, GetApexRequestStrategy, GetComponentsDefStrategy, GetListInfosByObjectNameRequestStrategy } from '../request-strategy';
|
|
5
5
|
import type { RequestRunner } from '../request-runner';
|
|
6
6
|
import type { PrefetchRepository } from '../repository/prefetch-repository';
|
|
@@ -2,11 +2,21 @@ import type { PrefetchRepository } from '../repository/prefetch-repository';
|
|
|
2
2
|
import type { PredictivePrefetchPage } from '../pages';
|
|
3
3
|
import type { RequestRunner } from '../request-runner';
|
|
4
4
|
import type { RequestEntry } from '../common';
|
|
5
|
+
/**
|
|
6
|
+
* Options for the predictive prefetcher.
|
|
7
|
+
*/
|
|
5
8
|
export type PrefetcherOptions = {
|
|
9
|
+
/**
|
|
10
|
+
* Limit on the number of requests that can be inflight at any given time.
|
|
11
|
+
*/
|
|
6
12
|
inflightRequestLimit: number;
|
|
13
|
+
/**
|
|
14
|
+
* Whether to save requests in multiple context buckets or only in a single context. Defaults to false.
|
|
15
|
+
*/
|
|
16
|
+
useSaveBuckets?: boolean;
|
|
7
17
|
};
|
|
8
18
|
export declare abstract class ApplicationPredictivePrefetcher<Request, Context extends Record<string, any>> {
|
|
9
|
-
|
|
19
|
+
protected repository: PrefetchRepository;
|
|
10
20
|
protected requestRunner: RequestRunner<Request>;
|
|
11
21
|
protected options: PrefetcherOptions;
|
|
12
22
|
private _context;
|
|
@@ -19,7 +29,7 @@ export declare abstract class ApplicationPredictivePrefetcher<Request, Context e
|
|
|
19
29
|
get context(): Context;
|
|
20
30
|
stopRecording(): Promise<void>;
|
|
21
31
|
startRecording(): void;
|
|
22
|
-
saveRequest(request: Request):
|
|
32
|
+
saveRequest(request: Request): void;
|
|
23
33
|
predict(): Promise<void>;
|
|
24
34
|
getPredictionSummary(): {
|
|
25
35
|
exact: number;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RequestRunner } from '../request-runner';
|
|
2
|
+
import type { RequestEntry } from '../common';
|
|
3
|
+
/**
|
|
4
|
+
* Runs a list of requests with a specified concurrency limit.
|
|
5
|
+
*
|
|
6
|
+
* @template Request - The type of the requests being processed.
|
|
7
|
+
* @param {RequestEntry<Request>[]} requests - An array of request entries to be processed in the array order.
|
|
8
|
+
* @param {RequestRunner<Request>} runner - The runner instance responsible for executing the requests.
|
|
9
|
+
* @param {number} concurrentRequestsLimit - The maximum number of concurrent requests allowed.
|
|
10
|
+
* @param {number} pageStartTime - The start time of the page load, used to calculate the time elapsed since the page starts loading.
|
|
11
|
+
* @returns {Promise<void>} A promise that resolves when all requests have been processed.
|
|
12
|
+
*
|
|
13
|
+
* This function manages a queue of pending requests and processes them with a concurrency limit.
|
|
14
|
+
* Requests are only processed if their `requestTime` is less than the time elapsed since `pageStartTime`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function runRequestsWithLimit<Request>(requests: RequestEntry<Request>[], runner: RequestRunner<Request>, concurrentRequestsLimit: number, pageStartTime: number): Promise<void>;
|
|
@@ -14,9 +14,11 @@ export declare class PrefetchRepository {
|
|
|
14
14
|
private requestBuffer;
|
|
15
15
|
constructor(storage: PrefetchStorage);
|
|
16
16
|
clearRequestBuffer(): void;
|
|
17
|
+
pageStartTime: number;
|
|
18
|
+
markPageStart(): void;
|
|
17
19
|
flushRequestsToStorage(): Promise<void>;
|
|
18
20
|
getKeyId(key: Key): string;
|
|
19
|
-
saveRequest<Request>(key: Key, request: Request):
|
|
21
|
+
saveRequest<Request>(key: Key, request: Request): void;
|
|
20
22
|
getPage<Request>(key: Key): PageEntry<Request> | undefined;
|
|
21
23
|
getPageRequests<Request>(key: Key): RequestEntry<Request>[];
|
|
22
24
|
}
|
|
@@ -11,8 +11,14 @@ export type GetApexRequest = {
|
|
|
11
11
|
config: GetApexConfig;
|
|
12
12
|
};
|
|
13
13
|
export declare function getApexPdlFactory(luvio: Luvio): ({ invokerParams, config }: GetApexConfig) => import("@luvio/engine").Snapshot<any> | Promise<import("@luvio/engine").Snapshot<any>> | null;
|
|
14
|
-
|
|
14
|
+
type GetApexContext = Record<string, unknown>;
|
|
15
|
+
export declare class GetApexRequestStrategy extends LuvioAdapterRequestStrategy<GetApexConfig, GetApexRequest, GetApexContext> {
|
|
15
16
|
adapterName: string;
|
|
16
17
|
adapterFactory: typeof getApexPdlFactory;
|
|
17
18
|
buildConcreteRequest(similarRequest: GetApexRequest): GetApexRequest;
|
|
19
|
+
buildSaveRequestData<C extends GetApexContext>(_similarContext: C, context: C, request: GetApexRequest): {
|
|
20
|
+
request: GetApexRequest;
|
|
21
|
+
context: C;
|
|
22
|
+
}[];
|
|
18
23
|
}
|
|
24
|
+
export {};
|
|
@@ -13,7 +13,7 @@ export declare class GetComponentsDefStrategy extends ConfigBasedRequestStrategy
|
|
|
13
13
|
buildSaveRequestData<C extends GetComponentsContext>(similarContext: C, _context: C, request: GetComponentsRequest): {
|
|
14
14
|
request: GetComponentsRequest;
|
|
15
15
|
context: C;
|
|
16
|
-
};
|
|
16
|
+
}[];
|
|
17
17
|
transformForSave(request: GetComponentsRequest): GetComponentsRequest;
|
|
18
18
|
canCombine(): boolean;
|
|
19
19
|
combineRequests(reqA: string[], reqB: string[]): string[];
|
package/dist/types/predictive-loading/request-strategy/get-list-info-by-name-request-strategy.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare class GetListInfoByNameRequestStrategy extends LuvioAdapterReques
|
|
|
17
17
|
buildSaveRequestData<C extends GetListInfoByNameContext>(_similarContext: C, context: C, request: GetListInfoByNameRequest): {
|
|
18
18
|
request: GetListInfoByNameRequest;
|
|
19
19
|
context: C;
|
|
20
|
-
};
|
|
20
|
+
}[];
|
|
21
21
|
canCombine(reqA: GetListInfoByNameConfig, reqB: GetListInfoByNameConfig): boolean;
|
|
22
22
|
combineRequests(reqA: GetListInfoByNameConfig, _reqB: GetListInfoByNameConfig): GetListInfoByNameConfig;
|
|
23
23
|
}
|
|
@@ -17,7 +17,7 @@ export declare class GetListInfosByObjectNameRequestStrategy extends LuvioAdapte
|
|
|
17
17
|
buildSaveRequestData<C extends GetListInfosByObjectNameContext>(_similarContext: C, context: C, request: GetListInfosByObjectNameRequest): {
|
|
18
18
|
request: GetListInfosByObjectNameRequest;
|
|
19
19
|
context: C;
|
|
20
|
-
};
|
|
20
|
+
}[];
|
|
21
21
|
canCombine(reqA: GetListInfosByObjectNameConfig, reqB: GetListInfosByObjectNameConfig): boolean;
|
|
22
22
|
combineRequests(reqA: GetListInfosByObjectNameConfig, _reqB: GetListInfosByObjectNameConfig): GetListInfosByObjectNameConfig;
|
|
23
23
|
}
|
|
@@ -17,5 +17,5 @@ export declare class GetListRecordsByNameRequestStrategy extends LuvioAdapterReq
|
|
|
17
17
|
buildSaveRequestData<C extends GetListRecordsByNameContext>(_similarContext: C, context: C, request: GetListRecordsByNameRequest): {
|
|
18
18
|
request: GetListRecordsByNameRequest;
|
|
19
19
|
context: C;
|
|
20
|
-
};
|
|
20
|
+
}[];
|
|
21
21
|
}
|
package/dist/types/predictive-loading/request-strategy/get-object-info-request-strategy.d.ts
CHANGED
|
@@ -13,10 +13,6 @@ export declare class GetObjectInfoRequestStrategy extends LuvioAdapterRequestStr
|
|
|
13
13
|
adapterName: string;
|
|
14
14
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetObjectInfoConfig, import("@salesforce/lds-adapters-uiapi").ObjectInfoRepresentation>;
|
|
15
15
|
buildConcreteRequest(similarRequest: GetObjectInfoRequest, context: GetObjectInfoContext): GetObjectInfoRequest;
|
|
16
|
-
buildSaveRequestData<C extends GetObjectInfoContext>(similarContext: C, context: C, request: GetObjectInfoRequest): {
|
|
17
|
-
request: GetObjectInfoRequest;
|
|
18
|
-
context: C;
|
|
19
|
-
};
|
|
20
16
|
transformForSave(request: GetObjectInfoRequest): GetObjectInfoRequest;
|
|
21
17
|
isContextDependent(context: GetObjectInfoContext, request: GetObjectInfoRequest): boolean;
|
|
22
18
|
/**
|
package/dist/types/predictive-loading/request-strategy/get-object-infos-request-strategy.d.ts
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
import type { GetObjectInfosConfig } from '@salesforce/lds-adapters-uiapi';
|
|
2
|
+
import type { RequestEntry } from '../common';
|
|
3
|
+
import type { LuvioAdapterRequest } from './luvio-adapter-request';
|
|
2
4
|
import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
|
|
5
|
+
import type { SaveRequestData } from '../common';
|
|
3
6
|
export type GetObjectInfosRequest = {
|
|
4
7
|
adapterName: 'getObjectInfos';
|
|
5
8
|
config: GetObjectInfosConfig;
|
|
6
9
|
};
|
|
7
10
|
export declare const GET_OBJECT_INFO_BATCH_ADAPTER_NAME = "getObjectInfos";
|
|
8
|
-
|
|
11
|
+
type GetObjectInfosContext = Record<string, unknown>;
|
|
12
|
+
export declare class GetObjectInfosRequestStrategy extends LuvioAdapterRequestStrategy<GetObjectInfosConfig, GetObjectInfosRequest, GetObjectInfosContext> {
|
|
9
13
|
adapterName: string;
|
|
10
14
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetObjectInfosConfig, import("@salesforce/lds-adapters-uiapi").SimplifiedBatchRepresentation>;
|
|
11
15
|
buildConcreteRequest(similarRequest: GetObjectInfosRequest): GetObjectInfosRequest;
|
|
12
16
|
transformForSave(request: GetObjectInfosRequest): GetObjectInfosRequest;
|
|
17
|
+
/**
|
|
18
|
+
* Reduces the given GetObjectInfosRequest requests by eliminating those for which config.objectApiNames
|
|
19
|
+
* is a subset of another GetObjectInfosRequest.
|
|
20
|
+
*
|
|
21
|
+
* @param unfilteredRequests - Array of unfiltered requests
|
|
22
|
+
* @returns RequestEntry<GetObjectInfosRequest>[] - Array of reduced requests
|
|
23
|
+
*/
|
|
24
|
+
reduce(unfilteredRequests: RequestEntry<LuvioAdapterRequest<unknown>>[]): RequestEntry<GetObjectInfosRequest>[];
|
|
25
|
+
buildSaveRequestData(similarContext: GetObjectInfosContext, context: GetObjectInfosContext, request: GetObjectInfosRequest): SaveRequestData<GetObjectInfosRequest, GetObjectInfosContext>[];
|
|
13
26
|
}
|
|
27
|
+
export {};
|
package/dist/types/predictive-loading/request-strategy/get-record-actions-request-strategy.d.ts
CHANGED
|
@@ -11,10 +11,7 @@ export declare class GetRecordActionsRequestStrategy extends LuvioAdapterRequest
|
|
|
11
11
|
adapterName: string;
|
|
12
12
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetRecordActionsConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/ActionRepresentation").ActionRepresentation>;
|
|
13
13
|
buildConcreteRequest(similarRequest: GetRecordActionsRequest, context: GetRecordActionsContext): GetRecordActionsRequest;
|
|
14
|
-
|
|
15
|
-
request: GetRecordActionsRequest;
|
|
16
|
-
context: C;
|
|
17
|
-
};
|
|
14
|
+
transformForSaveSimilarRequest(request: GetRecordActionsRequest): GetRecordActionsRequest;
|
|
18
15
|
canCombine(reqA: GetRecordActionsConfig, reqB: GetRecordActionsConfig): boolean;
|
|
19
16
|
combineRequests(reqA: GetRecordActionsConfig, reqB: GetRecordActionsConfig): GetRecordActionsConfig;
|
|
20
17
|
isContextDependent(context: GetRecordActionsContext, request: GetRecordActionsRequest): boolean;
|
package/dist/types/predictive-loading/request-strategy/get-record-avatars-request-strategy.d.ts
CHANGED
|
@@ -11,10 +11,7 @@ export declare class GetRecordAvatarsRequestStrategy extends LuvioAdapterRequest
|
|
|
11
11
|
adapterName: string;
|
|
12
12
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetRecordAvatarsConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/RecordAvatarBulkMapRepresentation").RecordAvatarBulkMapRepresentation>;
|
|
13
13
|
buildConcreteRequest(similarRequest: GetRecordAvatarsRequest, context: GetRecordAvatarsContext): GetRecordAvatarsRequest;
|
|
14
|
-
|
|
15
|
-
request: GetRecordAvatarsRequest;
|
|
16
|
-
context: C;
|
|
17
|
-
};
|
|
14
|
+
transformForSaveSimilarRequest(request: GetRecordAvatarsRequest): GetRecordAvatarsRequest;
|
|
18
15
|
isContextDependent<C extends GetRecordAvatarsContext>(context: C, request: GetRecordAvatarsRequest): boolean;
|
|
19
16
|
canCombine(reqA: GetRecordAvatarsConfig, reqB: GetRecordAvatarsConfig): boolean;
|
|
20
17
|
combineRequests(reqA: GetRecordAvatarsConfig, reqB: GetRecordAvatarsConfig): GetRecordAvatarsConfig;
|
|
@@ -15,9 +15,6 @@ export declare class GetRecordRequestStrategy extends LuvioAdapterRequestStrateg
|
|
|
15
15
|
canCombine(reqA: GetRecordConfig, reqB: GetRecordConfig): boolean;
|
|
16
16
|
combineRequests(reqA: GetRecordConfig, reqB: GetRecordConfig): GetRecordConfig;
|
|
17
17
|
isContextDependent(context: GetRecordContext, request: GetRecordRequest): boolean;
|
|
18
|
-
|
|
19
|
-
request: GetRecordRequest;
|
|
20
|
-
context: C;
|
|
21
|
-
};
|
|
18
|
+
transformForSaveSimilarRequest(request: GetRecordRequest): GetRecordRequest;
|
|
22
19
|
}
|
|
23
20
|
export {};
|
|
@@ -12,9 +12,6 @@ export declare class GetRecordsRequestStrategy extends LuvioAdapterRequestStrate
|
|
|
12
12
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetRecordsConfig, import("@salesforce/lds-adapters-uiapi").BatchRepresentation>;
|
|
13
13
|
buildConcreteRequest(similarRequest: GetRecordsRequest, context: GetRecordsContext): GetRecordsRequest;
|
|
14
14
|
isContextDependent(context: GetRecordsContext, request: GetRecordsRequest): boolean;
|
|
15
|
-
|
|
16
|
-
request: GetRecordsRequest;
|
|
17
|
-
context: Context;
|
|
18
|
-
};
|
|
15
|
+
transformForSaveSimilarRequest(request: GetRecordsRequest): GetRecordsRequest;
|
|
19
16
|
}
|
|
20
17
|
export {};
|
|
@@ -12,10 +12,7 @@ export declare class GetRelatedListRecordsBatchRequestStrategy extends LuvioAdap
|
|
|
12
12
|
adapterName: string;
|
|
13
13
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListRecordsBatchConfig, import("@salesforce/lds-adapters-uiapi").RelatedListRecordCollectionBatchRepresentation>;
|
|
14
14
|
buildConcreteRequest(similarRequest: GetRelatedListRecordsBatchRequest, context: GetRelatedListRecordsBatchContext): GetRelatedListRecordsBatchRequest;
|
|
15
|
-
|
|
16
|
-
request: GetRelatedListRecordsBatchRequest;
|
|
17
|
-
context: C;
|
|
18
|
-
};
|
|
15
|
+
transformForSaveSimilarRequest(request: GetRelatedListRecordsBatchRequest): GetRelatedListRecordsBatchRequest;
|
|
19
16
|
isContextDependent(context: GetRelatedListRecordsBatchContext, request: GetRelatedListRecordsBatchRequest): boolean;
|
|
20
17
|
/**
|
|
21
18
|
* Can combine two seperate batch requests if the parentRecordId is the same.
|
|
@@ -27,10 +27,7 @@ export declare class GetRelatedListRecordsRequestStrategy extends LuvioAdapterRe
|
|
|
27
27
|
* @returns GetRelatedListRecordsRequest[] That should be a prediction.
|
|
28
28
|
*/
|
|
29
29
|
reduce(unfilteredRequests: RequestEntry<LuvioAdapterRequest<unknown>>[]): RequestEntry<GetRelatedListRecordsRequest>[];
|
|
30
|
-
|
|
31
|
-
request: GetRelatedListRecordsRequest;
|
|
32
|
-
context: C;
|
|
33
|
-
};
|
|
30
|
+
transformForSaveSimilarRequest(request: GetRelatedListRecordsRequest): GetRelatedListRecordsRequest;
|
|
34
31
|
isContextDependent(context: GetRelatedListRecordsContext, request: GetRelatedListRecordsRequest): boolean;
|
|
35
32
|
}
|
|
36
33
|
export {};
|
|
@@ -11,10 +11,7 @@ export declare class GetRelatedListsActionsRequestStrategy extends LuvioAdapterR
|
|
|
11
11
|
adapterName: string;
|
|
12
12
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListsActionsConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/ActionRelatedListsCollectionBatchRepresentation").ActionRelatedListsCollectionBatchRepresentation>;
|
|
13
13
|
buildConcreteRequest(similarRequest: GetRelatedListsActionsRequest, context: GetRelatedListsActionsContext): GetRelatedListsActionsRequest;
|
|
14
|
-
|
|
15
|
-
request: GetRelatedListsActionsRequest;
|
|
16
|
-
context: C;
|
|
17
|
-
};
|
|
14
|
+
protected transformForSaveSimilarRequest(request: GetRelatedListsActionsRequest): GetRelatedListsActionsRequest;
|
|
18
15
|
isContextDependent(context: GetRelatedListsActionsContext, request: GetRelatedListsActionsRequest): boolean;
|
|
19
16
|
/**
|
|
20
17
|
* Can only reduce two requests when they have the same recordId, and
|
|
@@ -2,7 +2,12 @@ import type { AdapterFactory } from '@luvio/engine';
|
|
|
2
2
|
import { RequestStrategy } from './request-strategy';
|
|
3
3
|
import type { LuvioAdapterRequest } from './luvio-adapter-request';
|
|
4
4
|
import type { RequestEntry } from '../common';
|
|
5
|
+
import type { PrefetcherOptions } from '../prefetcher';
|
|
5
6
|
export declare abstract class LuvioAdapterRequestStrategy<AdapterConfig, Request extends LuvioAdapterRequest<AdapterConfig>, Context> extends RequestStrategy<Request, Context> {
|
|
7
|
+
protected prefetcherOptions: Partial<PrefetcherOptions>;
|
|
8
|
+
constructor(options?: {
|
|
9
|
+
useSaveBuckets?: boolean;
|
|
10
|
+
});
|
|
6
11
|
/**
|
|
7
12
|
* Name of the adapter used in this strategy.
|
|
8
13
|
*/
|
|
@@ -66,11 +71,17 @@ export declare abstract class LuvioAdapterRequestStrategy<AdapterConfig, Request
|
|
|
66
71
|
* - handling the cases where the request is context dependent (this is homework for the subclass)
|
|
67
72
|
* @param _similarContext Context with at least one parameter as a wildcard '*'
|
|
68
73
|
* @param context Exact context for a given page
|
|
69
|
-
* @param request
|
|
70
|
-
* @returns
|
|
74
|
+
* @param request Request to build save request data for
|
|
75
|
+
* @returns Save request data
|
|
71
76
|
*/
|
|
72
|
-
buildSaveRequestData(
|
|
77
|
+
buildSaveRequestData(similarContext: Context, context: Context, request: Request): {
|
|
73
78
|
request: Request;
|
|
74
79
|
context: Context;
|
|
75
|
-
};
|
|
80
|
+
}[];
|
|
81
|
+
/**
|
|
82
|
+
* Transforms the request for saving similar requests
|
|
83
|
+
* @param request Request to transform for saving similar requests
|
|
84
|
+
* @returns Transformed request
|
|
85
|
+
*/
|
|
86
|
+
protected transformForSaveSimilarRequest(request: Request): Request;
|
|
76
87
|
}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import type { RequestEntry } from '../common';
|
|
1
|
+
import type { RequestEntry, SaveRequestData } from '../common';
|
|
2
2
|
export declare abstract class RequestStrategy<Request, Context> {
|
|
3
|
-
abstract buildSaveRequestData(similarContext: Context, context: Context, request: Request):
|
|
4
|
-
request: Request;
|
|
5
|
-
context: Context;
|
|
6
|
-
};
|
|
3
|
+
abstract buildSaveRequestData(similarContext: Context, context: Context, request: Request): SaveRequestData<Request, Context>[];
|
|
7
4
|
abstract buildConcreteRequest(similarRequest: Request, context: Context): Request;
|
|
8
5
|
transformForSave(request: Request): Request;
|
|
9
6
|
reduce(requests: RequestEntry<Request>[]): RequestEntry<Request>[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/lds-runtime-aura",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.301.0",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"description": "LDS engine for Aura runtime",
|
|
6
6
|
"main": "dist/ldsEngineCreator.js",
|
|
@@ -44,24 +44,24 @@
|
|
|
44
44
|
"@luvio/service-subscription": "^4.0.0",
|
|
45
45
|
"@luvio/service-type-registry": "^4.0.0",
|
|
46
46
|
"@luvio/utils": "^4.0.0",
|
|
47
|
-
"@salesforce/lds-adapters-apex": "^1.
|
|
48
|
-
"@salesforce/lds-adapters-uiapi": "^1.
|
|
49
|
-
"@salesforce/lds-ads-bridge": "^1.
|
|
50
|
-
"@salesforce/lds-aura-storage": "^1.
|
|
51
|
-
"@salesforce/lds-bindings": "^1.
|
|
52
|
-
"@salesforce/lds-instrumentation": "^1.
|
|
53
|
-
"@salesforce/lds-network-aura": "^1.
|
|
54
|
-
"@salesforce/lds-network-fetch-with-jwt": "^1.
|
|
47
|
+
"@salesforce/lds-adapters-apex": "^1.301.0",
|
|
48
|
+
"@salesforce/lds-adapters-uiapi": "^1.301.0",
|
|
49
|
+
"@salesforce/lds-ads-bridge": "^1.301.0",
|
|
50
|
+
"@salesforce/lds-aura-storage": "^1.301.0",
|
|
51
|
+
"@salesforce/lds-bindings": "^1.301.0",
|
|
52
|
+
"@salesforce/lds-instrumentation": "^1.301.0",
|
|
53
|
+
"@salesforce/lds-network-aura": "^1.301.0",
|
|
54
|
+
"@salesforce/lds-network-fetch-with-jwt": "^1.301.0"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@luvio/network-adapter-composable": "0.
|
|
58
|
-
"@salesforce/lds-adapters-uiapi-lex": "^1.
|
|
57
|
+
"@luvio/network-adapter-composable": "0.155.1",
|
|
58
|
+
"@salesforce/lds-adapters-uiapi-lex": "^1.301.0"
|
|
59
59
|
},
|
|
60
60
|
"luvioBundlesize": [
|
|
61
61
|
{
|
|
62
62
|
"path": "./dist/ldsEngineCreator.js",
|
|
63
63
|
"maxSize": {
|
|
64
|
-
"none": "
|
|
64
|
+
"none": "125 kB",
|
|
65
65
|
"min": "52 kB",
|
|
66
66
|
"compressed": "22 kB"
|
|
67
67
|
}
|