@salesforce/lds-runtime-one-runtime 1.457.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +82 -0
- package/dist/oneRuntimeLdsEngineCreator.js +11525 -0
- package/dist/types/__mocks__/@salesforce/lds-ads-bridge.d.ts +2 -0
- package/dist/types/__mocks__/@salesforce/lds-durable-storage.d.ts +5 -0
- package/dist/types/__mocks__/@salesforce/lds-environment-settings.d.ts +2 -0
- package/dist/types/__mocks__/@salesforce/lds-instrumentation.d.ts +15 -0
- package/dist/types/__mocks__/@salesforce/lds-network-aura.d.ts +4 -0
- package/dist/types/__mocks__/@salesforce/lds-network-fetch.d.ts +2 -0
- package/dist/types/__mocks__/aura.d.ts +3 -0
- package/dist/types/__mocks__/force/ldsGraphqlParser.d.ts +3 -0
- package/dist/types/__mocks__/instrumentation/service.d.ts +33 -0
- package/dist/types/__mocks__/instrumentation:thirdPartyTracker.d.ts +4 -0
- package/dist/types/__mocks__/lwc.d.ts +6 -0
- package/dist/types/__mocks__/o11y/activity.d.ts +12 -0
- package/dist/types/__mocks__/o11y/client.d.ts +11 -0
- package/dist/types/__mocks__/o11y/idleDetector.d.ts +18 -0
- package/dist/types/__mocks__/o11y/instrumentation.d.ts +15 -0
- package/dist/types/__mocks__/o11y_schema/sf_lds.d.ts +1 -0
- package/dist/types/aura-instrumentation/main.d.ts +182 -0
- package/dist/types/aura-instrumentation/state-managers.d.ts +4 -0
- package/dist/types/aura-instrumentation/utils/observability.d.ts +36 -0
- package/dist/types/aura-instrumentation/utils/utils.d.ts +13 -0
- package/dist/types/aura-utils.d.ts +45 -0
- package/dist/types/config-service-util.d.ts +6 -0
- package/dist/types/fetch-service-descriptors/jwt-authorized-fetch-service.d.ts +35 -0
- package/dist/types/fetch-service-descriptors/lex-fetch-service.d.ts +6 -0
- package/dist/types/finally-interceptors/luvio-third-party-tracker-finish.d.ts +1 -0
- package/dist/types/finally-interceptors/third-party-tracker-finish.d.ts +2 -0
- package/dist/types/instrumentation-utils.d.ts +14 -0
- package/dist/types/language.d.ts +23 -0
- package/dist/types/locker-wire-bindings.d.ts +3 -0
- package/dist/types/main.d.ts +77 -0
- package/dist/types/metadata.d.ts +5 -0
- package/dist/types/network-adapter.d.ts +2 -0
- package/dist/types/network-fetch.d.ts +51 -0
- package/dist/types/network-instrumentation.d.ts +2 -0
- package/dist/types/network-sfap.d.ts +18 -0
- package/dist/types/parameterized-sfap-jwt-aura-resolver.d.ts +34 -0
- package/dist/types/predictive-loading/common/index.d.ts +17 -0
- package/dist/types/predictive-loading/index.d.ts +7 -0
- package/dist/types/predictive-loading/lex/index.d.ts +17 -0
- package/dist/types/predictive-loading/lex/predictions-ready-manager.d.ts +32 -0
- package/dist/types/predictive-loading/pages/abstract-home-page.d.ts +17 -0
- package/dist/types/predictive-loading/pages/index.d.ts +4 -0
- package/dist/types/predictive-loading/pages/lex-default-page.d.ts +15 -0
- package/dist/types/predictive-loading/pages/object-home-page.d.ts +23 -0
- package/dist/types/predictive-loading/pages/predictive-prefetch-page.d.ts +12 -0
- package/dist/types/predictive-loading/pages/record-home-page.d.ts +26 -0
- package/dist/types/predictive-loading/prefetcher/events.d.ts +25 -0
- package/dist/types/predictive-loading/prefetcher/index.d.ts +4 -0
- package/dist/types/predictive-loading/prefetcher/lex-predictive-prefetcher.d.ts +18 -0
- package/dist/types/predictive-loading/prefetcher/predictive-prefetcher.d.ts +38 -0
- package/dist/types/predictive-loading/prefetcher/utils.d.ts +52 -0
- package/dist/types/predictive-loading/repository/index.d.ts +2 -0
- package/dist/types/predictive-loading/repository/prefetch-repository.d.ts +31 -0
- package/dist/types/predictive-loading/repository/utils.d.ts +13 -0
- package/dist/types/predictive-loading/request-runner/index.d.ts +2 -0
- package/dist/types/predictive-loading/request-runner/lex-request-runner.d.ts +10 -0
- package/dist/types/predictive-loading/request-runner/request-runner.d.ts +5 -0
- package/dist/types/predictive-loading/request-strategy/get-apex-request-strategy.d.ts +30 -0
- package/dist/types/predictive-loading/request-strategy/get-list-info-by-name-request-strategy.d.ts +19 -0
- package/dist/types/predictive-loading/request-strategy/get-list-infos-by-object-name-request-strategy.d.ts +19 -0
- package/dist/types/predictive-loading/request-strategy/get-list-object-info-request-strategy.d.ts +18 -0
- package/dist/types/predictive-loading/request-strategy/get-list-records-by-name-request-strategy.d.ts +19 -0
- package/dist/types/predictive-loading/request-strategy/get-object-info-request-strategy.d.ts +26 -0
- package/dist/types/predictive-loading/request-strategy/get-object-infos-request-strategy.d.ts +25 -0
- package/dist/types/predictive-loading/request-strategy/get-record-actions-request-strategy.d.ts +20 -0
- package/dist/types/predictive-loading/request-strategy/get-record-avatars-request-strategy.d.ts +20 -0
- package/dist/types/predictive-loading/request-strategy/get-record-request-strategy.d.ts +26 -0
- package/dist/types/predictive-loading/request-strategy/get-records-request-strategy.d.ts +18 -0
- package/dist/types/predictive-loading/request-strategy/get-related-list-actions-request-strategy.d.ts +21 -0
- package/dist/types/predictive-loading/request-strategy/get-related-list-info-batch-request-strategy.d.ts +24 -0
- package/dist/types/predictive-loading/request-strategy/get-related-list-info-request-strategy.d.ts +50 -0
- package/dist/types/predictive-loading/request-strategy/get-related-list-records-batch-request-strategy.d.ts +32 -0
- package/dist/types/predictive-loading/request-strategy/get-related-list-records-request-strategy.d.ts +34 -0
- package/dist/types/predictive-loading/request-strategy/get-related-lists-actions-request-strategy.d.ts +28 -0
- package/dist/types/predictive-loading/request-strategy/get-related-lists-info-strategy.d.ts +30 -0
- package/dist/types/predictive-loading/request-strategy/index.d.ts +20 -0
- package/dist/types/predictive-loading/request-strategy/lex-request-strategy.d.ts +13 -0
- package/dist/types/predictive-loading/request-strategy/luvio-adapter-request-strategy.d.ts +27 -0
- package/dist/types/predictive-loading/request-strategy/request-strategy.d.ts +79 -0
- package/dist/types/predictive-loading/request-strategy-manager/request-strategy-manager.d.ts +12 -0
- package/dist/types/predictive-loading/storage/aura-prefetch-storage.d.ts +25 -0
- package/dist/types/predictive-loading/storage/in-memory-prefetch-storage.d.ts +6 -0
- package/dist/types/predictive-loading/storage/index.d.ts +8 -0
- package/dist/types/predictive-loading/storage/local-prefetch-storage.d.ts +7 -0
- package/dist/types/request-interceptors/action-enqueue.d.ts +4 -0
- package/dist/types/request-interceptors/csrf-manager.d.ts +8 -0
- package/dist/types/request-interceptors/csrf-service.d.ts +19 -0
- package/dist/types/request-interceptors/csrf-token.d.ts +19 -0
- package/dist/types/request-interceptors/entity-encoding.d.ts +17 -0
- package/dist/types/request-interceptors/first-party-header.d.ts +17 -0
- package/dist/types/request-interceptors/jwt-parameterization.d.ts +50 -0
- package/dist/types/request-interceptors/luvio-page-scoped-cache.d.ts +11 -0
- package/dist/types/request-interceptors/luvio-third-party-tracker-register.d.ts +2 -0
- package/dist/types/request-interceptors/page-scoped-cache.d.ts +2 -0
- package/dist/types/request-interceptors/third-party-tracker-register.d.ts +2 -0
- package/dist/types/request-interceptors/transport-send.d.ts +5 -0
- package/dist/types/response-interceptors/action-finish.d.ts +4 -0
- package/dist/types/response-interceptors/error-body-normalization.d.ts +20 -0
- package/dist/types/response-interceptors/lex-runtime-5xx-status.d.ts +19 -0
- package/dist/types/response-interceptors/lex-runtime-session-expiration.d.ts +5 -0
- package/dist/types/response-interceptors/transport-receive.d.ts +4 -0
- package/dist/types/retry-interceptors/csrf-retry.d.ts +2 -0
- package/dist/types/retry-interceptors/luvio-fetch-retry.d.ts +8 -0
- package/dist/types/retry-policies/csrf-token-retry-policy.d.ts +72 -0
- package/dist/types/retry-policies/fetch-throttling-retry-policy.d.ts +18 -0
- package/dist/types/retry-policies/luvio-csrf-token-retry-policy.d.ts +31 -0
- package/dist/types/retry-policies/luvio-fetch-throttling-retry-policy.d.ts +18 -0
- package/dist/types/service-variants/durable-cache-inclusion-policy.d.ts +82 -0
- package/dist/types/sfap-jwt-mint-params.d.ts +80 -0
- package/package.json +98 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RequestInterceptor } from '@conduit-client/service-fetch-network/v1';
|
|
2
|
+
import type { ResourceRequest } from '@luvio/engine';
|
|
3
|
+
export declare const CSRF_TOKEN_HEADER = "X-CSRF-Token";
|
|
4
|
+
/**
|
|
5
|
+
* Builds a request interceptor that adds CSRF token headers to mutating requests.
|
|
6
|
+
* The CSRF token is fetched once and cached for subsequent requests.
|
|
7
|
+
* Only POST, PUT, PATCH, and DELETE requests will have the CSRF token added.
|
|
8
|
+
*
|
|
9
|
+
* @returns A RequestInterceptor function for FetchParameters
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildCsrfTokenInterceptor(): RequestInterceptor;
|
|
12
|
+
/**
|
|
13
|
+
* Builds a Luvio request interceptor that adds CSRF token headers to mutating requests.
|
|
14
|
+
* The CSRF token is fetched once and cached for subsequent requests.
|
|
15
|
+
* Only POST, PUT, PATCH, and DELETE requests will have the CSRF token added.
|
|
16
|
+
*
|
|
17
|
+
* @returns A request interceptor function for Luvio ResourceRequest objects
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildLuvioCsrfTokenInterceptor(): (resourceRequest: ResourceRequest) => Promise<ResourceRequest>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RequestInterceptor } from '@conduit-client/service-fetch-network/v1';
|
|
2
|
+
import type { ResourceRequest } from '@luvio/engine';
|
|
3
|
+
export declare const ENTITY_ENCODING_HEADER = "X-Chatter-Entity-Encoding";
|
|
4
|
+
export declare const ENTITY_ENCODING_DISABLED_VALUE = "false";
|
|
5
|
+
/**
|
|
6
|
+
* Builds a request interceptor that sets `X-Chatter-Entity-Encoding: false` on
|
|
7
|
+
* outgoing requests. Connect REST applies HTML4 entity escaping to every string
|
|
8
|
+
* field of a response unless this header is sent with the literal value "false"
|
|
9
|
+
* (case-insensitive); any other value is equivalent to omitting the header.
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildEntityEncodingInterceptor(): RequestInterceptor;
|
|
12
|
+
/**
|
|
13
|
+
* Builds a Luvio request interceptor that sets `X-Chatter-Entity-Encoding: false`
|
|
14
|
+
* on the outgoing ResourceRequest when the header is absent. See
|
|
15
|
+
* {@link buildEntityEncodingInterceptor} for context.
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildLuvioEntityEncodingInterceptor(): (resourceRequest: ResourceRequest) => PromiseLike<ResourceRequest>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type RequestInterceptor } from '@conduit-client/service-fetch-network/v1';
|
|
2
|
+
import type { ResourceRequest } from '@luvio/engine';
|
|
3
|
+
/**
|
|
4
|
+
* Builds a request interceptor that adds the LDS first party header to every
|
|
5
|
+
* outbound request.
|
|
6
|
+
*
|
|
7
|
+
* @returns A RequestInterceptor function for FetchParameters
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildFirstPartyHeaderInterceptor(): RequestInterceptor;
|
|
10
|
+
/**
|
|
11
|
+
* Builds a Luvio request interceptor that adds the LDS first party header to
|
|
12
|
+
* every outbound `ResourceRequest`. See {@link buildFirstPartyHeaderInterceptor} for
|
|
13
|
+
* the header semantics.
|
|
14
|
+
*
|
|
15
|
+
* @returns A request interceptor for Luvio ResourceRequest objects
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildLuvioFirstPartyHeaderInterceptor(): (resourceRequest: ResourceRequest) => Promise<ResourceRequest>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { FetchParameters, RequestInterceptor } from '@conduit-client/service-fetch-network/v1';
|
|
2
|
+
import { type JwtRequestModifier } from '@conduit-client/service-fetch-network/v1';
|
|
3
|
+
import type { JwtManager } from '@conduit-client/jwt-manager';
|
|
4
|
+
import type { ExtraInfo } from '../network-sfap';
|
|
5
|
+
/**
|
|
6
|
+
* The context-seed key under which a custom command forwards its JWT mint
|
|
7
|
+
* parameters. The framework's `buildServiceDescriptor` merges the request init's
|
|
8
|
+
* `__contextSeed` onto the per-request interceptor context, so this interceptor
|
|
9
|
+
* reads the params off `context[JWT_MINT_PARAMS_SEED_KEY]`.
|
|
10
|
+
*
|
|
11
|
+
* This is a cross-team contract: the custom command writes this key, this
|
|
12
|
+
* interceptor reads it. It is intentionally an opaque key — OneStore does not
|
|
13
|
+
* define it and never inspects the param shape; the typed shape lives in the
|
|
14
|
+
* resolver.
|
|
15
|
+
*/
|
|
16
|
+
export declare const JWT_MINT_PARAMS_SEED_KEY = "jwtMintParams";
|
|
17
|
+
/**
|
|
18
|
+
* Returns `true` if the fetch arguments already carry an `Authorization` header,
|
|
19
|
+
* across the three shapes the framework's `setHeader` handles: a `Request`
|
|
20
|
+
* resource's own headers, an `options.headers` `Headers` instance, or a plain
|
|
21
|
+
* record. The descriptor's guarded legacy interceptor uses this to skip when the
|
|
22
|
+
* parameterized interceptor has already authorized the request — avoiding a second
|
|
23
|
+
* mint and the throw `setHeaderAuthorization` raises on an existing header.
|
|
24
|
+
*/
|
|
25
|
+
export declare function hasAuthorizationHeader([resource, options]: FetchParameters): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Builds the request interceptor that bridges the per-request context seed to the
|
|
28
|
+
* dispatching SFAP JwtManager for the **parameterized** mint path.
|
|
29
|
+
*
|
|
30
|
+
* For a parameterized SFAP command, the context carries `jwtMintParams`. This
|
|
31
|
+
* interceptor reads them, calls `jwtManager.getJwt(params)` (which the dispatching
|
|
32
|
+
* resolver routes to the parameterized resolver), attaches the `Authorization`
|
|
33
|
+
* header, and rewrites the request URL via the minted `baseUri`. The presence of
|
|
34
|
+
* that `Authorization` header is the signal the descriptor's guarded legacy
|
|
35
|
+
* interceptor uses to skip — so the legacy path does not mint a second time.
|
|
36
|
+
*
|
|
37
|
+
* For a legacy parameterless command the context carries no `jwtMintParams`, so
|
|
38
|
+
* this interceptor **early-returns on its first line** and the request flows
|
|
39
|
+
* unchanged to the legacy `buildJwtRequestHeaderInterceptor` — guaranteeing zero
|
|
40
|
+
* behavior change for non-opted-in adapters.
|
|
41
|
+
*
|
|
42
|
+
* Lives in `lds-lightning-platform` (not OneStore) beside the existing SFAP/CSRF
|
|
43
|
+
* interceptors, per the JWT-parameterization ADR §5: OneStore provides only the
|
|
44
|
+
* generic interceptor mechanism and the opaque context-seed channel; the service-
|
|
45
|
+
* specific bridge is a runtime-layer concern.
|
|
46
|
+
*
|
|
47
|
+
* @param jwtManager - the dispatching SFAP JwtManager
|
|
48
|
+
* @param jwtRequestModifier - applies the minted `extraInfo.baseUri` to the request URL
|
|
49
|
+
*/
|
|
50
|
+
export declare function buildJwtParameterizationInterceptor(jwtManager: JwtManager<unknown, ExtraInfo>, jwtRequestModifier?: JwtRequestModifier<ExtraInfo>): RequestInterceptor;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ResourceRequest } from '@luvio/engine';
|
|
2
|
+
/**
|
|
3
|
+
* Builds a Luvio Request interceptor that adds page-scoped cache headers
|
|
4
|
+
* to ResourceRequest objects used by the Luvio network adapter.
|
|
5
|
+
*
|
|
6
|
+
* This interceptor works with the Luvio ResourceRequest format, which has
|
|
7
|
+
* a simpler structure than FetchParameters - headers are always a plain object.
|
|
8
|
+
*
|
|
9
|
+
* @returns A RequestInterceptor function for Luvio network requests
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildLuvioPageScopedCacheRequestInterceptor(): (resourceRequest: ResourceRequest) => PromiseLike<ResourceRequest>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RequestInterceptor } from '@conduit-client/service-fetch-network/v1';
|
|
2
|
+
import type { ResourceRequest } from '@luvio/engine';
|
|
3
|
+
export declare const SFDC_REQUEST_ID_KEY = "X-SFDC-Request-Id";
|
|
4
|
+
export declare function buildTransportMarksSendInterceptor(): RequestInterceptor;
|
|
5
|
+
export declare function buildLuvioTransportMarksSendInterceptor(): (resourceRequest: ResourceRequest, context?: any) => PromiseLike<ResourceRequest>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ResponseInterceptor } from '@conduit-client/service-fetch-network/v1';
|
|
2
|
+
import type { ResponseInterceptor as LuvioResponseInterceptor } from '@salesforce/lds-network-fetch';
|
|
3
|
+
export declare function buildActionMarksReceiveInterceptor(): ResponseInterceptor;
|
|
4
|
+
export declare function buildLuvioActionMarksReceiveInterceptor(): LuvioResponseInterceptor;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ResponseInterceptor as LuvioResponseInterceptor } from '@salesforce/lds-network-fetch';
|
|
2
|
+
/**
|
|
3
|
+
* Normalizes Connect REST error envelopes into the Aura Shape A
|
|
4
|
+
* (ConnectInJava) shape, so consumers can read `response.body.errorCode`
|
|
5
|
+
* regardless of transport.
|
|
6
|
+
*
|
|
7
|
+
* - HTTP error envelope (this path): `[{ errorCode, message }, ...]`
|
|
8
|
+
* - Aura Shape A: `{ errorCode, message, statusCode, ... }`
|
|
9
|
+
*
|
|
10
|
+
* The full array is preserved at `body.enhancedErrorInfo.allErrors` since
|
|
11
|
+
* Connect can return multiple errors per response.
|
|
12
|
+
*
|
|
13
|
+
* Aura Shape B (`{ error: "..." }`) is an Aura-only fallback that never
|
|
14
|
+
* appears on the HTTP path, so no normalization is needed for it here.
|
|
15
|
+
*
|
|
16
|
+
* Ordering: must run AFTER any other interceptor that inspects the raw
|
|
17
|
+
* error body shape (e.g. the 5xx interceptor's ErrorId extraction reads
|
|
18
|
+
* `body[0].message` from the array form).
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildLuvioErrorBodyNormalizationInterceptor(): LuvioResponseInterceptor;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { LoggerService } from '@conduit-client/utils';
|
|
2
|
+
import type { ResponseInterceptor } from '@conduit-client/service-fetch-network/v1';
|
|
3
|
+
import type { ResponseInterceptor as LuvioResponseInterceptor } from '@salesforce/lds-network-fetch';
|
|
4
|
+
export type LexRuntimeError = {
|
|
5
|
+
message: string;
|
|
6
|
+
severity: string;
|
|
7
|
+
name: string;
|
|
8
|
+
stack: string | null;
|
|
9
|
+
handled: boolean;
|
|
10
|
+
reported: boolean;
|
|
11
|
+
id: number;
|
|
12
|
+
};
|
|
13
|
+
export type LexErrorEventArgs = {
|
|
14
|
+
message: string;
|
|
15
|
+
error: string | null;
|
|
16
|
+
auraError: LexRuntimeError;
|
|
17
|
+
};
|
|
18
|
+
export declare function buildLexRuntime5xxStatusResponseInterceptor(logger: LoggerService): ResponseInterceptor;
|
|
19
|
+
export declare function buildLexRuntimeLuvio5xxStatusResponseInterceptor(): LuvioResponseInterceptor;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { LoggerService } from '@conduit-client/utils';
|
|
2
|
+
import type { ResponseInterceptor } from '@conduit-client/service-fetch-network/v1';
|
|
3
|
+
import type { ResponseInterceptor as LuvioResponseInterceptor } from '@salesforce/lds-network-fetch';
|
|
4
|
+
export declare function buildLexRuntimeSessionExpirationResponseInterceptor(logger: LoggerService): ResponseInterceptor;
|
|
5
|
+
export declare function buildLexRuntimeLuvioSessionExpirationResponseInterceptor(): LuvioResponseInterceptor;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ResponseInterceptor } from '@conduit-client/service-fetch-network/v1';
|
|
2
|
+
import type { ResponseInterceptor as LuvioResponseInterceptor } from '@salesforce/lds-network-fetch';
|
|
3
|
+
export declare function buildTransportMarksReceiveInterceptor(): ResponseInterceptor;
|
|
4
|
+
export declare function buildLuvioTransportMarksReceiveInterceptor(): LuvioResponseInterceptor;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { LuvioRetryInterceptor } from '@salesforce/lds-network-fetch';
|
|
2
|
+
/**
|
|
3
|
+
* Builds the LuvioRetryInterceptor used by the UIAPI fetch adapter.
|
|
4
|
+
*
|
|
5
|
+
* A fresh RetryService and policy instances are created per request to keep the
|
|
6
|
+
* CSRF policy's mutableRequest context isolated from concurrent requests.
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildLuvioFetchRetryInterceptor(): LuvioRetryInterceptor;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { RetryContext } from '@conduit-client/service-retry/v1';
|
|
2
|
+
import { RetryPolicy } from '@conduit-client/service-retry/v1';
|
|
3
|
+
import type { FetchParameters } from '@conduit-client/service-fetch-network/v1';
|
|
4
|
+
type CsrfTokenRetryPolicyConfig = {
|
|
5
|
+
/**
|
|
6
|
+
* Maximum number of retry attempts for CSRF token refresh.
|
|
7
|
+
* Typically should be 1 since we only want to retry once after refreshing.
|
|
8
|
+
*/
|
|
9
|
+
maxRetries: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Mutable container for fetch arguments that can be modified between retries.
|
|
13
|
+
*/
|
|
14
|
+
export interface MutableFetchRequest {
|
|
15
|
+
args: FetchParameters;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Retry policy that handles CSRF token expiration errors.
|
|
19
|
+
*
|
|
20
|
+
* When a request fails with a CSRF token error this policy will:
|
|
21
|
+
* 1. Detect the error condition in shouldRetry
|
|
22
|
+
* 2. Refresh the CSRF token in prepareRetry hook
|
|
23
|
+
* 3. Update the request headers with the new token via mutable context
|
|
24
|
+
* 4. Retry the request once (maxRetries = 1)
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
export declare class CsrfTokenRetryPolicy extends RetryPolicy<Response> {
|
|
28
|
+
private config;
|
|
29
|
+
private requestContext?;
|
|
30
|
+
constructor(config?: CsrfTokenRetryPolicyConfig);
|
|
31
|
+
/**
|
|
32
|
+
* Allows the fetch service to pass mutable request context.
|
|
33
|
+
* This is a side-channel that enables request modification between retries.
|
|
34
|
+
*
|
|
35
|
+
* @param context - Mutable container holding fetch arguments
|
|
36
|
+
*/
|
|
37
|
+
setRequestContext(context: MutableFetchRequest): void;
|
|
38
|
+
/**
|
|
39
|
+
* Determines if a failed request should be retried due to CSRF token issues.
|
|
40
|
+
*/
|
|
41
|
+
shouldRetry(result: Response, context: RetryContext<Response>): Promise<boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* CSRF token refresh should happen immediately with no delay.
|
|
44
|
+
*/
|
|
45
|
+
calculateDelay(_result: Response, _context: RetryContext<Response>): Promise<number>;
|
|
46
|
+
/**
|
|
47
|
+
* Called by retry service before each retry attempt.
|
|
48
|
+
*
|
|
49
|
+
* This hook is supported by the Conduit retry service (with prepareRetry support).
|
|
50
|
+
* It performs token refresh and request update:
|
|
51
|
+
* 1. Refreshes the CSRF token from the server
|
|
52
|
+
* 2. Updates the mutable request context with the new token
|
|
53
|
+
*
|
|
54
|
+
* Note: We already validated this is a CSRF error in shouldRetry,
|
|
55
|
+
* so we can proceed directly to token refresh.
|
|
56
|
+
*
|
|
57
|
+
* The fetch service must call setRequestContext() to provide the mutable args container.
|
|
58
|
+
* When the retry service re-executes the operation, it will use the updated args.
|
|
59
|
+
*
|
|
60
|
+
* @param _result - The failed response that triggered the retry (unused, already validated)
|
|
61
|
+
* @param _context - Current retry context (unused but part of interface)
|
|
62
|
+
*/
|
|
63
|
+
prepareRetry(_result: Response, _context: RetryContext<Response>): Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Helper to check if a response indicates a CSRF token error.
|
|
67
|
+
*
|
|
68
|
+
* @param response - The response to check
|
|
69
|
+
* @returns true if the response indicates a CSRF token error (INVALID_ACCESS_TOKEN)
|
|
70
|
+
*/
|
|
71
|
+
export declare function isCsrfError(response: Response): Promise<boolean>;
|
|
72
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { RetryContext } from '@conduit-client/service-retry/v1';
|
|
2
|
+
import { RetryPolicy } from '@conduit-client/service-retry/v1';
|
|
3
|
+
type FetchThrottlingRetryPolicyConfig = {
|
|
4
|
+
maxRetries: number;
|
|
5
|
+
maxTimeToRetry: number;
|
|
6
|
+
baseDelay: number;
|
|
7
|
+
maxDelay: number;
|
|
8
|
+
exponentialFactor: number;
|
|
9
|
+
jitterPercent: number;
|
|
10
|
+
};
|
|
11
|
+
export declare class FetchThrottlingRetryPolicy extends RetryPolicy<Response> {
|
|
12
|
+
private config;
|
|
13
|
+
constructor(config?: FetchThrottlingRetryPolicyConfig);
|
|
14
|
+
shouldRetry(result: Response, context: RetryContext<Response>): Promise<boolean>;
|
|
15
|
+
calculateDelay(result: Response, context: RetryContext<Response>): Promise<number>;
|
|
16
|
+
parseRetryAfterHeader(result: Response): number | undefined;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { RetryContext } from '@conduit-client/service-retry/v1';
|
|
2
|
+
import { RetryPolicy } from '@conduit-client/service-retry/v1';
|
|
3
|
+
import type { FetchResponse, ResourceRequest } from '@luvio/engine';
|
|
4
|
+
type LuvioCsrfTokenRetryPolicyConfig = {
|
|
5
|
+
maxRetries: number;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Mutable container for the ResourceRequest that can be updated between retries.
|
|
9
|
+
*/
|
|
10
|
+
export interface MutableLuvioRequest {
|
|
11
|
+
request: ResourceRequest;
|
|
12
|
+
}
|
|
13
|
+
export declare class LuvioCsrfTokenRetryPolicy extends RetryPolicy<FetchResponse<any>> {
|
|
14
|
+
private config;
|
|
15
|
+
private requestContext?;
|
|
16
|
+
constructor(config?: LuvioCsrfTokenRetryPolicyConfig);
|
|
17
|
+
setRequestContext(context: MutableLuvioRequest): void;
|
|
18
|
+
shouldRetry(result: FetchResponse<any>, context: RetryContext<FetchResponse<any>>): Promise<boolean>;
|
|
19
|
+
calculateDelay(_result: FetchResponse<any>, _context: RetryContext<FetchResponse<any>>): Promise<number>;
|
|
20
|
+
prepareRetry(_result: FetchResponse<any>, _context: RetryContext<FetchResponse<any>>): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Returns true when a Luvio FetchResponse indicates a CSRF token error.
|
|
24
|
+
* Body is already parsed JSON on FetchResponse, so no clone/json() needed.
|
|
25
|
+
*
|
|
26
|
+
* UIAPI error bodies come in both shapes: an object `{ errorCode, message }`
|
|
27
|
+
* for single errors, or an array `[{ errorCode, message }]` for endpoints that
|
|
28
|
+
* return collections of errors. Handle both.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isCsrfError(response: FetchResponse<any>): boolean;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RetryPolicy, type RetryContext } from '@conduit-client/service-retry/v1';
|
|
2
|
+
import type { FetchResponse } from '@luvio/engine';
|
|
3
|
+
type LuvioFetchThrottlingRetryPolicyConfig = {
|
|
4
|
+
maxRetries: number;
|
|
5
|
+
maxTimeToRetry: number;
|
|
6
|
+
baseDelay: number;
|
|
7
|
+
maxDelay: number;
|
|
8
|
+
exponentialFactor: number;
|
|
9
|
+
jitterPercent: number;
|
|
10
|
+
};
|
|
11
|
+
export declare class LuvioFetchThrottlingRetryPolicy extends RetryPolicy<FetchResponse<any>> {
|
|
12
|
+
private config;
|
|
13
|
+
constructor(config?: LuvioFetchThrottlingRetryPolicyConfig);
|
|
14
|
+
shouldRetry(result: FetchResponse<any>, context: RetryContext<FetchResponse<any>>): Promise<boolean>;
|
|
15
|
+
calculateDelay(result: FetchResponse<any>, context: RetryContext<FetchResponse<any>>): Promise<number>;
|
|
16
|
+
parseRetryAfterHeader(result: FetchResponse<any>): number | undefined;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { type StorageConfig } from '@salesforce/lds-durable-storage';
|
|
2
|
+
import { type CacheInclusionPolicyServiceDescriptor, type CacheQuery, type CacheUpdate, DurableCacheInclusionPolicy } from '@conduit-client/service-cache-inclusion-policy/v1';
|
|
3
|
+
import type { Cache, CacheEntry, Key } from '@conduit-client/service-cache/v1';
|
|
4
|
+
import type { DeepReadonly } from '@conduit-client/utils';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration options for AuraDurableCacheInclusionPolicy
|
|
7
|
+
*/
|
|
8
|
+
export type DurableCacheConfig = Partial<StorageConfig>;
|
|
9
|
+
/**
|
|
10
|
+
* Durable cache inclusion policy that uses AuraStorage for persistent L2 cache
|
|
11
|
+
*/
|
|
12
|
+
export declare class AuraDurableCacheInclusionPolicy extends DurableCacheInclusionPolicy {
|
|
13
|
+
private readonly storage;
|
|
14
|
+
constructor(config?: DurableCacheConfig);
|
|
15
|
+
/**
|
|
16
|
+
* Revive cache entries from AuraStorage into L1 cache
|
|
17
|
+
* @param keys - Set of keys to revive
|
|
18
|
+
* @param l1 - L1 cache instance
|
|
19
|
+
* @returns Set of keys that were successfully revived
|
|
20
|
+
*/
|
|
21
|
+
revive(keys: Set<Key>, l1: Cache): Promise<Set<Key>>;
|
|
22
|
+
/**
|
|
23
|
+
* Sync changed keys from L1 cache to AuraStorage (L2 cache)
|
|
24
|
+
* @param changedKeys - Set of keys that have changed
|
|
25
|
+
* @param l1 - L1 cache instance
|
|
26
|
+
*/
|
|
27
|
+
syncToL2Cache(changedKeys: Set<Key>, l1: Cache): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Find entries matching a query
|
|
30
|
+
* @param query - Cache query to match entries
|
|
31
|
+
*/
|
|
32
|
+
find(query: CacheQuery): AsyncGenerator<[key: Key, value: DeepReadonly<CacheEntry<unknown>>], void, unknown>;
|
|
33
|
+
/**
|
|
34
|
+
* Find and modify entries matching a query
|
|
35
|
+
* @param query - Cache query to match entries
|
|
36
|
+
* @param cacheUpdate - Update to apply to matching entries
|
|
37
|
+
*
|
|
38
|
+
* Note: This method does not publish cache events. Callers should publish
|
|
39
|
+
* appropriate cache events (e.g., 'cacheEviction') after eviction operations
|
|
40
|
+
* to notify subscribers.
|
|
41
|
+
*/
|
|
42
|
+
findAndModify(query: CacheQuery, cacheUpdate: CacheUpdate): AsyncGenerator<Key, void, unknown>;
|
|
43
|
+
/**
|
|
44
|
+
* Check if an entry matches a cache query
|
|
45
|
+
* @param key - Cache key to check
|
|
46
|
+
* @param entry - Cache entry to check
|
|
47
|
+
* @param query - Query to match against
|
|
48
|
+
* @returns true if the entry matches the query
|
|
49
|
+
*/
|
|
50
|
+
private matchesQuery;
|
|
51
|
+
private isAndQuery;
|
|
52
|
+
private isOrQuery;
|
|
53
|
+
private isNotQuery;
|
|
54
|
+
private matchesKey;
|
|
55
|
+
private matchesMetadata;
|
|
56
|
+
/**
|
|
57
|
+
* Apply an update to a cache entry
|
|
58
|
+
* @param entry - Original cache entry
|
|
59
|
+
* @param update - Update to apply
|
|
60
|
+
* @returns Object indicating the result: modified entry, deleted marker, or no-op
|
|
61
|
+
*/
|
|
62
|
+
private applyUpdate;
|
|
63
|
+
/**
|
|
64
|
+
* Build an update for a cache entry
|
|
65
|
+
* @param update - The cache update operation to apply
|
|
66
|
+
* @param existing - The existing cache entry being modified
|
|
67
|
+
* @returns An object indicating the type of update
|
|
68
|
+
*/
|
|
69
|
+
private buildUpdate;
|
|
70
|
+
/**
|
|
71
|
+
* Build an invalidated cache control metadata
|
|
72
|
+
* @param existingCacheControl - The current CacheControlMetadata
|
|
73
|
+
* @returns A new CacheControlMetadata object with maxAge set to 0, or undefined if no changes needed
|
|
74
|
+
*/
|
|
75
|
+
private buildInvalidatedCacheControl;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Factory function to create an AuraDurableCacheInclusionPolicy service descriptor
|
|
79
|
+
* @param config - Optional configuration for the storage
|
|
80
|
+
* @returns Service descriptor for the cache inclusion policy
|
|
81
|
+
*/
|
|
82
|
+
export declare function buildAuraDurableCacheInclusionPolicyService(config?: DurableCacheConfig): CacheInclusionPolicyServiceDescriptor;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { JwtMintParams } from '@conduit-client/jwt-manager';
|
|
2
|
+
/**
|
|
3
|
+
* JSON-primitive value a dynamic mint parameter may take.
|
|
4
|
+
*
|
|
5
|
+
* Mirrors the SFAP Lightning JWT Service's own `validateValue`
|
|
6
|
+
* (`SFAPLightningJwtServiceResource.java`), which accepts native `Boolean`,
|
|
7
|
+
* `Number`, or `String` and lets the minted claim's type follow the JSON type.
|
|
8
|
+
* The resolver therefore forwards these primitives verbatim — it must NOT
|
|
9
|
+
* stringify booleans/numbers, because the `data_cloud_user_claims` handler gates
|
|
10
|
+
* on native `Boolean.TRUE.equals(...)` and silently drops a stringified `"true"`.
|
|
11
|
+
*/
|
|
12
|
+
export type SfapDynamicParamValue = string | boolean | number;
|
|
13
|
+
/**
|
|
14
|
+
* Typed shape of the params the SFAP Lightning JWT Service understands.
|
|
15
|
+
* Lives in the resolver layer because OneStore is param-shape-agnostic; it
|
|
16
|
+
* sees only an opaque `JwtMintParams` bag and stable-JSON-stringifies it for
|
|
17
|
+
* cache keying.
|
|
18
|
+
*/
|
|
19
|
+
export type SfapJwtMintParams = {
|
|
20
|
+
scopes?: string[];
|
|
21
|
+
dynamicParams?: Record<string, SfapDynamicParamValue>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* The `extraInfo` the SFAP JWT resolver returns alongside the minted token: the
|
|
25
|
+
* per-tenant base URI the downstream SFAP API request is rewritten to.
|
|
26
|
+
*/
|
|
27
|
+
export type ParameterizedSfapExtraInfo = {
|
|
28
|
+
baseUri: string;
|
|
29
|
+
};
|
|
30
|
+
type DynamicParameterItem = {
|
|
31
|
+
name: string;
|
|
32
|
+
value: SfapDynamicParamValue;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* The SFAP Lightning JWT Service mint request body. Sent as the `requestBody`
|
|
36
|
+
* named param of the `postSFAPLightningJwtService` Aura controller method.
|
|
37
|
+
* Matches the server's `SFAPLightningJwtServiceInputRepresentation`: `scopes` is
|
|
38
|
+
* a single space-delimited string; `dynamicParameters` is `{ items: [{ name, value }] }`.
|
|
39
|
+
*/
|
|
40
|
+
export type SfapJwtRequestBody = {
|
|
41
|
+
scopes?: string;
|
|
42
|
+
dynamicParameters?: {
|
|
43
|
+
items: DynamicParameterItem[];
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Normalize SFAP-shaped params into the opaque `JwtMintParams` bag that callers
|
|
48
|
+
* hand to `JwtManager.getJwt(params)`. Scopes are sorted because they are
|
|
49
|
+
* semantically a set — without this, `['a', 'b']` and `['b', 'a']` would cache
|
|
50
|
+
* as separate entries (OneStore treats arrays as ordered under stable-JSON
|
|
51
|
+
* serialization; see ADR "JWT Parameterization" §2).
|
|
52
|
+
*
|
|
53
|
+
* MANDATORY CONSUMER ENTRY POINT. Every consumer that mints a parameterized
|
|
54
|
+
* SFAP JWT MUST assemble its params through this function before calling the
|
|
55
|
+
* manager. The cache key is derived by `JwtManager` from the caller's params
|
|
56
|
+
* (`cacheKeyFor(params)`) *before* the resolver runs — so the resolver cannot
|
|
57
|
+
* normalize after the fact. Set-stable caching therefore depends on the caller
|
|
58
|
+
* routing params through here. Do NOT sort inside the resolver: that would only
|
|
59
|
+
* reorder the wire body, not the cache key, and mutating the caller's params
|
|
60
|
+
* mid-call would desync the in-flight-dedup key from the stored-token key.
|
|
61
|
+
*/
|
|
62
|
+
export declare function buildSfapJwtMintParams(params: SfapJwtMintParams): JwtMintParams;
|
|
63
|
+
export type SfapParamsResult = {
|
|
64
|
+
params: SfapJwtMintParams;
|
|
65
|
+
} | {
|
|
66
|
+
error: string;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Validate and narrow an opaque `JwtMintParams` bag to the SFAP-shaped subset the
|
|
70
|
+
* resolver forwards. Returns `{ error }` (surfaced as a resolver rejection) for a
|
|
71
|
+
* malformed bag rather than throwing.
|
|
72
|
+
*/
|
|
73
|
+
export declare function coerceToSfapParams(params: JwtMintParams): SfapParamsResult;
|
|
74
|
+
/**
|
|
75
|
+
* Build the SFAP mint request body from the coerced params: `scopes` joined into a
|
|
76
|
+
* single space-delimited string, `dynamicParams` mapped to `dynamicParameters.items`.
|
|
77
|
+
* Empty scopes / dynamic params are omitted.
|
|
78
|
+
*/
|
|
79
|
+
export declare function buildRequestBody(params: SfapJwtMintParams): SfapJwtRequestBody;
|
|
80
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@salesforce/lds-runtime-one-runtime",
|
|
3
|
+
"version": "1.457.0",
|
|
4
|
+
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
|
+
"description": "LDS engine for the LEX on One Runtime (LWR) runtime.",
|
|
6
|
+
"main": "dist/oneRuntimeLdsEngineCreator.js",
|
|
7
|
+
"module": "dist/oneRuntimeLdsEngineCreator.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/oneRuntimeLdsEngineCreator.js",
|
|
16
|
+
"default": "./dist/oneRuntimeLdsEngineCreator.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"sfdc": {
|
|
20
|
+
"path": "forcelds/oneRuntimeLdsEngineCreator/",
|
|
21
|
+
"publishedFileName": "oneRuntimeLdsEngineCreator.js",
|
|
22
|
+
"overrides": {
|
|
23
|
+
"artifactDirectory": "dist",
|
|
24
|
+
"outputModuleName": "oneRuntimeLdsEngineCreator"
|
|
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-one-runtime"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@conduit-client/service-provisioner": "3.27.0",
|
|
38
|
+
"@conduit-client/tools-core": "3.27.0",
|
|
39
|
+
"@salesforce/lds-adapters-apex": "^1.457.0",
|
|
40
|
+
"@salesforce/lds-adapters-uiapi": "^1.457.0",
|
|
41
|
+
"@salesforce/lds-ads-bridge": "^1.457.0",
|
|
42
|
+
"@salesforce/lds-aura-storage": "^1.457.0",
|
|
43
|
+
"@salesforce/lds-bindings": "^1.457.0",
|
|
44
|
+
"@salesforce/lds-instrumentation": "^1.457.0",
|
|
45
|
+
"@salesforce/lds-network-adapter": "^1.457.0",
|
|
46
|
+
"@salesforce/lds-network-aura": "^1.457.0",
|
|
47
|
+
"@salesforce/lds-network-fetch": "^1.457.0",
|
|
48
|
+
"jwt-encode": "1.0.1"
|
|
49
|
+
},
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"@conduit-client/command-aura-graphql-normalized-cache-control": "3.27.0",
|
|
52
|
+
"@conduit-client/command-aura-network": "3.27.0",
|
|
53
|
+
"@conduit-client/command-aura-normalized-cache-control": "3.27.0",
|
|
54
|
+
"@conduit-client/command-fetch-network": "3.27.0",
|
|
55
|
+
"@conduit-client/command-http-graphql-normalized-cache-control": "3.27.0",
|
|
56
|
+
"@conduit-client/command-http-normalized-cache-control": "3.27.0",
|
|
57
|
+
"@conduit-client/command-ndjson": "3.27.0",
|
|
58
|
+
"@conduit-client/command-network": "3.27.0",
|
|
59
|
+
"@conduit-client/command-sse": "3.27.0",
|
|
60
|
+
"@conduit-client/command-streaming": "3.27.0",
|
|
61
|
+
"@conduit-client/jwt-manager": "3.27.0",
|
|
62
|
+
"@conduit-client/service-aura-network": "3.27.0",
|
|
63
|
+
"@conduit-client/service-bindings-imperative": "3.27.0",
|
|
64
|
+
"@conduit-client/service-bindings-lwc": "3.27.0",
|
|
65
|
+
"@conduit-client/service-cache": "3.27.0",
|
|
66
|
+
"@conduit-client/service-cache-control": "3.27.0",
|
|
67
|
+
"@conduit-client/service-cache-inclusion-policy": "3.27.0",
|
|
68
|
+
"@conduit-client/service-config": "3.27.0",
|
|
69
|
+
"@conduit-client/service-feature-flags": "3.27.0",
|
|
70
|
+
"@conduit-client/service-fetch-network": "3.27.0",
|
|
71
|
+
"@conduit-client/service-instrument-command": "3.27.0",
|
|
72
|
+
"@conduit-client/service-pubsub": "3.27.0",
|
|
73
|
+
"@conduit-client/service-renewable-resource-manager": "3.27.0",
|
|
74
|
+
"@conduit-client/service-store": "3.27.0",
|
|
75
|
+
"@conduit-client/utils": "3.27.0",
|
|
76
|
+
"@luvio/network-adapter-composable": "0.161.2",
|
|
77
|
+
"@luvio/network-adapter-fetch": "0.161.2",
|
|
78
|
+
"@lwc/state": "^0.29.0",
|
|
79
|
+
"@salesforce/lds-adapters-onestore-graphql": "^1.457.0",
|
|
80
|
+
"@salesforce/lds-adapters-uiapi-lex": "^1.415.0",
|
|
81
|
+
"@salesforce/lds-durable-storage": "^1.457.0",
|
|
82
|
+
"@salesforce/lds-luvio-service": "^1.457.0",
|
|
83
|
+
"@salesforce/lds-luvio-uiapi-records-service": "^1.457.0"
|
|
84
|
+
},
|
|
85
|
+
"luvioBundlesize": [
|
|
86
|
+
{
|
|
87
|
+
"path": "./dist/oneRuntimeLdsEngineCreator.js",
|
|
88
|
+
"maxSize": {
|
|
89
|
+
"none": "416 kB",
|
|
90
|
+
"min": "190 kB",
|
|
91
|
+
"compressed": "73 kB"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"volta": {
|
|
96
|
+
"extends": "../../package.json"
|
|
97
|
+
}
|
|
98
|
+
}
|