@salesforce/lds-runtime-aura 1.309.0-dev15 → 1.309.0-dev17
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 +155 -53
- package/dist/types/main.d.ts +3 -2
- package/dist/types/predictive-loading/common/index.d.ts +2 -2
- package/dist/types/predictive-loading/lex/index.d.ts +1 -0
- package/dist/types/predictive-loading/lex/predictions-ready-manager.d.ts +32 -0
- package/dist/types/predictive-loading/pages/lex-default-page.d.ts +2 -2
- package/dist/types/predictive-loading/pages/object-home-page.d.ts +1 -2
- package/dist/types/predictive-loading/pages/predictive-prefetch-page.d.ts +5 -3
- package/dist/types/predictive-loading/pages/record-home-page.d.ts +4 -2
- package/dist/types/predictive-loading/prefetcher/lex-predictive-prefetcher.d.ts +1 -1
- package/dist/types/predictive-loading/prefetcher/predictive-prefetcher.d.ts +11 -6
- package/dist/types/predictive-loading/repository/prefetch-repository.d.ts +8 -6
- package/dist/types/predictive-loading/request-strategy/get-related-list-info-batch-request-strategy.d.ts +1 -0
- package/dist/types/predictive-loading/request-strategy/request-strategy.d.ts +1 -1
- package/dist/types/predictive-loading/storage/aura-prefetch-storage.d.ts +4 -2
- package/package.json +14 -14
package/dist/ldsEngineCreator.js
CHANGED
|
@@ -20,6 +20,7 @@ import useRelatedListsPredictions from '@salesforce/gate/lds.pdl.useRelatedLists
|
|
|
20
20
|
import useCmpDefPredictions from '@salesforce/gate/lds.pdl.useCmpDefPredictions';
|
|
21
21
|
import applyPredictionRequestLimit from '@salesforce/gate/lds.pdl.applyRequestLimit';
|
|
22
22
|
import useExactMatchesPlusGate from '@salesforce/gate/lds.pdl.useExactMatchesPlus';
|
|
23
|
+
import useRecordTypeId from '@salesforce/gate/lds.pdl.useRecordTypeId';
|
|
23
24
|
import { GetApexWireAdapterFactory, registerPrefetcher as registerPrefetcher$1 } from 'force/ldsAdaptersApex';
|
|
24
25
|
import { getRecordAvatarsAdapterFactory, getRecordAdapterFactory, coerceFieldIdArray, getRecordsAdapterFactory, getRecordActionsAdapterFactory, getObjectInfosAdapterFactory, coerceObjectIdArray, getObjectInfoAdapterFactory, coerceObjectId, getRelatedListsActionsAdapterFactory, getRelatedListInfoBatchAdapterFactory, getRelatedListRecordsBatchAdapterFactory, getRelatedListRecordsAdapterFactory, getListInfoByNameAdapterFactory, getListInfosByObjectNameAdapterFactory, getListRecordsByNameAdapterFactory, getListObjectInfoAdapterFactory, instrument, configuration, InMemoryRecordRepresentationQueryEvaluator, UiApiNamespace, RecordRepresentationRepresentationType, registerPrefetcher } from 'force/ldsAdaptersUiapi';
|
|
25
26
|
import { BaseCommand, convertAuraResponseToData, convertFetchResponseToData } from 'force/luvioRuntime5';
|
|
@@ -1778,21 +1779,27 @@ const PDL_EXECUTE_ASYNC_OPTIONS = {
|
|
|
1778
1779
|
};
|
|
1779
1780
|
|
|
1780
1781
|
class PredictivePrefetchPage {
|
|
1781
|
-
constructor(context) {
|
|
1782
|
+
constructor(context, similarContext) {
|
|
1782
1783
|
this.context = context;
|
|
1783
|
-
this.similarContext =
|
|
1784
|
+
this.similarContext = similarContext;
|
|
1785
|
+
}
|
|
1786
|
+
getExactKey() {
|
|
1787
|
+
return { ...this.context };
|
|
1788
|
+
}
|
|
1789
|
+
getSimilarKey() {
|
|
1790
|
+
return { ...this.similarContext };
|
|
1784
1791
|
}
|
|
1785
1792
|
}
|
|
1786
1793
|
|
|
1787
1794
|
class LexDefaultPage extends PredictivePrefetchPage {
|
|
1788
|
-
constructor(context) {
|
|
1789
|
-
super(context);
|
|
1795
|
+
constructor(context, similarContext) {
|
|
1796
|
+
super(context, similarContext);
|
|
1790
1797
|
}
|
|
1791
1798
|
supportsRequest(_request) {
|
|
1792
1799
|
return true;
|
|
1793
1800
|
}
|
|
1794
1801
|
buildSaveRequestData(request) {
|
|
1795
|
-
return [{
|
|
1802
|
+
return [{ key: this.getExactKey(), request }];
|
|
1796
1803
|
}
|
|
1797
1804
|
resolveSimilarRequest(similarRequest) {
|
|
1798
1805
|
return similarRequest;
|
|
@@ -2530,6 +2537,14 @@ class GetRelatedListInfoBatchRequestStrategy extends LuvioAdapterRequestStrategy
|
|
|
2530
2537
|
buildConcreteRequest(similarRequest, _context) {
|
|
2531
2538
|
return similarRequest;
|
|
2532
2539
|
}
|
|
2540
|
+
isContextDependent(context, request) {
|
|
2541
|
+
// We have a higher degree of confidence of being able to use a similar request when
|
|
2542
|
+
// optional config is not set AND the object type of the page context is the same as the
|
|
2543
|
+
// object type related list is for. This approach is based heavily with early predictions
|
|
2544
|
+
// and the max of 12 aura requests in mind.
|
|
2545
|
+
return (context.objectApiName === request.config.parentObjectApiName &&
|
|
2546
|
+
request.config.recordTypeId === undefined);
|
|
2547
|
+
}
|
|
2533
2548
|
canCombine(reqA, reqB) {
|
|
2534
2549
|
return reqA.parentObjectApiName === reqB.parentObjectApiName;
|
|
2535
2550
|
}
|
|
@@ -2658,10 +2673,13 @@ class PrefetchRepository {
|
|
|
2658
2673
|
existingRequestEntry.requestMetadata.requestTime = requestTime;
|
|
2659
2674
|
}
|
|
2660
2675
|
});
|
|
2661
|
-
const { modifyBeforeSaveHook } = this.options;
|
|
2676
|
+
const { modifyBeforeSaveHook, modifyPageBeforeSavingHook } = this.options;
|
|
2662
2677
|
if (modifyBeforeSaveHook !== undefined) {
|
|
2663
2678
|
page.requests = modifyBeforeSaveHook(page.requests);
|
|
2664
2679
|
}
|
|
2680
|
+
if (modifyPageBeforeSavingHook !== undefined) {
|
|
2681
|
+
modifyPageBeforeSavingHook(page);
|
|
2682
|
+
}
|
|
2665
2683
|
setPromises.push(this.storage.set(id, page));
|
|
2666
2684
|
}
|
|
2667
2685
|
this.clearRequestBuffer();
|
|
@@ -2680,10 +2698,13 @@ class PrefetchRepository {
|
|
|
2680
2698
|
this.requestBuffer.set(identifier, batchForKey);
|
|
2681
2699
|
}
|
|
2682
2700
|
getPage(key) {
|
|
2683
|
-
const identifier =
|
|
2701
|
+
const identifier = this.getKeyId(key);
|
|
2684
2702
|
return this.storage.get(identifier);
|
|
2685
2703
|
}
|
|
2686
2704
|
getPageRequests(key) {
|
|
2705
|
+
if (!key) {
|
|
2706
|
+
return [];
|
|
2707
|
+
}
|
|
2687
2708
|
const page = this.getPage(key);
|
|
2688
2709
|
if (page === undefined) {
|
|
2689
2710
|
return [];
|
|
@@ -2968,18 +2989,19 @@ const RECORD_HOME_SUPPORTED_ADAPTERS = new Set([
|
|
|
2968
2989
|
]);
|
|
2969
2990
|
class RecordHomePage extends LexDefaultPage {
|
|
2970
2991
|
constructor(context, requestStrategies, options) {
|
|
2971
|
-
super(context
|
|
2992
|
+
super(context, {
|
|
2993
|
+
...context,
|
|
2994
|
+
recordId: '*',
|
|
2995
|
+
});
|
|
2972
2996
|
this.requestStrategies = requestStrategies;
|
|
2973
2997
|
this.options = options;
|
|
2974
|
-
const { recordId: _, ...rest } = this.context;
|
|
2975
|
-
this.similarContext = {
|
|
2976
|
-
recordId: '*',
|
|
2977
|
-
...rest,
|
|
2978
|
-
};
|
|
2979
2998
|
}
|
|
2980
2999
|
supportsRequest(request) {
|
|
2981
3000
|
return RECORD_HOME_SUPPORTED_ADAPTERS.has(request.adapterName);
|
|
2982
3001
|
}
|
|
3002
|
+
getExactKey() {
|
|
3003
|
+
return RecordHomePage.contextToExactKey(this.context);
|
|
3004
|
+
}
|
|
2983
3005
|
buildSaveRequestData(request) {
|
|
2984
3006
|
const requestBuckets = [];
|
|
2985
3007
|
const { adapterName } = request;
|
|
@@ -2989,7 +3011,7 @@ class RecordHomePage extends LexDefaultPage {
|
|
|
2989
3011
|
}
|
|
2990
3012
|
if (matchingRequestStrategy.isContextDependent(this.context, request)) {
|
|
2991
3013
|
requestBuckets.push({
|
|
2992
|
-
|
|
3014
|
+
key: this.getSimilarKey(),
|
|
2993
3015
|
request: matchingRequestStrategy.transformForSaveSimilarRequest(request),
|
|
2994
3016
|
});
|
|
2995
3017
|
// When `options.useExactMatchesPlus` is not enabled, we can save this request on the similar bucket only
|
|
@@ -2999,7 +3021,7 @@ class RecordHomePage extends LexDefaultPage {
|
|
|
2999
3021
|
}
|
|
3000
3022
|
if (!matchingRequestStrategy.onlySavedInSimilar) {
|
|
3001
3023
|
requestBuckets.push({
|
|
3002
|
-
|
|
3024
|
+
key: this.getExactKey(),
|
|
3003
3025
|
request: matchingRequestStrategy.transformForSave(request),
|
|
3004
3026
|
});
|
|
3005
3027
|
}
|
|
@@ -3051,6 +3073,10 @@ class RecordHomePage extends LexDefaultPage {
|
|
|
3051
3073
|
maybeRecordHomePageContext.recordId !== undefined &&
|
|
3052
3074
|
maybeRecordHomePageContext.type === 'recordPage');
|
|
3053
3075
|
}
|
|
3076
|
+
static contextToExactKey(context) {
|
|
3077
|
+
const { recordTypeId: _, ...key } = context;
|
|
3078
|
+
return key;
|
|
3079
|
+
}
|
|
3054
3080
|
}
|
|
3055
3081
|
|
|
3056
3082
|
const OBJECT_HOME_SUPPORTED_ADAPTERS = new Set([
|
|
@@ -3062,10 +3088,9 @@ const OBJECT_HOME_SUPPORTED_ADAPTERS = new Set([
|
|
|
3062
3088
|
]);
|
|
3063
3089
|
class ObjectHomePage extends LexDefaultPage {
|
|
3064
3090
|
constructor(context, requestStrategies, options) {
|
|
3065
|
-
super(context);
|
|
3091
|
+
super(context, context);
|
|
3066
3092
|
this.requestStrategies = requestStrategies;
|
|
3067
3093
|
this.options = options;
|
|
3068
|
-
this.similarContext = context;
|
|
3069
3094
|
}
|
|
3070
3095
|
supportsRequest(request) {
|
|
3071
3096
|
return OBJECT_HOME_SUPPORTED_ADAPTERS.has(request.adapterName);
|
|
@@ -3079,7 +3104,7 @@ class ObjectHomePage extends LexDefaultPage {
|
|
|
3079
3104
|
}
|
|
3080
3105
|
if (matchingRequestStrategy.isContextDependent(this.context, request)) {
|
|
3081
3106
|
requestBuckets.push({
|
|
3082
|
-
|
|
3107
|
+
key: this.getSimilarKey(),
|
|
3083
3108
|
request: matchingRequestStrategy.transformForSaveSimilarRequest(request),
|
|
3084
3109
|
});
|
|
3085
3110
|
// When `options.useExactMatchesPlus` is not enabled, we can save this request on the similar bucket only
|
|
@@ -3088,7 +3113,7 @@ class ObjectHomePage extends LexDefaultPage {
|
|
|
3088
3113
|
}
|
|
3089
3114
|
}
|
|
3090
3115
|
requestBuckets.push({
|
|
3091
|
-
|
|
3116
|
+
key: this.getExactKey(),
|
|
3092
3117
|
request: matchingRequestStrategy.transformForSave(request),
|
|
3093
3118
|
});
|
|
3094
3119
|
return requestBuckets;
|
|
@@ -3766,10 +3791,10 @@ class ApplicationPredictivePrefetcher {
|
|
|
3766
3791
|
if (this.page.supportsRequest(request)) {
|
|
3767
3792
|
const saveBuckets = this.page.buildSaveRequestData(request);
|
|
3768
3793
|
saveBuckets.forEach((saveBucket) => {
|
|
3769
|
-
const { request: requestToSave,
|
|
3794
|
+
const { request: requestToSave, key } = saveBucket;
|
|
3770
3795
|
// No need to differentiate from predictions requests because these
|
|
3771
3796
|
// are made from the adapters factory, which are not prediction aware.
|
|
3772
|
-
this.repository.saveRequest(
|
|
3797
|
+
this.repository.saveRequest(key, requestToSave);
|
|
3773
3798
|
});
|
|
3774
3799
|
}
|
|
3775
3800
|
return Promise.resolve().then();
|
|
@@ -3777,8 +3802,8 @@ class ApplicationPredictivePrefetcher {
|
|
|
3777
3802
|
}
|
|
3778
3803
|
async predict() {
|
|
3779
3804
|
const alwaysRequests = this.page.getAlwaysRunRequests();
|
|
3780
|
-
const similarPageRequests =
|
|
3781
|
-
const exactPageRequests =
|
|
3805
|
+
const similarPageRequests = this.getSimilarPageRequests();
|
|
3806
|
+
const exactPageRequests = this.getExactPageRequests();
|
|
3782
3807
|
// Always requests can't be reduced in - Some of them are essential to keep the page rendering at the beginning.
|
|
3783
3808
|
const reducedRequests = this.requestRunner
|
|
3784
3809
|
.reduceRequests([...exactPageRequests, ...similarPageRequests])
|
|
@@ -3788,33 +3813,25 @@ class ApplicationPredictivePrefetcher {
|
|
|
3788
3813
|
return Promise.all(predictedRequests.map((request) => this.requestRunner.runRequest(request))).then();
|
|
3789
3814
|
}
|
|
3790
3815
|
getPredictionSummary() {
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
return { exact: exactPageRequests.length, similar: similarPageRequests.length };
|
|
3816
|
+
return {
|
|
3817
|
+
exact: this.getExactPageRequests().length,
|
|
3818
|
+
similar: this.getSimilarPageRequests().length,
|
|
3819
|
+
};
|
|
3796
3820
|
}
|
|
3797
3821
|
hasPredictions() {
|
|
3798
3822
|
const summary = this.getPredictionSummary();
|
|
3799
3823
|
return summary.exact > 0 || summary.similar > 0;
|
|
3800
3824
|
}
|
|
3801
3825
|
getSimilarPageRequests() {
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
...entry,
|
|
3809
|
-
request: this.page.resolveSimilarRequest(entry.request),
|
|
3810
|
-
};
|
|
3811
|
-
});
|
|
3812
|
-
}
|
|
3813
|
-
}
|
|
3814
|
-
return resolvedSimilarPageRequests;
|
|
3826
|
+
return this.repository.getPageRequests(this.page.getSimilarKey()).map((entry) => {
|
|
3827
|
+
return {
|
|
3828
|
+
...entry,
|
|
3829
|
+
request: this.page.resolveSimilarRequest(entry.request),
|
|
3830
|
+
};
|
|
3831
|
+
});
|
|
3815
3832
|
}
|
|
3816
|
-
|
|
3817
|
-
return this.repository.getPageRequests(this.
|
|
3833
|
+
getExactPageRequests() {
|
|
3834
|
+
return this.repository.getPageRequests(this.page.getExactKey()) || [];
|
|
3818
3835
|
}
|
|
3819
3836
|
}
|
|
3820
3837
|
|
|
@@ -3877,6 +3894,7 @@ function predictComponentDefs(cmpDefPredictions, requestRunner) {
|
|
|
3877
3894
|
const reducedPredictions = requestRunner.reduceRequests(cmpDefPredictions);
|
|
3878
3895
|
reducedPredictions.map((request) => requestRunner.runRequest(request.request));
|
|
3879
3896
|
}
|
|
3897
|
+
const DEFAULT_RECORD_TYPE_ID = '012000000000000AAA';
|
|
3880
3898
|
class LexPredictivePrefetcher extends ApplicationPredictivePrefetcher {
|
|
3881
3899
|
constructor(context, repository, requestRunner,
|
|
3882
3900
|
// These strategies need to be in sync with the "predictiveDataLoadCapable" list
|
|
@@ -3889,6 +3907,17 @@ class LexPredictivePrefetcher extends ApplicationPredictivePrefetcher {
|
|
|
3889
3907
|
}
|
|
3890
3908
|
getPage() {
|
|
3891
3909
|
if (RecordHomePage.handlesContext(this.context)) {
|
|
3910
|
+
/*
|
|
3911
|
+
* `recordTypeId` is required in order to create similar request keys. However, the means by which it is
|
|
3912
|
+
* obtained varies based on when in the app lifecycle predictions are requested.
|
|
3913
|
+
*/
|
|
3914
|
+
// check context for record type
|
|
3915
|
+
if (!this.context.recordTypeId) {
|
|
3916
|
+
// don't have it (i.e., early predictions), so need try to obtain via exact matches
|
|
3917
|
+
const exact = this.repository.getPage(RecordHomePage.contextToExactKey(this.context));
|
|
3918
|
+
// use found recordTypeId, otherwise fallback to default
|
|
3919
|
+
this.context.recordTypeId = (exact && exact.recordTypeId) || DEFAULT_RECORD_TYPE_ID;
|
|
3920
|
+
}
|
|
3892
3921
|
return new RecordHomePage(this.context, this.requestStrategies, this.options);
|
|
3893
3922
|
}
|
|
3894
3923
|
else if (ObjectHomePage.handlesContext(this.context)) {
|
|
@@ -3897,7 +3926,7 @@ class LexPredictivePrefetcher extends ApplicationPredictivePrefetcher {
|
|
|
3897
3926
|
return new LexDefaultPage(this.context);
|
|
3898
3927
|
}
|
|
3899
3928
|
getAllPageRequests() {
|
|
3900
|
-
const exactPageRequests = this.
|
|
3929
|
+
const exactPageRequests = this.getExactPageRequests();
|
|
3901
3930
|
let similarPageRequests = this.getSimilarPageRequests();
|
|
3902
3931
|
if (exactPageRequests.length > 0 && this.options.useExactMatchesPlus === true) {
|
|
3903
3932
|
similarPageRequests = similarPageRequests.filter((requestEntry) => {
|
|
@@ -3910,7 +3939,7 @@ class LexPredictivePrefetcher extends ApplicationPredictivePrefetcher {
|
|
|
3910
3939
|
async predict() {
|
|
3911
3940
|
const alwaysRequests = this.page.getAlwaysRunRequests();
|
|
3912
3941
|
const pageRequests = this.getAllPageRequests();
|
|
3913
|
-
// IMPORTANT: Because there's no way to
|
|
3942
|
+
// IMPORTANT: Because there's no way to differentiate a cmpDef prediction from the page
|
|
3914
3943
|
// requesting the cmpDef, we need to predict cmpDefs before we start watching
|
|
3915
3944
|
// for predictions in the page. Having this code after an
|
|
3916
3945
|
// await will make the predictions to be saved as predictions too.
|
|
@@ -3998,18 +4027,19 @@ const DEFAULT_STORAGE_OPTIONS = {
|
|
|
3998
4027
|
version: 3,
|
|
3999
4028
|
};
|
|
4000
4029
|
function buildAuraPrefetchStorage(options = {}) {
|
|
4030
|
+
const { onPredictionsReadyCallback, ...storageOptions } = options;
|
|
4001
4031
|
const auraStorage = createStorage({
|
|
4002
4032
|
...DEFAULT_STORAGE_OPTIONS,
|
|
4003
|
-
...
|
|
4033
|
+
...storageOptions,
|
|
4004
4034
|
});
|
|
4005
4035
|
const inMemoryStorage = new InMemoryPrefetchStorage();
|
|
4006
4036
|
if (auraStorage === null) {
|
|
4007
4037
|
return inMemoryStorage;
|
|
4008
4038
|
}
|
|
4009
|
-
return new AuraPrefetchStorage(auraStorage, inMemoryStorage);
|
|
4039
|
+
return new AuraPrefetchStorage(auraStorage, inMemoryStorage, onPredictionsReadyCallback);
|
|
4010
4040
|
}
|
|
4011
4041
|
class AuraPrefetchStorage {
|
|
4012
|
-
constructor(auraStorage, inMemoryStorage) {
|
|
4042
|
+
constructor(auraStorage, inMemoryStorage, onPredictionsReadyCallback = () => { }) {
|
|
4013
4043
|
this.auraStorage = auraStorage;
|
|
4014
4044
|
this.inMemoryStorage = inMemoryStorage;
|
|
4015
4045
|
/**
|
|
@@ -4026,6 +4056,7 @@ class AuraPrefetchStorage {
|
|
|
4026
4056
|
*/
|
|
4027
4057
|
auraStorage.getAll().then((results) => {
|
|
4028
4058
|
keys(results).forEach((key) => this.inMemoryStorage.set(key, results[key]));
|
|
4059
|
+
onPredictionsReadyCallback();
|
|
4029
4060
|
});
|
|
4030
4061
|
}
|
|
4031
4062
|
set(key, value) {
|
|
@@ -4099,7 +4130,7 @@ function getEnvironmentSetting(name) {
|
|
|
4099
4130
|
}
|
|
4100
4131
|
return undefined;
|
|
4101
4132
|
}
|
|
4102
|
-
// version: 1.309.0-
|
|
4133
|
+
// version: 1.309.0-dev17-63f305eea5
|
|
4103
4134
|
|
|
4104
4135
|
const forceRecordTransactionsDisabled = getEnvironmentSetting(EnvironmentSettings.ForceRecordTransactionsDisabled);
|
|
4105
4136
|
//TODO: Some duplication here that can be most likely moved to a util class
|
|
@@ -4394,6 +4425,53 @@ function setupMetadataWatcher(luvio) {
|
|
|
4394
4425
|
});
|
|
4395
4426
|
}
|
|
4396
4427
|
|
|
4428
|
+
/**
|
|
4429
|
+
* Manages the state of predictions and notifies registered callbacks when predictions are ready.
|
|
4430
|
+
*/
|
|
4431
|
+
class PredictionsReadyManager {
|
|
4432
|
+
constructor() {
|
|
4433
|
+
/**
|
|
4434
|
+
* Array of callbacks to be executed when predictions are ready.
|
|
4435
|
+
* @private
|
|
4436
|
+
*/
|
|
4437
|
+
this.predictionsReadyCallbacks = [];
|
|
4438
|
+
/**
|
|
4439
|
+
* Indicates whether the predictions are ready.
|
|
4440
|
+
* @private
|
|
4441
|
+
*/
|
|
4442
|
+
this.predictionsReady = false;
|
|
4443
|
+
}
|
|
4444
|
+
/**
|
|
4445
|
+
* Registers a callback to be called when predictions are ready.
|
|
4446
|
+
* If predictions are already ready, the callback is invoked immediately.
|
|
4447
|
+
*
|
|
4448
|
+
* @param {() => void} callback - The callback function to be executed when predictions are ready.
|
|
4449
|
+
*/
|
|
4450
|
+
whenPredictionsReady(callback) {
|
|
4451
|
+
if (this.predictionsReady) {
|
|
4452
|
+
callback();
|
|
4453
|
+
}
|
|
4454
|
+
else {
|
|
4455
|
+
this.predictionsReadyCallbacks.push(callback);
|
|
4456
|
+
}
|
|
4457
|
+
}
|
|
4458
|
+
/**
|
|
4459
|
+
* Notifies that predictions are ready by invoking all registered callbacks.
|
|
4460
|
+
*/
|
|
4461
|
+
notifyPredictionsReady() {
|
|
4462
|
+
this.predictionsReady = true;
|
|
4463
|
+
this.predictionsReadyCallbacks.forEach((cb) => cb());
|
|
4464
|
+
}
|
|
4465
|
+
/**
|
|
4466
|
+
* Retrieves the list of callbacks registered to be executed when predictions are ready.
|
|
4467
|
+
*
|
|
4468
|
+
* @returns {Array<() => void>} Array of callback functions.
|
|
4469
|
+
*/
|
|
4470
|
+
getCallbacks() {
|
|
4471
|
+
return this.predictionsReadyCallbacks;
|
|
4472
|
+
}
|
|
4473
|
+
}
|
|
4474
|
+
|
|
4397
4475
|
// This code *should* be in lds-network-adapter, but when combined with the Aura
|
|
4398
4476
|
// component test workaround in lds-default-luvio it creates a circular dependecy
|
|
4399
4477
|
// between lds-default-luvio and lds-network-adapter. We do the register on behalf
|
|
@@ -4430,16 +4508,28 @@ function getInflightRequestLimit() {
|
|
|
4430
4508
|
return HARDCODED_REQUEST_LIMIT;
|
|
4431
4509
|
}
|
|
4432
4510
|
}
|
|
4511
|
+
const predictionsReadyManager = new PredictionsReadyManager();
|
|
4512
|
+
function whenPredictionsReady(callback) {
|
|
4513
|
+
predictionsReadyManager.whenPredictionsReady(callback);
|
|
4514
|
+
}
|
|
4433
4515
|
function setupPredictivePrefetcher(luvio) {
|
|
4434
|
-
const storage = buildAuraPrefetchStorage(
|
|
4516
|
+
const storage = buildAuraPrefetchStorage({
|
|
4517
|
+
onPredictionsReadyCallback: () => predictionsReadyManager.notifyPredictionsReady(),
|
|
4518
|
+
});
|
|
4435
4519
|
const requestRunner = new LexRequestRunner(luvio);
|
|
4436
4520
|
const repository = new PrefetchRepository(storage, {
|
|
4437
4521
|
modifyBeforeSaveHook: (requests) => requestRunner.reduceRequests(requests),
|
|
4522
|
+
modifyPageBeforeSavingHook: (page) => {
|
|
4523
|
+
if (RecordHomePage.handlesContext(__lexPrefetcher.context)) {
|
|
4524
|
+
page.recordTypeId = __lexPrefetcher.context.recordTypeId;
|
|
4525
|
+
}
|
|
4526
|
+
},
|
|
4438
4527
|
});
|
|
4439
4528
|
const inflightRequestLimit = applyPredictionRequestLimit.isOpen({ fallback: false })
|
|
4440
4529
|
? getInflightRequestLimit()
|
|
4441
4530
|
: 1000;
|
|
4442
|
-
const useExactMatchesPlus = useExactMatchesPlusGate.isOpen({ fallback: false })
|
|
4531
|
+
const useExactMatchesPlus = useExactMatchesPlusGate.isOpen({ fallback: false }) &&
|
|
4532
|
+
useRecordTypeId.isOpen({ fallback: false }) === false;
|
|
4443
4533
|
const prefetcherOptions = {
|
|
4444
4534
|
inflightRequestLimit,
|
|
4445
4535
|
useExactMatchesPlus,
|
|
@@ -4523,6 +4613,15 @@ function buildPredictorForContext(context) {
|
|
|
4523
4613
|
if (__lexPrefetcher === undefined) {
|
|
4524
4614
|
return;
|
|
4525
4615
|
}
|
|
4616
|
+
const currentContext = __lexPrefetcher.context;
|
|
4617
|
+
let isSameContext = false;
|
|
4618
|
+
if (RecordHomePage.handlesContext(currentContext)) {
|
|
4619
|
+
isSameContext =
|
|
4620
|
+
currentContext.actionName === context.actionName &&
|
|
4621
|
+
currentContext.objectApiName === context.objectApiName &&
|
|
4622
|
+
currentContext.recordId === context.recordId &&
|
|
4623
|
+
currentContext.type === context.type;
|
|
4624
|
+
}
|
|
4526
4625
|
// // This chunk configures which page we're going to use to try and preload.
|
|
4527
4626
|
__lexPrefetcher.context = context;
|
|
4528
4627
|
return {
|
|
@@ -4551,6 +4650,9 @@ function buildPredictorForContext(context) {
|
|
|
4551
4650
|
});
|
|
4552
4651
|
},
|
|
4553
4652
|
runPredictions() {
|
|
4653
|
+
if (isSameContext) {
|
|
4654
|
+
return Promise.resolve();
|
|
4655
|
+
}
|
|
4554
4656
|
return executeAsyncActivity(METRIC_KEYS.PREDICTIVE_DATA_LOADING_PREDICT, (_act) => __lexPrefetcher.predict(), PDL_EXECUTE_ASYNC_OPTIONS);
|
|
4555
4657
|
},
|
|
4556
4658
|
getPredictionSummary() {
|
|
@@ -4661,5 +4763,5 @@ function ldsEngineCreator() {
|
|
|
4661
4763
|
return { name: 'ldsEngineCreator' };
|
|
4662
4764
|
}
|
|
4663
4765
|
|
|
4664
|
-
export { buildPredictorForContext, ldsEngineCreator as default, initializeLDS, initializeOneStore };
|
|
4665
|
-
// version: 1.309.0-
|
|
4766
|
+
export { buildPredictorForContext, ldsEngineCreator as default, initializeLDS, initializeOneStore, whenPredictionsReady };
|
|
4767
|
+
// version: 1.309.0-dev17-5357fa694b
|
package/dist/types/main.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { RecordHomePageContext } from './predictive-loading';
|
|
2
|
+
export declare function whenPredictionsReady(callback: () => void): void;
|
|
2
3
|
/**
|
|
3
4
|
* @typedef {Object} RecordHomePageContext
|
|
4
5
|
* @property {string} objectApiName - The API name of the object.
|
|
@@ -27,7 +28,7 @@ import { type RecordHomePageContext } from './predictive-loading';
|
|
|
27
28
|
export declare function buildPredictorForContext(context: RecordHomePageContext): {
|
|
28
29
|
hasPredictions(): boolean;
|
|
29
30
|
watchPageLoadForPredictions(): void;
|
|
30
|
-
runPredictions(): Promise<void
|
|
31
|
+
runPredictions(): Promise<void>;
|
|
31
32
|
getPredictionSummary(): {
|
|
32
33
|
exact: number;
|
|
33
34
|
similar: number;
|
|
@@ -9,9 +9,9 @@ export type RequestEntry<Request> = {
|
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
11
|
/**
|
|
12
|
-
* Request and
|
|
12
|
+
* Request and context-based Key data to be saved.
|
|
13
13
|
*/
|
|
14
14
|
export type SaveRequestData<Request, Context> = {
|
|
15
15
|
request: Request;
|
|
16
|
-
|
|
16
|
+
key: Context;
|
|
17
17
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PredictionsReadyManager } from './predictions-ready-manager';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages the state of predictions and notifies registered callbacks when predictions are ready.
|
|
3
|
+
*/
|
|
4
|
+
export declare class PredictionsReadyManager {
|
|
5
|
+
/**
|
|
6
|
+
* Array of callbacks to be executed when predictions are ready.
|
|
7
|
+
* @private
|
|
8
|
+
*/
|
|
9
|
+
private predictionsReadyCallbacks;
|
|
10
|
+
/**
|
|
11
|
+
* Indicates whether the predictions are ready.
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
private predictionsReady;
|
|
15
|
+
/**
|
|
16
|
+
* Registers a callback to be called when predictions are ready.
|
|
17
|
+
* If predictions are already ready, the callback is invoked immediately.
|
|
18
|
+
*
|
|
19
|
+
* @param {() => void} callback - The callback function to be executed when predictions are ready.
|
|
20
|
+
*/
|
|
21
|
+
whenPredictionsReady(callback: () => void): void;
|
|
22
|
+
/**
|
|
23
|
+
* Notifies that predictions are ready by invoking all registered callbacks.
|
|
24
|
+
*/
|
|
25
|
+
notifyPredictionsReady(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Retrieves the list of callbacks registered to be executed when predictions are ready.
|
|
28
|
+
*
|
|
29
|
+
* @returns {Array<() => void>} Array of callback functions.
|
|
30
|
+
*/
|
|
31
|
+
getCallbacks(): Array<() => void>;
|
|
32
|
+
}
|
|
@@ -2,10 +2,10 @@ import type { LexRequest } from '../prefetcher';
|
|
|
2
2
|
import { PredictivePrefetchPage } from './predictive-prefetch-page';
|
|
3
3
|
export type DefaultPageContext = Record<string, any>;
|
|
4
4
|
export declare class LexDefaultPage<Request extends LexRequest, Context extends DefaultPageContext> extends PredictivePrefetchPage<Request, Context> {
|
|
5
|
-
constructor(context: Context);
|
|
5
|
+
constructor(context: Context, similarContext?: Context);
|
|
6
6
|
supportsRequest(_request: Request): boolean;
|
|
7
7
|
buildSaveRequestData(request: Request): {
|
|
8
|
-
|
|
8
|
+
key: Context;
|
|
9
9
|
request: Request;
|
|
10
10
|
}[];
|
|
11
11
|
resolveSimilarRequest(similarRequest: Request): Request;
|
|
@@ -11,7 +11,6 @@ export declare const OBJECT_HOME_SUPPORTED_ADAPTERS: Set<string>;
|
|
|
11
11
|
export declare class ObjectHomePage extends LexDefaultPage<ObjectHomePageRequest, ObjectHomePageContext> {
|
|
12
12
|
private requestStrategies;
|
|
13
13
|
private options;
|
|
14
|
-
similarContext: ObjectHomePageContext;
|
|
15
14
|
constructor(context: ObjectHomePageContext, requestStrategies: {
|
|
16
15
|
getListInfoByName: GetListInfoByNameRequestStrategy;
|
|
17
16
|
getListRecordsByName: GetListRecordsByNameRequestStrategy;
|
|
@@ -21,7 +20,7 @@ export declare class ObjectHomePage extends LexDefaultPage<ObjectHomePageRequest
|
|
|
21
20
|
}, options: LexPrefetcherOptions);
|
|
22
21
|
supportsRequest(request: LexRequest): boolean;
|
|
23
22
|
buildSaveRequestData(request: ObjectHomePageRequest): {
|
|
24
|
-
|
|
23
|
+
key: ObjectHomePageContext;
|
|
25
24
|
request: any;
|
|
26
25
|
}[];
|
|
27
26
|
resolveSimilarRequest(similarRequest: ObjectHomePageRequest): ObjectHomePageRequest;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { SaveRequestData } from '../common';
|
|
2
2
|
export declare abstract class PredictivePrefetchPage<Request, Context> {
|
|
3
|
-
context: Context;
|
|
4
|
-
similarContext
|
|
5
|
-
constructor(context: Context);
|
|
3
|
+
protected context: Context;
|
|
4
|
+
protected similarContext?: Context | undefined;
|
|
5
|
+
protected constructor(context: Context, similarContext?: Context | undefined);
|
|
6
6
|
abstract supportsRequest(request: Request): boolean;
|
|
7
7
|
abstract buildSaveRequestData(request: Request): SaveRequestData<Request, Context>[];
|
|
8
8
|
abstract resolveSimilarRequest(similarRequest: Request): Request;
|
|
9
9
|
abstract getAlwaysRunRequests(): Request[];
|
|
10
|
+
getExactKey(): Context;
|
|
11
|
+
getSimilarKey(): Context;
|
|
10
12
|
}
|
|
@@ -5,6 +5,7 @@ export declare const RECORD_HOME_SUPPORTED_ADAPTERS: Set<string>;
|
|
|
5
5
|
export type RecordHomePageContext = {
|
|
6
6
|
objectApiName: string;
|
|
7
7
|
recordId: string;
|
|
8
|
+
recordTypeId?: string;
|
|
8
9
|
actionName: string;
|
|
9
10
|
type: 'recordPage';
|
|
10
11
|
};
|
|
@@ -26,11 +27,11 @@ type RecordHomePageRequestStrategies = {
|
|
|
26
27
|
export declare class RecordHomePage extends LexDefaultPage<RecordHomePageRequest, RecordHomePageContext> {
|
|
27
28
|
private requestStrategies;
|
|
28
29
|
private options;
|
|
29
|
-
similarContext: RecordHomePageContext;
|
|
30
30
|
constructor(context: RecordHomePageContext, requestStrategies: RecordHomePageRequestStrategies, options: LexPrefetcherOptions);
|
|
31
31
|
supportsRequest(request: LexRequest): boolean;
|
|
32
|
+
getExactKey(): RecordHomePageContext;
|
|
32
33
|
buildSaveRequestData(request: RecordHomePageRequest): {
|
|
33
|
-
|
|
34
|
+
key: RecordHomePageContext;
|
|
34
35
|
request: any;
|
|
35
36
|
}[];
|
|
36
37
|
resolveSimilarRequest(similarRequest: RecordHomePageRequest): RecordHomePageRequest;
|
|
@@ -49,5 +50,6 @@ export declare class RecordHomePage extends LexDefaultPage<RecordHomePageRequest
|
|
|
49
50
|
*/
|
|
50
51
|
shouldExecuteAlwaysRequestByThemself(): boolean;
|
|
51
52
|
static handlesContext(context: LexContext): context is RecordHomePageContext;
|
|
53
|
+
static contextToExactKey(context: RecordHomePageContext): RecordHomePageContext;
|
|
52
54
|
}
|
|
53
55
|
export {};
|
|
@@ -27,7 +27,7 @@ export declare class LexPredictivePrefetcher extends ApplicationPredictivePrefet
|
|
|
27
27
|
private requestStrategies;
|
|
28
28
|
protected options: LexPrefetcherOptions;
|
|
29
29
|
page: LexDefaultPage<LexRequest, LexContext>;
|
|
30
|
-
constructor(context: LexContext, repository: PrefetchRepository
|
|
30
|
+
constructor(context: LexContext, repository: PrefetchRepository<LexRequest>, requestRunner: RequestRunner<LexRequest>, requestStrategies: {
|
|
31
31
|
getRecord: GetRecordRequestStrategy;
|
|
32
32
|
getRecords: GetRecordsRequestStrategy;
|
|
33
33
|
getRecordActions: GetRecordActionsRequestStrategy;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { PrefetchRepository } from '../repository';
|
|
2
2
|
import type { PredictivePrefetchPage } from '../pages';
|
|
3
3
|
import type { RequestRunner } from '../request-runner';
|
|
4
|
-
import type {
|
|
5
|
-
export declare abstract class ApplicationPredictivePrefetcher<Request, Context extends Record<string, any>> {
|
|
6
|
-
protected repository: PrefetchRepository
|
|
4
|
+
import type { BaseAdapterRequest } from '../request-strategy';
|
|
5
|
+
export declare abstract class ApplicationPredictivePrefetcher<Request extends BaseAdapterRequest, Context extends Record<string, any>> {
|
|
6
|
+
protected repository: PrefetchRepository<Request>;
|
|
7
7
|
protected requestRunner: RequestRunner<Request>;
|
|
8
8
|
private _context;
|
|
9
9
|
isRecording: boolean;
|
|
10
10
|
page: PredictivePrefetchPage<Request, Context>;
|
|
11
11
|
queuedPredictionRequests: Request[];
|
|
12
|
-
constructor(context: Context, repository: PrefetchRepository
|
|
12
|
+
constructor(context: Context, repository: PrefetchRepository<Request>, requestRunner: RequestRunner<Request>);
|
|
13
13
|
abstract getPage(): PredictivePrefetchPage<Request, Context>;
|
|
14
14
|
set context(value: Context);
|
|
15
15
|
get context(): Context;
|
|
@@ -22,6 +22,11 @@ export declare abstract class ApplicationPredictivePrefetcher<Request, Context e
|
|
|
22
22
|
similar: number;
|
|
23
23
|
};
|
|
24
24
|
hasPredictions(): boolean;
|
|
25
|
-
getSimilarPageRequests():
|
|
26
|
-
|
|
25
|
+
getSimilarPageRequests(): {
|
|
26
|
+
request: Request;
|
|
27
|
+
requestMetadata: {
|
|
28
|
+
requestTime: number;
|
|
29
|
+
};
|
|
30
|
+
}[];
|
|
31
|
+
getExactPageRequests(): import("../common").RequestEntry<Request>[];
|
|
27
32
|
}
|
|
@@ -7,23 +7,25 @@ export type History = {
|
|
|
7
7
|
};
|
|
8
8
|
export type PageEntry<Request> = {
|
|
9
9
|
id: string;
|
|
10
|
+
recordTypeId?: string;
|
|
10
11
|
requests: RequestEntry<Request>[];
|
|
11
12
|
};
|
|
12
|
-
export type PrefetchRepositoryOptions = {
|
|
13
|
-
modifyBeforeSaveHook?: (requests: RequestEntry<
|
|
13
|
+
export type PrefetchRepositoryOptions<Request> = {
|
|
14
|
+
modifyBeforeSaveHook?: (requests: RequestEntry<Request>[]) => RequestEntry<Request>[];
|
|
15
|
+
modifyPageBeforeSavingHook?: (page: PageEntry<Request>) => void;
|
|
14
16
|
};
|
|
15
|
-
export declare class PrefetchRepository {
|
|
17
|
+
export declare class PrefetchRepository<Request> {
|
|
16
18
|
private storage;
|
|
17
19
|
private options;
|
|
18
20
|
private requestBuffer;
|
|
19
|
-
constructor(storage: PrefetchStorage, options?: PrefetchRepositoryOptions);
|
|
21
|
+
constructor(storage: PrefetchStorage, options?: PrefetchRepositoryOptions<Request>);
|
|
20
22
|
clearRequestBuffer(): void;
|
|
21
23
|
pageStartTime: number;
|
|
22
24
|
markPageStart(): void;
|
|
23
25
|
flushRequestsToStorage(): Promise<void>;
|
|
24
26
|
getKeyId(key: Key): string;
|
|
25
27
|
saveRequest<Request>(key: Key, request: Request): void;
|
|
26
|
-
getPage
|
|
27
|
-
getPageRequests
|
|
28
|
+
getPage(key: Key): PageEntry<Request> | undefined;
|
|
29
|
+
getPageRequests(key: Key): RequestEntry<Request>[];
|
|
28
30
|
}
|
|
29
31
|
export {};
|
|
@@ -12,6 +12,7 @@ export declare class GetRelatedListInfoBatchRequestStrategy extends LuvioAdapter
|
|
|
12
12
|
adapterName: string;
|
|
13
13
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListInfoBatchConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/RelatedListInfoBatchRepresentation").RelatedListInfoBatchRepresentation>;
|
|
14
14
|
buildConcreteRequest(similarRequest: GetRelatedListInfoBatchRequest, _context: GetRelatedListInfoBatchContext): GetRelatedListInfoBatchRequest;
|
|
15
|
+
isContextDependent(context: GetRelatedListInfoBatchContext, request: GetRelatedListInfoBatchRequest): boolean;
|
|
15
16
|
canCombine(reqA: GetRelatedListInfoBatchConfig, reqB: GetRelatedListInfoBatchConfig): boolean;
|
|
16
17
|
combineRequests(reqA: GetRelatedListInfoBatchConfig, reqB: GetRelatedListInfoBatchConfig): GetRelatedListInfoBatchConfig;
|
|
17
18
|
}
|
|
@@ -11,11 +11,13 @@ export declare const DEFAULT_STORAGE_OPTIONS: {
|
|
|
11
11
|
debugLogging: boolean;
|
|
12
12
|
version: number;
|
|
13
13
|
};
|
|
14
|
-
export declare function buildAuraPrefetchStorage(options?: Partial<AuraStorageConfig>
|
|
14
|
+
export declare function buildAuraPrefetchStorage(options?: Partial<AuraStorageConfig> & {
|
|
15
|
+
onPredictionsReadyCallback?: () => void;
|
|
16
|
+
}): PrefetchStorage;
|
|
15
17
|
export declare class AuraPrefetchStorage implements PrefetchStorage {
|
|
16
18
|
private auraStorage;
|
|
17
19
|
private inMemoryStorage;
|
|
18
|
-
constructor(auraStorage: AuraStorage, inMemoryStorage: InMemoryPrefetchStorage);
|
|
20
|
+
constructor(auraStorage: AuraStorage, inMemoryStorage: InMemoryPrefetchStorage, onPredictionsReadyCallback?: () => void);
|
|
19
21
|
set<T>(key: string, value: T): Promise<void>;
|
|
20
22
|
get<T>(key: string): T | undefined;
|
|
21
23
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/lds-runtime-aura",
|
|
3
|
-
"version": "1.309.0-
|
|
3
|
+
"version": "1.309.0-dev17",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"description": "LDS engine for Aura runtime",
|
|
6
6
|
"main": "dist/ldsEngineCreator.js",
|
|
@@ -35,15 +35,15 @@
|
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@luvio/service-broker": "5.3.2-dev2",
|
|
38
|
-
"@salesforce/lds-adapters-apex": "^1.309.0-
|
|
39
|
-
"@salesforce/lds-adapters-uiapi": "^1.309.0-
|
|
38
|
+
"@salesforce/lds-adapters-apex": "^1.309.0-dev17",
|
|
39
|
+
"@salesforce/lds-adapters-uiapi": "^1.309.0-dev17",
|
|
40
40
|
"@salesforce/lds-adapters-uiapi-lex": "^1.302.0",
|
|
41
|
-
"@salesforce/lds-ads-bridge": "^1.309.0-
|
|
42
|
-
"@salesforce/lds-aura-storage": "^1.309.0-
|
|
43
|
-
"@salesforce/lds-bindings": "^1.309.0-
|
|
44
|
-
"@salesforce/lds-instrumentation": "^1.309.0-
|
|
45
|
-
"@salesforce/lds-network-aura": "^1.309.0-
|
|
46
|
-
"@salesforce/lds-network-fetch-with-jwt": "^1.309.0-
|
|
41
|
+
"@salesforce/lds-ads-bridge": "^1.309.0-dev17",
|
|
42
|
+
"@salesforce/lds-aura-storage": "^1.309.0-dev17",
|
|
43
|
+
"@salesforce/lds-bindings": "^1.309.0-dev17",
|
|
44
|
+
"@salesforce/lds-instrumentation": "^1.309.0-dev17",
|
|
45
|
+
"@salesforce/lds-network-aura": "^1.309.0-dev17",
|
|
46
|
+
"@salesforce/lds-network-fetch-with-jwt": "^1.309.0-dev17"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@luvio/command-aura-network": "5.3.2-dev2",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"@luvio/command-network": "5.3.2-dev2",
|
|
52
52
|
"@luvio/command-sse": "5.3.2-dev2",
|
|
53
53
|
"@luvio/command-streaming": "5.3.2-dev2",
|
|
54
|
-
"@luvio/network-adapter-composable": "0.156.4-
|
|
55
|
-
"@luvio/network-adapter-fetch": "0.156.4-
|
|
54
|
+
"@luvio/network-adapter-composable": "0.156.4-dev2",
|
|
55
|
+
"@luvio/network-adapter-fetch": "0.156.4-dev2",
|
|
56
56
|
"@luvio/runtime": "5.3.2-dev2",
|
|
57
57
|
"@luvio/service-aura-network": "5.3.2-dev2",
|
|
58
58
|
"@luvio/service-cache-inclusion-policy": "5.3.2-dev2",
|
|
@@ -64,15 +64,15 @@
|
|
|
64
64
|
"@luvio/service-subscription": "5.3.2-dev2",
|
|
65
65
|
"@luvio/service-type-registry": "5.3.2-dev2",
|
|
66
66
|
"@luvio/utils": "5.3.2-dev2",
|
|
67
|
-
"@salesforce/lds-adapters-uiapi-lex": "^1.309.0-
|
|
67
|
+
"@salesforce/lds-adapters-uiapi-lex": "^1.309.0-dev17"
|
|
68
68
|
},
|
|
69
69
|
"luvioBundlesize": [
|
|
70
70
|
{
|
|
71
71
|
"path": "./dist/ldsEngineCreator.js",
|
|
72
72
|
"maxSize": {
|
|
73
|
-
"none": "
|
|
73
|
+
"none": "179.1 kB",
|
|
74
74
|
"min": "75 kB",
|
|
75
|
-
"compressed": "32 kB"
|
|
75
|
+
"compressed": "32.1 kB"
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
],
|