@salesforce/lds-runtime-aura 1.447.0 → 1.448.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ldsEngineCreator.js
CHANGED
|
@@ -40,6 +40,7 @@ import lightningConnectEnabled from '@salesforce/gate/ui.services.LightningConne
|
|
|
40
40
|
import bypassAppRestrictionEnabled from '@salesforce/gate/ui.services.LightningConnect.BypassAppRestriction.enabled';
|
|
41
41
|
import csrfValidationEnabled from '@salesforce/gate/ui.services.LightningConnect.CsrfValidation.enabled';
|
|
42
42
|
import sessionApiEnabled from '@salesforce/gate/ui.uisdk.session.api.enabled';
|
|
43
|
+
import auraBasedRequestsEnabled from '@salesforce/gate/ui.services.auraBasedRequests.enabled';
|
|
43
44
|
import useHttpUiapiOneAppPublic from '@salesforce/gate/lds.useHttpUiapiOneAppPublic';
|
|
44
45
|
import useHttpUiapiOneAppPrivate from '@salesforce/gate/lds.useHttpUiapiOneAppPrivate';
|
|
45
46
|
import useHttpUiapiOneRuntimePublic from '@salesforce/gate/lds.useHttpUiapiOneRuntimePublic';
|
|
@@ -474,7 +475,14 @@ class AuraNetworkCommand extends NetworkCommand$1 {
|
|
|
474
475
|
fetch() {
|
|
475
476
|
if (this.shouldUseAuraNetwork()) {
|
|
476
477
|
return this.convertAuraResponseToData(
|
|
477
|
-
|
|
478
|
+
// The Aura transport is untyped at the network boundary (getReturnValue: () =>
|
|
479
|
+
// Record<string, unknown>); assert it to this command's concrete Data here so the
|
|
480
|
+
// untyped boundary is isolated to this single site rather than leaking `any`.
|
|
481
|
+
this.services.auraNetwork(
|
|
482
|
+
this.endpoint,
|
|
483
|
+
this.auraParams,
|
|
484
|
+
this.actionConfig
|
|
485
|
+
),
|
|
478
486
|
this.coerceAuraErrors
|
|
479
487
|
);
|
|
480
488
|
} else if (this.shouldUseFetch()) {
|
|
@@ -1070,8 +1078,13 @@ class AuraCacheControlCommand extends CacheControlCommand {
|
|
|
1070
1078
|
}
|
|
1071
1079
|
requestFromNetwork() {
|
|
1072
1080
|
if (this.shouldUseAuraNetwork()) {
|
|
1081
|
+
const responsePromise = this.services.auraNetwork(
|
|
1082
|
+
this.endpoint,
|
|
1083
|
+
this.auraParams,
|
|
1084
|
+
this.actionConfig
|
|
1085
|
+
);
|
|
1073
1086
|
return this.convertAuraResponseToData(
|
|
1074
|
-
|
|
1087
|
+
responsePromise,
|
|
1075
1088
|
(errs) => this.coerceAuraErrors(errs)
|
|
1076
1089
|
);
|
|
1077
1090
|
} else if (this.shouldUseFetch()) {
|
|
@@ -1724,6 +1737,14 @@ class O11ySpan {
|
|
|
1724
1737
|
this.attributes = { ...this.attributes, ...attributes };
|
|
1725
1738
|
return this;
|
|
1726
1739
|
}
|
|
1740
|
+
addLink(_link) {
|
|
1741
|
+
this.logger.warn("O11ySpan does not support addLink.");
|
|
1742
|
+
return this;
|
|
1743
|
+
}
|
|
1744
|
+
addLinks(_links) {
|
|
1745
|
+
this.logger.warn("O11ySpan does not support addLinks.");
|
|
1746
|
+
return this;
|
|
1747
|
+
}
|
|
1727
1748
|
addEvent(_name, _attributesOrStartTime, _startTime) {
|
|
1728
1749
|
this.logger.warn("O11ySpan does not support addEvents.");
|
|
1729
1750
|
return this;
|
|
@@ -1783,6 +1804,9 @@ class O11yMeter {
|
|
|
1783
1804
|
}
|
|
1784
1805
|
return new O11yCounter(name, this.o11yInstrumentation, this.logger);
|
|
1785
1806
|
}
|
|
1807
|
+
createGauge(_name, _options) {
|
|
1808
|
+
return new O11yGauge(this.logger);
|
|
1809
|
+
}
|
|
1786
1810
|
createUpDownCounter(_name, _options) {
|
|
1787
1811
|
return new O11yUpDownCounter(this.logger);
|
|
1788
1812
|
}
|
|
@@ -1840,6 +1864,14 @@ class O11yHistogram {
|
|
|
1840
1864
|
);
|
|
1841
1865
|
}
|
|
1842
1866
|
}
|
|
1867
|
+
class O11yGauge {
|
|
1868
|
+
constructor(logger) {
|
|
1869
|
+
this.logger = logger;
|
|
1870
|
+
}
|
|
1871
|
+
record(_value, _attributes, _context) {
|
|
1872
|
+
this.logger.warn("O11yGauge not supported yet.");
|
|
1873
|
+
}
|
|
1874
|
+
}
|
|
1843
1875
|
class O11yUpDownCounter {
|
|
1844
1876
|
constructor(logger) {
|
|
1845
1877
|
this.logger = logger;
|
|
@@ -2535,7 +2567,7 @@ function buildServiceDescriptor$d(luvio) {
|
|
|
2535
2567
|
},
|
|
2536
2568
|
};
|
|
2537
2569
|
}
|
|
2538
|
-
// version: 1.
|
|
2570
|
+
// version: 1.448.0-ea92d38c8e
|
|
2539
2571
|
|
|
2540
2572
|
class AuraGraphQLNormalizedCacheControlCommand extends AuraNormalizedCacheControlCommand {
|
|
2541
2573
|
constructor(config, documentRootType, services) {
|
|
@@ -2682,6 +2714,7 @@ class AuraGraphQLNormalizedCacheControlCommand extends AuraNormalizedCacheContro
|
|
|
2682
2714
|
}
|
|
2683
2715
|
return addTypenameToDocument(augmentedQueryResult.value);
|
|
2684
2716
|
}
|
|
2717
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- load-bearing: GraphQLResponse.data is `Record<string,any> | null | undefined`, but WriteInput<Data>.data requires `Data`. Narrowing the Data arg to GraphQLData yields TS2322 at the return (`data.data` includes null|undefined; tests write `data: undefined` for error responses — see error-handling spec). The `any` faithfully models that the cache write accepts the nullable response payload. Same #870 GraphQLData/GraphQLResponse contravariance family.
|
|
2685
2718
|
buildWriteInput(data) {
|
|
2686
2719
|
const extensionResult = buildGraphQLInputExtension({
|
|
2687
2720
|
...this.config,
|
|
@@ -2873,7 +2906,7 @@ function buildServiceDescriptor$9(notifyRecordUpdateAvailable, getNormalizedLuvi
|
|
|
2873
2906
|
},
|
|
2874
2907
|
};
|
|
2875
2908
|
}
|
|
2876
|
-
// version: 1.
|
|
2909
|
+
// version: 1.448.0-ea92d38c8e
|
|
2877
2910
|
|
|
2878
2911
|
class RetryService {
|
|
2879
2912
|
constructor(defaultRetryPolicy) {
|
|
@@ -5765,7 +5798,7 @@ function getEnvironmentSetting(name) {
|
|
|
5765
5798
|
}
|
|
5766
5799
|
return undefined;
|
|
5767
5800
|
}
|
|
5768
|
-
// version: 1.
|
|
5801
|
+
// version: 1.448.0-8bacde725a
|
|
5769
5802
|
|
|
5770
5803
|
/**
|
|
5771
5804
|
* Helpers for reaching the Aura framework from the LDS Aura runtime.
|
|
@@ -6374,16 +6407,21 @@ async function getCsrfToken() {
|
|
|
6374
6407
|
}
|
|
6375
6408
|
}
|
|
6376
6409
|
/**
|
|
6377
|
-
* Checks if all
|
|
6410
|
+
* Checks if all server-side UiSdk gates required for the HTTP UIAPI path are
|
|
6411
|
+
* open. These mirror the gates core evaluates when accepting a SID-based
|
|
6412
|
+
* (first-party) Connect request; the CSRF token is only attached when all are
|
|
6413
|
+
* open. All are required OPEN — `auraBasedRequests` expands the set of
|
|
6414
|
+
* Connect resources reachable over HTTP, it is not an aura-vs-http toggle.
|
|
6378
6415
|
*
|
|
6379
6416
|
* @returns true if all gates are enabled, false otherwise
|
|
6380
6417
|
*/
|
|
6381
|
-
function
|
|
6418
|
+
function areHttpGatesEnabled() {
|
|
6382
6419
|
try {
|
|
6383
6420
|
return (lightningConnectEnabled.isOpen({ fallback: false }) &&
|
|
6384
6421
|
bypassAppRestrictionEnabled.isOpen({ fallback: false }) &&
|
|
6385
6422
|
csrfValidationEnabled.isOpen({ fallback: false }) &&
|
|
6386
|
-
sessionApiEnabled.isOpen({ fallback: false })
|
|
6423
|
+
sessionApiEnabled.isOpen({ fallback: false }) &&
|
|
6424
|
+
auraBasedRequestsEnabled.isOpen({ fallback: false }));
|
|
6387
6425
|
}
|
|
6388
6426
|
catch (error) {
|
|
6389
6427
|
// If any gate check fails, disable CSRF interceptor
|
|
@@ -6417,7 +6455,7 @@ function isCsrfMethod(method) {
|
|
|
6417
6455
|
function buildCsrfTokenInterceptor() {
|
|
6418
6456
|
return async (fetchArgs) => {
|
|
6419
6457
|
// Check if all required gates are enabled before running
|
|
6420
|
-
if (!
|
|
6458
|
+
if (!areHttpGatesEnabled()) {
|
|
6421
6459
|
return resolvedPromiseLike$2(fetchArgs);
|
|
6422
6460
|
}
|
|
6423
6461
|
const [urlOrRequest, options] = fetchArgs;
|
|
@@ -6450,7 +6488,7 @@ function buildCsrfTokenInterceptor() {
|
|
|
6450
6488
|
function buildLuvioCsrfTokenInterceptor() {
|
|
6451
6489
|
return async (resourceRequest) => {
|
|
6452
6490
|
// Check if all required gates are enabled before running
|
|
6453
|
-
if (!
|
|
6491
|
+
if (!areHttpGatesEnabled()) {
|
|
6454
6492
|
return resolvedPromiseLike$2(resourceRequest);
|
|
6455
6493
|
}
|
|
6456
6494
|
// Ensure headers object exists
|
|
@@ -7561,6 +7599,27 @@ function buildJwtParameterizationInterceptor(jwtManager, jwtRequestModifier = (_
|
|
|
7561
7599
|
}
|
|
7562
7600
|
|
|
7563
7601
|
const SFAP_BASE_URL = 'api.salesforce.com';
|
|
7602
|
+
// The fetch-service tag the Data360 (direct-to-Data Cloud) custom command binds
|
|
7603
|
+
// to. Distinct from SFAP's `sfap_api` so the Data360 host-rewrite interceptor only
|
|
7604
|
+
// ever runs for that command — zero blast radius on the SFAP fleet.
|
|
7605
|
+
//
|
|
7606
|
+
// The tag is deliberately named after the *mechanism* (the `cdp_url` host rewrite),
|
|
7607
|
+
// not a capability, because this whole descriptor is interim: it exists only while
|
|
7608
|
+
// the mint service returns the fixed SFAP `baseUri` regardless of platform. When the
|
|
7609
|
+
// service returns the correct per-platform `baseUri`, the data 360 route can be re-evaluated.
|
|
7610
|
+
// This mechanism is NOT intended to be re-used outside of this initial context.
|
|
7611
|
+
// This is a client-side routing key only.
|
|
7612
|
+
const DATA_360_CDP_URL_REWRITE_AUTH_SCOPE = 'data_360_cdp_url_rewrite';
|
|
7613
|
+
// The minted-JWT claim carrying the Data Cloud tenant-specific endpoint (TSE).
|
|
7614
|
+
// The server's `SFAPJwtClaimHandlerImpl` emits it for CDP-provisioned orgs as a
|
|
7615
|
+
// verbatim passthrough of `DataCloudTenant.getApiEndpoint()` — no normalization.
|
|
7616
|
+
// The exact FORM therefore varies and must not be assumed: it may be a bare host
|
|
7617
|
+
// (`<hash>.c360a.salesforce.com`) or a full URL with scheme
|
|
7618
|
+
// (`https://a360.cdp.<region>.aws.sfdc.cl`), and the suffix is cloud-dependent
|
|
7619
|
+
// (commercial `.salesforce.com`, substrate `.aws.sfdc.cl`, GovCloud
|
|
7620
|
+
// `.salesforce.mil`). This is why the interceptor strips any scheme before parsing
|
|
7621
|
+
// and applies no host-suffix policy — see the interceptor docblock's trust boundary.
|
|
7622
|
+
const CDP_URL_CLAIM = 'cdp_url';
|
|
7564
7623
|
function buildDispatchingSfapJwtResolver(legacyResolver, parameterizedResolver) {
|
|
7565
7624
|
return {
|
|
7566
7625
|
getJwt(params) {
|
|
@@ -7604,6 +7663,40 @@ function buildJwtAuthorizedSfapFetchServiceDescriptor(logger) {
|
|
|
7604
7663
|
tags: { authenticationScopes: 'sfap_api' },
|
|
7605
7664
|
};
|
|
7606
7665
|
}
|
|
7666
|
+
/**
|
|
7667
|
+
* Returns a service descriptor for the **direct-to-Data360** custom command
|
|
7668
|
+
* (CDP Query v3, host `*.c360a.salesforce.com`).
|
|
7669
|
+
*
|
|
7670
|
+
* Unlike SFAP, the per-tenant base host is NOT returned in the mint response's
|
|
7671
|
+
* `baseUri` (which is the fixed SFAP host); it rides on the minted JWT as the
|
|
7672
|
+
* `cdp_url` claim. The standard `JwtRequestModifier` only receives `extraInfo`,
|
|
7673
|
+
* never the decoded claims, so the host rewrite cannot be expressed as a modifier
|
|
7674
|
+
* — it must read the token directly. This descriptor therefore uses a bespoke
|
|
7675
|
+
* interceptor ({@link buildData360HostRewriteInterceptor}) that mints the
|
|
7676
|
+
* parameterized SFAP JWT, attaches the Bearer token, decodes `cdp_url`, and
|
|
7677
|
+
* rewrites the request host to that TSE.
|
|
7678
|
+
*
|
|
7679
|
+
* It reuses the module's `sfapJwtManager`: `cdp_url` is emitted on the same
|
|
7680
|
+
* `SFAP_API`-scope JWT, so the Data360 command mints the same kind of token — it
|
|
7681
|
+
* just forwards the data-cloud scopes via the context-seed `jwtMintParams`.
|
|
7682
|
+
*
|
|
7683
|
+
* Gated behind its own `data_360_cdp_url_rewrite` auth-scope tag so it binds ONLY to
|
|
7684
|
+
* the Data360 command — the SFAP fleet never flows past this interceptor.
|
|
7685
|
+
*/
|
|
7686
|
+
function buildJwtAuthorizedData360FetchServiceDescriptor(logger) {
|
|
7687
|
+
const data360FetchService = buildServiceDescriptor$2({
|
|
7688
|
+
createContext: createInstrumentationIdContext(),
|
|
7689
|
+
request: [
|
|
7690
|
+
buildThirdPartyTrackerRegisterInterceptor(),
|
|
7691
|
+
buildData360HostRewriteInterceptor(logger),
|
|
7692
|
+
],
|
|
7693
|
+
finally: [buildThirdPartyTrackerFinishInterceptor()],
|
|
7694
|
+
});
|
|
7695
|
+
return {
|
|
7696
|
+
...data360FetchService,
|
|
7697
|
+
tags: { authenticationScopes: DATA_360_CDP_URL_REWRITE_AUTH_SCOPE },
|
|
7698
|
+
};
|
|
7699
|
+
}
|
|
7607
7700
|
/**
|
|
7608
7701
|
* Returns a service descriptor for a fetch service that includes one-off copilot
|
|
7609
7702
|
* hacks. This fetch service is not intended for use by anything other than
|
|
@@ -7704,6 +7797,74 @@ function buildSfapJwtRequestModifier(logger) {
|
|
|
7704
7797
|
function buildJwtRequestInterceptor(logger) {
|
|
7705
7798
|
return buildJwtRequestHeaderInterceptor(sfapJwtManager, buildSfapJwtRequestModifier(logger));
|
|
7706
7799
|
}
|
|
7800
|
+
/**
|
|
7801
|
+
* Request interceptor for the direct-to-Data360 command. It cannot use the
|
|
7802
|
+
* standard `JwtRequestModifier` seam because the tenant host is a JWT *claim*
|
|
7803
|
+
* (`cdp_url`), and modifiers only receive `extraInfo`. So — like the copilot
|
|
7804
|
+
* interceptor that reads `decodedInfo.iss` — it holds the token directly:
|
|
7805
|
+
*
|
|
7806
|
+
* 1. Read the command's `jwtMintParams` off the per-request context seed and
|
|
7807
|
+
* mint (via the parameterized SFAP resolver, routed by the dispatching
|
|
7808
|
+
* resolver inside `sfapJwtManager`). Without mint params there is no token
|
|
7809
|
+
* to authorize with, so leave the request untouched.
|
|
7810
|
+
* 2. Decode `cdp_url` from the JWT and resolve the tenant-specific endpoint
|
|
7811
|
+
* (TSE). `cdp_url` is a bare host, so a scheme is prepended before parsing
|
|
7812
|
+
* and the protocol is forced to `https:`.
|
|
7813
|
+
* 3. Only after a usable `cdp_url` is confirmed, attach `Authorization: Bearer
|
|
7814
|
+
* <jwt>` and rewrite the request URL's host/protocol to the TSE.
|
|
7815
|
+
*
|
|
7816
|
+
* **Trust boundary.** `cdp_url` is a claim on a first-party, server-minted JWT
|
|
7817
|
+
* delivered over the same-origin Aura transport, so the interceptor does NOT police
|
|
7818
|
+
* its contents (no host-suffix or format allowlist) — the routing host is the
|
|
7819
|
+
* minting service's responsibility, and this mirrors the SFAP sibling, which
|
|
7820
|
+
* likewise trusts the server-provided `baseUri` rewrite target. The one guard that
|
|
7821
|
+
* remains is shape hygiene: if `cdp_url` is absent/empty/non-string (org not
|
|
7822
|
+
* CDP-provisioned, so the server's claim gate did not fire) the interceptor throws
|
|
7823
|
+
* a developer-facing error instead of an opaque parse failure. A minted token is
|
|
7824
|
+
* never attached until a usable host is in hand.
|
|
7825
|
+
*/
|
|
7826
|
+
function buildData360HostRewriteInterceptor(logger) {
|
|
7827
|
+
return (fetchArgs, context) => {
|
|
7828
|
+
const mintParams = context?.[JWT_MINT_PARAMS_SEED_KEY];
|
|
7829
|
+
// No mint params → not a parameterized Data360 request. Nothing to do.
|
|
7830
|
+
if (mintParams === undefined) {
|
|
7831
|
+
return resolvedPromiseLike$2(fetchArgs);
|
|
7832
|
+
}
|
|
7833
|
+
return resolvedPromiseLike$2(sfapJwtManager.getJwt(mintParams)).then((token) => {
|
|
7834
|
+
const [resource, request] = fetchArgs;
|
|
7835
|
+
if (typeof resource !== 'string' && !(resource instanceof URL)) {
|
|
7836
|
+
// istanbul ignore else: not exercised under NODE_ENV=production
|
|
7837
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
7838
|
+
throw new Error('Data360 fetch service expects a string or URL resource');
|
|
7839
|
+
}
|
|
7840
|
+
return fetchArgs;
|
|
7841
|
+
}
|
|
7842
|
+
const cdpUrl = token.decodedInfo?.[CDP_URL_CLAIM];
|
|
7843
|
+
// Require a non-empty string. This is shape hygiene, NOT a content
|
|
7844
|
+
// policy: the routing host is the minting service's responsibility, and
|
|
7845
|
+
// we deliberately do not couple to its contents (no host-suffix/format
|
|
7846
|
+
// check — the SFAP sibling likewise trusts its server-provided rewrite
|
|
7847
|
+
// target). We only confirm we were handed a usable host string; a
|
|
7848
|
+
// missing/empty/non-string claim (org not Data Cloud provisioned, so the
|
|
7849
|
+
// server's claim gate did not fire) fails with a clear error rather than
|
|
7850
|
+
// an opaque `new URL` TypeError. The `typeof` check also narrows `cdpUrl`
|
|
7851
|
+
// to `string` for the `.replace` below.
|
|
7852
|
+
if (typeof cdpUrl !== 'string' || cdpUrl.length === 0) {
|
|
7853
|
+
logger.warn(`Data360 fetch service: minted JWT has no usable "${CDP_URL_CLAIM}" claim. The org may not be Data Cloud provisioned.`);
|
|
7854
|
+
throw new Error(`Data360 fetch service: minted JWT has no usable "${CDP_URL_CLAIM}" claim; cannot route the request to a Data Cloud tenant endpoint.`);
|
|
7855
|
+
}
|
|
7856
|
+
// `cdp_url` is a bare host (no scheme); prepend https so `new URL`
|
|
7857
|
+
// parses it as an origin. Force https regardless of any scheme in the
|
|
7858
|
+
// claim — the TSE is always TLS.
|
|
7859
|
+
const tse = new URL(`https://${cdpUrl.replace(/^[a-z]+:\/\//i, '')}`);
|
|
7860
|
+
const authorizedArgs = setHeaderAuthorization(token, [resource, request]);
|
|
7861
|
+
const url = typeof resource === 'string' ? new URL(resource) : new URL(resource.toString());
|
|
7862
|
+
url.host = tse.host;
|
|
7863
|
+
url.protocol = 'https:';
|
|
7864
|
+
return [url, authorizedArgs[1]];
|
|
7865
|
+
});
|
|
7866
|
+
};
|
|
7867
|
+
}
|
|
7707
7868
|
/**
|
|
7708
7869
|
* Wraps the legacy `buildJwtRequestHeaderInterceptor` with a pass-through guard:
|
|
7709
7870
|
* when the parameterized interceptor has already authorized the request (an
|
|
@@ -11234,16 +11395,18 @@ function initializeOneStore(luvio) {
|
|
|
11234
11395
|
};
|
|
11235
11396
|
// set flags based on gates
|
|
11236
11397
|
featureFlagsService.set('useOneStoreGraphQL', useOneStoreGraphql.isOpen({ fallback: false }));
|
|
11237
|
-
//
|
|
11238
|
-
//
|
|
11239
|
-
//
|
|
11240
|
-
//
|
|
11241
|
-
|
|
11398
|
+
// Use the Aura transport for the OneStore GraphQL command by default. The
|
|
11399
|
+
// HTTP transport's CSRF handling is broken on Aura/Experience sites
|
|
11400
|
+
// (W-23092947), and defaulting to Aura keeps a single, known-good transport
|
|
11401
|
+
// across LEX and sites. Paired with the HTTP UIAPI fetch path being
|
|
11402
|
+
// disabled on sites (see network-fetch.ts).
|
|
11403
|
+
featureFlagsService.set('graphQLUseAura', true);
|
|
11242
11404
|
const services = [
|
|
11243
11405
|
instrumentationServiceDescriptor,
|
|
11244
11406
|
buildLexRuntimeDefaultFetchServiceDescriptor(loggerService, retryService),
|
|
11245
11407
|
buildUnauthorizedFetchServiceDescriptor(),
|
|
11246
11408
|
buildJwtAuthorizedSfapFetchServiceDescriptor(loggerService),
|
|
11409
|
+
buildJwtAuthorizedData360FetchServiceDescriptor(loggerService),
|
|
11247
11410
|
buildCopilotFetchServiceDescriptor(loggerService),
|
|
11248
11411
|
buildAuraNetworkService(),
|
|
11249
11412
|
buildServiceDescriptor$j(instrumentationServiceDescriptor.service),
|
|
@@ -11298,4 +11461,4 @@ function ldsEngineCreator() {
|
|
|
11298
11461
|
}
|
|
11299
11462
|
|
|
11300
11463
|
export { LexRequestStrategy, PdlPrefetcherEventType, PdlRequestPriority, buildPredictorForContext, configService, ldsEngineCreator as default, initializeLDS, initializeOneStore, notifyUpdateAvailableFactory, registerRequestStrategy, saveRequestAsPrediction, subscribeToPrefetcherEvents, unregisterRequestStrategy, whenPredictionsReady };
|
|
11301
|
-
// version: 1.
|
|
11464
|
+
// version: 1.448.0-ea92d38c8e
|
|
@@ -5,6 +5,27 @@ import { type LoggerService } from '@conduit-client/utils';
|
|
|
5
5
|
export declare function buildDispatchingSfapJwtResolver(legacyResolver: JwtResolver<ExtraInfo>, parameterizedResolver: JwtResolver<ExtraInfo>): JwtResolver<ExtraInfo>;
|
|
6
6
|
export declare function prefetchSfapJwt(): Promise<undefined>;
|
|
7
7
|
export declare function buildJwtAuthorizedSfapFetchServiceDescriptor(logger: LoggerService): FetchServiceDescriptor;
|
|
8
|
+
/**
|
|
9
|
+
* Returns a service descriptor for the **direct-to-Data360** custom command
|
|
10
|
+
* (CDP Query v3, host `*.c360a.salesforce.com`).
|
|
11
|
+
*
|
|
12
|
+
* Unlike SFAP, the per-tenant base host is NOT returned in the mint response's
|
|
13
|
+
* `baseUri` (which is the fixed SFAP host); it rides on the minted JWT as the
|
|
14
|
+
* `cdp_url` claim. The standard `JwtRequestModifier` only receives `extraInfo`,
|
|
15
|
+
* never the decoded claims, so the host rewrite cannot be expressed as a modifier
|
|
16
|
+
* — it must read the token directly. This descriptor therefore uses a bespoke
|
|
17
|
+
* interceptor ({@link buildData360HostRewriteInterceptor}) that mints the
|
|
18
|
+
* parameterized SFAP JWT, attaches the Bearer token, decodes `cdp_url`, and
|
|
19
|
+
* rewrites the request host to that TSE.
|
|
20
|
+
*
|
|
21
|
+
* It reuses the module's `sfapJwtManager`: `cdp_url` is emitted on the same
|
|
22
|
+
* `SFAP_API`-scope JWT, so the Data360 command mints the same kind of token — it
|
|
23
|
+
* just forwards the data-cloud scopes via the context-seed `jwtMintParams`.
|
|
24
|
+
*
|
|
25
|
+
* Gated behind its own `data_360_cdp_url_rewrite` auth-scope tag so it binds ONLY to
|
|
26
|
+
* the Data360 command — the SFAP fleet never flows past this interceptor.
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildJwtAuthorizedData360FetchServiceDescriptor(logger: LoggerService): FetchServiceDescriptor;
|
|
8
29
|
/**
|
|
9
30
|
* Returns a service descriptor for a fetch service that includes one-off copilot
|
|
10
31
|
* hacks. This fetch service is not intended for use by anything other than
|
|
@@ -47,4 +47,4 @@ export declare function hasAuthorizationHeader([resource, options]: FetchParamet
|
|
|
47
47
|
* @param jwtManager - the dispatching SFAP JwtManager
|
|
48
48
|
* @param jwtRequestModifier - applies the minted `extraInfo.baseUri` to the request URL
|
|
49
49
|
*/
|
|
50
|
-
export declare function buildJwtParameterizationInterceptor(jwtManager: JwtManager<unknown, ExtraInfo>, jwtRequestModifier?: JwtRequestModifier): RequestInterceptor;
|
|
50
|
+
export declare function buildJwtParameterizationInterceptor(jwtManager: JwtManager<unknown, ExtraInfo>, jwtRequestModifier?: JwtRequestModifier<ExtraInfo>): RequestInterceptor;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/lds-runtime-aura",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.448.0",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"description": "LDS engine for Aura runtime.",
|
|
6
6
|
"main": "dist/ldsEngineCreator.js",
|
|
@@ -34,61 +34,61 @@
|
|
|
34
34
|
"release:corejar": "yarn build && ../core-build/scripts/core.js --name=lds-runtime-aura"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@conduit-client/service-provisioner": "3.
|
|
38
|
-
"@conduit-client/tools-core": "3.
|
|
39
|
-
"@salesforce/lds-adapters-apex": "^1.
|
|
40
|
-
"@salesforce/lds-adapters-uiapi": "^1.
|
|
41
|
-
"@salesforce/lds-ads-bridge": "^1.
|
|
42
|
-
"@salesforce/lds-aura-storage": "^1.
|
|
43
|
-
"@salesforce/lds-bindings": "^1.
|
|
44
|
-
"@salesforce/lds-instrumentation": "^1.
|
|
45
|
-
"@salesforce/lds-network-adapter": "^1.
|
|
46
|
-
"@salesforce/lds-network-aura": "^1.
|
|
47
|
-
"@salesforce/lds-network-fetch": "^1.
|
|
37
|
+
"@conduit-client/service-provisioner": "3.25.0",
|
|
38
|
+
"@conduit-client/tools-core": "3.25.0",
|
|
39
|
+
"@salesforce/lds-adapters-apex": "^1.448.0",
|
|
40
|
+
"@salesforce/lds-adapters-uiapi": "^1.448.0",
|
|
41
|
+
"@salesforce/lds-ads-bridge": "^1.448.0",
|
|
42
|
+
"@salesforce/lds-aura-storage": "^1.448.0",
|
|
43
|
+
"@salesforce/lds-bindings": "^1.448.0",
|
|
44
|
+
"@salesforce/lds-instrumentation": "^1.448.0",
|
|
45
|
+
"@salesforce/lds-network-adapter": "^1.448.0",
|
|
46
|
+
"@salesforce/lds-network-aura": "^1.448.0",
|
|
47
|
+
"@salesforce/lds-network-fetch": "^1.448.0",
|
|
48
48
|
"jwt-encode": "1.0.1"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@conduit-client/command-aura-graphql-normalized-cache-control": "3.
|
|
52
|
-
"@conduit-client/command-aura-network": "3.
|
|
53
|
-
"@conduit-client/command-aura-normalized-cache-control": "3.
|
|
54
|
-
"@conduit-client/command-fetch-network": "3.
|
|
55
|
-
"@conduit-client/command-http-graphql-normalized-cache-control": "3.
|
|
56
|
-
"@conduit-client/command-http-normalized-cache-control": "3.
|
|
57
|
-
"@conduit-client/command-ndjson": "3.
|
|
58
|
-
"@conduit-client/command-network": "3.
|
|
59
|
-
"@conduit-client/command-sse": "3.
|
|
60
|
-
"@conduit-client/command-streaming": "3.
|
|
61
|
-
"@conduit-client/jwt-manager": "3.
|
|
62
|
-
"@conduit-client/service-aura-network": "3.
|
|
63
|
-
"@conduit-client/service-bindings-imperative": "3.
|
|
64
|
-
"@conduit-client/service-bindings-lwc": "3.
|
|
65
|
-
"@conduit-client/service-cache": "3.
|
|
66
|
-
"@conduit-client/service-cache-control": "3.
|
|
67
|
-
"@conduit-client/service-cache-inclusion-policy": "3.
|
|
68
|
-
"@conduit-client/service-config": "3.
|
|
69
|
-
"@conduit-client/service-feature-flags": "3.
|
|
70
|
-
"@conduit-client/service-fetch-network": "3.
|
|
71
|
-
"@conduit-client/service-instrument-command": "3.
|
|
72
|
-
"@conduit-client/service-pubsub": "3.
|
|
73
|
-
"@conduit-client/service-renewable-resource-manager": "3.
|
|
74
|
-
"@conduit-client/service-store": "3.
|
|
75
|
-
"@conduit-client/utils": "3.
|
|
51
|
+
"@conduit-client/command-aura-graphql-normalized-cache-control": "3.25.0",
|
|
52
|
+
"@conduit-client/command-aura-network": "3.25.0",
|
|
53
|
+
"@conduit-client/command-aura-normalized-cache-control": "3.25.0",
|
|
54
|
+
"@conduit-client/command-fetch-network": "3.25.0",
|
|
55
|
+
"@conduit-client/command-http-graphql-normalized-cache-control": "3.25.0",
|
|
56
|
+
"@conduit-client/command-http-normalized-cache-control": "3.25.0",
|
|
57
|
+
"@conduit-client/command-ndjson": "3.25.0",
|
|
58
|
+
"@conduit-client/command-network": "3.25.0",
|
|
59
|
+
"@conduit-client/command-sse": "3.25.0",
|
|
60
|
+
"@conduit-client/command-streaming": "3.25.0",
|
|
61
|
+
"@conduit-client/jwt-manager": "3.25.0",
|
|
62
|
+
"@conduit-client/service-aura-network": "3.25.0",
|
|
63
|
+
"@conduit-client/service-bindings-imperative": "3.25.0",
|
|
64
|
+
"@conduit-client/service-bindings-lwc": "3.25.0",
|
|
65
|
+
"@conduit-client/service-cache": "3.25.0",
|
|
66
|
+
"@conduit-client/service-cache-control": "3.25.0",
|
|
67
|
+
"@conduit-client/service-cache-inclusion-policy": "3.25.0",
|
|
68
|
+
"@conduit-client/service-config": "3.25.0",
|
|
69
|
+
"@conduit-client/service-feature-flags": "3.25.0",
|
|
70
|
+
"@conduit-client/service-fetch-network": "3.25.0",
|
|
71
|
+
"@conduit-client/service-instrument-command": "3.25.0",
|
|
72
|
+
"@conduit-client/service-pubsub": "3.25.0",
|
|
73
|
+
"@conduit-client/service-renewable-resource-manager": "3.25.0",
|
|
74
|
+
"@conduit-client/service-store": "3.25.0",
|
|
75
|
+
"@conduit-client/utils": "3.25.0",
|
|
76
76
|
"@luvio/network-adapter-composable": "0.161.0",
|
|
77
77
|
"@luvio/network-adapter-fetch": "0.161.0",
|
|
78
78
|
"@lwc/state": "^0.29.0",
|
|
79
|
-
"@salesforce/lds-adapters-onestore-graphql": "^1.
|
|
79
|
+
"@salesforce/lds-adapters-onestore-graphql": "^1.448.0",
|
|
80
80
|
"@salesforce/lds-adapters-uiapi-lex": "^1.415.0",
|
|
81
|
-
"@salesforce/lds-durable-storage": "^1.
|
|
82
|
-
"@salesforce/lds-luvio-service": "^1.
|
|
83
|
-
"@salesforce/lds-luvio-uiapi-records-service": "^1.
|
|
81
|
+
"@salesforce/lds-durable-storage": "^1.448.0",
|
|
82
|
+
"@salesforce/lds-luvio-service": "^1.448.0",
|
|
83
|
+
"@salesforce/lds-luvio-uiapi-records-service": "^1.448.0"
|
|
84
84
|
},
|
|
85
85
|
"luvioBundlesize": [
|
|
86
86
|
{
|
|
87
87
|
"path": "./dist/ldsEngineCreator.js",
|
|
88
88
|
"maxSize": {
|
|
89
|
-
"none": "
|
|
89
|
+
"none": "412 kB",
|
|
90
90
|
"min": "190 kB",
|
|
91
|
-
"compressed": "
|
|
91
|
+
"compressed": "72 kB"
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
],
|