@salesforce/lds-runtime-aura 0.1.0-dev1

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 (80) hide show
  1. package/LICENSE.txt +82 -0
  2. package/dist/ldsEngineCreator.js +7215 -0
  3. package/dist/types/__mocks__/@salesforce/lds-ads-bridge.d.ts +2 -0
  4. package/dist/types/__mocks__/@salesforce/lds-aura-storage.d.ts +1 -0
  5. package/dist/types/__mocks__/@salesforce/lds-instrumentation.d.ts +15 -0
  6. package/dist/types/__mocks__/@salesforce/lds-network-aura.d.ts +4 -0
  7. package/dist/types/__mocks__/@salesforce/lds-network-fetch.d.ts +2 -0
  8. package/dist/types/__mocks__/aura.d.ts +3 -0
  9. package/dist/types/__mocks__/force/ldsGraphqlParser.d.ts +3 -0
  10. package/dist/types/__mocks__/instrumentation/service.d.ts +33 -0
  11. package/dist/types/__mocks__/instrumentation:beaconLib.d.ts +7 -0
  12. package/dist/types/__mocks__/lwc.d.ts +6 -0
  13. package/dist/types/__mocks__/o11y/activity.d.ts +12 -0
  14. package/dist/types/__mocks__/o11y/client.d.ts +11 -0
  15. package/dist/types/__mocks__/o11y/idleDetector.d.ts +18 -0
  16. package/dist/types/__mocks__/o11y/instrumentation.d.ts +15 -0
  17. package/dist/types/__mocks__/o11y_schema/sf_lds.d.ts +1 -0
  18. package/dist/types/aura-instrumentation/main.d.ts +181 -0
  19. package/dist/types/aura-instrumentation/utils/observability.d.ts +36 -0
  20. package/dist/types/aura-instrumentation/utils/utils.d.ts +13 -0
  21. package/dist/types/jwt-authorized-fetch-service.d.ts +14 -0
  22. package/dist/types/language.d.ts +23 -0
  23. package/dist/types/lex-fetch-service.d.ts +3 -0
  24. package/dist/types/main.d.ts +63 -0
  25. package/dist/types/metadata.d.ts +5 -0
  26. package/dist/types/network-adapter.d.ts +2 -0
  27. package/dist/types/network-fetch.d.ts +7 -0
  28. package/dist/types/network-instrumentation.d.ts +2 -0
  29. package/dist/types/network-sfap.d.ts +17 -0
  30. package/dist/types/predictive-loading/common/index.d.ts +17 -0
  31. package/dist/types/predictive-loading/index.d.ts +7 -0
  32. package/dist/types/predictive-loading/lex/index.d.ts +17 -0
  33. package/dist/types/predictive-loading/lex/predictions-ready-manager.d.ts +32 -0
  34. package/dist/types/predictive-loading/pages/abstract-home-page.d.ts +17 -0
  35. package/dist/types/predictive-loading/pages/index.d.ts +4 -0
  36. package/dist/types/predictive-loading/pages/lex-default-page.d.ts +15 -0
  37. package/dist/types/predictive-loading/pages/object-home-page.d.ts +23 -0
  38. package/dist/types/predictive-loading/pages/predictive-prefetch-page.d.ts +12 -0
  39. package/dist/types/predictive-loading/pages/record-home-page.d.ts +26 -0
  40. package/dist/types/predictive-loading/prefetcher/index.d.ts +2 -0
  41. package/dist/types/predictive-loading/prefetcher/lex-predictive-prefetcher.d.ts +17 -0
  42. package/dist/types/predictive-loading/prefetcher/predictive-prefetcher.d.ts +34 -0
  43. package/dist/types/predictive-loading/prefetcher/utils.d.ts +52 -0
  44. package/dist/types/predictive-loading/repository/index.d.ts +2 -0
  45. package/dist/types/predictive-loading/repository/prefetch-repository.d.ts +31 -0
  46. package/dist/types/predictive-loading/repository/utils.d.ts +13 -0
  47. package/dist/types/predictive-loading/request-runner/index.d.ts +2 -0
  48. package/dist/types/predictive-loading/request-runner/lex-request-runner.d.ts +10 -0
  49. package/dist/types/predictive-loading/request-runner/request-runner.d.ts +5 -0
  50. package/dist/types/predictive-loading/request-strategy/get-apex-request-strategy.d.ts +30 -0
  51. package/dist/types/predictive-loading/request-strategy/get-components-request-strategy.d.ts +31 -0
  52. package/dist/types/predictive-loading/request-strategy/get-list-info-by-name-request-strategy.d.ts +19 -0
  53. package/dist/types/predictive-loading/request-strategy/get-list-infos-by-object-name-request-strategy.d.ts +19 -0
  54. package/dist/types/predictive-loading/request-strategy/get-list-object-info-request-strategy.d.ts +18 -0
  55. package/dist/types/predictive-loading/request-strategy/get-list-records-by-name-request-strategy.d.ts +19 -0
  56. package/dist/types/predictive-loading/request-strategy/get-object-info-request-strategy.d.ts +26 -0
  57. package/dist/types/predictive-loading/request-strategy/get-object-infos-request-strategy.d.ts +25 -0
  58. package/dist/types/predictive-loading/request-strategy/get-record-actions-request-strategy.d.ts +20 -0
  59. package/dist/types/predictive-loading/request-strategy/get-record-avatars-request-strategy.d.ts +20 -0
  60. package/dist/types/predictive-loading/request-strategy/get-record-request-strategy.d.ts +21 -0
  61. package/dist/types/predictive-loading/request-strategy/get-records-request-strategy.d.ts +18 -0
  62. package/dist/types/predictive-loading/request-strategy/get-related-list-actions-request-strategy.d.ts +21 -0
  63. package/dist/types/predictive-loading/request-strategy/get-related-list-info-batch-request-strategy.d.ts +24 -0
  64. package/dist/types/predictive-loading/request-strategy/get-related-list-info-request-strategy.d.ts +50 -0
  65. package/dist/types/predictive-loading/request-strategy/get-related-list-records-batch-request-strategy.d.ts +32 -0
  66. package/dist/types/predictive-loading/request-strategy/get-related-list-records-request-strategy.d.ts +34 -0
  67. package/dist/types/predictive-loading/request-strategy/get-related-lists-actions-request-strategy.d.ts +28 -0
  68. package/dist/types/predictive-loading/request-strategy/get-related-lists-info-strategy.d.ts +30 -0
  69. package/dist/types/predictive-loading/request-strategy/index.d.ts +21 -0
  70. package/dist/types/predictive-loading/request-strategy/lex-request-strategy.d.ts +13 -0
  71. package/dist/types/predictive-loading/request-strategy/luvio-adapter-request-strategy.d.ts +27 -0
  72. package/dist/types/predictive-loading/request-strategy/request-strategy.d.ts +79 -0
  73. package/dist/types/predictive-loading/request-strategy-manager/request-strategy-manager.d.ts +12 -0
  74. package/dist/types/predictive-loading/storage/aura-prefetch-storage.d.ts +25 -0
  75. package/dist/types/predictive-loading/storage/in-memory-prefetch-storage.d.ts +6 -0
  76. package/dist/types/predictive-loading/storage/index.d.ts +8 -0
  77. package/dist/types/predictive-loading/storage/local-prefetch-storage.d.ts +7 -0
  78. package/dist/types/response-interceptors/lex-runtime-5xx-status.d.ts +16 -0
  79. package/dist/types/response-interceptors/lex-runtime-auth-expiration-redirect.d.ts +3 -0
  80. package/package.json +92 -0
@@ -0,0 +1,50 @@
1
+ import type { BaseAdapterRequest } from './request-strategy';
2
+ import type { GetRelatedListInfoConfig } from '@salesforce/lds-adapters-uiapi';
3
+ import type { RequestEntry } from '../common';
4
+ import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
5
+ export type GetRelatedListInfoRequest = {
6
+ adapterName: 'getRelatedListInfo';
7
+ config: GetRelatedListInfoConfig;
8
+ };
9
+ type GetRelatedListInfoContext = {
10
+ objectApiName: string;
11
+ recordTypeId: string;
12
+ };
13
+ export declare const GET_RELATED_LIST_INFO_ADAPTER_NAME = "getRelatedListInfo";
14
+ export declare class GetRelatedListInfoRequestStrategy extends LuvioAdapterRequestStrategy<GetRelatedListInfoConfig, GetRelatedListInfoRequest, GetRelatedListInfoContext> {
15
+ adapterName: string;
16
+ adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListInfoConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/RelatedListInfoRepresentation").RelatedListInfoRepresentation>;
17
+ /**
18
+ * @override
19
+ */
20
+ isContextDependent(context: GetRelatedListInfoContext, request: GetRelatedListInfoRequest): boolean;
21
+ /**
22
+ * @override
23
+ */
24
+ buildConcreteRequest(similarRequest: GetRelatedListInfoRequest, _context: GetRelatedListInfoContext): GetRelatedListInfoRequest;
25
+ /**
26
+ * @override
27
+ */
28
+ transformForSave(request: GetRelatedListInfoRequest): GetRelatedListInfoRequest;
29
+ /**
30
+ * For performance reasons (fear of over-fetching), we only want to predict single requests which either are not
31
+ * part of a batch request OR specify optional parameters (thus requiring data differing from that of a batch
32
+ * request).
33
+ *
34
+ * ADG currently handles the batching of getRelatedListInfo -> getRelatedListInfoBatch
35
+ * https://gitcore.soma.salesforce.com/core-2206/core-public/blob/p4/main/core/ui-laf-components/modules/laf/batchingPortable/reducers/RelatedListInfoBatchReducer.js
36
+ *
37
+ * @param unfilteredRequests
38
+ * @returns GetRelatedListInfoRequest[]
39
+ * @override
40
+ */
41
+ reduce(unfilteredRequests: RequestEntry<BaseAdapterRequest<unknown>>[]): RequestEntry<GetRelatedListInfoRequest>[];
42
+ /**
43
+ * Return true if the request config doesn't specify values for any of the optional parameters.
44
+ *
45
+ * @param config
46
+ * @param ignoreRecordType
47
+ */
48
+ isRequiredOnlyConfig(config: GetRelatedListInfoConfig, ignoreRecordType?: boolean): boolean;
49
+ }
50
+ export {};
@@ -0,0 +1,32 @@
1
+ import type { GetRelatedListRecordsBatchConfig } from '@salesforce/lds-adapters-uiapi';
2
+ import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
3
+ export type GetRelatedListRecordsBatchRequest = {
4
+ adapterName: 'getRelatedListRecordsBatch';
5
+ config: GetRelatedListRecordsBatchConfig;
6
+ };
7
+ type GetRelatedListRecordsBatchContext = {
8
+ recordId: string;
9
+ };
10
+ export declare const GET_RELATED_LIST_RECORDS_BATCH_ADAPTER_NAME = "getRelatedListRecordsBatch";
11
+ export declare class GetRelatedListRecordsBatchRequestStrategy extends LuvioAdapterRequestStrategy<GetRelatedListRecordsBatchConfig, GetRelatedListRecordsBatchRequest, GetRelatedListRecordsBatchContext> {
12
+ adapterName: string;
13
+ adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListRecordsBatchConfig, import("@salesforce/lds-adapters-uiapi").RelatedListRecordCollectionBatchRepresentation>;
14
+ buildConcreteRequest(similarRequest: GetRelatedListRecordsBatchRequest, context: GetRelatedListRecordsBatchContext): GetRelatedListRecordsBatchRequest;
15
+ transformForSaveSimilarRequest(request: GetRelatedListRecordsBatchRequest): GetRelatedListRecordsBatchRequest;
16
+ isContextDependent(context: GetRelatedListRecordsBatchContext, request: GetRelatedListRecordsBatchRequest): boolean;
17
+ /**
18
+ * Can combine two seperate batch requests if the parentRecordId is the same.
19
+ * @param reqA The first GetRelatedListRecordsBatchConfig.
20
+ * @param reqB The first GetRelatedListRecordsBatchConfig.
21
+ * @returns true if the requests can be combined, otherwise false.
22
+ */
23
+ canCombine(reqA: GetRelatedListRecordsBatchConfig, reqB: GetRelatedListRecordsBatchConfig): boolean;
24
+ /**
25
+ * Merge the relatedListParameters together between two combinable batch requests.
26
+ * @param reqA The first GetRelatedListRecordsBatchConfig.
27
+ * @param reqB The first GetRelatedListRecordsBatchConfig.
28
+ * @returns The combined request.
29
+ */
30
+ combineRequests(reqA: GetRelatedListRecordsBatchConfig, reqB: GetRelatedListRecordsBatchConfig): GetRelatedListRecordsBatchConfig;
31
+ }
32
+ export {};
@@ -0,0 +1,34 @@
1
+ import type { GetRelatedListRecordsConfig } from '@salesforce/lds-adapters-uiapi';
2
+ import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
3
+ import type { RequestEntry } from '../common';
4
+ import type { BaseAdapterRequest } from './request-strategy';
5
+ export type GetRelatedListRecordsRequest = {
6
+ adapterName: 'getRelatedListRecords';
7
+ config: GetRelatedListRecordsConfig;
8
+ };
9
+ type GetRelatedListRecordsContext = {
10
+ recordId: string;
11
+ };
12
+ export declare const GET_RELATED_LIST_RECORDS_ADAPTER_NAME = "getRelatedListRecords";
13
+ export declare class GetRelatedListRecordsRequestStrategy extends LuvioAdapterRequestStrategy<GetRelatedListRecordsConfig, GetRelatedListRecordsRequest, GetRelatedListRecordsContext> {
14
+ adapterName: string;
15
+ adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListRecordsConfig, import("@salesforce/lds-adapters-uiapi").RelatedListRecordCollectionRepresentation>;
16
+ buildConcreteRequest(similarRequest: GetRelatedListRecordsRequest, context: GetRelatedListRecordsContext): GetRelatedListRecordsRequest;
17
+ /**
18
+ *
19
+ * This method returns GetRelatedListRecordsRequest[] that won't be part of a batch request.
20
+ *
21
+ * ADG currently handles the batching of GetRelatedListRecords -> GetRelatedListRecordsBatch
22
+ * https://gitcore.soma.salesforce.com/core-2206/core-public/blob/p4/main/core/ui-laf-components/modules/laf/batchingPortable/reducers/RelatedListRecordsBatchReducer.js
23
+ *
24
+ * For performance reasons (fear to overfetch), we only check that the Single relatedListId is not present in any of the Batch requests,
25
+ * but we don't check for any other parameters.
26
+ *
27
+ * @param unfilteredRequests All of the request available for predictions.
28
+ * @returns GetRelatedListRecordsRequest[] That should be a prediction.
29
+ */
30
+ reduce(unfilteredRequests: RequestEntry<BaseAdapterRequest<unknown>>[]): RequestEntry<GetRelatedListRecordsRequest>[];
31
+ transformForSaveSimilarRequest(request: GetRelatedListRecordsRequest): GetRelatedListRecordsRequest;
32
+ isContextDependent(context: GetRelatedListRecordsContext, request: GetRelatedListRecordsRequest): boolean;
33
+ }
34
+ export {};
@@ -0,0 +1,28 @@
1
+ import type { GetRelatedListsActionsConfig } from '@salesforce/lds-adapters-uiapi';
2
+ import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
3
+ export type GetRelatedListsActionsRequest = {
4
+ adapterName: 'getRelatedListsActions';
5
+ config: GetRelatedListsActionsConfig;
6
+ };
7
+ type GetRelatedListsActionsContext = {
8
+ recordId: string;
9
+ };
10
+ export declare const GET_RELATED_LISTS_ACTIONS_ADAPTER_NAME = "getRelatedListsActions";
11
+ export declare class GetRelatedListsActionsRequestStrategy extends LuvioAdapterRequestStrategy<GetRelatedListsActionsConfig, GetRelatedListsActionsRequest, GetRelatedListsActionsContext> {
12
+ adapterName: string;
13
+ adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListsActionsConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/ActionRelatedListsCollectionBatchRepresentation").ActionRelatedListsCollectionBatchRepresentation>;
14
+ buildConcreteRequest(similarRequest: GetRelatedListsActionsRequest, context: GetRelatedListsActionsContext): GetRelatedListsActionsRequest;
15
+ transformForSaveSimilarRequest(request: GetRelatedListsActionsRequest): GetRelatedListsActionsRequest;
16
+ isContextDependent(context: GetRelatedListsActionsContext, request: GetRelatedListsActionsRequest): boolean;
17
+ /**
18
+ * Can only reduce two requests when they have the same recordId, and
19
+ * the individual relatedListAction config only have relatedListId.
20
+ *
21
+ * @param reqA
22
+ * @param reqB
23
+ * @returns boolean
24
+ */
25
+ canCombine(reqA: GetRelatedListsActionsConfig, reqB: GetRelatedListsActionsConfig): boolean;
26
+ combineRequests(reqA: GetRelatedListsActionsConfig, reqB: GetRelatedListsActionsConfig): GetRelatedListsActionsConfig;
27
+ }
28
+ export {};
@@ -0,0 +1,30 @@
1
+ import type { GetRelatedListsInfoConfig } from '@salesforce/lds-adapters-uiapi';
2
+ import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
3
+ export type GetRelatedListsInfoRequest = {
4
+ adapterName: 'getRelatedListsInfo';
5
+ config: GetRelatedListsInfoConfig;
6
+ };
7
+ type GetRelatedListsInfoContext = {
8
+ objectApiName: string;
9
+ recordTypeId: string;
10
+ };
11
+ export declare const GET_RELATED_LISTS_INFO_ADAPTER_NAME = "getRelatedListsInfo";
12
+ export declare class GetRelatedListsInfoRequestStrategy extends LuvioAdapterRequestStrategy<GetRelatedListsInfoConfig, GetRelatedListsInfoRequest, GetRelatedListsInfoContext> {
13
+ adapterName: string;
14
+ adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListsInfoConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/RelatedListSummaryInfoCollectionRepresentation").RelatedListSummaryInfoCollectionRepresentation>;
15
+ /**
16
+ * @override
17
+ */
18
+ isContextDependent(context: GetRelatedListsInfoContext, request: GetRelatedListsInfoRequest): boolean;
19
+ /**
20
+ * @override
21
+ */
22
+ buildConcreteRequest(similarRequest: GetRelatedListsInfoRequest, _context: GetRelatedListsInfoContext): GetRelatedListsInfoRequest;
23
+ /**
24
+ * @override
25
+ */
26
+ transformForSave(request: GetRelatedListsInfoRequest): GetRelatedListsInfoRequest;
27
+ canCombine(reqA: GetRelatedListsInfoConfig, reqB: GetRelatedListsInfoConfig): boolean;
28
+ combineRequests(reqA: GetRelatedListsInfoConfig, _reqB: GetRelatedListsInfoConfig): GetRelatedListsInfoConfig;
29
+ }
30
+ export {};
@@ -0,0 +1,21 @@
1
+ export * from './get-components-request-strategy';
2
+ export * from './get-record-avatars-request-strategy';
3
+ export * from './get-record-request-strategy';
4
+ export * from './get-records-request-strategy';
5
+ export * from './get-record-actions-request-strategy';
6
+ export * from './get-object-info-request-strategy';
7
+ export * from './get-object-infos-request-strategy';
8
+ export * from './get-related-lists-actions-request-strategy';
9
+ export * from './get-related-list-info-request-strategy';
10
+ export * from './get-related-list-info-batch-request-strategy';
11
+ export * from './get-related-list-records-request-strategy';
12
+ export * from './get-related-list-records-batch-request-strategy';
13
+ export * from './get-apex-request-strategy';
14
+ export * from './get-list-info-by-name-request-strategy';
15
+ export * from './luvio-adapter-request-strategy';
16
+ export * from './request-strategy';
17
+ export * from './get-list-infos-by-object-name-request-strategy';
18
+ export * from './get-list-records-by-name-request-strategy';
19
+ export * from './get-list-object-info-request-strategy';
20
+ export * from './get-related-lists-info-strategy';
21
+ export * from './get-related-list-actions-request-strategy';
@@ -0,0 +1,13 @@
1
+ import { RequestStrategy } from './request-strategy';
2
+ import type { LexContext, LexRequest, LexRequestOptions } from '../lex';
3
+ import type { DefaultPageContext } from '../pages';
4
+ export declare abstract class LexRequestStrategy<Config = unknown, Request extends LexRequest<Config> = LexRequest<Config>, Context extends LexContext = DefaultPageContext> extends RequestStrategy<Config, Request, Context, LexRequestOptions> {
5
+ /**
6
+ * Whether or not requests from this strategies can be boxcarred by Aura.
7
+ * If they are, the lex prefetcher will run predictions of this strategy with a limit,
8
+ * to avoid predictions being boxcared.
9
+ *
10
+ * @returns boolean
11
+ */
12
+ get isBoxcarable(): boolean;
13
+ }
@@ -0,0 +1,27 @@
1
+ import type { AdapterFactory, Luvio, Snapshot } from '@luvio/engine';
2
+ import { LexRequestStrategy } from './lex-request-strategy';
3
+ import type { LexContext, LexRequest, LexRequestOptions } from '../lex';
4
+ export declare const DEFAULT_RESOURCE_CONTEXT: {
5
+ sourceContext: {
6
+ tagName: string;
7
+ actionConfig: {
8
+ background: boolean;
9
+ hotspot: boolean;
10
+ longRunning: boolean;
11
+ };
12
+ };
13
+ };
14
+ export declare abstract class LuvioAdapterRequestStrategy<AdapterConfig, Request extends LexRequest<AdapterConfig>, Context extends LexContext> extends LexRequestStrategy<AdapterConfig, Request, Context> {
15
+ private luvio;
16
+ constructor(luvio: Luvio);
17
+ /**
18
+ * Name of the adapter used in this strategy.
19
+ */
20
+ abstract adapterName: string;
21
+ /**
22
+ * Factory for the adapter used in this strategy.
23
+ */
24
+ abstract adapterFactory: AdapterFactory<AdapterConfig, any>;
25
+ execute(config: AdapterConfig, options?: LexRequestOptions): Snapshot<any> | Promise<Snapshot<any>> | null;
26
+ protected createAdapterContext(options: LexRequestOptions): any;
27
+ }
@@ -0,0 +1,79 @@
1
+ import type { RequestEntry } from '../common';
2
+ export type BaseAdapterRequest<Config = unknown> = {
3
+ adapterName: string;
4
+ config: Config;
5
+ };
6
+ export declare const enum RequestPriority {
7
+ LOW = 0,
8
+ NORMAL = 1,
9
+ HIGH = 2
10
+ }
11
+ export declare enum PdlRequestPriority {
12
+ LOW = 0,
13
+ NORMAL = 1,
14
+ HIGH = 2
15
+ }
16
+ export declare abstract class RequestStrategy<Config, Request extends BaseAdapterRequest<Config>, Context, Options extends Record<string, any>> {
17
+ /**
18
+ * Name of the adapter used in this strategy.
19
+ */
20
+ abstract adapterName: string;
21
+ abstract execute(config: Config, options?: Options): any;
22
+ abstract buildConcreteRequest(similarRequest: Request, context: Context): Request;
23
+ getRequestPriority(_request: Request, _context: Context): RequestPriority;
24
+ /**
25
+ * Perform any transformations required to prepare the request for saving.
26
+ *
27
+ * e.g. If the request is for a record, we move all fields in the fields array
28
+ * into the optionalFields array
29
+ *
30
+ * @param request - The request to transform
31
+ * @returns
32
+ */
33
+ transformForSave(request: Request, _context?: Context): Request;
34
+ /**
35
+ * Transforms the request for saving similar requests
36
+ * @param request Request to transform for saving similar requests
37
+ * @returns Transformed request
38
+ */
39
+ transformForSaveSimilarRequest(request: Request, _context?: Context): Request;
40
+ /**
41
+ * Filter requests to only those that are for this strategy.
42
+ *
43
+ * @param unfilteredRequests array of requests to filter
44
+ * @returns
45
+ */
46
+ protected filterRequests(unfilteredRequests: RequestEntry<any>[]): RequestEntry<Request>[];
47
+ /**
48
+ * Reduce requests by combining those based on a strategies implementations
49
+ * of canCombine and combineRequests.
50
+ * @param unfilteredRequests array of requests to filter
51
+ * @returns
52
+ */
53
+ reduce(unfilteredRequests: RequestEntry<any>[]): RequestEntry<Request>[];
54
+ /**
55
+ * Check if two requests can be combined.
56
+ *
57
+ * By default, requests are not combinable.
58
+ * @param reqA config of request A
59
+ * @param reqB config of request B
60
+ * @returns
61
+ */
62
+ canCombine(_reqA: Config, _reqB: Config): boolean;
63
+ /**
64
+ * Takes two request configs and combines them into a single request config.
65
+ *
66
+ * @param reqA config of request A
67
+ * @param reqB config of request B
68
+ * @returns
69
+ */
70
+ combineRequests(reqA: Config, _reqB: Config): Config;
71
+ /**
72
+ * Checks adapter config against request context to determine if the request is context dependent.
73
+ *
74
+ * By default, requests are not context dependent.
75
+ * @param request
76
+ * @returns
77
+ */
78
+ isContextDependent(_context: Context, _request: Request): boolean;
79
+ }
@@ -0,0 +1,12 @@
1
+ import type { LexRequestStrategy } from '../request-strategy/lex-request-strategy';
2
+ export declare class RequestStrategyManager {
3
+ private requestStrategies;
4
+ private requestStrategiesByAdapterName;
5
+ constructor(requestStrategies?: LexRequestStrategy[]);
6
+ private setRequestStrategy;
7
+ private deleteRequestStrategy;
8
+ register(requestStrategies: LexRequestStrategy[]): boolean[];
9
+ unregister(requestStrategies: LexRequestStrategy[]): boolean[];
10
+ get(adapterName: string): LexRequestStrategy<unknown, import("../lex").LexRequest<unknown>, import("..").DefaultPageContext> | undefined;
11
+ getAll(): LexRequestStrategy<unknown, import("../lex").LexRequest<unknown>, import("..").DefaultPageContext>[];
12
+ }
@@ -0,0 +1,25 @@
1
+ import { type PrefetchStorage } from '.';
2
+ import { InMemoryPrefetchStorage } from './in-memory-prefetch-storage';
3
+ import { type AuraStorage, type AuraStorageConfig } from '@salesforce/lds-aura-storage';
4
+ export declare const DEFAULT_STORAGE_OPTIONS: {
5
+ name: string;
6
+ persistent: boolean;
7
+ secure: boolean;
8
+ maxSize: number;
9
+ expiration: number;
10
+ clearOnInit: boolean;
11
+ debugLogging: boolean;
12
+ version: number;
13
+ };
14
+ export type StorageOptions = Partial<AuraStorageConfig> & {
15
+ onPredictionsReadyCallback?: () => void;
16
+ };
17
+ export declare function buildAuraPrefetchStorage(options?: StorageOptions): PrefetchStorage;
18
+ export declare function buildAuraLocalStoragePrefetchStorage(options?: StorageOptions): PrefetchStorage;
19
+ export declare class AuraPrefetchStorage implements PrefetchStorage {
20
+ private auraStorage;
21
+ private inMemoryStorage;
22
+ constructor(auraStorage: AuraStorage, inMemoryStorage: InMemoryPrefetchStorage, onPredictionsReadyCallback?: () => void);
23
+ set<T>(key: string, value: T): Promise<void>;
24
+ get<T>(key: string): T | undefined;
25
+ }
@@ -0,0 +1,6 @@
1
+ import type { PrefetchStorage } from '.';
2
+ export declare class InMemoryPrefetchStorage implements PrefetchStorage {
3
+ data: Record<string, any>;
4
+ set<T>(key: string, value: T): Promise<void>;
5
+ get<T>(key: string): T | undefined;
6
+ }
@@ -0,0 +1,8 @@
1
+ import { StorageOptions } from './aura-prefetch-storage';
2
+ export type PrefetchStorage = {
3
+ get<T>(key: string): T | undefined;
4
+ set<T>(key: string, value: T): Promise<void>;
5
+ };
6
+ export declare function buildPrefetchStorage(useLocalStorage: boolean, options: StorageOptions): PrefetchStorage;
7
+ export * from './in-memory-prefetch-storage';
8
+ export * from './local-prefetch-storage';
@@ -0,0 +1,7 @@
1
+ import type { PrefetchStorage } from '.';
2
+ export declare class LocalPrefetchStorage implements PrefetchStorage {
3
+ private localStorage;
4
+ constructor(localStorage: typeof window.localStorage);
5
+ set<T>(key: string, value: T): Promise<void>;
6
+ get<T>(key: string): T | undefined;
7
+ }
@@ -0,0 +1,16 @@
1
+ import { LoggerService } from '@luvio/utils';
2
+ import { ResponseInterceptor } from '@luvio/service-fetch-network/v1';
3
+ export type LexRuntimeError = {
4
+ message: string;
5
+ severity: string;
6
+ name: string;
7
+ stack: string | null;
8
+ handled: boolean;
9
+ reported: boolean;
10
+ };
11
+ export type LexErrorEventArgs = {
12
+ message: string;
13
+ error: string | null;
14
+ auraError: LexRuntimeError;
15
+ };
16
+ export declare function buildLexRuntime5xxStatusResponseInterceptor(logger: LoggerService): ResponseInterceptor;
@@ -0,0 +1,3 @@
1
+ import { LoggerService } from '@luvio/utils';
2
+ import { ResponseInterceptor } from '@luvio/service-fetch-network/v1';
3
+ export declare function buildLexRuntimeAuthExpirationRedirectResponseInterceptor(logger: LoggerService): ResponseInterceptor;
package/package.json ADDED
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "@salesforce/lds-runtime-aura",
3
+ "version": "0.1.0-dev1",
4
+ "license": "SEE LICENSE IN LICENSE.txt",
5
+ "description": "LDS engine for Aura runtime",
6
+ "main": "dist/ldsEngineCreator.js",
7
+ "module": "dist/ldsEngineCreator.js",
8
+ "types": "dist/types/main.d.ts",
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/types/main.d.ts",
15
+ "import": "./dist/ldsEngineCreator.js",
16
+ "default": "./dist/ldsEngineCreator.js"
17
+ }
18
+ },
19
+ "sfdc": {
20
+ "path": "forcelds/ldsEngineCreator/",
21
+ "publishedFileName": "ldsEngineCreator.js",
22
+ "overrides": {
23
+ "artifactDirectory": "dist",
24
+ "outputModuleName": "ldsEngineCreator"
25
+ }
26
+ },
27
+ "scripts": {
28
+ "prepare": "yarn build",
29
+ "build": "rollup --bundleConfigAsCjs --config rollup.config.js",
30
+ "clean": "rm -rf dist",
31
+ "test:unit": "jest",
32
+ "test:debug": "node --inspect-brk ../../node_modules/.bin/jest --runInBand",
33
+ "test:size": "luvioBundlesize",
34
+ "release:corejar": "yarn build && ../core-build/scripts/core.js --name=lds-runtime-aura"
35
+ },
36
+ "devDependencies": {
37
+ "@luvio/service-provisioner": "5.61.0",
38
+ "@luvio/tools-core": "5.61.0",
39
+ "@salesforce/lds-adapters-apex": "^0.1.0-dev1",
40
+ "@salesforce/lds-adapters-uiapi": "^0.1.0-dev1",
41
+ "@salesforce/lds-ads-bridge": "^0.1.0-dev1",
42
+ "@salesforce/lds-aura-storage": "^0.1.0-dev1",
43
+ "@salesforce/lds-bindings": "^0.1.0-dev1",
44
+ "@salesforce/lds-instrumentation": "^0.1.0-dev1",
45
+ "@salesforce/lds-network-aura": "^0.1.0-dev1",
46
+ "@salesforce/lds-network-fetch": "^0.1.0-dev1",
47
+ "jwt-encode": "1.0.1"
48
+ },
49
+ "dependencies": {
50
+ "@luvio/command-aura-graphql-normalized-cache-control": "5.61.0",
51
+ "@luvio/command-aura-network": "5.61.0",
52
+ "@luvio/command-aura-normalized-cache-control": "5.61.0",
53
+ "@luvio/command-aura-resource-cache-control": "5.61.0",
54
+ "@luvio/command-fetch-network": "5.61.0",
55
+ "@luvio/command-http-graphql-normalized-cache-control": "5.61.0",
56
+ "@luvio/command-http-normalized-cache-control": "5.61.0",
57
+ "@luvio/command-ndjson": "5.61.0",
58
+ "@luvio/command-network": "5.61.0",
59
+ "@luvio/command-sse": "5.61.0",
60
+ "@luvio/command-streaming": "5.61.0",
61
+ "@luvio/network-adapter-composable": "0.158.7",
62
+ "@luvio/network-adapter-fetch": "0.158.7",
63
+ "@luvio/service-aura-network": "5.61.0",
64
+ "@luvio/service-cache": "5.61.0",
65
+ "@luvio/service-cache-control": "5.61.0",
66
+ "@luvio/service-cache-inclusion-policy": "5.61.0",
67
+ "@luvio/service-feature-flags": "5.61.0",
68
+ "@luvio/service-fetch-network": "5.61.0",
69
+ "@luvio/service-instrument-command": "5.61.0",
70
+ "@luvio/service-pubsub": "5.61.0",
71
+ "@luvio/service-store": "5.61.0",
72
+ "@luvio/utils": "5.61.0",
73
+ "@lwc/state": "^0.23.0",
74
+ "@salesforce/lds-adapters-onestore-graphql": "^0.1.0-dev1",
75
+ "@salesforce/lds-adapters-uiapi-lex": "^0.1.0-dev1",
76
+ "@salesforce/lds-luvio-service": "^0.1.0-dev1",
77
+ "@salesforce/lds-luvio-uiapi-records-service": "^0.1.0-dev1"
78
+ },
79
+ "luvioBundlesize": [
80
+ {
81
+ "path": "./dist/ldsEngineCreator.js",
82
+ "maxSize": {
83
+ "none": "350 kB",
84
+ "min": "190 kB",
85
+ "compressed": "50 kB"
86
+ }
87
+ }
88
+ ],
89
+ "volta": {
90
+ "extends": "../../package.json"
91
+ }
92
+ }