@salesforce/lds-runtime-aura 1.450.0 → 1.451.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.
package/dist/ldsEngineCreator.js
CHANGED
|
@@ -22,9 +22,9 @@ import { instrument, getRecordAvatarsAdapterFactory, getRecordAdapterFactory, co
|
|
|
22
22
|
import { getInstrumentation } from 'o11y/client';
|
|
23
23
|
import { findExecutableOperation, buildGraphQLInputExtension, addTypenameToDocument } from 'force/luvioGraphqlNormalization';
|
|
24
24
|
import { print, resolveAndValidateGraphQLConfig, toGraphQLErrorResponse } from 'force/luvioOnestoreGraphqlParser';
|
|
25
|
-
import getServices, { setServices } from 'force/luvioServiceProvisioner1';
|
|
26
|
-
import { assertIsValid, JsonSchemaViolationError, MissingRequiredPropertyError } from 'force/luvioJsonschemaValidate5';
|
|
25
|
+
import getServices, { buildStaticServiceResolver, setServiceResolver, setServices } from 'force/luvioServiceProvisioner1';
|
|
27
26
|
import { dispatchGlobalEvent as dispatchGlobalEvent$1, executeGlobalControllerRawResponse } from 'aura';
|
|
27
|
+
import { assertIsValid, JsonSchemaViolationError, MissingRequiredPropertyError } from 'force/luvioJsonschemaValidate5';
|
|
28
28
|
import auraNetworkAdapter, { dispatchAuraAction, defaultActionConfig, instrument as instrument$1, forceRecordTransactionsDisabled as forceRecordTransactionsDisabled$1, ldsNetworkAdapterInstrument, CrudEventState, CrudEventType, UIAPI_RECORDS_PATH, UIAPI_RELATED_LIST_RECORDS_BATCH_PATH, UIAPI_RELATED_LIST_RECORDS_PATH } from 'force/ldsNetwork';
|
|
29
29
|
import { ThirdPartyTracker } from 'instrumentation:thirdPartyTracker';
|
|
30
30
|
import { markStart, markEnd, counter, registerCacheStats, perfStart, perfEnd, registerPeriodicLogger, interaction, timer, mark } from 'instrumentation/service';
|
|
@@ -2590,7 +2590,7 @@ function buildServiceDescriptor$d(luvio) {
|
|
|
2590
2590
|
},
|
|
2591
2591
|
};
|
|
2592
2592
|
}
|
|
2593
|
-
// version: 1.
|
|
2593
|
+
// version: 1.451.0-dev1-a2c5e50338
|
|
2594
2594
|
|
|
2595
2595
|
class AuraGraphQLNormalizedCacheControlCommand extends AuraNormalizedCacheControlCommand {
|
|
2596
2596
|
constructor(config, documentRootType, services) {
|
|
@@ -2929,7 +2929,7 @@ function buildServiceDescriptor$9(notifyRecordUpdateAvailable, getNormalizedLuvi
|
|
|
2929
2929
|
},
|
|
2930
2930
|
};
|
|
2931
2931
|
}
|
|
2932
|
-
// version: 1.
|
|
2932
|
+
// version: 1.451.0-dev1-a2c5e50338
|
|
2933
2933
|
|
|
2934
2934
|
class RetryService {
|
|
2935
2935
|
constructor(defaultRetryPolicy) {
|
|
@@ -3081,6 +3081,90 @@ function buildServiceDescriptor$8(defaultRetryPolicy) {
|
|
|
3081
3081
|
};
|
|
3082
3082
|
}
|
|
3083
3083
|
|
|
3084
|
+
function tagsEqual(a, b) {
|
|
3085
|
+
const keys = Object.keys(b);
|
|
3086
|
+
return (a !== undefined && keys.length === Object.keys(a).length && keys.every((k) => a[k] === b[k]));
|
|
3087
|
+
}
|
|
3088
|
+
// W-23092947: on Aura sites HTTP-to-core is broken, so withhold every `fetch` service
|
|
3089
|
+
// except those whose request tags are in `allowedFetchTags` (the external hosts). A
|
|
3090
|
+
// withheld optional fetch resolves to `undefined`, making `AuraNetworkCommand` use Aura.
|
|
3091
|
+
function buildAuraSiteServiceResolver(services, allowedFetchTags) {
|
|
3092
|
+
const staticResolver = buildStaticServiceResolver(services);
|
|
3093
|
+
const isWithheld = (req) => req.type === 'fetch' && !allowedFetchTags.some((allowed) => tagsEqual(req.tags, allowed));
|
|
3094
|
+
return (requested) => {
|
|
3095
|
+
const passthrough = {};
|
|
3096
|
+
const withheldUnresolved = [];
|
|
3097
|
+
for (const [name, req] of Object.entries(requested)) {
|
|
3098
|
+
if (!isWithheld(req)) {
|
|
3099
|
+
passthrough[name] = req;
|
|
3100
|
+
}
|
|
3101
|
+
else if (!('optional' in req && req.optional)) {
|
|
3102
|
+
withheldUnresolved.push(name);
|
|
3103
|
+
}
|
|
3104
|
+
}
|
|
3105
|
+
return staticResolver(passthrough).then(([resolved, unresolved]) => [
|
|
3106
|
+
resolved,
|
|
3107
|
+
[...unresolved, ...withheldUnresolved],
|
|
3108
|
+
]);
|
|
3109
|
+
};
|
|
3110
|
+
}
|
|
3111
|
+
|
|
3112
|
+
/**
|
|
3113
|
+
* Helpers for reaching the Aura framework from the LDS Aura runtime.
|
|
3114
|
+
*
|
|
3115
|
+
* `window.$A` is only present when the runtime is hosted inside Aura (LEX or
|
|
3116
|
+
* an Aura site); in tests and non-Aura runtimes it is absent. `getAura()`
|
|
3117
|
+
* centralizes the guarded lookup so the `$A` access lives in one place instead
|
|
3118
|
+
* of being duplicated across modules.
|
|
3119
|
+
*/
|
|
3120
|
+
/**
|
|
3121
|
+
* Returns the Aura framework global (`window.$A`) when running inside Aura
|
|
3122
|
+
* (LEX or an Aura site), or `undefined` in tests and non-Aura runtimes.
|
|
3123
|
+
* Centralizes the guarded `$A` lookup so callers reach for it once and read
|
|
3124
|
+
* intent instead of repeating `typeof window` / `$A` guards.
|
|
3125
|
+
*/
|
|
3126
|
+
function getAura() {
|
|
3127
|
+
if (typeof window === 'undefined') {
|
|
3128
|
+
return undefined;
|
|
3129
|
+
}
|
|
3130
|
+
return window.$A;
|
|
3131
|
+
}
|
|
3132
|
+
/**
|
|
3133
|
+
* Fires an Aura application-level event (e.g. `aura:invalidSession`). Thin
|
|
3134
|
+
* pass-through to the `aura` framework module so callers depend on this util
|
|
3135
|
+
* rather than importing `aura` directly.
|
|
3136
|
+
*/
|
|
3137
|
+
function dispatchGlobalEvent(...args) {
|
|
3138
|
+
dispatchGlobalEvent$1(...args);
|
|
3139
|
+
}
|
|
3140
|
+
/**
|
|
3141
|
+
* Returns `$A.clientService` when running inside an Aura environment, or
|
|
3142
|
+
* `undefined` otherwise. Defensive: never throws.
|
|
3143
|
+
*/
|
|
3144
|
+
function getAuraClientService() {
|
|
3145
|
+
return getAura()?.clientService;
|
|
3146
|
+
}
|
|
3147
|
+
/**
|
|
3148
|
+
* Returns `true` when the Aura runtime is hosted inside an Aura/Experience
|
|
3149
|
+
* site (Experience Builder / `communityApp`) rather than LEX (one.app).
|
|
3150
|
+
* `$A.get('$Site')` is present and truthy on Aura sites and absent/falsy in
|
|
3151
|
+
* LEX. A stable per-page signal, so it is safe to evaluate once at module
|
|
3152
|
+
* load. Defensive: never throws.
|
|
3153
|
+
*
|
|
3154
|
+
* Used to keep the OneStore GraphQL adapter — and the HTTP UIAPI fetch path —
|
|
3155
|
+
* on the Aura transport for sites, because the HTTP transport's CSRF handling
|
|
3156
|
+
* does not work in the Aura Sites runtime (W-23092947).
|
|
3157
|
+
*/
|
|
3158
|
+
function isAuraSite() {
|
|
3159
|
+
const aura = getAura();
|
|
3160
|
+
try {
|
|
3161
|
+
return !!aura?.get?.('$Site');
|
|
3162
|
+
}
|
|
3163
|
+
catch {
|
|
3164
|
+
return false;
|
|
3165
|
+
}
|
|
3166
|
+
}
|
|
3167
|
+
|
|
3084
3168
|
class BasicRenewableResourceManager {
|
|
3085
3169
|
constructor(config) {
|
|
3086
3170
|
this.config = config;
|
|
@@ -5843,63 +5927,7 @@ function getEnvironmentSetting(name) {
|
|
|
5843
5927
|
}
|
|
5844
5928
|
return undefined;
|
|
5845
5929
|
}
|
|
5846
|
-
// version: 1.
|
|
5847
|
-
|
|
5848
|
-
/**
|
|
5849
|
-
* Helpers for reaching the Aura framework from the LDS Aura runtime.
|
|
5850
|
-
*
|
|
5851
|
-
* `window.$A` is only present when the runtime is hosted inside Aura (LEX or
|
|
5852
|
-
* an Aura site); in tests and non-Aura runtimes it is absent. `getAura()`
|
|
5853
|
-
* centralizes the guarded lookup so the `$A` access lives in one place instead
|
|
5854
|
-
* of being duplicated across modules.
|
|
5855
|
-
*/
|
|
5856
|
-
/**
|
|
5857
|
-
* Returns the Aura framework global (`window.$A`) when running inside Aura
|
|
5858
|
-
* (LEX or an Aura site), or `undefined` in tests and non-Aura runtimes.
|
|
5859
|
-
* Centralizes the guarded `$A` lookup so callers reach for it once and read
|
|
5860
|
-
* intent instead of repeating `typeof window` / `$A` guards.
|
|
5861
|
-
*/
|
|
5862
|
-
function getAura() {
|
|
5863
|
-
if (typeof window === 'undefined') {
|
|
5864
|
-
return undefined;
|
|
5865
|
-
}
|
|
5866
|
-
return window.$A;
|
|
5867
|
-
}
|
|
5868
|
-
/**
|
|
5869
|
-
* Fires an Aura application-level event (e.g. `aura:invalidSession`). Thin
|
|
5870
|
-
* pass-through to the `aura` framework module so callers depend on this util
|
|
5871
|
-
* rather than importing `aura` directly.
|
|
5872
|
-
*/
|
|
5873
|
-
function dispatchGlobalEvent(...args) {
|
|
5874
|
-
dispatchGlobalEvent$1(...args);
|
|
5875
|
-
}
|
|
5876
|
-
/**
|
|
5877
|
-
* Returns `$A.clientService` when running inside an Aura environment, or
|
|
5878
|
-
* `undefined` otherwise. Defensive: never throws.
|
|
5879
|
-
*/
|
|
5880
|
-
function getAuraClientService() {
|
|
5881
|
-
return getAura()?.clientService;
|
|
5882
|
-
}
|
|
5883
|
-
/**
|
|
5884
|
-
* Returns `true` when the Aura runtime is hosted inside an Aura/Experience
|
|
5885
|
-
* site (Experience Builder / `communityApp`) rather than LEX (one.app).
|
|
5886
|
-
* `$A.get('$Site')` is present and truthy on Aura sites and absent/falsy in
|
|
5887
|
-
* LEX. A stable per-page signal, so it is safe to evaluate once at module
|
|
5888
|
-
* load. Defensive: never throws.
|
|
5889
|
-
*
|
|
5890
|
-
* Used to keep the OneStore GraphQL adapter — and the HTTP UIAPI fetch path —
|
|
5891
|
-
* on the Aura transport for sites, because the HTTP transport's CSRF handling
|
|
5892
|
-
* does not work in the Aura Sites runtime (W-23092947).
|
|
5893
|
-
*/
|
|
5894
|
-
function isAuraSite() {
|
|
5895
|
-
const aura = getAura();
|
|
5896
|
-
try {
|
|
5897
|
-
return !!aura?.get?.('$Site');
|
|
5898
|
-
}
|
|
5899
|
-
catch {
|
|
5900
|
-
return false;
|
|
5901
|
-
}
|
|
5902
|
-
}
|
|
5930
|
+
// version: 1.451.0-dev1-70d3966695
|
|
5903
5931
|
|
|
5904
5932
|
const auraClientService = getAuraClientService();
|
|
5905
5933
|
const defaultConfig = {
|
|
@@ -11434,6 +11462,13 @@ function initializeLDS() {
|
|
|
11434
11462
|
}
|
|
11435
11463
|
return luvio; // Return the luvio instance so that we can inject it for OneStore
|
|
11436
11464
|
}
|
|
11465
|
+
// W-23092947: fetch request tags allowed to stay on HTTP on Aura sites (external hosts).
|
|
11466
|
+
// Everything else (core UIAPI/GraphQL) is withheld so it falls back to Aura transport.
|
|
11467
|
+
const AURA_SITE_ALLOWED_FETCH_TAGS = [
|
|
11468
|
+
{ authenticationScopes: 'sfap_api' },
|
|
11469
|
+
{ authenticationScopes: 'data_360_cdp_url_rewrite' },
|
|
11470
|
+
{ specialHacksFor: 'copilot' }, // copilot
|
|
11471
|
+
];
|
|
11437
11472
|
// Initializes OneStore in LEX
|
|
11438
11473
|
function initializeOneStore(luvio) {
|
|
11439
11474
|
const loggerService = new ConsoleLogger('ERROR');
|
|
@@ -11528,7 +11563,13 @@ function initializeOneStore(luvio) {
|
|
|
11528
11563
|
prefetchSfapJwtServiceDescriptor,
|
|
11529
11564
|
csrfTokenManagerServiceDescriptor,
|
|
11530
11565
|
];
|
|
11531
|
-
|
|
11566
|
+
// W-23092947: Aura sites route core-bound commands over Aura (see the resolver).
|
|
11567
|
+
if (isAuraSite()) {
|
|
11568
|
+
setServiceResolver(buildAuraSiteServiceResolver(services, AURA_SITE_ALLOWED_FETCH_TAGS));
|
|
11569
|
+
}
|
|
11570
|
+
else {
|
|
11571
|
+
setServices(services);
|
|
11572
|
+
}
|
|
11532
11573
|
}
|
|
11533
11574
|
function buildAuraNetworkService() {
|
|
11534
11575
|
return {
|
|
@@ -11546,4 +11587,4 @@ function ldsEngineCreator() {
|
|
|
11546
11587
|
}
|
|
11547
11588
|
|
|
11548
11589
|
export { LexRequestStrategy, PDL_ENGINE_REGISTRATION_ID, PdlPrefetcherEventType, PdlRequestPriority, buildPredictorForContext, configService, ldsEngineCreator as default, initializeLDS, initializeOneStore, notifyUpdateAvailableFactory, registerRequestStrategy, saveRequestAsPrediction, subscribeToPrefetcherEvents, unregisterRequestStrategy, whenPredictionsReady };
|
|
11549
|
-
// version: 1.
|
|
11590
|
+
// version: 1.451.0-dev1-a2c5e50338
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type PublishedService, type ServiceResolver, type ServicesRequest } from '@conduit-client/service-provisioner/v1';
|
|
2
|
+
import { type ServiceDescriptor } from '@conduit-client/utils';
|
|
3
|
+
type Tags = Record<string, string>;
|
|
4
|
+
export declare function buildAuraSiteServiceResolver<R extends ServicesRequest<ServiceDescriptor<unknown>>>(services: PublishedService[], allowedFetchTags: ReadonlyArray<Tags>): ServiceResolver<R>;
|
|
5
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/lds-runtime-aura",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.451.0-dev1",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"description": "LDS engine for Aura runtime.",
|
|
6
6
|
"main": "dist/ldsEngineCreator.js",
|
|
@@ -36,15 +36,15 @@
|
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@conduit-client/service-provisioner": "3.26.0",
|
|
38
38
|
"@conduit-client/tools-core": "3.26.0",
|
|
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.
|
|
39
|
+
"@salesforce/lds-adapters-apex": "^1.451.0-dev1",
|
|
40
|
+
"@salesforce/lds-adapters-uiapi": "^1.451.0-dev1",
|
|
41
|
+
"@salesforce/lds-ads-bridge": "^1.451.0-dev1",
|
|
42
|
+
"@salesforce/lds-aura-storage": "^1.451.0-dev1",
|
|
43
|
+
"@salesforce/lds-bindings": "^1.451.0-dev1",
|
|
44
|
+
"@salesforce/lds-instrumentation": "^1.451.0-dev1",
|
|
45
|
+
"@salesforce/lds-network-adapter": "^1.451.0-dev1",
|
|
46
|
+
"@salesforce/lds-network-aura": "^1.451.0-dev1",
|
|
47
|
+
"@salesforce/lds-network-fetch": "^1.451.0-dev1",
|
|
48
48
|
"jwt-encode": "1.0.1"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
@@ -76,17 +76,17 @@
|
|
|
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.451.0-dev1",
|
|
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.451.0-dev1",
|
|
82
|
+
"@salesforce/lds-luvio-service": "^1.451.0-dev1",
|
|
83
|
+
"@salesforce/lds-luvio-uiapi-records-service": "^1.451.0-dev1"
|
|
84
84
|
},
|
|
85
85
|
"luvioBundlesize": [
|
|
86
86
|
{
|
|
87
87
|
"path": "./dist/ldsEngineCreator.js",
|
|
88
88
|
"maxSize": {
|
|
89
|
-
"none": "
|
|
89
|
+
"none": "418 kB",
|
|
90
90
|
"min": "190 kB",
|
|
91
91
|
"compressed": "73 kB"
|
|
92
92
|
}
|