@salesforce/lds-runtime-aura 1.302.0 → 1.304.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.
Files changed (31) hide show
  1. package/dist/ldsEngineCreator.js +1676 -500
  2. package/dist/types/__mocks__/@salesforce/lds-network-fetch-with-jwt.d.ts +1 -0
  3. package/dist/types/__mocks__/instrumentation:beaconLib.d.ts +7 -0
  4. package/dist/types/jwt-authorized-fetch-service.d.ts +2 -0
  5. package/dist/types/language.d.ts +18 -0
  6. package/dist/types/network-fetch.d.ts +8 -0
  7. package/dist/types/network-instrumentation.d.ts +2 -0
  8. package/dist/types/network-sfap.d.ts +1 -1
  9. package/dist/types/predictive-loading/pages/object-home-page.d.ts +10 -5
  10. package/dist/types/predictive-loading/pages/record-home-page.d.ts +10 -4
  11. package/dist/types/predictive-loading/prefetcher/lex-predictive-prefetcher.d.ts +21 -4
  12. package/dist/types/predictive-loading/prefetcher/predictive-prefetcher.d.ts +1 -15
  13. package/dist/types/predictive-loading/repository/utils.d.ts +0 -2
  14. package/dist/types/predictive-loading/request-strategy/get-apex-request-strategy.d.ts +0 -4
  15. package/dist/types/predictive-loading/request-strategy/get-components-request-strategy.d.ts +4 -7
  16. package/dist/types/predictive-loading/request-strategy/get-list-info-by-name-request-strategy.d.ts +0 -4
  17. package/dist/types/predictive-loading/request-strategy/get-list-infos-by-object-name-request-strategy.d.ts +0 -4
  18. package/dist/types/predictive-loading/request-strategy/get-list-object-info-request-strategy.d.ts +16 -0
  19. package/dist/types/predictive-loading/request-strategy/get-list-records-by-name-request-strategy.d.ts +0 -4
  20. package/dist/types/predictive-loading/request-strategy/get-object-info-request-strategy.d.ts +2 -2
  21. package/dist/types/predictive-loading/request-strategy/get-object-infos-request-strategy.d.ts +2 -4
  22. package/dist/types/predictive-loading/request-strategy/get-related-list-records-request-strategy.d.ts +2 -2
  23. package/dist/types/predictive-loading/request-strategy/get-related-lists-actions-request-strategy.d.ts +1 -1
  24. package/dist/types/predictive-loading/request-strategy/index.d.ts +1 -1
  25. package/dist/types/predictive-loading/request-strategy/luvio-adapter-request-strategy.d.ts +6 -77
  26. package/dist/types/predictive-loading/request-strategy/request-strategy.d.ts +65 -4
  27. package/dist/types/predictive-loading/storage/aura-prefetch-storage.d.ts +2 -1
  28. package/package.json +33 -24
  29. package/dist/types/aura-instrumentation/utils/language.d.ts +0 -13
  30. package/dist/types/predictive-loading/request-strategy/config-based-request-strategy.d.ts +0 -15
  31. package/dist/types/predictive-loading/request-strategy/luvio-adapter-request.d.ts +0 -8
@@ -1 +1,2 @@
1
1
  export declare function buildJwtNetworkAdapter(): void;
2
+ export declare function setupLexJwtNetworkAdapter(): void;
@@ -0,0 +1,7 @@
1
+ declare function registerHandler(_cmp: any, _name: string, _loadedCheck: () => boolean): void;
2
+ declare function markLoaded(_cmp: any): void;
3
+ export declare const ThirdPartyTracker: {
4
+ registerHandler: typeof registerHandler;
5
+ markLoaded: typeof markLoaded;
6
+ };
7
+ export {};
@@ -0,0 +1,2 @@
1
+ import { type PublishedService } from '@luvio/service-broker';
2
+ export declare function buildJwtAuthorizedSfapFetchService(): PublishedService;
@@ -0,0 +1,18 @@
1
+ declare const create: {
2
+ (o: object | null): any;
3
+ (o: object | null, properties: PropertyDescriptorMap & ThisType<any>): any;
4
+ }, keys: {
5
+ (o: object): string[];
6
+ (o: {}): string[];
7
+ }, hasOwnProperty: (v: PropertyKey) => boolean;
8
+ declare const isArray: (arg: any) => arg is any[], from: {
9
+ <T>(arrayLike: ArrayLike<T>): T[];
10
+ <T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
11
+ <T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
12
+ <T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
13
+ };
14
+ declare const stringify: {
15
+ (value: any, replacer?: ((this: any, key: string, value: any) => any) | undefined, space?: string | number | undefined): string;
16
+ (value: any, replacer?: (string | number)[] | null | undefined, space?: string | number | undefined): string;
17
+ };
18
+ export { create as ObjectCreate, keys as ObjectKeys, hasOwnProperty as ObjectHasOwnProperty, isArray as ArrayIsArray, from as ArrayFrom, stringify as JSONStringify, };
@@ -0,0 +1,8 @@
1
+ import { type ResourceRequest } from '@luvio/engine';
2
+ import type { ModifyResourceRequestHook, RequestLogger } from '@salesforce/lds-network-fetch-with-jwt';
3
+ export declare const modifyLexResourceRequest: ModifyResourceRequestHook<unknown, any>;
4
+ export declare const requestLogger: RequestLogger;
5
+ export declare const composedFetchNetworkAdapter: {
6
+ shouldHandleRequest(resourceRequest: ResourceRequest): boolean;
7
+ adapter: import("@luvio/engine").NetworkAdapter;
8
+ };
@@ -0,0 +1,2 @@
1
+ import type { FetchResponse, ResourceRequest } from '@luvio/engine';
2
+ export declare function checkAndLogCrudInteraction(request: ResourceRequest, isResolve: boolean, error: any, response?: FetchResponse<any>): void;
@@ -3,7 +3,7 @@ import type { JwtResolver } from '@luvio/jwt-manager';
3
3
  import type { ModifyResourceRequestHook } from '@salesforce/lds-network-fetch-with-jwt';
4
4
  export declare const SFAPController = "SalesforceApiPlatformController";
5
5
  export declare const SFAPJwtMethod = "getSFAPLightningJwtService";
6
- type ExtraInfo = {
6
+ export type ExtraInfo = {
7
7
  baseUri: string;
8
8
  };
9
9
  /**
@@ -1,22 +1,27 @@
1
- import type { LexContext } from '../prefetcher';
2
- import type { GetListInfoByNameRequestStrategy, GetListInfoByNameRequest, GetListRecordsByNameRequestStrategy, GetListRecordsByNameRequest, GetListInfosByObjectNameRequestStrategy, GetListInfosByObjectNameRequest, GetObjectInfosRequest, GetObjectInfosRequestStrategy } from '../request-strategy';
1
+ import type { LexContext, LexPrefetcherOptions } from '../prefetcher';
2
+ import type { GetListInfoByNameRequestStrategy, GetListInfoByNameRequest, GetListRecordsByNameRequestStrategy, GetListRecordsByNameRequest, GetListInfosByObjectNameRequestStrategy, GetListInfosByObjectNameRequest, GetObjectInfosRequest, GetObjectInfosRequestStrategy, GetListObjectInfoRequest, GetListObjectInfoRequestStrategy } from '../request-strategy';
3
3
  import { PredictivePrefetchPage } from './predictive-prefetch-page';
4
4
  export type ObjectHomePageContext = {
5
5
  objectApiName: string;
6
6
  listViewApiName: string;
7
7
  type: 'objectHomePage';
8
8
  };
9
- export type ObjectHomePageRequest = GetListInfoByNameRequest | GetListRecordsByNameRequest | GetListInfosByObjectNameRequest | GetObjectInfosRequest;
9
+ export type ObjectHomePageRequest = GetListInfoByNameRequest | GetListObjectInfoRequest | GetListRecordsByNameRequest | GetListInfosByObjectNameRequest | GetObjectInfosRequest;
10
10
  export declare class ObjectHomePage extends PredictivePrefetchPage<ObjectHomePageRequest, ObjectHomePageContext> {
11
11
  private requestStrategies;
12
+ private options;
12
13
  similarContext: ObjectHomePageContext;
13
14
  constructor(context: ObjectHomePageContext, requestStrategies: {
14
15
  getListInfoByName: GetListInfoByNameRequestStrategy;
15
16
  getListRecordsByName: GetListRecordsByNameRequestStrategy;
16
17
  getListInfosByObjectName: GetListInfosByObjectNameRequestStrategy;
17
18
  getObjectInfos: GetObjectInfosRequestStrategy;
18
- });
19
- buildSaveRequestData(request: ObjectHomePageRequest): import("..").SaveRequestData<any, any>[];
19
+ getListObjectInfo: GetListObjectInfoRequestStrategy;
20
+ }, options: LexPrefetcherOptions);
21
+ buildSaveRequestData(request: ObjectHomePageRequest): {
22
+ context: ObjectHomePageContext;
23
+ request: any;
24
+ }[];
20
25
  resolveSimilarRequest(similarRequest: ObjectHomePageRequest): ObjectHomePageRequest;
21
26
  getAlwaysRunRequests(): ObjectHomePageRequest[];
22
27
  static handlesContext(context: LexContext): context is ObjectHomePageContext;
@@ -1,5 +1,5 @@
1
- import type { LexContext } from '../prefetcher';
2
- import type { GetRecordRequest, GetRecordsRequest, GetRecordRequestStrategy, GetRecordsRequestStrategy, GetRecordActionsRequestStrategy, GetRecordActionsRequest, GetRecordAvatarsRequest, GetRecordAvatarsRequestStrategy, GetObjectInfoRequest, GetObjectInfosRequest, GetObjectInfoRequestStrategy, GetObjectInfosRequestStrategy, GetRelatedListsActionsRequestStrategy, GetRelatedListsActionsRequest, GetRelatedListInfoBatchRequestStrategy, GetRelatedListInfoBatchRequest, GetRelatedListRecordsRequestStrategy, GetRelatedListRecordsRequest, GetRelatedListRecordsBatchRequestStrategy, GetRelatedListRecordsBatchRequest, GetApexRequest, GetComponentsRequest } from '../request-strategy';
1
+ import type { LexContext, LexPrefetcherOptions } from '../prefetcher';
2
+ import type { GetRecordRequest, GetRecordsRequest, GetRecordRequestStrategy, GetRecordsRequestStrategy, GetRecordActionsRequestStrategy, GetRecordActionsRequest, GetRecordAvatarsRequest, GetRecordAvatarsRequestStrategy, GetObjectInfoRequest, GetObjectInfosRequest, GetObjectInfoRequestStrategy, GetObjectInfosRequestStrategy, GetRelatedListsActionsRequestStrategy, GetRelatedListsActionsRequest, GetRelatedListInfoBatchRequestStrategy, GetRelatedListInfoBatchRequest, GetRelatedListRecordsRequestStrategy, GetRelatedListRecordsRequest, GetRelatedListRecordsBatchRequestStrategy, GetRelatedListRecordsBatchRequest, GetApexRequest, GetComponentsRequest, GetApexRequestStrategy, GetComponentsDefStrategy } from '../request-strategy';
3
3
  import { PredictivePrefetchPage } from './predictive-prefetch-page';
4
4
  export type RecordHomePageContext = {
5
5
  objectApiName: string;
@@ -19,12 +19,18 @@ type RecordHomePageRequestStrategies = {
19
19
  getRelatedListInfoBatch: GetRelatedListInfoBatchRequestStrategy;
20
20
  getRelatedListRecords: GetRelatedListRecordsRequestStrategy;
21
21
  getRelatedListRecordsBatch: GetRelatedListRecordsBatchRequestStrategy;
22
+ getApex: GetApexRequestStrategy;
23
+ getComponentsDef: GetComponentsDefStrategy;
22
24
  };
23
25
  export declare class RecordHomePage extends PredictivePrefetchPage<RecordHomePageRequest, RecordHomePageContext> {
24
26
  private requestStrategies;
27
+ private options;
25
28
  similarContext: RecordHomePageContext;
26
- constructor(context: RecordHomePageContext, requestStrategies: RecordHomePageRequestStrategies);
27
- buildSaveRequestData(request: RecordHomePageRequest): import("..").SaveRequestData<any, any>[];
29
+ constructor(context: RecordHomePageContext, requestStrategies: RecordHomePageRequestStrategies, options: LexPrefetcherOptions);
30
+ buildSaveRequestData(request: RecordHomePageRequest): {
31
+ context: RecordHomePageContext;
32
+ request: any;
33
+ }[];
28
34
  resolveSimilarRequest(similarRequest: RecordHomePageRequest): RecordHomePageRequest;
29
35
  getAlwaysRunRequests(): RecordHomePageRequest[];
30
36
  static handlesContext(context: LexContext): context is RecordHomePageContext;
@@ -1,15 +1,30 @@
1
1
  import { ApplicationPredictivePrefetcher } from './predictive-prefetcher';
2
2
  import type { DefaultPageContext, PredictivePrefetchPage } from '../pages';
3
- import type { PrefetcherOptions } from './predictive-prefetcher';
4
- import type { GetRecordActionsRequestStrategy, GetRecordAvatarsRequestStrategy, GetRecordRequestStrategy, GetRecordsRequestStrategy, GetObjectInfoRequestStrategy, GetObjectInfosRequestStrategy, GetRelatedListsActionsRequestStrategy, GetRelatedListInfoBatchRequestStrategy, GetRelatedListRecordsRequestStrategy, GetRelatedListRecordsBatchRequestStrategy, GetListInfoByNameRequestStrategy, GetListRecordsByNameRequestStrategy, GetApexRequestStrategy, GetComponentsDefStrategy, GetListInfosByObjectNameRequestStrategy } from '../request-strategy';
3
+ import type { GetRecordActionsRequestStrategy, GetRecordAvatarsRequestStrategy, GetRecordRequestStrategy, GetRecordsRequestStrategy, GetObjectInfoRequestStrategy, GetObjectInfosRequestStrategy, GetRelatedListsActionsRequestStrategy, GetRelatedListInfoBatchRequestStrategy, GetRelatedListRecordsRequestStrategy, GetRelatedListRecordsBatchRequestStrategy, GetListInfoByNameRequestStrategy, GetListRecordsByNameRequestStrategy, GetApexRequestStrategy, GetComponentsDefStrategy, GetListInfosByObjectNameRequestStrategy, GetListObjectInfoRequestStrategy } from '../request-strategy';
5
4
  import type { RequestRunner } from '../request-runner';
6
5
  import type { PrefetchRepository } from '../repository/prefetch-repository';
7
6
  import type { RecordHomePageContext, RecordHomePageRequest } from '../pages/record-home-page';
7
+ import type { RequestEntry } from '../common';
8
8
  import type { ObjectHomePageContext, ObjectHomePageRequest } from '../pages/object-home-page';
9
9
  export type LexRequest = RecordHomePageRequest | ObjectHomePageRequest;
10
10
  export type LexContext = RecordHomePageContext | ObjectHomePageContext | DefaultPageContext;
11
+ /**
12
+ * Options for the predictive prefetcher.
13
+ */
14
+ export type LexPrefetcherOptions = {
15
+ /**
16
+ * Limit on the number of requests that can be inflight at any given time.
17
+ */
18
+ inflightRequestLimit: number;
19
+ /**
20
+ * When `true` requests will be saved in multiple context buckets and when exact matches contains predictions, only those will be used.
21
+ * Defaults to `false` (saves in one of them, predictions are built from similar + exact context buckets).
22
+ */
23
+ useExactMatchesPlus?: boolean;
24
+ };
11
25
  export declare class LexPredictivePrefetcher extends ApplicationPredictivePrefetcher<LexRequest, LexContext> {
12
26
  private requestStrategies;
27
+ protected options: LexPrefetcherOptions;
13
28
  constructor(context: LexContext, repository: PrefetchRepository, requestRunner: RequestRunner<LexRequest>, requestStrategies: {
14
29
  getRecord: GetRecordRequestStrategy;
15
30
  getRecords: GetRecordsRequestStrategy;
@@ -22,11 +37,13 @@ export declare class LexPredictivePrefetcher extends ApplicationPredictivePrefet
22
37
  getRelatedListRecords: GetRelatedListRecordsRequestStrategy;
23
38
  getRelatedListRecordsBatch: GetRelatedListRecordsBatchRequestStrategy;
24
39
  getListInfoByName: GetListInfoByNameRequestStrategy;
40
+ getListObjectInfo: GetListObjectInfoRequestStrategy;
25
41
  getListRecordsByName: GetListRecordsByNameRequestStrategy;
26
42
  getListInfosByObjectName: GetListInfosByObjectNameRequestStrategy;
27
- getApexStrategy: GetApexRequestStrategy;
43
+ getApex: GetApexRequestStrategy;
28
44
  getComponentsDef: GetComponentsDefStrategy;
29
- }, options: PrefetcherOptions);
45
+ }, options: LexPrefetcherOptions);
30
46
  getPage(): PredictivePrefetchPage<LexRequest, LexContext>;
47
+ getAllPageRequests(): RequestEntry<LexRequest>[];
31
48
  predict(): Promise<void>;
32
49
  }
@@ -2,28 +2,14 @@ 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
- */
8
- export type PrefetcherOptions = {
9
- /**
10
- * Limit on the number of requests that can be inflight at any given time.
11
- */
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;
17
- };
18
5
  export declare abstract class ApplicationPredictivePrefetcher<Request, Context extends Record<string, any>> {
19
6
  protected repository: PrefetchRepository;
20
7
  protected requestRunner: RequestRunner<Request>;
21
- protected options: PrefetcherOptions;
22
8
  private _context;
23
9
  isRecording: boolean;
24
10
  page: PredictivePrefetchPage<Request, Context>;
25
11
  queuedPredictionRequests: Request[];
26
- constructor(context: Context, repository: PrefetchRepository, requestRunner: RequestRunner<Request>, options: PrefetcherOptions);
12
+ constructor(context: Context, repository: PrefetchRepository, requestRunner: RequestRunner<Request>);
27
13
  abstract getPage(): PredictivePrefetchPage<Request, Context>;
28
14
  set context(value: Context);
29
15
  get context(): Context;
@@ -1,5 +1,3 @@
1
- export declare const ObjectPrototypeHasOwnProperty: (v: PropertyKey) => boolean;
2
- export declare const ArrayIsArray: (arg: any) => arg is any[];
3
1
  /**
4
2
  * A deterministic JSON stringify implementation. Heavily adapted from https://github.com/epoberezkin/fast-json-stable-stringify.
5
3
  * This is needed because insertion order for JSON.stringify(object) affects output:
@@ -16,9 +16,5 @@ export declare class GetApexRequestStrategy extends LuvioAdapterRequestStrategy<
16
16
  adapterName: string;
17
17
  adapterFactory: typeof getApexPdlFactory;
18
18
  buildConcreteRequest(similarRequest: GetApexRequest): GetApexRequest;
19
- buildSaveRequestData<C extends GetApexContext>(_similarContext: C, context: C, request: GetApexRequest): {
20
- request: GetApexRequest;
21
- context: C;
22
- }[];
23
19
  }
24
20
  export {};
@@ -1,4 +1,4 @@
1
- import { ConfigBasedRequestStrategy } from './config-based-request-strategy';
1
+ import { RequestStrategy } from './request-strategy';
2
2
  export type GetComponentsRequest = {
3
3
  adapterName: 'getComponentsDef';
4
4
  config: string[];
@@ -6,15 +6,12 @@ export type GetComponentsRequest = {
6
6
  export type GetComponentsContext = {
7
7
  objectApiName: string;
8
8
  };
9
- export declare class GetComponentsDefStrategy extends ConfigBasedRequestStrategy<string[], GetComponentsRequest, GetComponentsContext> {
9
+ export declare class GetComponentsDefStrategy extends RequestStrategy<string[], GetComponentsRequest, GetComponentsContext> {
10
10
  adapterName: string;
11
- executeWithConfig(config: string[]): void;
11
+ execute(config: string[]): void;
12
12
  buildConcreteRequest(similarRequest: GetComponentsRequest, _context: GetComponentsContext): GetComponentsRequest;
13
- buildSaveRequestData<C extends GetComponentsContext>(similarContext: C, _context: C, request: GetComponentsRequest): {
14
- request: GetComponentsRequest;
15
- context: C;
16
- }[];
17
13
  transformForSave(request: GetComponentsRequest): GetComponentsRequest;
18
14
  canCombine(): boolean;
19
15
  combineRequests(reqA: string[], reqB: string[]): string[];
16
+ isContextDependent(_context: GetComponentsContext, _request: GetComponentsRequest): boolean;
20
17
  }
@@ -14,10 +14,6 @@ export declare class GetListInfoByNameRequestStrategy extends LuvioAdapterReques
14
14
  adapterFactory: import("@luvio/engine").AdapterFactory<GetListInfoByNameConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/ListInfoRepresentation").ListInfoRepresentation>;
15
15
  buildConcreteRequest(similarRequest: GetListInfoByNameRequest): GetListInfoByNameRequest;
16
16
  transformForSave(request: GetListInfoByNameRequest): GetListInfoByNameRequest;
17
- buildSaveRequestData<C extends GetListInfoByNameContext>(_similarContext: C, context: C, request: GetListInfoByNameRequest): {
18
- request: GetListInfoByNameRequest;
19
- context: C;
20
- }[];
21
17
  canCombine(reqA: GetListInfoByNameConfig, reqB: GetListInfoByNameConfig): boolean;
22
18
  combineRequests(reqA: GetListInfoByNameConfig, _reqB: GetListInfoByNameConfig): GetListInfoByNameConfig;
23
19
  }
@@ -14,10 +14,6 @@ export declare class GetListInfosByObjectNameRequestStrategy extends LuvioAdapte
14
14
  adapterFactory: import("@luvio/engine").AdapterFactory<GetListInfosByObjectNameConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/ListInfoSummaryCollectionRepresentation").ListInfoSummaryCollectionRepresentation>;
15
15
  buildConcreteRequest(similarRequest: GetListInfosByObjectNameRequest): GetListInfosByObjectNameRequest;
16
16
  transformForSave(request: GetListInfosByObjectNameRequest): GetListInfosByObjectNameRequest;
17
- buildSaveRequestData<C extends GetListInfosByObjectNameContext>(_similarContext: C, context: C, request: GetListInfosByObjectNameRequest): {
18
- request: GetListInfosByObjectNameRequest;
19
- context: C;
20
- }[];
21
17
  canCombine(reqA: GetListInfosByObjectNameConfig, reqB: GetListInfosByObjectNameConfig): boolean;
22
18
  combineRequests(reqA: GetListInfosByObjectNameConfig, _reqB: GetListInfosByObjectNameConfig): GetListInfosByObjectNameConfig;
23
19
  }
@@ -0,0 +1,16 @@
1
+ import type { GetListObjectInfoConfig } from '@salesforce/lds-adapters-uiapi';
2
+ import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
3
+ export type GetListObjectInfoRequest = {
4
+ adapterName: 'getListObjectInfo';
5
+ config: GetListObjectInfoConfig;
6
+ };
7
+ export declare const GET_LIST_OBJECT_INFO_ADAPTER_NAME = "getListObjectInfo";
8
+ export type GetListObjectInfoContext = {
9
+ objectApiName: string;
10
+ };
11
+ export declare class GetListObjectInfoRequestStrategy extends LuvioAdapterRequestStrategy<GetListObjectInfoConfig, GetListObjectInfoRequest, GetListObjectInfoContext> {
12
+ adapterName: string;
13
+ adapterFactory: import("@luvio/engine").AdapterFactory<GetListObjectInfoConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/ListObjectInfoRepresentation").ListObjectInfoRepresentation>;
14
+ buildConcreteRequest(similarRequest: GetListObjectInfoRequest): GetListObjectInfoRequest;
15
+ transformForSave(request: GetListObjectInfoRequest): GetListObjectInfoRequest;
16
+ }
@@ -14,8 +14,4 @@ export declare class GetListRecordsByNameRequestStrategy extends LuvioAdapterReq
14
14
  adapterFactory: import("@luvio/engine").AdapterFactory<GetListRecordsByNameConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/ListRecordCollectionRepresentation").ListRecordCollectionRepresentation>;
15
15
  buildConcreteRequest(similarRequest: GetListRecordsByNameRequest): GetListRecordsByNameRequest;
16
16
  transformForSave(request: GetListRecordsByNameRequest): GetListRecordsByNameRequest;
17
- buildSaveRequestData<C extends GetListRecordsByNameContext>(_similarContext: C, context: C, request: GetListRecordsByNameRequest): {
18
- request: GetListRecordsByNameRequest;
19
- context: C;
20
- }[];
21
17
  }
@@ -1,7 +1,7 @@
1
1
  import type { GetObjectInfoConfig } from '@salesforce/lds-adapters-uiapi';
2
- import type { LuvioAdapterRequest } from './luvio-adapter-request';
3
2
  import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
4
3
  import type { RequestEntry } from '../common';
4
+ import type { BaseAdapterRequest } from './request-strategy';
5
5
  export type GetObjectInfoRequest = {
6
6
  adapterName: 'getObjectInfo';
7
7
  config: GetObjectInfoConfig;
@@ -21,5 +21,5 @@ export declare class GetObjectInfoRequestStrategy extends LuvioAdapterRequestStr
21
21
  * @param unfilteredRequests all prediction requests
22
22
  * @returns
23
23
  */
24
- reduce(unfilteredRequests: RequestEntry<LuvioAdapterRequest<unknown>>[]): RequestEntry<GetObjectInfoRequest>[];
24
+ reduce(unfilteredRequests: RequestEntry<BaseAdapterRequest<unknown>>[]): RequestEntry<GetObjectInfoRequest>[];
25
25
  }
@@ -1,8 +1,7 @@
1
1
  import type { GetObjectInfosConfig } from '@salesforce/lds-adapters-uiapi';
2
2
  import type { RequestEntry } from '../common';
3
- import type { LuvioAdapterRequest } from './luvio-adapter-request';
4
3
  import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
5
- import type { SaveRequestData } from '../common';
4
+ import type { BaseAdapterRequest } from './request-strategy';
6
5
  export type GetObjectInfosRequest = {
7
6
  adapterName: 'getObjectInfos';
8
7
  config: GetObjectInfosConfig;
@@ -21,7 +20,6 @@ export declare class GetObjectInfosRequestStrategy extends LuvioAdapterRequestSt
21
20
  * @param unfilteredRequests - Array of unfiltered requests
22
21
  * @returns RequestEntry<GetObjectInfosRequest>[] - Array of reduced requests
23
22
  */
24
- reduce(unfilteredRequests: RequestEntry<LuvioAdapterRequest<unknown>>[]): RequestEntry<GetObjectInfosRequest>[];
25
- buildSaveRequestData(similarContext: GetObjectInfosContext, context: GetObjectInfosContext, request: GetObjectInfosRequest): SaveRequestData<GetObjectInfosRequest, GetObjectInfosContext>[];
23
+ reduce(unfilteredRequests: RequestEntry<BaseAdapterRequest<unknown>>[]): RequestEntry<GetObjectInfosRequest>[];
26
24
  }
27
25
  export {};
@@ -1,7 +1,7 @@
1
1
  import type { GetRelatedListRecordsConfig } from '@salesforce/lds-adapters-uiapi';
2
- import type { LuvioAdapterRequest } from './luvio-adapter-request';
3
2
  import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
4
3
  import type { RequestEntry } from '../common';
4
+ import type { BaseAdapterRequest } from './request-strategy';
5
5
  export type GetRelatedListRecordsRequest = {
6
6
  adapterName: 'getRelatedListRecords';
7
7
  config: GetRelatedListRecordsConfig;
@@ -26,7 +26,7 @@ export declare class GetRelatedListRecordsRequestStrategy extends LuvioAdapterRe
26
26
  * @param unfilteredRequests All of the request available for predictions.
27
27
  * @returns GetRelatedListRecordsRequest[] That should be a prediction.
28
28
  */
29
- reduce(unfilteredRequests: RequestEntry<LuvioAdapterRequest<unknown>>[]): RequestEntry<GetRelatedListRecordsRequest>[];
29
+ reduce(unfilteredRequests: RequestEntry<BaseAdapterRequest<unknown>>[]): RequestEntry<GetRelatedListRecordsRequest>[];
30
30
  transformForSaveSimilarRequest(request: GetRelatedListRecordsRequest): GetRelatedListRecordsRequest;
31
31
  isContextDependent(context: GetRelatedListRecordsContext, request: GetRelatedListRecordsRequest): boolean;
32
32
  }
@@ -11,7 +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
- protected transformForSaveSimilarRequest(request: GetRelatedListsActionsRequest): GetRelatedListsActionsRequest;
14
+ transformForSaveSimilarRequest(request: GetRelatedListsActionsRequest): GetRelatedListsActionsRequest;
15
15
  isContextDependent(context: GetRelatedListsActionsContext, request: GetRelatedListsActionsRequest): boolean;
16
16
  /**
17
17
  * Can only reduce two requests when they have the same recordId, and
@@ -12,7 +12,7 @@ export * from './get-related-list-records-batch-request-strategy';
12
12
  export * from './get-apex-request-strategy';
13
13
  export * from './get-list-info-by-name-request-strategy';
14
14
  export * from './luvio-adapter-request-strategy';
15
- export * from './luvio-adapter-request';
16
15
  export * from './request-strategy';
17
16
  export * from './get-list-infos-by-object-name-request-strategy';
18
17
  export * from './get-list-records-by-name-request-strategy';
18
+ export * from './get-list-object-info-request-strategy';
@@ -1,13 +1,9 @@
1
- import type { AdapterFactory } from '@luvio/engine';
1
+ import type { AdapterFactory, AdapterRequestContext, Luvio, Snapshot } from '@luvio/engine';
2
+ import type { BaseAdapterRequest } from './request-strategy';
2
3
  import { RequestStrategy } from './request-strategy';
3
- import type { LuvioAdapterRequest } from './luvio-adapter-request';
4
- import type { RequestEntry } from '../common';
5
- import type { PrefetcherOptions } from '../prefetcher';
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
- });
4
+ export declare abstract class LuvioAdapterRequestStrategy<AdapterConfig, Request extends BaseAdapterRequest<AdapterConfig>, Context> extends RequestStrategy<AdapterConfig, Request, Context> {
5
+ private luvio;
6
+ constructor(luvio: Luvio);
11
7
  /**
12
8
  * Name of the adapter used in this strategy.
13
9
  */
@@ -16,72 +12,5 @@ export declare abstract class LuvioAdapterRequestStrategy<AdapterConfig, Request
16
12
  * Factory for the adapter used in this strategy.
17
13
  */
18
14
  abstract adapterFactory: AdapterFactory<AdapterConfig, any>;
19
- /**
20
- * Perform any transformations required to prepare the request for saving.
21
- *
22
- * e.g. If the request is for a record, we move all fields in the fields array
23
- * into the optionalFields array
24
- *
25
- * @param request - The request to transform
26
- * @returns
27
- */
28
- transformForSave(request: Request): Request;
29
- /**
30
- * Filter requests to only those that are for this strategy.
31
- *
32
- * @param unfilteredRequests array of requests to filter
33
- * @returns
34
- */
35
- protected filterRequests(unfilteredRequests: RequestEntry<LuvioAdapterRequest<unknown>>[]): RequestEntry<Request>[];
36
- /**
37
- * Reduce requests by combining those based on a strategies implementations
38
- * of canCombine and combineRequests.
39
- * @param unfilteredRequests array of requests to filter
40
- * @returns
41
- */
42
- reduce(unfilteredRequests: RequestEntry<LuvioAdapterRequest<unknown>>[]): RequestEntry<Request>[];
43
- /**
44
- * Check if two requests can be combined.
45
- *
46
- * By default, requests are not combinable.
47
- * @param reqA config of request A
48
- * @param reqB config of request B
49
- * @returns
50
- */
51
- canCombine(_reqA: AdapterConfig, _reqB: AdapterConfig): boolean;
52
- /**
53
- * Takes two request configs and combines them into a single request config.
54
- *
55
- * @param reqA config of request A
56
- * @param reqB config of request B
57
- * @returns
58
- */
59
- combineRequests(reqA: AdapterConfig, _reqB: AdapterConfig): AdapterConfig;
60
- /**
61
- * Checks adapter config against request context to determine if the request is context dependent.
62
- *
63
- * By default, requests are not context dependent.
64
- * @param request
65
- * @returns
66
- */
67
- isContextDependent(_context: Context, _request: Request): boolean;
68
- /**
69
- * Builds request for saving,
70
- * - transforming the request
71
- * - handling the cases where the request is context dependent (this is homework for the subclass)
72
- * @param _similarContext Context with at least one parameter as a wildcard '*'
73
- * @param context Exact context for a given page
74
- * @param request Request to build save request data for
75
- * @returns Save request data
76
- */
77
- buildSaveRequestData(similarContext: Context, context: Context, request: Request): {
78
- request: Request;
79
- context: Context;
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;
15
+ execute(config: AdapterConfig, requestContext?: AdapterRequestContext): Snapshot<any> | Promise<Snapshot<any>> | null;
87
16
  }
@@ -1,7 +1,68 @@
1
- import type { RequestEntry, SaveRequestData } from '../common';
2
- export declare abstract class RequestStrategy<Request, Context> {
3
- abstract buildSaveRequestData(similarContext: Context, context: Context, request: Request): SaveRequestData<Request, Context>[];
1
+ import type { RequestEntry } from '../common';
2
+ export type BaseAdapterRequest<Config> = {
3
+ adapterName: string;
4
+ config: Config;
5
+ };
6
+ export declare abstract class RequestStrategy<Config, Request extends BaseAdapterRequest<Config>, Context> {
7
+ /**
8
+ * Name of the adapter used in this strategy.
9
+ */
10
+ abstract adapterName: string;
11
+ abstract execute(config: Config): any;
4
12
  abstract buildConcreteRequest(similarRequest: Request, context: Context): Request;
13
+ /**
14
+ * Perform any transformations required to prepare the request for saving.
15
+ *
16
+ * e.g. If the request is for a record, we move all fields in the fields array
17
+ * into the optionalFields array
18
+ *
19
+ * @param request - The request to transform
20
+ * @returns
21
+ */
5
22
  transformForSave(request: Request): Request;
6
- reduce(requests: RequestEntry<Request>[]): RequestEntry<Request>[];
23
+ /**
24
+ * Transforms the request for saving similar requests
25
+ * @param request Request to transform for saving similar requests
26
+ * @returns Transformed request
27
+ */
28
+ transformForSaveSimilarRequest(request: Request): Request;
29
+ /**
30
+ * Filter requests to only those that are for this strategy.
31
+ *
32
+ * @param unfilteredRequests array of requests to filter
33
+ * @returns
34
+ */
35
+ protected filterRequests(unfilteredRequests: RequestEntry<any>[]): RequestEntry<Request>[];
36
+ /**
37
+ * Reduce requests by combining those based on a strategies implementations
38
+ * of canCombine and combineRequests.
39
+ * @param unfilteredRequests array of requests to filter
40
+ * @returns
41
+ */
42
+ reduce(unfilteredRequests: RequestEntry<any>[]): RequestEntry<Request>[];
43
+ /**
44
+ * Check if two requests can be combined.
45
+ *
46
+ * By default, requests are not combinable.
47
+ * @param reqA config of request A
48
+ * @param reqB config of request B
49
+ * @returns
50
+ */
51
+ canCombine(_reqA: Config, _reqB: Config): boolean;
52
+ /**
53
+ * Takes two request configs and combines them into a single request config.
54
+ *
55
+ * @param reqA config of request A
56
+ * @param reqB config of request B
57
+ * @returns
58
+ */
59
+ combineRequests(reqA: Config, _reqB: Config): Config;
60
+ /**
61
+ * Checks adapter config against request context to determine if the request is context dependent.
62
+ *
63
+ * By default, requests are not context dependent.
64
+ * @param request
65
+ * @returns
66
+ */
67
+ isContextDependent(_context: Context, _request: Request): boolean;
7
68
  }
@@ -1,4 +1,5 @@
1
- import { InMemoryPrefetchStorage, type PrefetchStorage } from '.';
1
+ import { type PrefetchStorage } from '.';
2
+ import { InMemoryPrefetchStorage } from './in-memory-prefetch-storage';
2
3
  import { type AuraStorage, type AuraStorageConfig } from '@salesforce/lds-aura-storage';
3
4
  export declare const DEFAULT_STORAGE_OPTIONS: {
4
5
  name: string;