@salesforce/lds-worker-api 1.229.0-dev4 → 1.229.0-dev6
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.
|
@@ -795,4 +795,4 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
795
795
|
}
|
|
796
796
|
|
|
797
797
|
export { createPrimingSession, draftManager, draftQueue, executeAdapter, executeMutatingAdapter, getImperativeAdapterNames, invokeAdapter, invokeAdapterWithDraftToReplace, invokeAdapterWithMetadata, nimbusDraftQueue, setMetadataTTL, setUiApiRecordTTL, subscribeToAdapter };
|
|
798
|
-
// version: 1.229.0-
|
|
798
|
+
// version: 1.229.0-dev6-53f3d6911
|
|
@@ -2275,6 +2275,34 @@ var FragmentReadResultState$1;
|
|
|
2275
2275
|
const FRAGMENT_READ_RESULT_MISSING = {
|
|
2276
2276
|
state: FragmentReadResultState$1.Missing,
|
|
2277
2277
|
};
|
|
2278
|
+
function resolveLink$1(reader, storeLink, version) {
|
|
2279
|
+
const { StoreLinkStateValues } = reader;
|
|
2280
|
+
const linkState = reader.getLinkState(storeLink);
|
|
2281
|
+
switch (linkState.state) {
|
|
2282
|
+
case StoreLinkStateValues.RefNotPresent:
|
|
2283
|
+
case StoreLinkStateValues.NotPresent:
|
|
2284
|
+
case StoreLinkStateValues.Missing:
|
|
2285
|
+
reader.markMissingLink(storeLink.__ref);
|
|
2286
|
+
reader.markMissing();
|
|
2287
|
+
return;
|
|
2288
|
+
case StoreLinkStateValues.Pending:
|
|
2289
|
+
reader.markPending();
|
|
2290
|
+
return;
|
|
2291
|
+
case StoreLinkStateValues.Null:
|
|
2292
|
+
return;
|
|
2293
|
+
}
|
|
2294
|
+
const { key: __ref } = linkState;
|
|
2295
|
+
return reader.read({
|
|
2296
|
+
recordId: __ref,
|
|
2297
|
+
node: {
|
|
2298
|
+
kind: 'Fragment',
|
|
2299
|
+
private: [],
|
|
2300
|
+
opaque: true,
|
|
2301
|
+
version,
|
|
2302
|
+
},
|
|
2303
|
+
variables: {},
|
|
2304
|
+
});
|
|
2305
|
+
}
|
|
2278
2306
|
class Reader {
|
|
2279
2307
|
constructor(store, variables, refresh, baseSnapshot, ttlStrategy) {
|
|
2280
2308
|
this.store = store;
|
|
@@ -3841,7 +3869,7 @@ function createResourceParamsImpl(config, configMetadata) {
|
|
|
3841
3869
|
}
|
|
3842
3870
|
return resourceParams;
|
|
3843
3871
|
}
|
|
3844
|
-
// engine version: 0.146.0-
|
|
3872
|
+
// engine version: 0.146.0-dev4-c265089a
|
|
3845
3873
|
|
|
3846
3874
|
/**
|
|
3847
3875
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -3968,7 +3996,7 @@ function withDefaultLuvio(callback) {
|
|
|
3968
3996
|
}
|
|
3969
3997
|
callbacks.push(callback);
|
|
3970
3998
|
}
|
|
3971
|
-
// version: 1.229.0-
|
|
3999
|
+
// version: 1.229.0-dev6-53f3d6911
|
|
3972
4000
|
|
|
3973
4001
|
// TODO [TD-0081508]: once that TD is fulfilled we can probably change this file
|
|
3974
4002
|
function instrumentAdapter$1(createFunction, _metadata) {
|
|
@@ -15429,7 +15457,7 @@ function gql(literals, ...subs) {
|
|
|
15429
15457
|
}
|
|
15430
15458
|
return superResult;
|
|
15431
15459
|
}
|
|
15432
|
-
// version: 1.229.0-
|
|
15460
|
+
// version: 1.229.0-dev6-53f3d6911
|
|
15433
15461
|
|
|
15434
15462
|
function unwrap(data) {
|
|
15435
15463
|
// The lwc-luvio bindings import a function from lwc called "unwrap".
|
|
@@ -16353,7 +16381,7 @@ function createGraphQLWireAdapterConstructor(luvio, adapter, metadata, astResolv
|
|
|
16353
16381
|
const { apiFamily, name } = metadata;
|
|
16354
16382
|
return createGraphQLWireAdapterConstructor$1(adapter, `${apiFamily}.${name}`, luvio, astResolver);
|
|
16355
16383
|
}
|
|
16356
|
-
// version: 1.229.0-
|
|
16384
|
+
// version: 1.229.0-dev6-53f3d6911
|
|
16357
16385
|
|
|
16358
16386
|
/**
|
|
16359
16387
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -16452,11 +16480,11 @@ var TypeCheckShapes;
|
|
|
16452
16480
|
TypeCheckShapes[TypeCheckShapes["Integer"] = 3] = "Integer";
|
|
16453
16481
|
TypeCheckShapes[TypeCheckShapes["Unsupported"] = 4] = "Unsupported";
|
|
16454
16482
|
})(TypeCheckShapes || (TypeCheckShapes = {}));
|
|
16455
|
-
// engine version: 0.146.0-
|
|
16483
|
+
// engine version: 0.146.0-dev4-c265089a
|
|
16456
16484
|
|
|
16457
16485
|
const { keys: ObjectKeys$3, create: ObjectCreate$3 } = Object;
|
|
16458
16486
|
|
|
16459
|
-
const { assign: assign$9, create: create$9, freeze: freeze$4, keys: keys$b } = Object;
|
|
16487
|
+
const { assign: assign$9, create: create$9, freeze: freeze$4, isFrozen: isFrozen$2, keys: keys$b } = Object;
|
|
16460
16488
|
|
|
16461
16489
|
ObjectCreate$3(null);
|
|
16462
16490
|
|
|
@@ -16826,7 +16854,7 @@ function buildAdapterValidationConfig$1(displayName, paramsMeta) {
|
|
|
16826
16854
|
}
|
|
16827
16855
|
const keyPrefix$1 = 'UiApi';
|
|
16828
16856
|
|
|
16829
|
-
const { assign: assign$8, create: create$8, freeze: freeze$3, keys: keys$a } = Object;
|
|
16857
|
+
const { assign: assign$8, create: create$8, freeze: freeze$3, isFrozen: isFrozen$1, keys: keys$a } = Object;
|
|
16830
16858
|
const { hasOwnProperty: hasOwnProperty$1 } = Object.prototype;
|
|
16831
16859
|
const { split, endsWith } = String.prototype;
|
|
16832
16860
|
const { isArray: isArray$7 } = Array;
|
|
@@ -19948,7 +19976,11 @@ function markNulledOutPath(record, path) {
|
|
|
19948
19976
|
}
|
|
19949
19977
|
const link = fieldValueRepresentation.link(fieldName);
|
|
19950
19978
|
const resolved = link.follow();
|
|
19951
|
-
if (isGraphNode(resolved) &&
|
|
19979
|
+
if (isGraphNode(resolved) &&
|
|
19980
|
+
resolved.isScalar('value') &&
|
|
19981
|
+
path.length > 0 &&
|
|
19982
|
+
// TODO [W-14082782]: temporary fix
|
|
19983
|
+
!isFrozen$1(link.data)) {
|
|
19952
19984
|
const linkState = link.linkData();
|
|
19953
19985
|
const fields = linkState === undefined ? [] : linkState.fields;
|
|
19954
19986
|
link.writeLinkData({
|
|
@@ -41169,7 +41201,7 @@ withDefaultLuvio((luvio) => {
|
|
|
41169
41201
|
throttle(60, 60000, createLDSAdapter(luvio, 'notifyListInfoUpdateAvailable', notifyUpdateAvailableFactory$1));
|
|
41170
41202
|
throttle(60, 60000, createLDSAdapter(luvio, 'notifyQuickActionDefaultsUpdateAvailable', notifyUpdateAvailableFactory));
|
|
41171
41203
|
});
|
|
41172
|
-
// version: 1.229.0-
|
|
41204
|
+
// version: 1.229.0-dev6-6005e174d
|
|
41173
41205
|
|
|
41174
41206
|
var caseSensitiveUserId = '005B0000000GR4OIAW';
|
|
41175
41207
|
|
|
@@ -46325,8 +46357,12 @@ function uuidv4() {
|
|
|
46325
46357
|
|
|
46326
46358
|
const HTTP_HEADER_RETRY_AFTER = 'Retry-After';
|
|
46327
46359
|
const HTTP_HEADER_IDEMPOTENCY_KEY = 'Idempotency-Key';
|
|
46360
|
+
const ERROR_CODE_IDEMPOTENCY_FEATURE_NOT_ENABLED = 'IDEMPOTENCY_FEATURE_NOT_ENABLED';
|
|
46361
|
+
const ERROR_CODE_IDEMPOTENCY_NOT_SUPPORTED = 'IDEMPOTENCY_NOT_SUPPORTED';
|
|
46328
46362
|
const ERROR_CODE_IDEMPOTENCY_KEY_USED_DIFFERENT_USER = 'IDEMPOTENCY_KEY_USED_DIFFERENT_USER';
|
|
46329
46363
|
const ERROR_CODE_IDEMPOTENCY_CONCURRENT_REQUEST = 'IDEMPOTENCY_CONCURRENT_REQUEST';
|
|
46364
|
+
const ERROR_CODE_IDEMPOTENCY_KEY_ALREADY_USED = 'IDEMPOTENCY_KEY_ALREADY_USED';
|
|
46365
|
+
const ERROR_CODE_IDEMPOTENCY_BACKEND_OPERATION_ERROR = 'IDEMPOTENCY_BACKEND_OPERATION_ERROR';
|
|
46330
46366
|
/**
|
|
46331
46367
|
* Get the retry after in milliseconds from the response headers, undefined if not specified.
|
|
46332
46368
|
* The header could have two different format.
|
|
@@ -46356,7 +46392,9 @@ function buildLuvioOverrideForDraftAdapters(luvio, handler, extractTargetIdFromC
|
|
|
46356
46392
|
const dispatchResourceRequest = async function (resourceRequest, _context) {
|
|
46357
46393
|
const resourceRequestCopy = clone$1(resourceRequest);
|
|
46358
46394
|
resourceRequestCopy.headers = resourceRequestCopy.headers || {};
|
|
46359
|
-
|
|
46395
|
+
if (handler.hasIdempotencySupport()) {
|
|
46396
|
+
resourceRequestCopy.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
46397
|
+
}
|
|
46360
46398
|
// enable return extra fields for record creation and record update http call
|
|
46361
46399
|
if (resourceRequest.basePath === '/ui-api/records' &&
|
|
46362
46400
|
(resourceRequest.method === 'post' || resourceRequest.method === 'patch')) {
|
|
@@ -47178,6 +47216,7 @@ class AbstractResourceRequestActionHandler {
|
|
|
47178
47216
|
// the luvio store redirect table, during which a new draft might be enqueued
|
|
47179
47217
|
// which would not see a necessary mapping.
|
|
47180
47218
|
this.ephemeralRedirects = {};
|
|
47219
|
+
this.isIdempotencySupported = true;
|
|
47181
47220
|
}
|
|
47182
47221
|
enqueue(data) {
|
|
47183
47222
|
return this.draftQueue.enqueue(this.handlerId, data);
|
|
@@ -47207,21 +47246,43 @@ class AbstractResourceRequestActionHandler {
|
|
|
47207
47246
|
retryDelayInMs = getRetryAfterInMs(response.headers);
|
|
47208
47247
|
shouldRetry = true;
|
|
47209
47248
|
break;
|
|
47210
|
-
case HttpStatusCode$1.ServerError:
|
|
47249
|
+
case HttpStatusCode$1.ServerError: {
|
|
47211
47250
|
shouldRetry = true;
|
|
47251
|
+
if (this.handleIdempotencyServerError(response.body, updatedAction, false, ERROR_CODE_IDEMPOTENCY_BACKEND_OPERATION_ERROR)) {
|
|
47252
|
+
this.isIdempotencySupported = false;
|
|
47253
|
+
retryDelayInMs = 0;
|
|
47254
|
+
actionDataChanged = true;
|
|
47255
|
+
}
|
|
47212
47256
|
break;
|
|
47257
|
+
}
|
|
47213
47258
|
case 409 /* IdempotentWriteSpecificHttpStatusCode.Conflict */: {
|
|
47214
|
-
|
|
47215
|
-
|
|
47216
|
-
|
|
47217
|
-
|
|
47259
|
+
if (this.isUiApiErrors(response.body)) {
|
|
47260
|
+
const errorCode = response.body[0].errorCode;
|
|
47261
|
+
if (this.handleIdempotencyServerError(response.body, updatedAction, true, ERROR_CODE_IDEMPOTENCY_KEY_USED_DIFFERENT_USER)) {
|
|
47262
|
+
retryDelayInMs = 0;
|
|
47263
|
+
actionDataChanged = true;
|
|
47264
|
+
}
|
|
47265
|
+
else if (errorCode === ERROR_CODE_IDEMPOTENCY_CONCURRENT_REQUEST) {
|
|
47266
|
+
retryDelayInMs = getRetryAfterInMs(response.headers);
|
|
47267
|
+
}
|
|
47268
|
+
shouldRetry = true;
|
|
47269
|
+
}
|
|
47270
|
+
break;
|
|
47271
|
+
}
|
|
47272
|
+
case HttpStatusCode$1.BadRequest: {
|
|
47273
|
+
if (this.handleIdempotencyServerError(response.body, updatedAction, false, ERROR_CODE_IDEMPOTENCY_FEATURE_NOT_ENABLED, ERROR_CODE_IDEMPOTENCY_NOT_SUPPORTED)) {
|
|
47218
47274
|
retryDelayInMs = 0;
|
|
47219
47275
|
actionDataChanged = true;
|
|
47276
|
+
shouldRetry = true;
|
|
47220
47277
|
}
|
|
47221
|
-
|
|
47222
|
-
|
|
47278
|
+
break;
|
|
47279
|
+
}
|
|
47280
|
+
case 422 /* IdempotentWriteSpecificHttpStatusCode.UnProcessableEntity */: {
|
|
47281
|
+
if (this.handleIdempotencyServerError(response.body, updatedAction, true, ERROR_CODE_IDEMPOTENCY_KEY_ALREADY_USED)) {
|
|
47282
|
+
retryDelayInMs = 0;
|
|
47283
|
+
actionDataChanged = true;
|
|
47284
|
+
shouldRetry = true;
|
|
47223
47285
|
}
|
|
47224
|
-
shouldRetry = true;
|
|
47225
47286
|
break;
|
|
47226
47287
|
}
|
|
47227
47288
|
}
|
|
@@ -47240,6 +47301,27 @@ class AbstractResourceRequestActionHandler {
|
|
|
47240
47301
|
return ProcessActionResult.NETWORK_ERROR;
|
|
47241
47302
|
}
|
|
47242
47303
|
}
|
|
47304
|
+
// true if response is an idempotency server error. updates or deletes idempotency key if the reponse is idempotency related error. Idempotency related error is in format of UiApiError array.
|
|
47305
|
+
handleIdempotencyServerError(responseBody, action, updateIdempotencyKey, ...targetErrorCodes) {
|
|
47306
|
+
if (this.isUiApiErrors(responseBody)) {
|
|
47307
|
+
const errorCode = responseBody[0].errorCode;
|
|
47308
|
+
if (targetErrorCodes.includes(errorCode)) {
|
|
47309
|
+
action.data.headers = action.data.headers || {};
|
|
47310
|
+
if (updateIdempotencyKey) {
|
|
47311
|
+
action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
47312
|
+
}
|
|
47313
|
+
else {
|
|
47314
|
+
delete action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY];
|
|
47315
|
+
}
|
|
47316
|
+
return true;
|
|
47317
|
+
}
|
|
47318
|
+
}
|
|
47319
|
+
return false;
|
|
47320
|
+
}
|
|
47321
|
+
// checks if the body is an array of UiApiError. Sometimes the body has `enhancedErrorType` field as an error indicator(one example is the field validation failure). In such case Action being processed updates to an Error Action.
|
|
47322
|
+
isUiApiErrors(body) {
|
|
47323
|
+
return body !== undefined && Array.isArray(body) && body.length > 0 && body[0].errorCode;
|
|
47324
|
+
}
|
|
47243
47325
|
async buildPendingAction(request, queue) {
|
|
47244
47326
|
const targetId = await this.getIdFromRequest(request);
|
|
47245
47327
|
if (targetId === undefined) {
|
|
@@ -47453,6 +47535,10 @@ class AbstractResourceRequestActionHandler {
|
|
|
47453
47535
|
...targetData,
|
|
47454
47536
|
body: this.mergeRequestBody(targetBody, sourceBody),
|
|
47455
47537
|
};
|
|
47538
|
+
// Updates Idempotency key if target has one
|
|
47539
|
+
if (targetData.headers && targetData.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
|
|
47540
|
+
merged.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
47541
|
+
}
|
|
47456
47542
|
// overlay metadata
|
|
47457
47543
|
merged.metadata = { ...targetMetadata, ...sourceMetadata };
|
|
47458
47544
|
// put status back to pending to auto upload if queue is active and targed is at the head.
|
|
@@ -47489,6 +47575,9 @@ class AbstractResourceRequestActionHandler {
|
|
|
47489
47575
|
getDraftIdsFromAction(action) {
|
|
47490
47576
|
return [action.targetId];
|
|
47491
47577
|
}
|
|
47578
|
+
hasIdempotencySupport() {
|
|
47579
|
+
return this.isIdempotencySupported;
|
|
47580
|
+
}
|
|
47492
47581
|
async ingestResponses(responses, action) {
|
|
47493
47582
|
const luvio = this.getLuvio();
|
|
47494
47583
|
await luvio.handleSuccessResponse(() => {
|
|
@@ -51449,16 +51538,18 @@ function injectFilter(filterNode, idState, parentPath, isParentPolymorphic, obje
|
|
|
51449
51538
|
if (!isIdField) {
|
|
51450
51539
|
let subSelectionNodes = [];
|
|
51451
51540
|
let subFieldsHasId = false;
|
|
51452
|
-
|
|
51453
|
-
|
|
51454
|
-
|
|
51455
|
-
|
|
51456
|
-
|
|
51457
|
-
|
|
51458
|
-
|
|
51459
|
-
|
|
51460
|
-
|
|
51461
|
-
|
|
51541
|
+
if (isSpanning) {
|
|
51542
|
+
filterNode.value.fields.forEach((subFieldNode) => {
|
|
51543
|
+
// Check if the filter field has the 'Id'
|
|
51544
|
+
if (isFieldAnIdField(subFieldNode.name.value, objectInfos[objectInfoName])) {
|
|
51545
|
+
subFieldsHasId = true;
|
|
51546
|
+
updateIDInfo(subFieldNode, idState, draftFunctions);
|
|
51547
|
+
}
|
|
51548
|
+
// try injecting the fields within predicate no matter it has relation or not.
|
|
51549
|
+
let subResults = injectFilter(subFieldNode, idState, curPath, isPolymorphicField, objectInfos, pathToObjectApiNamesMap, draftFunctions, existingFields ? existingFields[0] : undefined);
|
|
51550
|
+
subSelectionNodes = subSelectionNodes.concat(subResults);
|
|
51551
|
+
});
|
|
51552
|
+
}
|
|
51462
51553
|
if (!subFieldsHasId) {
|
|
51463
51554
|
// Check if the query field has the 'Id'
|
|
51464
51555
|
const existingIdsInQuery = existingFields &&
|
|
@@ -51487,6 +51578,7 @@ function injectFilter(filterNode, idState, parentPath, isParentPolymorphic, obje
|
|
|
51487
51578
|
}
|
|
51488
51579
|
//Inject Conditions: 1. Same field does not exist 2. Same fields has different children. 3. Filter spanning field does not have Id. 4. InLineFragment does not have the '__typename' field
|
|
51489
51580
|
if (!existingFields ||
|
|
51581
|
+
existingFields.length === 0 ||
|
|
51490
51582
|
subSelectionNodes.length > 0 ||
|
|
51491
51583
|
(isSpanning && !subFieldsHasId) ||
|
|
51492
51584
|
(isInlineFragment && !isTypeNameExisting)) {
|
|
@@ -54189,7 +54281,7 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
|
|
|
54189
54281
|
// Fulfilled snapshot (this only happens in this code path if
|
|
54190
54282
|
// the error is network error or 504), otherwise we spread over
|
|
54191
54283
|
// the non-eval'ed snapshot (which will be either Fulfilled or Stale)
|
|
54192
|
-
|
|
54284
|
+
const resultSnapshot = nonEvaluatedSnapshot.state === 'Error'
|
|
54193
54285
|
? createLocalEvalSnapshot(gqlResult, seenRecords, recordId, rebuildWithLocalEval)
|
|
54194
54286
|
: {
|
|
54195
54287
|
...nonEvaluatedSnapshot,
|
|
@@ -54198,6 +54290,22 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
|
|
|
54198
54290
|
seenRecords,
|
|
54199
54291
|
rebuildWithLocalEval,
|
|
54200
54292
|
};
|
|
54293
|
+
const { refresh, state } = resultSnapshot;
|
|
54294
|
+
if (state !== 'Error' && refresh) {
|
|
54295
|
+
// after refreshing a graphql snapshot, we want to force a rebuild regardless
|
|
54296
|
+
// of if the call failed or not or if the data changed or not because we want
|
|
54297
|
+
// to make sure any potential new drafts are picked up
|
|
54298
|
+
resultSnapshot.refresh = {
|
|
54299
|
+
...refresh,
|
|
54300
|
+
resolve: (config) => {
|
|
54301
|
+
return refresh.resolve(config).finally(() => {
|
|
54302
|
+
luvio.storePublish(resultSnapshot.recordId, undefined);
|
|
54303
|
+
luvio.storeBroadcast();
|
|
54304
|
+
});
|
|
54305
|
+
},
|
|
54306
|
+
};
|
|
54307
|
+
}
|
|
54308
|
+
return resultSnapshot;
|
|
54201
54309
|
};
|
|
54202
54310
|
}
|
|
54203
54311
|
|
|
@@ -57941,7 +58049,7 @@ register({
|
|
|
57941
58049
|
id: '@salesforce/lds-network-adapter',
|
|
57942
58050
|
instrument: instrument$1,
|
|
57943
58051
|
});
|
|
57944
|
-
// version: 1.229.0-
|
|
58052
|
+
// version: 1.229.0-dev6-53f3d6911
|
|
57945
58053
|
|
|
57946
58054
|
const { create: create$2, keys: keys$2 } = Object;
|
|
57947
58055
|
const { stringify: stringify$1, parse: parse$1 } = JSON;
|
|
@@ -71265,7 +71373,7 @@ function getFieldType$6(field) {
|
|
|
71265
71373
|
}
|
|
71266
71374
|
}
|
|
71267
71375
|
|
|
71268
|
-
const { assign, create: create$1, freeze: freeze$1, keys: keys$1 } = Object;
|
|
71376
|
+
const { assign, create: create$1, freeze: freeze$1, isFrozen, keys: keys$1 } = Object;
|
|
71269
71377
|
const { isArray: isArray$1 } = Array;
|
|
71270
71378
|
const { concat, filter, includes, push, reduce } = Array.prototype;
|
|
71271
71379
|
|
|
@@ -72730,17 +72838,8 @@ function buildSelectionForField$7(source, reader, sel, variables, fragments, isC
|
|
|
72730
72838
|
return sink;
|
|
72731
72839
|
}
|
|
72732
72840
|
function selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, version, selectFn, isCursorConnection) {
|
|
72733
|
-
const resolvedLink = reader
|
|
72734
|
-
|
|
72735
|
-
node: {
|
|
72736
|
-
kind: 'Fragment',
|
|
72737
|
-
private: [],
|
|
72738
|
-
opaque: true,
|
|
72739
|
-
version,
|
|
72740
|
-
},
|
|
72741
|
-
variables: {}
|
|
72742
|
-
});
|
|
72743
|
-
if (resolvedLink.data !== undefined) {
|
|
72841
|
+
const resolvedLink = resolveLink$1(reader, fieldData, version);
|
|
72842
|
+
if (resolvedLink && resolvedLink.data !== undefined) {
|
|
72744
72843
|
if (isCursorConnection) {
|
|
72745
72844
|
selectTypeLinkWithPagination(resolvedLink, sel, fieldData, reader, key, sink, variables, fragments, selectFn);
|
|
72746
72845
|
}
|
|
@@ -73316,19 +73415,11 @@ function selectType$6(typename, sel, fieldData, reader, key, sink, variables, fr
|
|
|
73316
73415
|
}
|
|
73317
73416
|
case 'PolymorphicParentRelationship':
|
|
73318
73417
|
case 'RecordRepresentation': {
|
|
73319
|
-
const spanningFieldLink = reader
|
|
73320
|
-
|
|
73321
|
-
|
|
73322
|
-
kind: 'Fragment',
|
|
73323
|
-
private: [],
|
|
73324
|
-
opaque: true,
|
|
73325
|
-
version: VERSION$f,
|
|
73326
|
-
},
|
|
73327
|
-
variables: {},
|
|
73328
|
-
});
|
|
73329
|
-
reader.markSeenId(fieldData.__ref);
|
|
73330
|
-
const resolvedSpanningFieldValue = spanningFieldLink.data;
|
|
73418
|
+
const spanningFieldLink = resolveLink$1(reader, fieldData, VERSION$f);
|
|
73419
|
+
const resolvedSpanningFieldValue = spanningFieldLink && spanningFieldLink.data;
|
|
73420
|
+
const fieldDataRef = fieldData.__ref;
|
|
73331
73421
|
if (resolvedSpanningFieldValue !== undefined) {
|
|
73422
|
+
reader.markSeenId(fieldDataRef);
|
|
73332
73423
|
const { value: spanningFieldResult } = resolvedSpanningFieldValue;
|
|
73333
73424
|
// Handle null values - graphql will return it at the field level, not return nested { value: null }
|
|
73334
73425
|
if (spanningFieldResult === null || typeof spanningFieldResult !== 'object') {
|
|
@@ -73352,7 +73443,9 @@ function selectType$6(typename, sel, fieldData, reader, key, sink, variables, fr
|
|
|
73352
73443
|
}
|
|
73353
73444
|
}
|
|
73354
73445
|
else {
|
|
73355
|
-
|
|
73446
|
+
if (fieldDataRef !== undefined) {
|
|
73447
|
+
reader.markMissingLink(fieldDataRef);
|
|
73448
|
+
}
|
|
73356
73449
|
reader.markMissing();
|
|
73357
73450
|
}
|
|
73358
73451
|
break;
|
|
@@ -76388,7 +76481,7 @@ register({
|
|
|
76388
76481
|
configuration: { ...configurationForGraphQLAdapters },
|
|
76389
76482
|
instrument,
|
|
76390
76483
|
});
|
|
76391
|
-
// version: 1.229.0-
|
|
76484
|
+
// version: 1.229.0-dev6-6005e174d
|
|
76392
76485
|
|
|
76393
76486
|
// On core the unstable adapters are re-exported with different names,
|
|
76394
76487
|
|
|
@@ -78635,7 +78728,7 @@ withDefaultLuvio((luvio) => {
|
|
|
78635
78728
|
unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
|
|
78636
78729
|
graphQLImperative = ldsAdapter;
|
|
78637
78730
|
});
|
|
78638
|
-
// version: 1.229.0-
|
|
78731
|
+
// version: 1.229.0-dev6-6005e174d
|
|
78639
78732
|
|
|
78640
78733
|
var gqlApi = /*#__PURE__*/Object.freeze({
|
|
78641
78734
|
__proto__: null,
|
|
@@ -79349,4 +79442,4 @@ const { luvio } = getRuntime();
|
|
|
79349
79442
|
setDefaultLuvio({ luvio });
|
|
79350
79443
|
|
|
79351
79444
|
export { createPrimingSession, draftManager, draftQueue, executeAdapter, executeMutatingAdapter, getImperativeAdapterNames, invokeAdapter, invokeAdapterWithDraftToReplace, invokeAdapterWithMetadata, nimbusDraftQueue, registerReportObserver, setMetadataTTL, setUiApiRecordTTL, subscribeToAdapter };
|
|
79352
|
-
// version: 1.229.0-
|
|
79445
|
+
// version: 1.229.0-dev6-53f3d6911
|
|
@@ -2281,6 +2281,34 @@
|
|
|
2281
2281
|
const FRAGMENT_READ_RESULT_MISSING = {
|
|
2282
2282
|
state: FragmentReadResultState$1.Missing,
|
|
2283
2283
|
};
|
|
2284
|
+
function resolveLink$1(reader, storeLink, version) {
|
|
2285
|
+
const { StoreLinkStateValues } = reader;
|
|
2286
|
+
const linkState = reader.getLinkState(storeLink);
|
|
2287
|
+
switch (linkState.state) {
|
|
2288
|
+
case StoreLinkStateValues.RefNotPresent:
|
|
2289
|
+
case StoreLinkStateValues.NotPresent:
|
|
2290
|
+
case StoreLinkStateValues.Missing:
|
|
2291
|
+
reader.markMissingLink(storeLink.__ref);
|
|
2292
|
+
reader.markMissing();
|
|
2293
|
+
return;
|
|
2294
|
+
case StoreLinkStateValues.Pending:
|
|
2295
|
+
reader.markPending();
|
|
2296
|
+
return;
|
|
2297
|
+
case StoreLinkStateValues.Null:
|
|
2298
|
+
return;
|
|
2299
|
+
}
|
|
2300
|
+
const { key: __ref } = linkState;
|
|
2301
|
+
return reader.read({
|
|
2302
|
+
recordId: __ref,
|
|
2303
|
+
node: {
|
|
2304
|
+
kind: 'Fragment',
|
|
2305
|
+
private: [],
|
|
2306
|
+
opaque: true,
|
|
2307
|
+
version,
|
|
2308
|
+
},
|
|
2309
|
+
variables: {},
|
|
2310
|
+
});
|
|
2311
|
+
}
|
|
2284
2312
|
class Reader {
|
|
2285
2313
|
constructor(store, variables, refresh, baseSnapshot, ttlStrategy) {
|
|
2286
2314
|
this.store = store;
|
|
@@ -3847,7 +3875,7 @@
|
|
|
3847
3875
|
}
|
|
3848
3876
|
return resourceParams;
|
|
3849
3877
|
}
|
|
3850
|
-
// engine version: 0.146.0-
|
|
3878
|
+
// engine version: 0.146.0-dev4-c265089a
|
|
3851
3879
|
|
|
3852
3880
|
/**
|
|
3853
3881
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -3974,7 +4002,7 @@
|
|
|
3974
4002
|
}
|
|
3975
4003
|
callbacks.push(callback);
|
|
3976
4004
|
}
|
|
3977
|
-
// version: 1.229.0-
|
|
4005
|
+
// version: 1.229.0-dev6-53f3d6911
|
|
3978
4006
|
|
|
3979
4007
|
// TODO [TD-0081508]: once that TD is fulfilled we can probably change this file
|
|
3980
4008
|
function instrumentAdapter$1(createFunction, _metadata) {
|
|
@@ -15435,7 +15463,7 @@
|
|
|
15435
15463
|
}
|
|
15436
15464
|
return superResult;
|
|
15437
15465
|
}
|
|
15438
|
-
// version: 1.229.0-
|
|
15466
|
+
// version: 1.229.0-dev6-53f3d6911
|
|
15439
15467
|
|
|
15440
15468
|
function unwrap(data) {
|
|
15441
15469
|
// The lwc-luvio bindings import a function from lwc called "unwrap".
|
|
@@ -16359,7 +16387,7 @@
|
|
|
16359
16387
|
const { apiFamily, name } = metadata;
|
|
16360
16388
|
return createGraphQLWireAdapterConstructor$1(adapter, `${apiFamily}.${name}`, luvio, astResolver);
|
|
16361
16389
|
}
|
|
16362
|
-
// version: 1.229.0-
|
|
16390
|
+
// version: 1.229.0-dev6-53f3d6911
|
|
16363
16391
|
|
|
16364
16392
|
/**
|
|
16365
16393
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -16458,11 +16486,11 @@
|
|
|
16458
16486
|
TypeCheckShapes[TypeCheckShapes["Integer"] = 3] = "Integer";
|
|
16459
16487
|
TypeCheckShapes[TypeCheckShapes["Unsupported"] = 4] = "Unsupported";
|
|
16460
16488
|
})(TypeCheckShapes || (TypeCheckShapes = {}));
|
|
16461
|
-
// engine version: 0.146.0-
|
|
16489
|
+
// engine version: 0.146.0-dev4-c265089a
|
|
16462
16490
|
|
|
16463
16491
|
const { keys: ObjectKeys$3, create: ObjectCreate$3 } = Object;
|
|
16464
16492
|
|
|
16465
|
-
const { assign: assign$9, create: create$9, freeze: freeze$4, keys: keys$b } = Object;
|
|
16493
|
+
const { assign: assign$9, create: create$9, freeze: freeze$4, isFrozen: isFrozen$2, keys: keys$b } = Object;
|
|
16466
16494
|
|
|
16467
16495
|
ObjectCreate$3(null);
|
|
16468
16496
|
|
|
@@ -16832,7 +16860,7 @@
|
|
|
16832
16860
|
}
|
|
16833
16861
|
const keyPrefix$1 = 'UiApi';
|
|
16834
16862
|
|
|
16835
|
-
const { assign: assign$8, create: create$8, freeze: freeze$3, keys: keys$a } = Object;
|
|
16863
|
+
const { assign: assign$8, create: create$8, freeze: freeze$3, isFrozen: isFrozen$1, keys: keys$a } = Object;
|
|
16836
16864
|
const { hasOwnProperty: hasOwnProperty$1 } = Object.prototype;
|
|
16837
16865
|
const { split, endsWith } = String.prototype;
|
|
16838
16866
|
const { isArray: isArray$7 } = Array;
|
|
@@ -19954,7 +19982,11 @@
|
|
|
19954
19982
|
}
|
|
19955
19983
|
const link = fieldValueRepresentation.link(fieldName);
|
|
19956
19984
|
const resolved = link.follow();
|
|
19957
|
-
if (isGraphNode(resolved) &&
|
|
19985
|
+
if (isGraphNode(resolved) &&
|
|
19986
|
+
resolved.isScalar('value') &&
|
|
19987
|
+
path.length > 0 &&
|
|
19988
|
+
// TODO [W-14082782]: temporary fix
|
|
19989
|
+
!isFrozen$1(link.data)) {
|
|
19958
19990
|
const linkState = link.linkData();
|
|
19959
19991
|
const fields = linkState === undefined ? [] : linkState.fields;
|
|
19960
19992
|
link.writeLinkData({
|
|
@@ -41175,7 +41207,7 @@
|
|
|
41175
41207
|
throttle(60, 60000, createLDSAdapter(luvio, 'notifyListInfoUpdateAvailable', notifyUpdateAvailableFactory$1));
|
|
41176
41208
|
throttle(60, 60000, createLDSAdapter(luvio, 'notifyQuickActionDefaultsUpdateAvailable', notifyUpdateAvailableFactory));
|
|
41177
41209
|
});
|
|
41178
|
-
// version: 1.229.0-
|
|
41210
|
+
// version: 1.229.0-dev6-6005e174d
|
|
41179
41211
|
|
|
41180
41212
|
var caseSensitiveUserId = '005B0000000GR4OIAW';
|
|
41181
41213
|
|
|
@@ -46331,8 +46363,12 @@
|
|
|
46331
46363
|
|
|
46332
46364
|
const HTTP_HEADER_RETRY_AFTER = 'Retry-After';
|
|
46333
46365
|
const HTTP_HEADER_IDEMPOTENCY_KEY = 'Idempotency-Key';
|
|
46366
|
+
const ERROR_CODE_IDEMPOTENCY_FEATURE_NOT_ENABLED = 'IDEMPOTENCY_FEATURE_NOT_ENABLED';
|
|
46367
|
+
const ERROR_CODE_IDEMPOTENCY_NOT_SUPPORTED = 'IDEMPOTENCY_NOT_SUPPORTED';
|
|
46334
46368
|
const ERROR_CODE_IDEMPOTENCY_KEY_USED_DIFFERENT_USER = 'IDEMPOTENCY_KEY_USED_DIFFERENT_USER';
|
|
46335
46369
|
const ERROR_CODE_IDEMPOTENCY_CONCURRENT_REQUEST = 'IDEMPOTENCY_CONCURRENT_REQUEST';
|
|
46370
|
+
const ERROR_CODE_IDEMPOTENCY_KEY_ALREADY_USED = 'IDEMPOTENCY_KEY_ALREADY_USED';
|
|
46371
|
+
const ERROR_CODE_IDEMPOTENCY_BACKEND_OPERATION_ERROR = 'IDEMPOTENCY_BACKEND_OPERATION_ERROR';
|
|
46336
46372
|
/**
|
|
46337
46373
|
* Get the retry after in milliseconds from the response headers, undefined if not specified.
|
|
46338
46374
|
* The header could have two different format.
|
|
@@ -46362,7 +46398,9 @@
|
|
|
46362
46398
|
const dispatchResourceRequest = async function (resourceRequest, _context) {
|
|
46363
46399
|
const resourceRequestCopy = clone$1(resourceRequest);
|
|
46364
46400
|
resourceRequestCopy.headers = resourceRequestCopy.headers || {};
|
|
46365
|
-
|
|
46401
|
+
if (handler.hasIdempotencySupport()) {
|
|
46402
|
+
resourceRequestCopy.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
46403
|
+
}
|
|
46366
46404
|
// enable return extra fields for record creation and record update http call
|
|
46367
46405
|
if (resourceRequest.basePath === '/ui-api/records' &&
|
|
46368
46406
|
(resourceRequest.method === 'post' || resourceRequest.method === 'patch')) {
|
|
@@ -47184,6 +47222,7 @@
|
|
|
47184
47222
|
// the luvio store redirect table, during which a new draft might be enqueued
|
|
47185
47223
|
// which would not see a necessary mapping.
|
|
47186
47224
|
this.ephemeralRedirects = {};
|
|
47225
|
+
this.isIdempotencySupported = true;
|
|
47187
47226
|
}
|
|
47188
47227
|
enqueue(data) {
|
|
47189
47228
|
return this.draftQueue.enqueue(this.handlerId, data);
|
|
@@ -47213,21 +47252,43 @@
|
|
|
47213
47252
|
retryDelayInMs = getRetryAfterInMs(response.headers);
|
|
47214
47253
|
shouldRetry = true;
|
|
47215
47254
|
break;
|
|
47216
|
-
case HttpStatusCode$1.ServerError:
|
|
47255
|
+
case HttpStatusCode$1.ServerError: {
|
|
47217
47256
|
shouldRetry = true;
|
|
47257
|
+
if (this.handleIdempotencyServerError(response.body, updatedAction, false, ERROR_CODE_IDEMPOTENCY_BACKEND_OPERATION_ERROR)) {
|
|
47258
|
+
this.isIdempotencySupported = false;
|
|
47259
|
+
retryDelayInMs = 0;
|
|
47260
|
+
actionDataChanged = true;
|
|
47261
|
+
}
|
|
47218
47262
|
break;
|
|
47263
|
+
}
|
|
47219
47264
|
case 409 /* IdempotentWriteSpecificHttpStatusCode.Conflict */: {
|
|
47220
|
-
|
|
47221
|
-
|
|
47222
|
-
|
|
47223
|
-
|
|
47265
|
+
if (this.isUiApiErrors(response.body)) {
|
|
47266
|
+
const errorCode = response.body[0].errorCode;
|
|
47267
|
+
if (this.handleIdempotencyServerError(response.body, updatedAction, true, ERROR_CODE_IDEMPOTENCY_KEY_USED_DIFFERENT_USER)) {
|
|
47268
|
+
retryDelayInMs = 0;
|
|
47269
|
+
actionDataChanged = true;
|
|
47270
|
+
}
|
|
47271
|
+
else if (errorCode === ERROR_CODE_IDEMPOTENCY_CONCURRENT_REQUEST) {
|
|
47272
|
+
retryDelayInMs = getRetryAfterInMs(response.headers);
|
|
47273
|
+
}
|
|
47274
|
+
shouldRetry = true;
|
|
47275
|
+
}
|
|
47276
|
+
break;
|
|
47277
|
+
}
|
|
47278
|
+
case HttpStatusCode$1.BadRequest: {
|
|
47279
|
+
if (this.handleIdempotencyServerError(response.body, updatedAction, false, ERROR_CODE_IDEMPOTENCY_FEATURE_NOT_ENABLED, ERROR_CODE_IDEMPOTENCY_NOT_SUPPORTED)) {
|
|
47224
47280
|
retryDelayInMs = 0;
|
|
47225
47281
|
actionDataChanged = true;
|
|
47282
|
+
shouldRetry = true;
|
|
47226
47283
|
}
|
|
47227
|
-
|
|
47228
|
-
|
|
47284
|
+
break;
|
|
47285
|
+
}
|
|
47286
|
+
case 422 /* IdempotentWriteSpecificHttpStatusCode.UnProcessableEntity */: {
|
|
47287
|
+
if (this.handleIdempotencyServerError(response.body, updatedAction, true, ERROR_CODE_IDEMPOTENCY_KEY_ALREADY_USED)) {
|
|
47288
|
+
retryDelayInMs = 0;
|
|
47289
|
+
actionDataChanged = true;
|
|
47290
|
+
shouldRetry = true;
|
|
47229
47291
|
}
|
|
47230
|
-
shouldRetry = true;
|
|
47231
47292
|
break;
|
|
47232
47293
|
}
|
|
47233
47294
|
}
|
|
@@ -47246,6 +47307,27 @@
|
|
|
47246
47307
|
return ProcessActionResult.NETWORK_ERROR;
|
|
47247
47308
|
}
|
|
47248
47309
|
}
|
|
47310
|
+
// true if response is an idempotency server error. updates or deletes idempotency key if the reponse is idempotency related error. Idempotency related error is in format of UiApiError array.
|
|
47311
|
+
handleIdempotencyServerError(responseBody, action, updateIdempotencyKey, ...targetErrorCodes) {
|
|
47312
|
+
if (this.isUiApiErrors(responseBody)) {
|
|
47313
|
+
const errorCode = responseBody[0].errorCode;
|
|
47314
|
+
if (targetErrorCodes.includes(errorCode)) {
|
|
47315
|
+
action.data.headers = action.data.headers || {};
|
|
47316
|
+
if (updateIdempotencyKey) {
|
|
47317
|
+
action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
47318
|
+
}
|
|
47319
|
+
else {
|
|
47320
|
+
delete action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY];
|
|
47321
|
+
}
|
|
47322
|
+
return true;
|
|
47323
|
+
}
|
|
47324
|
+
}
|
|
47325
|
+
return false;
|
|
47326
|
+
}
|
|
47327
|
+
// checks if the body is an array of UiApiError. Sometimes the body has `enhancedErrorType` field as an error indicator(one example is the field validation failure). In such case Action being processed updates to an Error Action.
|
|
47328
|
+
isUiApiErrors(body) {
|
|
47329
|
+
return body !== undefined && Array.isArray(body) && body.length > 0 && body[0].errorCode;
|
|
47330
|
+
}
|
|
47249
47331
|
async buildPendingAction(request, queue) {
|
|
47250
47332
|
const targetId = await this.getIdFromRequest(request);
|
|
47251
47333
|
if (targetId === undefined) {
|
|
@@ -47459,6 +47541,10 @@
|
|
|
47459
47541
|
...targetData,
|
|
47460
47542
|
body: this.mergeRequestBody(targetBody, sourceBody),
|
|
47461
47543
|
};
|
|
47544
|
+
// Updates Idempotency key if target has one
|
|
47545
|
+
if (targetData.headers && targetData.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
|
|
47546
|
+
merged.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
47547
|
+
}
|
|
47462
47548
|
// overlay metadata
|
|
47463
47549
|
merged.metadata = { ...targetMetadata, ...sourceMetadata };
|
|
47464
47550
|
// put status back to pending to auto upload if queue is active and targed is at the head.
|
|
@@ -47495,6 +47581,9 @@
|
|
|
47495
47581
|
getDraftIdsFromAction(action) {
|
|
47496
47582
|
return [action.targetId];
|
|
47497
47583
|
}
|
|
47584
|
+
hasIdempotencySupport() {
|
|
47585
|
+
return this.isIdempotencySupported;
|
|
47586
|
+
}
|
|
47498
47587
|
async ingestResponses(responses, action) {
|
|
47499
47588
|
const luvio = this.getLuvio();
|
|
47500
47589
|
await luvio.handleSuccessResponse(() => {
|
|
@@ -51455,16 +51544,18 @@
|
|
|
51455
51544
|
if (!isIdField) {
|
|
51456
51545
|
let subSelectionNodes = [];
|
|
51457
51546
|
let subFieldsHasId = false;
|
|
51458
|
-
|
|
51459
|
-
|
|
51460
|
-
|
|
51461
|
-
|
|
51462
|
-
|
|
51463
|
-
|
|
51464
|
-
|
|
51465
|
-
|
|
51466
|
-
|
|
51467
|
-
|
|
51547
|
+
if (isSpanning) {
|
|
51548
|
+
filterNode.value.fields.forEach((subFieldNode) => {
|
|
51549
|
+
// Check if the filter field has the 'Id'
|
|
51550
|
+
if (isFieldAnIdField(subFieldNode.name.value, objectInfos[objectInfoName])) {
|
|
51551
|
+
subFieldsHasId = true;
|
|
51552
|
+
updateIDInfo(subFieldNode, idState, draftFunctions);
|
|
51553
|
+
}
|
|
51554
|
+
// try injecting the fields within predicate no matter it has relation or not.
|
|
51555
|
+
let subResults = injectFilter(subFieldNode, idState, curPath, isPolymorphicField, objectInfos, pathToObjectApiNamesMap, draftFunctions, existingFields ? existingFields[0] : undefined);
|
|
51556
|
+
subSelectionNodes = subSelectionNodes.concat(subResults);
|
|
51557
|
+
});
|
|
51558
|
+
}
|
|
51468
51559
|
if (!subFieldsHasId) {
|
|
51469
51560
|
// Check if the query field has the 'Id'
|
|
51470
51561
|
const existingIdsInQuery = existingFields &&
|
|
@@ -51493,6 +51584,7 @@
|
|
|
51493
51584
|
}
|
|
51494
51585
|
//Inject Conditions: 1. Same field does not exist 2. Same fields has different children. 3. Filter spanning field does not have Id. 4. InLineFragment does not have the '__typename' field
|
|
51495
51586
|
if (!existingFields ||
|
|
51587
|
+
existingFields.length === 0 ||
|
|
51496
51588
|
subSelectionNodes.length > 0 ||
|
|
51497
51589
|
(isSpanning && !subFieldsHasId) ||
|
|
51498
51590
|
(isInlineFragment && !isTypeNameExisting)) {
|
|
@@ -54195,7 +54287,7 @@
|
|
|
54195
54287
|
// Fulfilled snapshot (this only happens in this code path if
|
|
54196
54288
|
// the error is network error or 504), otherwise we spread over
|
|
54197
54289
|
// the non-eval'ed snapshot (which will be either Fulfilled or Stale)
|
|
54198
|
-
|
|
54290
|
+
const resultSnapshot = nonEvaluatedSnapshot.state === 'Error'
|
|
54199
54291
|
? createLocalEvalSnapshot(gqlResult, seenRecords, recordId, rebuildWithLocalEval)
|
|
54200
54292
|
: {
|
|
54201
54293
|
...nonEvaluatedSnapshot,
|
|
@@ -54204,6 +54296,22 @@
|
|
|
54204
54296
|
seenRecords,
|
|
54205
54297
|
rebuildWithLocalEval,
|
|
54206
54298
|
};
|
|
54299
|
+
const { refresh, state } = resultSnapshot;
|
|
54300
|
+
if (state !== 'Error' && refresh) {
|
|
54301
|
+
// after refreshing a graphql snapshot, we want to force a rebuild regardless
|
|
54302
|
+
// of if the call failed or not or if the data changed or not because we want
|
|
54303
|
+
// to make sure any potential new drafts are picked up
|
|
54304
|
+
resultSnapshot.refresh = {
|
|
54305
|
+
...refresh,
|
|
54306
|
+
resolve: (config) => {
|
|
54307
|
+
return refresh.resolve(config).finally(() => {
|
|
54308
|
+
luvio.storePublish(resultSnapshot.recordId, undefined);
|
|
54309
|
+
luvio.storeBroadcast();
|
|
54310
|
+
});
|
|
54311
|
+
},
|
|
54312
|
+
};
|
|
54313
|
+
}
|
|
54314
|
+
return resultSnapshot;
|
|
54207
54315
|
};
|
|
54208
54316
|
}
|
|
54209
54317
|
|
|
@@ -57947,7 +58055,7 @@
|
|
|
57947
58055
|
id: '@salesforce/lds-network-adapter',
|
|
57948
58056
|
instrument: instrument$1,
|
|
57949
58057
|
});
|
|
57950
|
-
// version: 1.229.0-
|
|
58058
|
+
// version: 1.229.0-dev6-53f3d6911
|
|
57951
58059
|
|
|
57952
58060
|
const { create: create$2, keys: keys$2 } = Object;
|
|
57953
58061
|
const { stringify: stringify$1, parse: parse$1 } = JSON;
|
|
@@ -71271,7 +71379,7 @@
|
|
|
71271
71379
|
}
|
|
71272
71380
|
}
|
|
71273
71381
|
|
|
71274
|
-
const { assign, create: create$1, freeze: freeze$1, keys: keys$1 } = Object;
|
|
71382
|
+
const { assign, create: create$1, freeze: freeze$1, isFrozen, keys: keys$1 } = Object;
|
|
71275
71383
|
const { isArray: isArray$1 } = Array;
|
|
71276
71384
|
const { concat, filter, includes, push, reduce } = Array.prototype;
|
|
71277
71385
|
|
|
@@ -72736,17 +72844,8 @@
|
|
|
72736
72844
|
return sink;
|
|
72737
72845
|
}
|
|
72738
72846
|
function selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, version, selectFn, isCursorConnection) {
|
|
72739
|
-
const resolvedLink = reader
|
|
72740
|
-
|
|
72741
|
-
node: {
|
|
72742
|
-
kind: 'Fragment',
|
|
72743
|
-
private: [],
|
|
72744
|
-
opaque: true,
|
|
72745
|
-
version,
|
|
72746
|
-
},
|
|
72747
|
-
variables: {}
|
|
72748
|
-
});
|
|
72749
|
-
if (resolvedLink.data !== undefined) {
|
|
72847
|
+
const resolvedLink = resolveLink$1(reader, fieldData, version);
|
|
72848
|
+
if (resolvedLink && resolvedLink.data !== undefined) {
|
|
72750
72849
|
if (isCursorConnection) {
|
|
72751
72850
|
selectTypeLinkWithPagination(resolvedLink, sel, fieldData, reader, key, sink, variables, fragments, selectFn);
|
|
72752
72851
|
}
|
|
@@ -73322,19 +73421,11 @@
|
|
|
73322
73421
|
}
|
|
73323
73422
|
case 'PolymorphicParentRelationship':
|
|
73324
73423
|
case 'RecordRepresentation': {
|
|
73325
|
-
const spanningFieldLink = reader
|
|
73326
|
-
|
|
73327
|
-
|
|
73328
|
-
kind: 'Fragment',
|
|
73329
|
-
private: [],
|
|
73330
|
-
opaque: true,
|
|
73331
|
-
version: VERSION$f,
|
|
73332
|
-
},
|
|
73333
|
-
variables: {},
|
|
73334
|
-
});
|
|
73335
|
-
reader.markSeenId(fieldData.__ref);
|
|
73336
|
-
const resolvedSpanningFieldValue = spanningFieldLink.data;
|
|
73424
|
+
const spanningFieldLink = resolveLink$1(reader, fieldData, VERSION$f);
|
|
73425
|
+
const resolvedSpanningFieldValue = spanningFieldLink && spanningFieldLink.data;
|
|
73426
|
+
const fieldDataRef = fieldData.__ref;
|
|
73337
73427
|
if (resolvedSpanningFieldValue !== undefined) {
|
|
73428
|
+
reader.markSeenId(fieldDataRef);
|
|
73338
73429
|
const { value: spanningFieldResult } = resolvedSpanningFieldValue;
|
|
73339
73430
|
// Handle null values - graphql will return it at the field level, not return nested { value: null }
|
|
73340
73431
|
if (spanningFieldResult === null || typeof spanningFieldResult !== 'object') {
|
|
@@ -73358,7 +73449,9 @@
|
|
|
73358
73449
|
}
|
|
73359
73450
|
}
|
|
73360
73451
|
else {
|
|
73361
|
-
|
|
73452
|
+
if (fieldDataRef !== undefined) {
|
|
73453
|
+
reader.markMissingLink(fieldDataRef);
|
|
73454
|
+
}
|
|
73362
73455
|
reader.markMissing();
|
|
73363
73456
|
}
|
|
73364
73457
|
break;
|
|
@@ -76394,7 +76487,7 @@
|
|
|
76394
76487
|
configuration: { ...configurationForGraphQLAdapters },
|
|
76395
76488
|
instrument,
|
|
76396
76489
|
});
|
|
76397
|
-
// version: 1.229.0-
|
|
76490
|
+
// version: 1.229.0-dev6-6005e174d
|
|
76398
76491
|
|
|
76399
76492
|
// On core the unstable adapters are re-exported with different names,
|
|
76400
76493
|
|
|
@@ -78641,7 +78734,7 @@
|
|
|
78641
78734
|
unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
|
|
78642
78735
|
graphQLImperative = ldsAdapter;
|
|
78643
78736
|
});
|
|
78644
|
-
// version: 1.229.0-
|
|
78737
|
+
// version: 1.229.0-dev6-6005e174d
|
|
78645
78738
|
|
|
78646
78739
|
var gqlApi = /*#__PURE__*/Object.freeze({
|
|
78647
78740
|
__proto__: null,
|
|
@@ -79372,4 +79465,4 @@
|
|
|
79372
79465
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
79373
79466
|
|
|
79374
79467
|
}));
|
|
79375
|
-
// version: 1.229.0-
|
|
79468
|
+
// version: 1.229.0-dev6-53f3d6911
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/lds-worker-api",
|
|
3
|
-
"version": "1.229.0-
|
|
3
|
+
"version": "1.229.0-dev6",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "dist/standalone/es/lds-worker-api.js",
|
|
@@ -35,15 +35,15 @@
|
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@oat-sa/rollup-plugin-wildcard-external": "^1.0.0",
|
|
38
|
-
"@salesforce/lds-adapters-graphql": "1.229.0-
|
|
39
|
-
"@salesforce/lds-adapters-uiapi": "1.229.0-
|
|
40
|
-
"@salesforce/lds-default-luvio": "1.229.0-
|
|
41
|
-
"@salesforce/lds-drafts": "1.229.0-
|
|
42
|
-
"@salesforce/lds-graphql-parser": "1.229.0-
|
|
43
|
-
"@salesforce/lds-luvio-engine": "1.229.0-
|
|
44
|
-
"@salesforce/lds-priming": "1.229.0-
|
|
45
|
-
"@salesforce/lds-runtime-mobile": "1.229.0-
|
|
46
|
-
"@salesforce/nimbus-plugin-lds": "1.229.0-
|
|
38
|
+
"@salesforce/lds-adapters-graphql": "1.229.0-dev6",
|
|
39
|
+
"@salesforce/lds-adapters-uiapi": "1.229.0-dev6",
|
|
40
|
+
"@salesforce/lds-default-luvio": "1.229.0-dev6",
|
|
41
|
+
"@salesforce/lds-drafts": "1.229.0-dev6",
|
|
42
|
+
"@salesforce/lds-graphql-parser": "1.229.0-dev6",
|
|
43
|
+
"@salesforce/lds-luvio-engine": "1.229.0-dev6",
|
|
44
|
+
"@salesforce/lds-priming": "1.229.0-dev6",
|
|
45
|
+
"@salesforce/lds-runtime-mobile": "1.229.0-dev6",
|
|
46
|
+
"@salesforce/nimbus-plugin-lds": "1.229.0-dev6",
|
|
47
47
|
"ajv": "^8.11.0",
|
|
48
48
|
"glob": "^7.1.5",
|
|
49
49
|
"nimbus-types": "^2.0.0-alpha1",
|