@salesforce/lds-worker-api 1.428.0-dev2 → 1.428.0-dev21
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.
|
@@ -3283,7 +3283,7 @@ function resolveCachePolicy(cachePolicy, defaultCachePolicy) {
|
|
|
3283
3283
|
}
|
|
3284
3284
|
}
|
|
3285
3285
|
}
|
|
3286
|
-
function isFetchResponse(error) {
|
|
3286
|
+
function isFetchResponse$1(error) {
|
|
3287
3287
|
return error !== null && typeof error === 'object' && 'status' in error;
|
|
3288
3288
|
}
|
|
3289
3289
|
/**
|
|
@@ -3362,7 +3362,7 @@ class Environment {
|
|
|
3362
3362
|
// the new network adapter behavior
|
|
3363
3363
|
return reject(
|
|
3364
3364
|
// legacy network adapter check
|
|
3365
|
-
isFetchResponse(error)
|
|
3365
|
+
isFetchResponse$1(error)
|
|
3366
3366
|
? {
|
|
3367
3367
|
...error,
|
|
3368
3368
|
errorType: 'fetchResponse',
|
|
@@ -4146,7 +4146,7 @@ function createResourceParamsImpl(config, configMetadata) {
|
|
|
4146
4146
|
}
|
|
4147
4147
|
return resourceParams;
|
|
4148
4148
|
}
|
|
4149
|
-
// engine version: 0.160.
|
|
4149
|
+
// engine version: 0.160.4-dev1-4b808818
|
|
4150
4150
|
|
|
4151
4151
|
/**
|
|
4152
4152
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -4274,7 +4274,7 @@ function withDefaultLuvio(callback) {
|
|
|
4274
4274
|
}
|
|
4275
4275
|
callbacks.push(callback);
|
|
4276
4276
|
}
|
|
4277
|
-
// version: 1.428.0-
|
|
4277
|
+
// version: 1.428.0-dev21-c9faba50c9
|
|
4278
4278
|
|
|
4279
4279
|
// TODO [TD-0081508]: once that TD is fulfilled we can probably change this file
|
|
4280
4280
|
function instrumentAdapter$1(createFunction, _metadata) {
|
|
@@ -5318,7 +5318,7 @@ function createGraphQLWireAdapterConstructor(luvio, adapter, metadata, astResolv
|
|
|
5318
5318
|
const { apiFamily, name } = metadata;
|
|
5319
5319
|
return createGraphQLWireAdapterConstructor$1(adapter, `${apiFamily}.${name}`, luvio, astResolver);
|
|
5320
5320
|
}
|
|
5321
|
-
// version: 1.428.0-
|
|
5321
|
+
// version: 1.428.0-dev21-c9faba50c9
|
|
5322
5322
|
|
|
5323
5323
|
function isSupportedEntity(_objectApiName) {
|
|
5324
5324
|
return true;
|
|
@@ -5422,7 +5422,7 @@ var TypeCheckShapes;
|
|
|
5422
5422
|
TypeCheckShapes[TypeCheckShapes["Integer"] = 3] = "Integer";
|
|
5423
5423
|
TypeCheckShapes[TypeCheckShapes["Unsupported"] = 4] = "Unsupported";
|
|
5424
5424
|
})(TypeCheckShapes || (TypeCheckShapes = {}));
|
|
5425
|
-
// engine version: 0.160.
|
|
5425
|
+
// engine version: 0.160.4-dev1-4b808818
|
|
5426
5426
|
|
|
5427
5427
|
const { keys: ObjectKeys$4, create: ObjectCreate$4 } = Object;
|
|
5428
5428
|
|
|
@@ -32610,9 +32610,18 @@ withDefaultLuvio((luvio) => {
|
|
|
32610
32610
|
throttle(60, 60000, setupNotifyAllListRecordUpdateAvailable(luvio));
|
|
32611
32611
|
throttle(60, 60000, setupNotifyAllListInfoSummaryUpdateAvailable(luvio));
|
|
32612
32612
|
});
|
|
32613
|
-
// version: 1.428.0-
|
|
32613
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
32614
32614
|
|
|
32615
|
-
var
|
|
32615
|
+
var draftQueueMaxRetryAttemptsGate = {
|
|
32616
|
+
isOpen: function (e) {
|
|
32617
|
+
return e.fallback;
|
|
32618
|
+
},
|
|
32619
|
+
hasError: function () {
|
|
32620
|
+
return !0;
|
|
32621
|
+
},
|
|
32622
|
+
};
|
|
32623
|
+
|
|
32624
|
+
var preserveIdempotencyKeyOn400Gate = {
|
|
32616
32625
|
isOpen: function (e) {
|
|
32617
32626
|
return e.fallback;
|
|
32618
32627
|
},
|
|
@@ -32664,6 +32673,15 @@ const getInstrumentation = () => {
|
|
|
32664
32673
|
return mockInstrumentation;
|
|
32665
32674
|
};
|
|
32666
32675
|
|
|
32676
|
+
var allowUpdatesForNonCachedRecords = {
|
|
32677
|
+
isOpen: function (e) {
|
|
32678
|
+
return e.fallback;
|
|
32679
|
+
},
|
|
32680
|
+
hasError: function () {
|
|
32681
|
+
return !0;
|
|
32682
|
+
},
|
|
32683
|
+
};
|
|
32684
|
+
|
|
32667
32685
|
var caseSensitiveUserId = '005B0000000GR4OIAW';
|
|
32668
32686
|
|
|
32669
32687
|
/**
|
|
@@ -47834,6 +47852,13 @@ function customActionHandler(executor, id, draftQueue) {
|
|
|
47834
47852
|
}
|
|
47835
47853
|
|
|
47836
47854
|
const DRAFT_SEGMENT = 'DRAFT';
|
|
47855
|
+
/**
|
|
47856
|
+
* Metadata key under which an action's upload retry-attempt count is persisted.
|
|
47857
|
+
* Lives in the action's durable `metadata` bag so the count survives app restarts
|
|
47858
|
+
* (the in-memory backoff interval resets on every startQueue()). Written by the
|
|
47859
|
+
* action handler on each retry and cleared when an action is manually retried.
|
|
47860
|
+
*/
|
|
47861
|
+
const DRAFT_ACTION_RETRY_COUNT_METADATA_KEY = 'retryCount';
|
|
47837
47862
|
class DurableDraftQueue {
|
|
47838
47863
|
getHandler(id) {
|
|
47839
47864
|
const handler = this.handlers[id];
|
|
@@ -48192,10 +48217,14 @@ class DurableDraftQueue {
|
|
|
48192
48217
|
if (!isDraftError(target)) {
|
|
48193
48218
|
throw Error(`Action ${actionId} is not in Error state`);
|
|
48194
48219
|
}
|
|
48220
|
+
// A manual retry is a fresh start: clear the persisted upload retry-attempt
|
|
48221
|
+
// count so the action doesn't immediately re-cap after a single failure.
|
|
48222
|
+
const { [DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]: _retryCount, ...metadataWithoutRetryCount } = target.metadata || {};
|
|
48195
48223
|
let pendingAction = {
|
|
48196
48224
|
...target,
|
|
48197
48225
|
status: DraftActionStatus.Pending,
|
|
48198
48226
|
error: undefined,
|
|
48227
|
+
metadata: metadataWithoutRetryCount,
|
|
48199
48228
|
};
|
|
48200
48229
|
await this.draftStore.writeAction(pendingAction);
|
|
48201
48230
|
await this.notifyChangedListeners({
|
|
@@ -79603,6 +79632,354 @@ function makeEnvironmentUiApiRecordDraftAware(luvio, options, env) {
|
|
|
79603
79632
|
return create$3(adapterSpecificEnvironments, {});
|
|
79604
79633
|
}
|
|
79605
79634
|
|
|
79635
|
+
/**
|
|
79636
|
+
* This function takes an unknown error and normalizes it to an Error object
|
|
79637
|
+
*/
|
|
79638
|
+
function normalizeError$1(error) {
|
|
79639
|
+
if (typeof error === 'object' && error instanceof Error) {
|
|
79640
|
+
return error;
|
|
79641
|
+
}
|
|
79642
|
+
else if (typeof error === 'string') {
|
|
79643
|
+
return new Error(error);
|
|
79644
|
+
}
|
|
79645
|
+
return new Error(stringify$5(error));
|
|
79646
|
+
}
|
|
79647
|
+
/**
|
|
79648
|
+
* Maximum number of times an action's upload will be retried before the action is
|
|
79649
|
+
* transitioned to Error and surfaced to the consumer. Caps the otherwise-unbounded
|
|
79650
|
+
* retry loop that can wedge the single-worker draft queue when an upload fails
|
|
79651
|
+
* deterministically on every dispatch. Only enforced when the
|
|
79652
|
+
* `lmr.draft-queue-max-retry-attempts` gate is open.
|
|
79653
|
+
*/
|
|
79654
|
+
const MAX_RETRY_ATTEMPTS = 5;
|
|
79655
|
+
const MAX_RETRY_ERROR_CODE = 'MAX_RETRY_ATTEMPTS_EXCEEDED';
|
|
79656
|
+
function isFetchResponse(failure) {
|
|
79657
|
+
// The union is exactly FetchResponse | Error, so "not an Error" is the FetchResponse.
|
|
79658
|
+
// This is safer than duck-typing on status/ok: a custom Error subclass that happens to
|
|
79659
|
+
// carry those properties would be misclassified by a structural check.
|
|
79660
|
+
return !(failure instanceof Error);
|
|
79661
|
+
}
|
|
79662
|
+
/**
|
|
79663
|
+
* Builds the FetchResponse-shaped error attached to an action that has exhausted its
|
|
79664
|
+
* upload retries. Shaped like a real network error response (status/statusText/ok/
|
|
79665
|
+
* headers/body) so downstream consumers (DraftManager, queue instrumentation) that
|
|
79666
|
+
* read `action.error.status`/`.body`/etc. behave consistently with a server error.
|
|
79667
|
+
*
|
|
79668
|
+
* The failure that caused the final attempt — a non-ok response (HTTP path) or a thrown
|
|
79669
|
+
* error (catch path) — is folded into the body so the surfaced error says WHAT failed,
|
|
79670
|
+
* not merely that the attempt cap was reached.
|
|
79671
|
+
*/
|
|
79672
|
+
function buildMaxRetryError(lastFailure) {
|
|
79673
|
+
const capMessage = `Draft action exceeded ${MAX_RETRY_ATTEMPTS} upload retry attempts`;
|
|
79674
|
+
if (isFetchResponse(lastFailure)) {
|
|
79675
|
+
// Preserve the server's own error detail (status + body) so the surfaced error
|
|
79676
|
+
// carries the last response that caused us to give up retrying.
|
|
79677
|
+
return {
|
|
79678
|
+
status: HttpStatusCode$2.ServerError,
|
|
79679
|
+
statusText: capMessage,
|
|
79680
|
+
ok: false,
|
|
79681
|
+
headers: {},
|
|
79682
|
+
body: {
|
|
79683
|
+
errorCode: MAX_RETRY_ERROR_CODE,
|
|
79684
|
+
message: `${capMessage}. Last response: status=${lastFailure.status} ${lastFailure.statusText}`,
|
|
79685
|
+
lastResponseStatus: lastFailure.status,
|
|
79686
|
+
lastResponseBody: lastFailure.body,
|
|
79687
|
+
},
|
|
79688
|
+
};
|
|
79689
|
+
}
|
|
79690
|
+
return {
|
|
79691
|
+
status: HttpStatusCode$2.ServerError,
|
|
79692
|
+
statusText: capMessage,
|
|
79693
|
+
ok: false,
|
|
79694
|
+
headers: {},
|
|
79695
|
+
body: {
|
|
79696
|
+
errorCode: MAX_RETRY_ERROR_CODE,
|
|
79697
|
+
message: `${capMessage}. Last error: ${lastFailure.name}: ${lastFailure.message}`,
|
|
79698
|
+
lastErrorName: lastFailure.name,
|
|
79699
|
+
lastErrorMessage: lastFailure.message,
|
|
79700
|
+
},
|
|
79701
|
+
};
|
|
79702
|
+
}
|
|
79703
|
+
|
|
79704
|
+
function attachObserversToAdapterRequestContext(observers, adapterRequestContext) {
|
|
79705
|
+
if (adapterRequestContext === undefined) {
|
|
79706
|
+
return { eventObservers: observers };
|
|
79707
|
+
}
|
|
79708
|
+
if (adapterRequestContext.eventObservers === undefined) {
|
|
79709
|
+
return { ...adapterRequestContext, eventObservers: observers };
|
|
79710
|
+
}
|
|
79711
|
+
return {
|
|
79712
|
+
...adapterRequestContext,
|
|
79713
|
+
eventObservers: adapterRequestContext.eventObservers.concat(observers),
|
|
79714
|
+
};
|
|
79715
|
+
}
|
|
79716
|
+
/**
|
|
79717
|
+
* Use this method to sanitize the unknown error object when
|
|
79718
|
+
* we are unsure of the type of the error thrown
|
|
79719
|
+
*
|
|
79720
|
+
* @param err Unknown object to sanitize
|
|
79721
|
+
* @returns an instance of error
|
|
79722
|
+
*/
|
|
79723
|
+
function normalizeError$2(err) {
|
|
79724
|
+
if (err instanceof Error) {
|
|
79725
|
+
return err;
|
|
79726
|
+
}
|
|
79727
|
+
else if (typeof err === 'string') {
|
|
79728
|
+
return new Error(err);
|
|
79729
|
+
}
|
|
79730
|
+
return new Error(stringify$5(err));
|
|
79731
|
+
}
|
|
79732
|
+
// metrics
|
|
79733
|
+
/** GraphQL */
|
|
79734
|
+
const GRAPHQL_EVAL_ERROR = 'gql-eval-error';
|
|
79735
|
+
const GRAPHQL_EVAL_DB_READ_DURATION = 'gql-eval-db-read-duration';
|
|
79736
|
+
const GRAPHQL_EVAL_ROOT_QUERY_COUNT = 'gql-eval-root-query-count';
|
|
79737
|
+
const GRAPHQL_EVAL_TOTAL_QUERY_COUNT = 'gql-eval-total-query-count';
|
|
79738
|
+
const GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT = 'gql-eval-max-child-count';
|
|
79739
|
+
const GRAPHQL_EVAL_QUERY_RECORD_COUNT = 'gql-eval-query-record-count';
|
|
79740
|
+
const GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED = 'gql-snapshot-refresh-undefined';
|
|
79741
|
+
/** Draft Queue */
|
|
79742
|
+
const DRAFT_QUEUE_STATE_STARTED = 'draft-queue-state-started';
|
|
79743
|
+
const DRAFT_QUEUE_STATE_ERROR = 'draft-queue-state-error';
|
|
79744
|
+
const DRAFT_QUEUE_STATE_WAITING = 'draft-queue-state-waiting';
|
|
79745
|
+
const DRAFT_QUEUE_STATE_STOPPED = 'draft-queue-state-stopped';
|
|
79746
|
+
const DRAFT_QUEUE_ACTION_ADDED = 'draft-queue-action-added';
|
|
79747
|
+
const DRAFT_QUEUE_ACTION_UPLOADING = 'draft-queue-action-uploading';
|
|
79748
|
+
const DRAFT_QUEUE_ACTION_COMPLETED = 'draft-queue-action-completed';
|
|
79749
|
+
const DRAFT_QUEUE_ACTION_DELETED = 'draft-queue-action-deleted';
|
|
79750
|
+
const DRAFT_QUEUE_ACTION_UPDATED = 'draft-queue-action-updated';
|
|
79751
|
+
const DRAFT_QUEUE_ACTION_FAILED = 'draft-queue-action-failed';
|
|
79752
|
+
const DRAFT_QUEUE_ACTION_UPLOAD_ERROR = 'draft-queue-action-upload-error';
|
|
79753
|
+
const DRAFT_QUEUE_TOTAL_MERGE_ACTIONS_CALLS = 'draft-queue-total-mergeActions-calls';
|
|
79754
|
+
// Emitted every time a draft's Idempotency-Key is rotated (replaced with a fresh uuid).
|
|
79755
|
+
// Used to triage the WOLI duplicate-record investigation in Splunk — correlate by draftId
|
|
79756
|
+
// with the other draft-queue events. @W-23428669
|
|
79757
|
+
const DRAFT_QUEUE_IDEMPOTENCY_KEY_ROTATED = 'draft-queue-idempotency-key-rotated';
|
|
79758
|
+
/** Content Document */
|
|
79759
|
+
const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
|
|
79760
|
+
const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
|
|
79761
|
+
/** Priming */
|
|
79762
|
+
const PRIMING_TOTAL_SESSION_COUNT = 'priming-total-session-count';
|
|
79763
|
+
const PRIMING_TOTAL_ERROR_COUNT = 'priming-total-error-count';
|
|
79764
|
+
const PRIMING_TOTAL_PRIMED_COUNT = 'priming-total-primed-count';
|
|
79765
|
+
const PRIMING_TOTAL_CONFLICT_COUNT = 'priming-total-conflict-count';
|
|
79766
|
+
// logs
|
|
79767
|
+
const GRAPHQL_QUERY_PARSE_ERROR = 'gql-query-parse-error';
|
|
79768
|
+
const GRAPHQL_SQL_EVAL_PRECONDITION_ERROR = 'gql-sql-pre-eval-error';
|
|
79769
|
+
const GRAPHQL_CREATE_SNAPSHOT_ERROR = 'gql-create-snapshot-error';
|
|
79770
|
+
const DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR = 'draft-aware-create-content-document-and-version-error';
|
|
79771
|
+
/** Garbage Collection */
|
|
79772
|
+
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT = 'garbage-collection-aggressive-trim-count';
|
|
79773
|
+
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED = 'garbage-collection-aggressive-trim-records-trimmed';
|
|
79774
|
+
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM = 'garbage-collection-aggressive-trim-total-records-before-trim';
|
|
79775
|
+
const ldsMobileInstrumentation$2 = getInstrumentation();
|
|
79776
|
+
const nimbusLogger = typeof __nimbus !== 'undefined' &&
|
|
79777
|
+
__nimbus.plugins !== undefined &&
|
|
79778
|
+
__nimbus.plugins.JSLoggerPlugin !== undefined
|
|
79779
|
+
? __nimbus.plugins.JSLoggerPlugin
|
|
79780
|
+
: undefined;
|
|
79781
|
+
function reportGraphqlQueryParseError(err) {
|
|
79782
|
+
const error = normalizeError$2(err);
|
|
79783
|
+
const errorCode = GRAPHQL_QUERY_PARSE_ERROR;
|
|
79784
|
+
// Metric
|
|
79785
|
+
reportGraphqlAdapterError(errorCode);
|
|
79786
|
+
// Log
|
|
79787
|
+
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
79788
|
+
}
|
|
79789
|
+
function reportGraphqlSqlEvalPreconditionError(err) {
|
|
79790
|
+
const error = normalizeError$2(err);
|
|
79791
|
+
const errorCode = GRAPHQL_SQL_EVAL_PRECONDITION_ERROR;
|
|
79792
|
+
// Metric
|
|
79793
|
+
reportGraphqlAdapterError(errorCode);
|
|
79794
|
+
// Log
|
|
79795
|
+
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
79796
|
+
}
|
|
79797
|
+
function reportGraphqlCreateSnapshotError(err) {
|
|
79798
|
+
const error = normalizeError$2(err);
|
|
79799
|
+
const errorCode = GRAPHQL_CREATE_SNAPSHOT_ERROR;
|
|
79800
|
+
// Metric
|
|
79801
|
+
reportGraphqlAdapterError(errorCode);
|
|
79802
|
+
// Log
|
|
79803
|
+
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
79804
|
+
}
|
|
79805
|
+
function reportGraphQlEvalDbReadDuration(duration) {
|
|
79806
|
+
ldsMobileInstrumentation$2.trackValue(GRAPHQL_EVAL_DB_READ_DURATION, duration);
|
|
79807
|
+
}
|
|
79808
|
+
function reportGraphqlAdapterError(errorCode) {
|
|
79809
|
+
// Increment overall count with errorCode as tag
|
|
79810
|
+
ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_EVAL_ERROR, 1, true, { errorCode });
|
|
79811
|
+
}
|
|
79812
|
+
function reportGraphqlQueryInstrumentation(data) {
|
|
79813
|
+
const queryBuckets = [1, 2, 3, 4, 5, 10, 20, 50, 100];
|
|
79814
|
+
const recordBuckets = [
|
|
79815
|
+
1, 5, 10, 20, 50, 100, 1000, 2000, 5000, 10000, 50000, 100000, 1000000,
|
|
79816
|
+
];
|
|
79817
|
+
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_ROOT_QUERY_COUNT, data.rootQueryCount, queryBuckets);
|
|
79818
|
+
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_TOTAL_QUERY_COUNT, data.totalQueryCount, queryBuckets);
|
|
79819
|
+
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
|
|
79820
|
+
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
|
|
79821
|
+
}
|
|
79822
|
+
function incrementGraphQLRefreshUndfined() {
|
|
79823
|
+
ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
|
|
79824
|
+
}
|
|
79825
|
+
function reportDraftActionEvent(state, draftCount, message) {
|
|
79826
|
+
if (nimbusLogger) {
|
|
79827
|
+
nimbusLogger.logInfo(`Draft action event: ${state}, depth: ${draftCount}${message ? `, message: ${message}` : ''}`);
|
|
79828
|
+
}
|
|
79829
|
+
switch (state) {
|
|
79830
|
+
case 'added':
|
|
79831
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_ADDED);
|
|
79832
|
+
break;
|
|
79833
|
+
case 'uploading':
|
|
79834
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOADING);
|
|
79835
|
+
break;
|
|
79836
|
+
case 'completed':
|
|
79837
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_COMPLETED);
|
|
79838
|
+
break;
|
|
79839
|
+
case 'deleted':
|
|
79840
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_DELETED);
|
|
79841
|
+
break;
|
|
79842
|
+
case 'failed':
|
|
79843
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_FAILED, 1, true);
|
|
79844
|
+
break;
|
|
79845
|
+
case 'updated':
|
|
79846
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPDATED);
|
|
79847
|
+
break;
|
|
79848
|
+
}
|
|
79849
|
+
}
|
|
79850
|
+
/**
|
|
79851
|
+
* Reports an exception thrown while uploading a draft action. The thrown error is
|
|
79852
|
+
* otherwise swallowed by the upload handler's retry path, leaving the failure
|
|
79853
|
+
* invisible in telemetry; this surfaces it to o11y (log + counter) so a deterministic
|
|
79854
|
+
* upload failure can be diagnosed instead of silently retried forever.
|
|
79855
|
+
*
|
|
79856
|
+
* PII: the device log line carries only the handler id, retry attempt, and the error
|
|
79857
|
+
* NAME (e.g. "TypeError") — never the free-text error message, which can embed record
|
|
79858
|
+
* ids (URL path segments) or server field-validation strings. The full normalized error
|
|
79859
|
+
* (message + stack) is handed only to `ldsMobileInstrumentation.error`, the structured
|
|
79860
|
+
* o11y error pipeline responsible for scrubbing/handling that detail. Also does NOT log
|
|
79861
|
+
* the action's targetId/tag or any request body/field values.
|
|
79862
|
+
*/
|
|
79863
|
+
function reportDraftActionUploadError(error, handlerId, attempt) {
|
|
79864
|
+
const normalized = normalizeError$2(error);
|
|
79865
|
+
if (nimbusLogger) {
|
|
79866
|
+
nimbusLogger.logError(`Draft action upload error: handler=${handlerId}, attempt=${attempt}, name=${normalized.name}`);
|
|
79867
|
+
}
|
|
79868
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOAD_ERROR, 1, true, {
|
|
79869
|
+
handlerId,
|
|
79870
|
+
});
|
|
79871
|
+
ldsMobileInstrumentation$2.error(normalized, DRAFT_QUEUE_ACTION_UPLOAD_ERROR);
|
|
79872
|
+
}
|
|
79873
|
+
/**
|
|
79874
|
+
* Emits a single greppable Splunk log line (and an o11y counter) every time a draft's
|
|
79875
|
+
* Idempotency-Key is rotated — i.e. replaced with a fresh uuid rather than reused on
|
|
79876
|
+
* retry. This is the instrumentation for the WOLI duplicate-record investigation
|
|
79877
|
+
* (@W-23428669): a rotation mid-flight is the mechanism by which an already-committed
|
|
79878
|
+
* write can be re-sent under a new key and duplicated on the server, so recording every
|
|
79879
|
+
* rotation lets us reconstruct, on a future reproduction, exactly where and how often a
|
|
79880
|
+
* key changed for a given draft.
|
|
79881
|
+
*
|
|
79882
|
+
* The message is prefixed with a stable literal ("Idempotency key rotated") so it can be
|
|
79883
|
+
* pulled out of Splunk with a substring match, and carries:
|
|
79884
|
+
* - draftId: the local (client-synthesized) draft-action target id, so this event can be
|
|
79885
|
+
* correlated with the other draft-queue events for the same draft. This is NOT a server
|
|
79886
|
+
* record id or any field value — it is the same local id already surfaced by the queue's
|
|
79887
|
+
* other lifecycle logs, so it introduces no new PII.
|
|
79888
|
+
* - reason: which rotation call site fired, to disambiguate the distinct rotation paths.
|
|
79889
|
+
*
|
|
79890
|
+
* @param draftId the local draft-action target id whose key was rotated
|
|
79891
|
+
* @param reason the rotation call site (see IdempotencyKeyRotationReason)
|
|
79892
|
+
*/
|
|
79893
|
+
function reportIdempotencyKeyRotated(draftId, reason) {
|
|
79894
|
+
if (nimbusLogger) {
|
|
79895
|
+
nimbusLogger.logInfo(`Idempotency key rotated: draftId=${draftId}, reason=${reason}`);
|
|
79896
|
+
}
|
|
79897
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_IDEMPOTENCY_KEY_ROTATED, 1, undefined, {
|
|
79898
|
+
reason,
|
|
79899
|
+
});
|
|
79900
|
+
}
|
|
79901
|
+
function reportDraftQueueState(state, draftCount) {
|
|
79902
|
+
if (nimbusLogger) {
|
|
79903
|
+
nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
|
|
79904
|
+
}
|
|
79905
|
+
switch (state) {
|
|
79906
|
+
case 'started':
|
|
79907
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STARTED);
|
|
79908
|
+
break;
|
|
79909
|
+
case 'error':
|
|
79910
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_ERROR, 1, true);
|
|
79911
|
+
break;
|
|
79912
|
+
case 'waiting':
|
|
79913
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_WAITING);
|
|
79914
|
+
break;
|
|
79915
|
+
case 'stopped':
|
|
79916
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STOPPED);
|
|
79917
|
+
break;
|
|
79918
|
+
}
|
|
79919
|
+
}
|
|
79920
|
+
function reportDraftAwareContentDocumentVersionSynthesizeError(err) {
|
|
79921
|
+
let error;
|
|
79922
|
+
if (err.body !== undefined) {
|
|
79923
|
+
error = err.body;
|
|
79924
|
+
}
|
|
79925
|
+
else {
|
|
79926
|
+
error = normalizeError$2(err);
|
|
79927
|
+
}
|
|
79928
|
+
const errorCode = DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR;
|
|
79929
|
+
const errorType = error.errorType;
|
|
79930
|
+
const tags = {
|
|
79931
|
+
errorCode,
|
|
79932
|
+
};
|
|
79933
|
+
if (errorType !== undefined) {
|
|
79934
|
+
tags.errorType = errorType;
|
|
79935
|
+
}
|
|
79936
|
+
// Metric
|
|
79937
|
+
ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR, 1, true, tags);
|
|
79938
|
+
// Log
|
|
79939
|
+
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
79940
|
+
}
|
|
79941
|
+
function reportDraftAwareContentVersionSynthesizeCalls(mimeType) {
|
|
79942
|
+
ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS, 1, undefined, { mimeType });
|
|
79943
|
+
}
|
|
79944
|
+
/** Priming */
|
|
79945
|
+
function reportPrimingSessionCreated() {
|
|
79946
|
+
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_SESSION_COUNT, 1, undefined, {});
|
|
79947
|
+
}
|
|
79948
|
+
function reportPrimingError(errorType, recordCount) {
|
|
79949
|
+
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_ERROR_COUNT, recordCount, undefined, {
|
|
79950
|
+
errorType,
|
|
79951
|
+
});
|
|
79952
|
+
}
|
|
79953
|
+
function reportPrimingSuccess(recordCount) {
|
|
79954
|
+
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_PRIMED_COUNT, recordCount, undefined);
|
|
79955
|
+
}
|
|
79956
|
+
function reportPrimingConflict(resolutionType, recordCount) {
|
|
79957
|
+
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_CONFLICT_COUNT, recordCount, undefined, {
|
|
79958
|
+
resolutionType,
|
|
79959
|
+
});
|
|
79960
|
+
}
|
|
79961
|
+
/** Network */
|
|
79962
|
+
function reportChunkCandidateUrlLength(urlLength) {
|
|
79963
|
+
const buckets = [8000, 10000, 12000, 14000, 16000];
|
|
79964
|
+
ldsMobileInstrumentation$2.bucketValue('chunk-candidate-url-length-histogram', urlLength, buckets);
|
|
79965
|
+
}
|
|
79966
|
+
/** Garbage Collection */
|
|
79967
|
+
function reportAggressiveTrimTriggered(trimCount, beforeTrimRecordCount, totalRecordsTrimmed) {
|
|
79968
|
+
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT, trimCount);
|
|
79969
|
+
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM, beforeTrimRecordCount);
|
|
79970
|
+
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED, totalRecordsTrimmed);
|
|
79971
|
+
}
|
|
79972
|
+
/** One Store Cache Purge */
|
|
79973
|
+
const ONESTORE_CACHE_PURGING_RECORDS_PURGED = 'onestore-cache-purging-records-purged';
|
|
79974
|
+
const ONESTORE_CACHE_PURGING_RECORDS_ERROR = 'onestore-cache-purging-records-error';
|
|
79975
|
+
function reportOneStoreRecordsPurgedFromCache(recordsPurged) {
|
|
79976
|
+
ldsMobileInstrumentation$2.trackValue(ONESTORE_CACHE_PURGING_RECORDS_PURGED, recordsPurged);
|
|
79977
|
+
}
|
|
79978
|
+
function reportOneStoreCachePurgingError(error) {
|
|
79979
|
+
const errorMessage = normalizeError$2(error);
|
|
79980
|
+
ldsMobileInstrumentation$2.error(errorMessage, ONESTORE_CACHE_PURGING_RECORDS_ERROR);
|
|
79981
|
+
}
|
|
79982
|
+
|
|
79606
79983
|
const HTTP_HEADER_RETRY_AFTER = 'Retry-After';
|
|
79607
79984
|
const HTTP_HEADER_IDEMPOTENCY_KEY = 'Idempotency-Key';
|
|
79608
79985
|
const ERROR_CODE_IDEMPOTENCY_FEATURE_NOT_ENABLED = 'IDEMPOTENCY_FEATURE_NOT_ENABLED';
|
|
@@ -79691,6 +80068,14 @@ class AbstractResourceRequestActionHandler {
|
|
|
79691
80068
|
if (request && request.headers && request.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
|
|
79692
80069
|
const status = response.status;
|
|
79693
80070
|
switch (status) {
|
|
80071
|
+
case 0 /* IdempotentWriteSpecificHttpStatusCode.NoResponse */:
|
|
80072
|
+
// statusCode 0 = the client sent the request but received no response
|
|
80073
|
+
// (connection dropped / app suspended in flight). The write may already
|
|
80074
|
+
// have committed at the origin, so we MUST retry with the SAME idempotency
|
|
80075
|
+
// key and let the server dedupe — rotating the key here would duplicate an
|
|
80076
|
+
// already-committed record.
|
|
80077
|
+
shouldRetry = true;
|
|
80078
|
+
break;
|
|
79694
80079
|
case 408 /* IdempotentWriteSpecificHttpStatusCode.RequestTimeout */:
|
|
79695
80080
|
case 503 /* IdempotentWriteSpecificHttpStatusCode.ServiceUnavailable */:
|
|
79696
80081
|
retryDelayInMs = getRetryAfterInMs(response.headers);
|
|
@@ -79737,11 +80122,34 @@ class AbstractResourceRequestActionHandler {
|
|
|
79737
80122
|
}
|
|
79738
80123
|
}
|
|
79739
80124
|
}
|
|
80125
|
+
// A generic 400 that none of the idempotency-specific branches above claimed
|
|
80126
|
+
// (shouldRetry still false) and that is not a backdating collision. @W-23445154
|
|
79740
80127
|
if (response.status === HttpStatusCode$2.BadRequest &&
|
|
80128
|
+
!shouldRetry &&
|
|
79741
80129
|
this.hasIdempotencySupport() &&
|
|
79742
|
-
updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined
|
|
79743
|
-
|
|
79744
|
-
|
|
80130
|
+
updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined &&
|
|
80131
|
+
!this.isBackdatingError(response.body, action)) {
|
|
80132
|
+
if (!preserveIdempotencyKeyOn400Gate.isOpen({ fallback: false })) {
|
|
80133
|
+
// Gate CLOSED (default) — legacy behavior: rotate the key and let the draft
|
|
80134
|
+
// error (shouldRetry stays false). Retained as the default until the fix is
|
|
80135
|
+
// enabled; this is the path that duplicated already-committed writes.
|
|
80136
|
+
updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
80137
|
+
reportIdempotencyKeyRotated(updatedAction.targetId, 'generic-400-killswitch');
|
|
80138
|
+
actionDataChanged = true;
|
|
80139
|
+
}
|
|
80140
|
+
else if (!this.isServerGeneratedError(response.body)) {
|
|
80141
|
+
// Gate OPEN — the fix: only an edge/gateway-injected 400 (no recognizable
|
|
80142
|
+
// server error body) is retried with the SAME key, so the server can dedupe a
|
|
80143
|
+
// write that may already have committed at the origin. A real, server-generated
|
|
80144
|
+
// 400 (UiApiError[] or an enhancedErrorType body, e.g. a field-validation
|
|
80145
|
+
// failure) falls through to the error path below: retrying it unchanged would
|
|
80146
|
+
// only be rejected again, so the draft is errored for the user to fix or discard
|
|
80147
|
+
// — the same terminal outcome as the legacy path, minus the duplicating key
|
|
80148
|
+
// rotation. The key is only ever rotated by the recognized idempotency error
|
|
80149
|
+
// codes above, by a backdating collision (new body), or when the user edits an
|
|
80150
|
+
// errored draft (mergeActions/handleReplaceAction).
|
|
80151
|
+
shouldRetry = true;
|
|
80152
|
+
}
|
|
79745
80153
|
}
|
|
79746
80154
|
if (response.status === HttpStatusCode$2.BadRequest &&
|
|
79747
80155
|
this.isBackdatingError(response.body, action)) {
|
|
@@ -79750,23 +80158,102 @@ class AbstractResourceRequestActionHandler {
|
|
|
79750
80158
|
...updatedAction.data.body.fields,
|
|
79751
80159
|
LastModifiedDate: new Date(updatedAction.timestamp).toISOString(),
|
|
79752
80160
|
};
|
|
80161
|
+
// The record content changed (LastModifiedDate is bumped), so this is a NEW
|
|
80162
|
+
// logical write. Rotate the idempotency key so the server treats it as such
|
|
80163
|
+
// rather than deduping it against the stale, pre-backdate request. This is a
|
|
80164
|
+
// legitimate rotation — the request body is modified — unlike the generic-400
|
|
80165
|
+
// fallback above which must preserve the key when the fix is enabled. @W-23445154
|
|
80166
|
+
if (this.hasIdempotencySupport() &&
|
|
80167
|
+
updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined) {
|
|
80168
|
+
updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
80169
|
+
reportIdempotencyKeyRotated(updatedAction.targetId, 'backdating-collision');
|
|
80170
|
+
}
|
|
79753
80171
|
shouldRetry = true;
|
|
79754
80172
|
actionDataChanged = true;
|
|
79755
80173
|
}
|
|
79756
|
-
|
|
79757
|
-
|
|
79758
|
-
|
|
80174
|
+
if (shouldRetry) {
|
|
80175
|
+
// Funnel the retry through the cap: when the gate is open this persists
|
|
80176
|
+
// the attempt count and errors out once the cap is hit; when the gate is
|
|
80177
|
+
// closed it behaves exactly as before. The non-ok response is the failure
|
|
80178
|
+
// that would otherwise be retried.
|
|
80179
|
+
await this.retryOrCap(updatedAction, response, actionErrored, retryDelayInMs, actionDataChanged);
|
|
80180
|
+
}
|
|
80181
|
+
else {
|
|
80182
|
+
await actionErrored({
|
|
79759
80183
|
...updatedAction,
|
|
79760
80184
|
error: response,
|
|
79761
80185
|
status: DraftActionStatus.Error,
|
|
79762
|
-
},
|
|
80186
|
+
}, false, retryDelayInMs, actionDataChanged);
|
|
80187
|
+
}
|
|
79763
80188
|
return ProcessActionResult.ACTION_ERRORED;
|
|
79764
80189
|
}
|
|
79765
80190
|
catch (e) {
|
|
79766
|
-
|
|
80191
|
+
// #3 (ungated): the thrown exception is otherwise swallowed here, leaving a
|
|
80192
|
+
// deterministic upload failure invisible in telemetry. Surface it to o11y
|
|
80193
|
+
// before deciding whether to retry.
|
|
80194
|
+
const error = normalizeError$1(e);
|
|
80195
|
+
const attempt = this.getUploadRetryCount(action) + 1;
|
|
80196
|
+
reportDraftActionUploadError(error, this.handlerId, attempt);
|
|
80197
|
+
await this.retryOrCap(action, error, actionErrored);
|
|
79767
80198
|
return ProcessActionResult.NETWORK_ERROR;
|
|
79768
80199
|
}
|
|
79769
80200
|
}
|
|
80201
|
+
/**
|
|
80202
|
+
* Reads the persisted upload retry-attempt count from the action's durable metadata
|
|
80203
|
+
* bag. The count lives in metadata (rather than in-memory) so it survives app
|
|
80204
|
+
* restarts and queue re-creation — the failure modes that let the unbounded retry
|
|
80205
|
+
* loop run for days.
|
|
80206
|
+
*/
|
|
80207
|
+
getUploadRetryCount(action) {
|
|
80208
|
+
const parsed = Number(action.metadata?.[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]);
|
|
80209
|
+
// Guard against a missing/corrupt persisted value: a NaN, fractional, or negative
|
|
80210
|
+
// count must never weaken the cap. Floor to a non-negative integer, defaulting to 0.
|
|
80211
|
+
if (!Number.isFinite(parsed) || parsed < 0) {
|
|
80212
|
+
return 0;
|
|
80213
|
+
}
|
|
80214
|
+
return Math.floor(parsed);
|
|
80215
|
+
}
|
|
80216
|
+
/**
|
|
80217
|
+
* Enforces the upload retry-attempt cap around the queue's `actionErrored` callback.
|
|
80218
|
+
* Both retry paths — a retryable HTTP error and a thrown exception — funnel through
|
|
80219
|
+
* here.
|
|
80220
|
+
*
|
|
80221
|
+
* The entire cap behavior is gated behind `lmr.draft-queue-max-retry-attempts`. When
|
|
80222
|
+
* the gate is CLOSED this is a transparent passthrough: it issues the same
|
|
80223
|
+
* `actionErrored(action, true, ...)` retry the queue made before this change, and
|
|
80224
|
+
* writes no extra metadata. When the gate is OPEN it persists an incremented attempt
|
|
80225
|
+
* count to the action's durable metadata and, once the action has failed
|
|
80226
|
+
* {@link MAX_RETRY_ATTEMPTS} times, transitions it to Error (carrying a
|
|
80227
|
+
* FetchResponse-shaped error that names the failure that exhausted the retries)
|
|
80228
|
+
* instead of scheduling yet another retry.
|
|
80229
|
+
*/
|
|
80230
|
+
async retryOrCap(action, lastFailure, actionErrored, retryDelayInMs, actionDataChanged) {
|
|
80231
|
+
if (!draftQueueMaxRetryAttemptsGate.isOpen({ fallback: false })) {
|
|
80232
|
+
// Gate closed: preserve the pre-existing unbounded-retry behavior exactly.
|
|
80233
|
+
await actionErrored(action, true, retryDelayInMs, actionDataChanged);
|
|
80234
|
+
return;
|
|
80235
|
+
}
|
|
80236
|
+
const attempt = this.getUploadRetryCount(action) + 1;
|
|
80237
|
+
if (attempt >= MAX_RETRY_ATTEMPTS) {
|
|
80238
|
+
await actionErrored({
|
|
80239
|
+
...action,
|
|
80240
|
+
error: buildMaxRetryError(lastFailure),
|
|
80241
|
+
status: DraftActionStatus.Error,
|
|
80242
|
+
}, false);
|
|
80243
|
+
return;
|
|
80244
|
+
}
|
|
80245
|
+
// Persist the incremented attempt count so it survives restarts. Forcing
|
|
80246
|
+
// actionDataChanged ensures the queue writes the updated metadata before the
|
|
80247
|
+
// action is rescheduled for retry.
|
|
80248
|
+
const retryingAction = {
|
|
80249
|
+
...action,
|
|
80250
|
+
metadata: {
|
|
80251
|
+
...action.metadata,
|
|
80252
|
+
[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]: String(attempt),
|
|
80253
|
+
},
|
|
80254
|
+
};
|
|
80255
|
+
await actionErrored(retryingAction, true, retryDelayInMs, true);
|
|
80256
|
+
}
|
|
79770
80257
|
async handleActionEnqueued(action) {
|
|
79771
80258
|
const impactedKeys = await this.recordService.setSideEffectsForActions([action]);
|
|
79772
80259
|
await this.recordService.reapplyRecordSideEffects(impactedKeys);
|
|
@@ -79930,6 +80417,13 @@ class AbstractResourceRequestActionHandler {
|
|
|
79930
80417
|
this.isActionOfType(sourceAction)) {
|
|
79931
80418
|
targetAction.status = DraftActionStatus.Pending;
|
|
79932
80419
|
targetAction.data = sourceAction.data;
|
|
80420
|
+
// Replacing an action's data re-queues it as a fresh upload, so the persisted
|
|
80421
|
+
// upload retry-attempt count must not carry over — otherwise a previously-
|
|
80422
|
+
// throttled action could immediately re-hit the cap on its first new attempt.
|
|
80423
|
+
// (Mirrors the same clear in mergeActions.)
|
|
80424
|
+
if (targetAction.metadata !== undefined) {
|
|
80425
|
+
delete targetAction.metadata[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY];
|
|
80426
|
+
}
|
|
79933
80427
|
return targetAction;
|
|
79934
80428
|
}
|
|
79935
80429
|
else {
|
|
@@ -79966,9 +80460,15 @@ class AbstractResourceRequestActionHandler {
|
|
|
79966
80460
|
// Updates Idempotency key if target has one
|
|
79967
80461
|
if (targetData.headers && targetData.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
|
|
79968
80462
|
merged.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
80463
|
+
reportIdempotencyKeyRotated(merged.targetId, 'merge-actions');
|
|
79969
80464
|
}
|
|
79970
80465
|
// overlay metadata
|
|
79971
80466
|
merged.metadata = { ...targetMetadata, ...sourceMetadata };
|
|
80467
|
+
// A merge folds new user data into the action and re-queues it as a fresh upload,
|
|
80468
|
+
// so the persisted upload retry-attempt count must not carry over — otherwise a
|
|
80469
|
+
// previously-throttled action could immediately re-hit the cap on its first new
|
|
80470
|
+
// attempt.
|
|
80471
|
+
delete merged.metadata[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY];
|
|
79972
80472
|
// put status back to pending to auto upload if queue is active and targed is at the head.
|
|
79973
80473
|
merged.status = DraftActionStatus.Pending;
|
|
79974
80474
|
return merged;
|
|
@@ -79990,6 +80490,7 @@ class AbstractResourceRequestActionHandler {
|
|
|
79990
80490
|
action.data.headers = action.data.headers || {};
|
|
79991
80491
|
if (updateIdempotencyKey) {
|
|
79992
80492
|
action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
80493
|
+
reportIdempotencyKeyRotated(action.targetId, 'idempotency-error');
|
|
79993
80494
|
}
|
|
79994
80495
|
else {
|
|
79995
80496
|
delete action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY];
|
|
@@ -80003,8 +80504,36 @@ class AbstractResourceRequestActionHandler {
|
|
|
80003
80504
|
isUiApiErrors(body) {
|
|
80004
80505
|
return body !== undefined && isArray$3$1(body) && body.length > 0 && body[0].errorCode;
|
|
80005
80506
|
}
|
|
80507
|
+
// Distinguishes a real, server-generated 400 from an edge/gateway-injected one.
|
|
80508
|
+
//
|
|
80509
|
+
// A 400 the origin (UiApi/APREST) actually produced carries a structured error body:
|
|
80510
|
+
// either a `UiApiError[]` (see isUiApiErrors) or an enhanced-error object tagged with
|
|
80511
|
+
// `enhancedErrorType` (e.g. 'RecordError' for field-validation failures). These describe
|
|
80512
|
+
// a request the server understood and deliberately rejected — retrying it unchanged would
|
|
80513
|
+
// just be rejected again, so the draft must be errored for the user to fix or discard.
|
|
80514
|
+
//
|
|
80515
|
+
// An edge/gateway-injected 400 (the duplicate-record incident, @W-23445154) has NO such
|
|
80516
|
+
// body — it's a tiny generic error page ({ message: 'Bad Request' }), a plain string, or
|
|
80517
|
+
// empty — and is returned on a request that may already have committed at the origin.
|
|
80518
|
+
// Only those should be retried with the same idempotency key so the server can dedupe.
|
|
80519
|
+
isServerGeneratedError(body) {
|
|
80520
|
+
if (this.isUiApiErrors(body)) {
|
|
80521
|
+
return true;
|
|
80522
|
+
}
|
|
80523
|
+
// enhancedErrorType is the origin's marker for a structured record error (field
|
|
80524
|
+
// validation, backdating collision, etc.). Guard the deref so a string/undefined
|
|
80525
|
+
// edge body doesn't throw.
|
|
80526
|
+
return (body !== null &&
|
|
80527
|
+
typeof body === 'object' &&
|
|
80528
|
+
body.enhancedErrorType !== undefined);
|
|
80529
|
+
}
|
|
80006
80530
|
isBackdatingError(body, action) {
|
|
80007
|
-
if (
|
|
80531
|
+
if (
|
|
80532
|
+
// An edge/gateway-injected 400 can carry an empty, string, or missing body; guard
|
|
80533
|
+
// the deref so classifying such a response never throws. @W-23445154
|
|
80534
|
+
body !== null &&
|
|
80535
|
+
typeof body === 'object' &&
|
|
80536
|
+
body.enhancedErrorType &&
|
|
80008
80537
|
body.enhancedErrorType === 'RecordError' &&
|
|
80009
80538
|
body.output &&
|
|
80010
80539
|
body.output.errors &&
|
|
@@ -80579,229 +81108,6 @@ class AbstractQuickActionHandler extends AbstractResourceRequestActionHandler {
|
|
|
80579
81108
|
}
|
|
80580
81109
|
}
|
|
80581
81110
|
|
|
80582
|
-
function attachObserversToAdapterRequestContext(observers, adapterRequestContext) {
|
|
80583
|
-
if (adapterRequestContext === undefined) {
|
|
80584
|
-
return { eventObservers: observers };
|
|
80585
|
-
}
|
|
80586
|
-
if (adapterRequestContext.eventObservers === undefined) {
|
|
80587
|
-
return { ...adapterRequestContext, eventObservers: observers };
|
|
80588
|
-
}
|
|
80589
|
-
return {
|
|
80590
|
-
...adapterRequestContext,
|
|
80591
|
-
eventObservers: adapterRequestContext.eventObservers.concat(observers),
|
|
80592
|
-
};
|
|
80593
|
-
}
|
|
80594
|
-
/**
|
|
80595
|
-
* Use this method to sanitize the unknown error object when
|
|
80596
|
-
* we are unsure of the type of the error thrown
|
|
80597
|
-
*
|
|
80598
|
-
* @param err Unknown object to sanitize
|
|
80599
|
-
* @returns an instance of error
|
|
80600
|
-
*/
|
|
80601
|
-
function normalizeError$1(err) {
|
|
80602
|
-
if (err instanceof Error) {
|
|
80603
|
-
return err;
|
|
80604
|
-
}
|
|
80605
|
-
else if (typeof err === 'string') {
|
|
80606
|
-
return new Error(err);
|
|
80607
|
-
}
|
|
80608
|
-
return new Error(stringify$5(err));
|
|
80609
|
-
}
|
|
80610
|
-
// metrics
|
|
80611
|
-
/** GraphQL */
|
|
80612
|
-
const GRAPHQL_EVAL_ERROR = 'gql-eval-error';
|
|
80613
|
-
const GRAPHQL_EVAL_DB_READ_DURATION = 'gql-eval-db-read-duration';
|
|
80614
|
-
const GRAPHQL_EVAL_ROOT_QUERY_COUNT = 'gql-eval-root-query-count';
|
|
80615
|
-
const GRAPHQL_EVAL_TOTAL_QUERY_COUNT = 'gql-eval-total-query-count';
|
|
80616
|
-
const GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT = 'gql-eval-max-child-count';
|
|
80617
|
-
const GRAPHQL_EVAL_QUERY_RECORD_COUNT = 'gql-eval-query-record-count';
|
|
80618
|
-
const GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED = 'gql-snapshot-refresh-undefined';
|
|
80619
|
-
/** Draft Queue */
|
|
80620
|
-
const DRAFT_QUEUE_STATE_STARTED = 'draft-queue-state-started';
|
|
80621
|
-
const DRAFT_QUEUE_STATE_ERROR = 'draft-queue-state-error';
|
|
80622
|
-
const DRAFT_QUEUE_STATE_WAITING = 'draft-queue-state-waiting';
|
|
80623
|
-
const DRAFT_QUEUE_STATE_STOPPED = 'draft-queue-state-stopped';
|
|
80624
|
-
const DRAFT_QUEUE_ACTION_ADDED = 'draft-queue-action-added';
|
|
80625
|
-
const DRAFT_QUEUE_ACTION_UPLOADING = 'draft-queue-action-uploading';
|
|
80626
|
-
const DRAFT_QUEUE_ACTION_COMPLETED = 'draft-queue-action-completed';
|
|
80627
|
-
const DRAFT_QUEUE_ACTION_DELETED = 'draft-queue-action-deleted';
|
|
80628
|
-
const DRAFT_QUEUE_ACTION_UPDATED = 'draft-queue-action-updated';
|
|
80629
|
-
const DRAFT_QUEUE_ACTION_FAILED = 'draft-queue-action-failed';
|
|
80630
|
-
const DRAFT_QUEUE_TOTAL_MERGE_ACTIONS_CALLS = 'draft-queue-total-mergeActions-calls';
|
|
80631
|
-
/** Content Document */
|
|
80632
|
-
const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
|
|
80633
|
-
const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
|
|
80634
|
-
/** Priming */
|
|
80635
|
-
const PRIMING_TOTAL_SESSION_COUNT = 'priming-total-session-count';
|
|
80636
|
-
const PRIMING_TOTAL_ERROR_COUNT = 'priming-total-error-count';
|
|
80637
|
-
const PRIMING_TOTAL_PRIMED_COUNT = 'priming-total-primed-count';
|
|
80638
|
-
const PRIMING_TOTAL_CONFLICT_COUNT = 'priming-total-conflict-count';
|
|
80639
|
-
// logs
|
|
80640
|
-
const GRAPHQL_QUERY_PARSE_ERROR = 'gql-query-parse-error';
|
|
80641
|
-
const GRAPHQL_SQL_EVAL_PRECONDITION_ERROR = 'gql-sql-pre-eval-error';
|
|
80642
|
-
const GRAPHQL_CREATE_SNAPSHOT_ERROR = 'gql-create-snapshot-error';
|
|
80643
|
-
const DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR = 'draft-aware-create-content-document-and-version-error';
|
|
80644
|
-
/** Garbage Collection */
|
|
80645
|
-
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT = 'garbage-collection-aggressive-trim-count';
|
|
80646
|
-
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED = 'garbage-collection-aggressive-trim-records-trimmed';
|
|
80647
|
-
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM = 'garbage-collection-aggressive-trim-total-records-before-trim';
|
|
80648
|
-
const ldsMobileInstrumentation$2 = getInstrumentation();
|
|
80649
|
-
const nimbusLogger = typeof __nimbus !== 'undefined' &&
|
|
80650
|
-
__nimbus.plugins !== undefined &&
|
|
80651
|
-
__nimbus.plugins.JSLoggerPlugin !== undefined
|
|
80652
|
-
? __nimbus.plugins.JSLoggerPlugin
|
|
80653
|
-
: undefined;
|
|
80654
|
-
function reportGraphqlQueryParseError(err) {
|
|
80655
|
-
const error = normalizeError$1(err);
|
|
80656
|
-
const errorCode = GRAPHQL_QUERY_PARSE_ERROR;
|
|
80657
|
-
// Metric
|
|
80658
|
-
reportGraphqlAdapterError(errorCode);
|
|
80659
|
-
// Log
|
|
80660
|
-
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
80661
|
-
}
|
|
80662
|
-
function reportGraphqlSqlEvalPreconditionError(err) {
|
|
80663
|
-
const error = normalizeError$1(err);
|
|
80664
|
-
const errorCode = GRAPHQL_SQL_EVAL_PRECONDITION_ERROR;
|
|
80665
|
-
// Metric
|
|
80666
|
-
reportGraphqlAdapterError(errorCode);
|
|
80667
|
-
// Log
|
|
80668
|
-
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
80669
|
-
}
|
|
80670
|
-
function reportGraphqlCreateSnapshotError(err) {
|
|
80671
|
-
const error = normalizeError$1(err);
|
|
80672
|
-
const errorCode = GRAPHQL_CREATE_SNAPSHOT_ERROR;
|
|
80673
|
-
// Metric
|
|
80674
|
-
reportGraphqlAdapterError(errorCode);
|
|
80675
|
-
// Log
|
|
80676
|
-
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
80677
|
-
}
|
|
80678
|
-
function reportGraphQlEvalDbReadDuration(duration) {
|
|
80679
|
-
ldsMobileInstrumentation$2.trackValue(GRAPHQL_EVAL_DB_READ_DURATION, duration);
|
|
80680
|
-
}
|
|
80681
|
-
function reportGraphqlAdapterError(errorCode) {
|
|
80682
|
-
// Increment overall count with errorCode as tag
|
|
80683
|
-
ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_EVAL_ERROR, 1, true, { errorCode });
|
|
80684
|
-
}
|
|
80685
|
-
function reportGraphqlQueryInstrumentation(data) {
|
|
80686
|
-
const queryBuckets = [1, 2, 3, 4, 5, 10, 20, 50, 100];
|
|
80687
|
-
const recordBuckets = [
|
|
80688
|
-
1, 5, 10, 20, 50, 100, 1000, 2000, 5000, 10000, 50000, 100000, 1000000,
|
|
80689
|
-
];
|
|
80690
|
-
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_ROOT_QUERY_COUNT, data.rootQueryCount, queryBuckets);
|
|
80691
|
-
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_TOTAL_QUERY_COUNT, data.totalQueryCount, queryBuckets);
|
|
80692
|
-
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
|
|
80693
|
-
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
|
|
80694
|
-
}
|
|
80695
|
-
function incrementGraphQLRefreshUndfined() {
|
|
80696
|
-
ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
|
|
80697
|
-
}
|
|
80698
|
-
function reportDraftActionEvent(state, draftCount, message) {
|
|
80699
|
-
if (nimbusLogger) {
|
|
80700
|
-
nimbusLogger.logInfo(`Draft action event: ${state}, depth: ${draftCount}${message ? `, message: ${message}` : ''}`);
|
|
80701
|
-
}
|
|
80702
|
-
switch (state) {
|
|
80703
|
-
case 'added':
|
|
80704
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_ADDED);
|
|
80705
|
-
break;
|
|
80706
|
-
case 'uploading':
|
|
80707
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOADING);
|
|
80708
|
-
break;
|
|
80709
|
-
case 'completed':
|
|
80710
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_COMPLETED);
|
|
80711
|
-
break;
|
|
80712
|
-
case 'deleted':
|
|
80713
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_DELETED);
|
|
80714
|
-
break;
|
|
80715
|
-
case 'failed':
|
|
80716
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_FAILED, 1, true);
|
|
80717
|
-
break;
|
|
80718
|
-
case 'updated':
|
|
80719
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPDATED);
|
|
80720
|
-
break;
|
|
80721
|
-
}
|
|
80722
|
-
}
|
|
80723
|
-
function reportDraftQueueState(state, draftCount) {
|
|
80724
|
-
if (nimbusLogger) {
|
|
80725
|
-
nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
|
|
80726
|
-
}
|
|
80727
|
-
switch (state) {
|
|
80728
|
-
case 'started':
|
|
80729
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STARTED);
|
|
80730
|
-
break;
|
|
80731
|
-
case 'error':
|
|
80732
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_ERROR, 1, true);
|
|
80733
|
-
break;
|
|
80734
|
-
case 'waiting':
|
|
80735
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_WAITING);
|
|
80736
|
-
break;
|
|
80737
|
-
case 'stopped':
|
|
80738
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STOPPED);
|
|
80739
|
-
break;
|
|
80740
|
-
}
|
|
80741
|
-
}
|
|
80742
|
-
function reportDraftAwareContentDocumentVersionSynthesizeError(err) {
|
|
80743
|
-
let error;
|
|
80744
|
-
if (err.body !== undefined) {
|
|
80745
|
-
error = err.body;
|
|
80746
|
-
}
|
|
80747
|
-
else {
|
|
80748
|
-
error = normalizeError$1(err);
|
|
80749
|
-
}
|
|
80750
|
-
const errorCode = DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR;
|
|
80751
|
-
const errorType = error.errorType;
|
|
80752
|
-
const tags = {
|
|
80753
|
-
errorCode,
|
|
80754
|
-
};
|
|
80755
|
-
if (errorType !== undefined) {
|
|
80756
|
-
tags.errorType = errorType;
|
|
80757
|
-
}
|
|
80758
|
-
// Metric
|
|
80759
|
-
ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR, 1, true, tags);
|
|
80760
|
-
// Log
|
|
80761
|
-
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
80762
|
-
}
|
|
80763
|
-
function reportDraftAwareContentVersionSynthesizeCalls(mimeType) {
|
|
80764
|
-
ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS, 1, undefined, { mimeType });
|
|
80765
|
-
}
|
|
80766
|
-
/** Priming */
|
|
80767
|
-
function reportPrimingSessionCreated() {
|
|
80768
|
-
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_SESSION_COUNT, 1, undefined, {});
|
|
80769
|
-
}
|
|
80770
|
-
function reportPrimingError(errorType, recordCount) {
|
|
80771
|
-
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_ERROR_COUNT, recordCount, undefined, {
|
|
80772
|
-
errorType,
|
|
80773
|
-
});
|
|
80774
|
-
}
|
|
80775
|
-
function reportPrimingSuccess(recordCount) {
|
|
80776
|
-
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_PRIMED_COUNT, recordCount, undefined);
|
|
80777
|
-
}
|
|
80778
|
-
function reportPrimingConflict(resolutionType, recordCount) {
|
|
80779
|
-
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_CONFLICT_COUNT, recordCount, undefined, {
|
|
80780
|
-
resolutionType,
|
|
80781
|
-
});
|
|
80782
|
-
}
|
|
80783
|
-
/** Network */
|
|
80784
|
-
function reportChunkCandidateUrlLength(urlLength) {
|
|
80785
|
-
const buckets = [8000, 10000, 12000, 14000, 16000];
|
|
80786
|
-
ldsMobileInstrumentation$2.bucketValue('chunk-candidate-url-length-histogram', urlLength, buckets);
|
|
80787
|
-
}
|
|
80788
|
-
/** Garbage Collection */
|
|
80789
|
-
function reportAggressiveTrimTriggered(trimCount, beforeTrimRecordCount, totalRecordsTrimmed) {
|
|
80790
|
-
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT, trimCount);
|
|
80791
|
-
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM, beforeTrimRecordCount);
|
|
80792
|
-
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED, totalRecordsTrimmed);
|
|
80793
|
-
}
|
|
80794
|
-
/** One Store Cache Purge */
|
|
80795
|
-
const ONESTORE_CACHE_PURGING_RECORDS_PURGED = 'onestore-cache-purging-records-purged';
|
|
80796
|
-
const ONESTORE_CACHE_PURGING_RECORDS_ERROR = 'onestore-cache-purging-records-error';
|
|
80797
|
-
function reportOneStoreRecordsPurgedFromCache(recordsPurged) {
|
|
80798
|
-
ldsMobileInstrumentation$2.trackValue(ONESTORE_CACHE_PURGING_RECORDS_PURGED, recordsPurged);
|
|
80799
|
-
}
|
|
80800
|
-
function reportOneStoreCachePurgingError(error) {
|
|
80801
|
-
const errorMessage = normalizeError$1(error);
|
|
80802
|
-
ldsMobileInstrumentation$2.error(errorMessage, ONESTORE_CACHE_PURGING_RECORDS_ERROR);
|
|
80803
|
-
}
|
|
80804
|
-
|
|
80805
81111
|
const QUICK_ACTION_HANDLER = 'QUICK_ACTION_HANDLER';
|
|
80806
81112
|
class QuickActionExecutionRepresentationHandler extends AbstractQuickActionHandler {
|
|
80807
81113
|
constructor(getLuvio, draftRecordService, draftQueue, networkAdapter, isDraftId, sideEffectService, objectInfoService, getRecord) {
|
|
@@ -85508,7 +85814,7 @@ function isRecordType(type) {
|
|
|
85508
85814
|
return Boolean(interfaces.find((iface) => iface.name === 'Record'));
|
|
85509
85815
|
}
|
|
85510
85816
|
|
|
85511
|
-
var uiapiSchemaString = "# Auto-generated merged GraphQL schema\n# Generated at: 2025-10-14T15:00:19.876399281Z\n# Source files: ui-services-private/java/resources/graphql-schemas/analytics.graphqls, ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls, ui-services-private/java/resources/graphql-schemas/setup.graphqls, ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/analytics.graphqls\n# ============================================================\ninput Analytics__AnalyticsFilter @team(name: \"TUA-Admin-Home-Search\") {\n Id: Setup__IdOperators\n MasterLabel: StringOperators\n DeveloperName: StringOperators\n NamespacePrefix: StringOperators\n AssetApiName: StringOperators\n DataConnectorType: StringOperators\n CreatedById: Setup__IdOperators\n LastModifiedById: Setup__IdOperators\n SemanticMetricId: Setup__IdOperators\n SemanticModelId: Setup__IdOperators\n LastModifiedDate: DateTimeOperators\n CreatedDate: DateTimeOperators\n AssetUsageType: PicklistOperators\n ActivePromotionRequestId: Setup__IdOperators\n SemanticModel: Analytics__SemanticModelFilter\n and: [Analytics__AnalyticsFilter]\n or: [Analytics__AnalyticsFilter]\n not: Analytics__AnalyticsFilter\n}\n\ninput Analytics__SemanticModelFilter @team(name: \"TUA-Admin-Home-Search\") {\n DeveloperName: StringOperators\n MasterLabel: StringOperators\n}\n\nenum Analytics__SortEnumType @team(name: \"TUA-Admin-Home-Search\") {\n ASC\n DESC\n}\n\ntype Analytics__SemanticSubMetricDefinitionConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticSubMetricDefinitionEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticSubMetricDefinitionEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticSubMetricDefinitionRepresentation\n cursor: String!\n}\n\ntype Analytics__DataspaceRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n MasterLabel: String\n DeveloperName: String\n}\n\ninterface Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__AnalyticsBrowse @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\n# Empty enum is invalid GraphQL\n# enum AnalyticsAssetType @team(name: \"TUA-Admin-Home-Search\") @generic {\n# }\n\ntype Analytics__AnalyticsWorkspaceAssetConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsWorkspaceAssetEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticDefinition implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n SemanticModelId: IDValue\n SemanticModel: Analytics__SemanticModel\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n SubMetrics(first: Int, after: String): Analytics__SemanticSubMetricDefinitionConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__DominoTemplate implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA Intel MarketPlace\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n TemplateStatus: StringValue\n TemplateType: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__AnalyticsEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsRepresentationInterface\n cursor: String!\n}\n\ntype Analytics__AnalyticsWorkspace @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n}\n\ntype Analytics__SemanticSubMetricDefinitionRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n SemanticMetricId: IDValue\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n}\n\ntype Analytics__AnalyticsWorkspaceAssetEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsWorkspaceAsset\n cursor: String!\n}\n\ninput Analytics__OrderByInput @team(name: \"TUA-Admin-Home-Search\") {\n order: Analytics__SortEnumType\n}\n\ntype Analytics__AnalyticsRepresentation implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n RecordOperations: [String]\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__SemanticModelRelatedModelConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticModelRelatedModelEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticModelRelatedModelRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n RelatedSemanticModel: Analytics__SemanticModel\n}\n\ntype Analytics__SemanticModelRelatedModelEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticModelRelatedModelRepresentation\n cursor: String!\n}\n\ntype Analytics__SemanticModel implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n RelatedModel(first: Int, after: String): Analytics__SemanticModelRelatedModelConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\n# assetTypes: AnalyticsAssetType - empty enum is invalid GraphQL so replace with String\ntype Analytics__Analytics @team(name: \"TUA-Admin-Home-Search\") {\n browse(where: Analytics__AnalyticsFilter, assetTypes: [String], orderBy: Analytics__AnalyticsOrderBy, first: Int, orgId: ID, after: String): Analytics__AnalyticsBrowse! @fieldCategory\n}\n\ntype Analytics__AnalyticsWorkspaceAsset @team(name: \"TUA-Admin-Home-Search\") {\n AnalyticsWorkspace: Analytics__AnalyticsWorkspace\n AssetUsageType: PicklistValue\n ActivePromotionRequestId: IDValue\n MetadataSourceType: PicklistValue\n}\n\ninput Analytics__AnalyticsOrderBy @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: Analytics__OrderByInput\n Id: Analytics__OrderByInput\n ApiName: Analytics__OrderByInput\n LastModifiedById: Analytics__OrderByInput\n CreatedById: Analytics__OrderByInput\n LastModifiedDate: Analytics__OrderByInput\n CreatedDate: Analytics__OrderByInput\n}\n\ntype Analytics__MktDataConnector implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n DataConnectorType: StringValue\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls\n# ============================================================\ninput Setup__ListOrderInput {\n apiName: String!\n order: ResultsOrder\n}\n\ntype Setup__ListOrder {\n apiName: String!\n order: ResultsOrder\n label: String\n}\n\ntype Setup__ListViewRowConnection {\n edges: [Setup__ListViewRowEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype Setup__ListView {\n listViewType: String!\n label: String\n displayColumns: [Setup__ListColumn!]!\n filters: [Setup__ListFilter!]\n filterLogic: String\n orderedByInfo: [Setup__ListOrder!]!\n searchable: Boolean!\n rows(first: Int, after: String, upperBound: Int, orderBy: Setup__ListOrderInput, searchTerm: String): Setup__ListViewRowConnection\n}\n\nenum Setup__ListFilterOperator {\n EQUALS\n NOT_EQUAL\n LESS_THAN\n GREATER_THAN\n LESS_OR_EQUAL\n GREATER_OR_EQUAL\n CONTAINS\n NOT_CONTAIN\n STARTS_WITH\n INCLUDES\n EXCLUDES\n WITHIN\n}\n\ntype Setup__ListFilter {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n label: String\n}\n\ntype Setup__ListColumn {\n apiName: String!\n label: String!\n type: DataType!\n displayable: Boolean!\n filterable: Boolean!\n defaultOperator: Setup__ListFilterOperator\n allowedOperators: [Setup__ListFilterOperator!]\n sortable: Boolean\n navigable: Boolean\n}\n\ntype Setup__ListScalarField {\n apiName: String!\n value: String\n dataType: DataType\n displayValue: String\n format: String\n label: String\n lookupRecordId: String\n lookupObjectApiName: String\n}\n\ntype Setup__ListViewRow {\n id: String\n columns(apiNames: [String!]): [Setup__ListScalarField]!\n}\n\ntype Setup__ListViewRowEdge {\n cursor: String!\n node: Setup__ListViewRow\n}\n\ntype Setup__ListViewObjectInfo {\n columns(apiNames: [String!], displayable: Boolean, filterable: Boolean) : [Setup__ListColumn!]!\n}\n\ninput Setup__ListFilterInput {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n}\n\nextend type Setup__Setup {\n ListView(listViewType: String!, label: String, displayColumns: [String!], filters: [Setup__ListFilterInput!], filterLogic: String): Setup__ListView!\n ListViewObjectInfo(listViewType: String!): Setup__ListViewObjectInfo!\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup.graphqls\n# ============================================================\n# scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQueryAggregate {\n recordQueryAggregate(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupAggregateOrderBy, scope: String, groupBy: Setup__SetupGroupBy, upperBound: Int, includeDeleted: Boolean): Setup__SetupAggregateConnection @fieldCategory\n}\n\nunion Setup__SetupPolymorphicParentRelationship @generic = Setup__EntityRepresentation\n\ninput Setup__SetupPolymorphicParentRelationshipRecordOrderBy @generic {\n Setup__SetupOrderBy: Setup__SetupOrderBy @fieldCategory\n}\n\ninput Setup__IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: Setup__JoinInput\n ninq: Setup__JoinInput\n}\n\ninput Setup__JoinInput {\n Record: Setup__SetupFilter @fieldCategory\n ApiName: String\n}\n\ntype Setup__SetupAggregateConnection @generic {\n edges: [Setup__SetupAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ninput Setup__SetupAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ntype Setup__SetupConnection @generic {\n edges: [Setup__SetupEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype Setup__SetupAggregateEdge @generic {\n node: Setup__SetupRecordResult\n cursor: String!\n}\n\ninput Setup__SetupPolymorphicParentRelationshipRecordFilter @generic {\n Setup__SetupFilter: Setup__SetupFilter @fieldCategory\n}\n\ntype Setup__SetupRecordResult @generic {\n aggregate: Setup__SetupRecordAggregate\n}\n\ntype Setup__SetupRecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: Setup__SetupRecordAggregate @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicAggregateParentRelationship @fieldCategory\n}\n\ninput Setup__SetupOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput Setup__SetupPolymorphicParentRelationshipOrderBy @generic {\n Setup__SetupAggregateOrderBy: Setup__SetupAggregateOrderBy @fieldCategory\n}\n\ntype Setup__SetupEdge @generic {\n node: Setup__EntityRepresentation\n cursor: String!\n}\n\n # scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQuery {\n recordQuery(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, scope: String, upperBound: Int, includeDeleted: Boolean, updateMRU: Boolean): Setup__SetupConnection @fieldCategory\n}\n\ntype Setup__EntityRepresentation @generic {\n Id: ID!\n ApiName: String!\n Entity__fields(type: SObject__FieldType): [SObject__Field]! @ignoreRule(rules:[{ rule: \"FieldCamelOrPascalCaseRule\" teamName: \"UI Experience API\" justification: \"SObject__ prefix added to prevent name collisions.\" }])\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: Setup__EntityRepresentation @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, upperBound: Int): Setup__SetupConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput Setup__SetupFilter @generic {\n and: [Setup__SetupFilter]\n or: [Setup__SetupFilter]\n not: Setup__SetupFilter\n parentRelationshipRecordFilter: Setup__SetupFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: Setup__SetupPolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n Setup__IdOperator: Setup__IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ninput Setup__SetupGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: Setup__SetupGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\nunion Setup__SetupPolymorphicAggregateParentRelationship @generic = Setup__SetupRecordAggregate\n\ntype Setup__Setup {\n query: Setup__SetupQuery!\n aggregate: Setup__SetupQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n}\n\ninput Setup__SetupPolymorphicParentRelationshipGroupBy @generic {\n Setup__SetupGroupBy: Setup__SetupGroupBy @fieldCategory\n}\n\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n# ============================================================\nscalar BigDecimal\nscalar Byte\nscalar Char\nscalar BigInteger\nscalar Short\nscalar String\nscalar Currency\nscalar Longitude\nscalar Float\nscalar PhoneNumber\nscalar Email\nscalar TextArea\nscalar Latitude\nscalar RichTextArea\nscalar EncryptedString\nscalar Long\nscalar JSON\nscalar Time\nscalar Percent\nscalar LongTextArea\nscalar DateTime\nscalar ID\nscalar Boolean\nscalar MultiPicklist\nscalar Base64\nscalar Url\nscalar Picklist\nscalar Double\nscalar Int\nscalar IdOrRef\nscalar Date\n\ntype PercentAggregate implements FieldValue {\n value: Percent\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: PercentValue\n min: PercentValue\n sum: PercentValue\n}\n\ntype StringAggregate implements FieldValue {\n value: String\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: StringValue\n min: StringValue\n}\n\ntype Query {\n uiapi: UIAPI!\n setup: Setup__Setup! @fieldCategory\n analytics: Analytics__Analytics! @fieldCategory\n}\n\ninput EmailOperators {\n eq: Email\n ne: Email\n like: Email\n lt: Email\n gt: Email\n lte: Email\n gte: Email\n in: [Email]\n nin: [Email]\n}\n\ninput DoubleOperators {\n eq: Double\n ne: Double\n lt: Double\n gt: Double\n lte: Double\n gte: Double\n in: [Double]\n nin: [Double]\n}\n\ntype DateOnlyAggregation {\n value: Date\n format: String\n}\n\ntype DateAggregate implements FieldValue {\n value: Date\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n grouping: IntValue\n max: DateValue\n min: DateValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\nenum GroupByFunction {\n DAY_IN_WEEK\n DAY_IN_MONTH\n DAY_IN_YEAR\n WEEK_IN_MONTH\n WEEK_IN_YEAR\n CALENDAR_MONTH\n CALENDAR_QUARTER\n CALENDAR_YEAR\n FISCAL_MONTH\n FISCAL_QUARTER\n FISCAL_YEAR\n DAY_ONLY\n HOUR_IN_DAY\n}\n\ntype RecordTypeInfo {\n available: Boolean!\n defaultRecordTypeMapping: Boolean!\n master: Boolean!\n name: String\n recordTypeId: ID\n}\n\ninput UIAPIMutationsInput {\n \"Determines whether or not all the operations should be rolled back in the event one or more operations fail.\"\n allOrNone: Boolean = true\n}\n\ntype ReferenceToInfo {\n ApiName: String!\n nameFields: [String]!\n objectInfo: ObjectInfo\n}\n\ninterface FieldValue {\n displayValue: String\n}\n\ntype LongitudeValue implements FieldValue {\n value: Longitude\n displayValue: String\n}\n\ntype IntValue implements FieldValue {\n value: Int\n displayValue: String\n format: String\n}\n\ntype UrlValue implements FieldValue {\n value: Url\n displayValue: String\n}\n\ntype LongAggregate implements FieldValue {\n value: Long\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: LongValue\n min: LongValue\n sum: LongValue\n}\n\ninput TimeOperators {\n eq: Time\n ne: Time\n lt: Time\n gt: Time\n lte: Time\n gte: Time\n in: [Time]\n nin: [Time]\n}\n\ntype PicklistValue implements FieldValue {\n value: Picklist\n displayValue: String\n label: String\n}\n\ntype RelatedListInfo @team(name: \"Lists Platform\") {\n childApiName: String!\n relatedListName: String!\n label: String!\n displayColumns: [ListColumn!]!\n orderedByInfo: [ListOrder!]!\n parentApiName: String!\n fieldApiName: String!\n}\n\ninput StringOperators {\n eq: String\n ne: String\n like: String\n lt: String\n gt: String\n lte: String\n gte: String\n in: [String]\n nin: [String]\n}\n\ntype UIAPI {\n query: RecordQuery!\n aggregate: RecordQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n relatedListByName(parentApiName: String!, relatedListName: String!): RelatedListInfo\n}\n\n\"Input for ObjectInfo and PickValues\"\ninput ObjectInfoInput {\n apiName: String!\n recordTypeIDs: [ID!]\n fieldNames: [String!]\n}\n\ninput MultiPicklistOperators {\n eq: MultiPicklist\n ne: MultiPicklist\n includes: [MultiPicklist]\n excludes: [MultiPicklist]\n}\n\ntype DateTimeAggregate implements FieldValue {\n value: DateTime\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n dayOnly: DateOnlyAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n hourInDay: DateFunctionAggregation\n max: DateTimeValue\n min: DateTimeValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\ntype EmailAggregate implements FieldValue {\n value: Email\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: EmailValue\n min: EmailValue\n}\n\ninput GroupByDateFunction {\n function: GroupByFunction\n}\n\ntype RichTextAreaValue implements FieldValue {\n value: RichTextArea\n displayValue: String\n label: String\n}\n\ninput DatePrimitiveOperators {\n eq: Date\n ne: Date\n lt: Date\n gt: Date\n lte: Date\n gte: Date\n in: [Date]\n nin: [Date]\n}\n\ntype TimeAggregate implements FieldValue {\n value: Time\n displayValue: String\n format: String\n hourInDay: DateFunctionAggregation\n}\n\ninput DistanceInput {\n latitude: Latitude!\n longitude: Longitude!\n}\n\nunion PolymorphicParentRelationship @generic = RecordRepresentation\n\nenum AggregateOrderByNumberFunction {\n AVG\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n SUM\n}\n\ntype LongTextAreaValue implements FieldValue {\n value: LongTextArea\n displayValue: String\n label: String\n}\n\ninput OrderByClause {\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype SObject__Field {\n name: String!\n value: String\n}\n\ntype RecordAggregateConnection @generic {\n edges: [RecordAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype LongitudeAggregate implements FieldValue {\n value: Longitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LongitudeValue\n min: LongitudeValue\n sum: DoubleValue\n}\n\ntype DateValue implements FieldValue {\n value: Date\n displayValue: String\n format: String\n}\n\ninput URLOperators {\n eq: Url\n ne: Url\n like: Url\n lt: Url\n gt: Url\n lte: Url\n gte: Url\n in: [Url]\n nin: [Url]\n}\n\ninput LongOperators {\n eq: Long\n ne: Long\n lt: Long\n gt: Long\n lte: Long\n gte: Long\n in: [Long]\n nin: [Long]\n}\n\nenum DataType {\n STRING\n TEXTAREA\n PHONE\n EMAIL\n URL\n ENCRYPTEDSTRING\n BOOLEAN\n CURRENCY\n INT\n LONG\n DOUBLE\n PERCENT\n DATETIME\n TIME\n DATE\n REFERENCE\n PICKLIST\n MULTIPICKLIST\n ADDRESS\n LOCATION\n BASE64\n COMPLEXVALUE\n COMBOBOX\n JSON\n JUNCTIONIDLIST\n ANYTYPE\n}\n\ntype DoubleAggregate implements FieldValue {\n value: Double\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: DoubleValue\n min: DoubleValue\n sum: DoubleValue\n}\n\ninput DateOperators {\n eq: DateInput\n ne: DateInput\n lt: DateInput\n gt: DateInput\n lte: DateInput\n gte: DateInput\n in: [DateInput]\n nin: [DateInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n}\n\ninput GeolocationInput {\n latitude: Latitude!\n longitude: Longitude!\n radius: Float!\n unit: Unit!\n}\n\ninput JoinInput {\n Record: RecordFilter @fieldCategory\n ApiName: String\n}\n\ntype RecordUpdatePayload @generic {\n Record: RecordRepresentation\n success: Boolean @deprecated\n}\n\ninput PercentOperators {\n eq: Percent\n ne: Percent\n lt: Percent\n gt: Percent\n lte: Percent\n gte: Percent\n in: [Percent]\n nin: [Percent]\n}\n\ntype DoubleValue implements FieldValue {\n value: Double\n displayValue: String\n format: String\n}\n\ntype IDAggregate implements FieldValue {\n value: ID\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: IDValue\n min: IDValue\n}\n\ninput RecordCreateInput @generic {\n record: RecordCreateRepresentation! @fieldCategory\n}\n\ninput AggregateOrderByStringClause {\n function: AggregateOrderByStringFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\n\"The return value for the mutation to delete a Record\"\ntype RecordDeletePayload {\n \"The ID of the deleted Record\"\n Id: ID\n}\n\nenum DateLiteral {\n YESTERDAY\n TODAY\n TOMORROW\n LAST_WEEK\n THIS_WEEK\n NEXT_WEEK\n LAST_MONTH\n THIS_MONTH\n NEXT_MONTH\n LAST_90_DAYS\n NEXT_90_DAYS\n LAST_QUARTER\n THIS_QUARTER\n NEXT_QUARTER\n LAST_FISCAL_QUARTER\n THIS_FISCAL_QUARTER\n NEXT_FISCAL_QUARTER\n LAST_YEAR\n THIS_YEAR\n NEXT_YEAR\n LAST_FISCAL_YEAR\n THIS_FISCAL_YEAR\n NEXT_FISCAL_YEAR\n}\n\ntype RecordRepresentation implements Record @generic {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n SetupUserSpecialField: BooleanValue @fieldCategory\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: RecordRepresentation @fieldCategory\n polymorphicParentRelationship: PolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, upperBound: Int): RecordConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput OrderByGeolocationClause {\n distance: DistanceInput\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype TextAreaAggregate implements FieldValue {\n value: TextArea\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: TextAreaValue\n min: TextAreaValue\n}\n\nenum GroupByType {\n GROUP_BY\n ROLLUP\n CUBE\n}\n\nenum ResultsOrder {\n ASC\n DESC\n}\n\ntype PicklistAggregate implements FieldValue {\n value: Picklist\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: PicklistValue\n min: PicklistValue\n}\n\ninput RecordUpdateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\ntype DateTimeValue implements FieldValue {\n value: DateTime\n displayValue: String\n format: String\n}\n\n\"Input to the mutation to delete a Record\"\ninput RecordDeleteInput {\n \"The ID of the Record to delete\"\n Id: IdOrRef!\n}\n\ntype ListOrder @team(name: \"Lists Platform\") {\n fieldApiName: String!\n sortDirection: ResultOrder\n}\n\nenum AggregateOrderByStringFunction {\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n}\n\ntype LongValue implements FieldValue {\n value: Long\n displayValue: String\n format: String\n}\n\ntype DependentField {\n controllingField: String!\n dependentFields: [String]!\n}\n\ntype PercentValue implements FieldValue {\n value: Percent\n displayValue: String\n format: String\n}\n\ninput NoFunctionAggregateOrderByClause {\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype RecordConnection @generic {\n edges: [RecordEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype FilteredLookupInfo {\n controllingFields: [String]!\n dependent: Boolean!\n optionalFilter: Boolean!\n}\n\ninput PhoneNumberOperators {\n eq: PhoneNumber\n ne: PhoneNumber\n like: PhoneNumber\n lt: PhoneNumber\n gt: PhoneNumber\n lte: PhoneNumber\n gte: PhoneNumber\n in: [PhoneNumber]\n nin: [PhoneNumber]\n}\n\ntype ObjectInfo {\n ApiName: String!\n childRelationships: [ChildRelationship]!\n createable: Boolean!\n custom: Boolean!\n defaultRecordTypeId: ID\n deletable: Boolean!\n dependentFields: [DependentField]!\n feedEnabled: Boolean!\n fields: [Field]!\n keyPrefix: String\n label: String\n labelPlural: String\n layoutable: Boolean!\n mruEnabled: Boolean!\n nameFields: [String]!\n queryable: Boolean!\n recordTypeInfos: [RecordTypeInfo]!\n searchable: Boolean!\n themeInfo: ThemeInfo\n updateable: Boolean!\n locale: String\n}\n\ninput LongitudeOperators {\n eq: Longitude\n ne: Longitude\n lt: Longitude\n gt: Longitude\n lte: Longitude\n gte: Longitude\n in: [Longitude]\n nin: [Longitude]\n}\n\ninterface Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype StandardField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n picklistValuesByRecordTypeIDs: [PicklistValueByRecordTypeIDs]\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistValueByRecordTypeIDs {\n recordTypeID: String!\n controllerValues: [ControllerValues!]\n picklistValues: [PicklistValues!]\n defaultValue: PicklistValues\n}\n\ntype ControllerValues {\n value: String\n index: Int\n}\n\ntype PicklistValues {\n value: String\n label: String\n validFor: [Int]\n attributes: PicklistAttributes\n}\n\ntype PicklistAttributes {\n picklistAtrributesValueType: String\n connectDisplayName: String\n internalName: String\n}\n\ninput DateTimeFunctionInput {\n value: DatePrimitiveOperators\n convertTimezoneValue: DatePrimitiveOperators\n}\n\ntype Base64Value implements FieldValue {\n value: Base64\n displayValue: String\n}\n\ntype CompoundField @generic {\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n}\n\ninput RecordUpdateInput @generic {\n Id: IdOrRef!\n record: RecordUpdateRepresentation! @fieldCategory\n}\n\ninput DateTimeInput {\n value: DateTime\n literal: DateLiteral\n range: DateRange\n}\n\ntype ChildRelationship {\n childObjectApiName: String!\n fieldName: String\n junctionIdListNames: [String]!\n junctionReferenceTo: [String]!\n relationshipName: String\n objectInfo: ObjectInfo\n}\n\ntype RecordResult @generic {\n aggregate: RecordAggregate\n}\n\ntype PageInfo {\n hasNextPage: Boolean!\n hasPreviousPage: Boolean!\n startCursor: String\n endCursor: String\n}\n\ntype CurrencyValue implements FieldValue {\n value: Currency\n displayValue: String\n format: String\n convertCurrency: Currency\n}\n\ntype DateFunctionAggregation {\n value: Long\n format: String\n}\n\ninput PolymorphicParentRelationshipRecordOrderBy @generic {\n RecordOrderBy: RecordOrderBy @fieldCategory\n}\n\ntype RecordCreatePayload @generic {\n Record: RecordRepresentation\n}\n\ninput PolymorphicParentRelationshipGroupBy @generic {\n RecordGroupBy: RecordGroupBy @fieldCategory\n}\n\ntype BooleanValue implements FieldValue {\n value: Boolean\n displayValue: String\n}\n\ntype StringValue implements FieldValue {\n value: String\n displayValue: String\n label: String\n}\n\ninput IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: JoinInput\n ninq: JoinInput\n}\n\ntype PhoneNumberAggregate implements FieldValue {\n value: PhoneNumber\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: PhoneNumberValue\n min: PhoneNumberValue\n}\n\ntype CurrencyAggregate implements FieldValue {\n value: Currency\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: CurrencyValue\n min: CurrencyValue\n sum: CurrencyValue\n}\n\ninput BooleanOperators {\n eq: Boolean\n ne: Boolean\n}\n\ntype MultiPicklistValue implements FieldValue {\n value: MultiPicklist\n displayValue: String\n label: String\n}\n\ntype ListColumn @team(name: \"Lists Platform\") {\n fieldApiName: String!\n label: String!\n lookupId: String\n sortable: Boolean\n}\n\ntype LatitudeAggregate implements FieldValue {\n value: Latitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LatitudeValue\n min: LatitudeValue\n sum: DoubleValue\n}\n\ninput CurrencyOperators {\n eq: Currency\n ne: Currency\n lt: Currency\n gt: Currency\n lte: Currency\n gte: Currency\n in: [Currency]\n nin: [Currency]\n}\n\ntype LatitudeValue implements FieldValue {\n value: Latitude\n displayValue: String\n}\n\ninput GroupByClause {\n group: Boolean\n}\n\ntype RecordEdge @generic {\n node: RecordRepresentation\n cursor: String!\n}\n\nenum NullOrder {\n FIRST\n LAST\n}\n\ntype PhoneNumberValue implements FieldValue {\n value: PhoneNumber\n displayValue: String\n}\n\n# RecordScope is an empty enum\n# enum RecordScope @generic {\n# }\n\ninput TextAreaOperators {\n eq: TextArea\n ne: TextArea\n like: TextArea\n lt: TextArea\n gt: TextArea\n lte: TextArea\n gte: TextArea\n in: [TextArea]\n nin: [TextArea]\n}\n\ntype TextAreaValue implements FieldValue {\n value: TextArea\n displayValue: String\n label: String\n}\n\ntype RecordAggregateEdge @generic {\n node: RecordResult\n cursor: String!\n}\n\ntype ThemeInfo {\n color: String\n iconUrl: String\n}\n\ntype UrlAggregate implements FieldValue {\n value: Url\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: UrlValue\n min: UrlValue\n}\n\ntype IDValue implements FieldValue {\n value: ID\n displayValue: String\n}\n\nenum Unit {\n MI\n KM\n}\n\ninput PolymorphicParentRelationshipOrderBy @generic {\n RecordAggregateOrderBy: RecordAggregateOrderBy @fieldCategory\n}\n\nenum NullsOrder {\n FIRST\n LAST\n}\n\nenum ResultOrder {\n ASC\n DESC\n}\n\ninput RecordOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput PicklistOperators {\n eq: Picklist\n ne: Picklist\n in: [Picklist]\n nin: [Picklist]\n like: Picklist\n lt: Picklist\n gt: Picklist\n lte: Picklist\n gte: Picklist\n}\n\ninput RecordFilter @generic {\n and: [RecordFilter]\n or: [RecordFilter]\n not: RecordFilter\n parentRelationshipRecordFilter: RecordFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: PolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n IdOperator: IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ntype TimeValue implements FieldValue {\n value: Time\n displayValue: String\n format: String\n}\n\ninput GeolocationOperators {\n lt: GeolocationInput\n gt: GeolocationInput\n}\n\ninput LatitudeOperators {\n eq: Latitude\n ne: Latitude\n lt: Latitude\n gt: Latitude\n lte: Latitude\n gte: Latitude\n in: [Latitude]\n nin: [Latitude]\n}\n\ntype IntAggregate implements FieldValue {\n value: Int\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: IntValue\n min: IntValue\n sum: LongValue\n}\n\ntype RecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: RecordAggregate @fieldCategory\n polymorphicParentRelationship: PolymorphicAggregateParentRelationship @fieldCategory\n}\n\nenum SObject__FieldType {\n ALL\n STANDARD\n CUSTOM\n}\n\ntype JSONValue implements FieldValue {\n value: JSON\n displayValue: String\n}\n\ntype EmailValue implements FieldValue {\n value: Email\n displayValue: String\n}\n\ninput DateFunctionInput {\n value: LongOperators\n convertTimezoneValue: LongOperators\n}\n\n# Mutations are not supported by Luvio.\n# type Mutation {\n# uiapi(input: UIAPIMutationsInput): UIAPIMutations!\n# }\n\nunion PolymorphicAggregateParentRelationship @generic = RecordAggregate\n\ninput LongTextAreaOperators {\n eq: LongTextArea\n ne: LongTextArea\n like: LongTextArea\n lt: LongTextArea\n gt: LongTextArea\n lte: LongTextArea\n gte: LongTextArea\n in: [LongTextArea]\n nin: [LongTextArea]\n}\n\ninput DateTimeOperators {\n eq: DateTimeInput\n ne: DateTimeInput\n lt: DateTimeInput\n gt: DateTimeInput\n lte: DateTimeInput\n gte: DateTimeInput\n in: [DateTimeInput]\n nin: [DateTimeInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n DAY_ONLY: DateTimeFunctionInput\n HOUR_IN_DAY: DateFunctionInput\n}\n\ntype BooleanAggregate implements FieldValue {\n value: Boolean\n displayValue: String\n grouping: IntValue\n}\n\ntype RecordQueryAggregate {\n # scope should be RecordScope, but it is an empty enum\n recordQueryAggregate(first: Int, after: String, where: RecordFilter, orderBy: RecordAggregateOrderBy, scope: String, groupBy: RecordGroupBy, upperBound: Int): RecordAggregateConnection @fieldCategory\n}\n\ninput RecordCreateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\nenum FieldExtraTypeInfo {\n IMAGE_URL\n EXTERNAL_LOOKUP\n INDIRECT_LOOKUP\n PERSONNAME\n SWITCHABLE_PERSONNAME\n PLAINTEXTAREA\n RICHTEXTAREA\n}\n\ntype RateLimit {\n cost: Long\n limit: Long\n remaining: Long\n resetAt: DateTime\n}\n\ninput DateRange {\n last_n_days: Int\n next_n_days: Int\n last_n_weeks: Int\n next_n_weeks: Int\n last_n_months: Int\n next_n_months: Int\n last_n_quarters: Int\n next_n_quarters: Int\n last_n_fiscal_quarters: Int\n next_n_fiscal_quarters: Int\n last_n_years: Int\n next_n_years: Int\n last_n_fiscal_years: Int\n next_n_fiscal_years: Int\n n_days_ago: Int\n n_weeks_ago: Int\n n_months_ago: Int\n n_quarters_ago: Int\n n_years_ago: Int\n n_fiscal_quarters_ago: Int\n n_fiscal_years_ago: Int\n}\n\ntype UIAPIMutations {\n recordCreate(input: RecordCreateInput!): RecordCreatePayload @fieldCategory\n recordDelete(input: RecordDeleteInput!): RecordDeletePayload @fieldCategory\n recordUpdate(input: RecordUpdateInput!): RecordUpdatePayload @fieldCategory\n}\n\ninput IntegerOperators {\n eq: Int\n ne: Int\n lt: Int\n gt: Int\n lte: Int\n gte: Int\n in: [Int]\n nin: [Int]\n}\n\ntype EncryptedStringValue implements FieldValue {\n value: EncryptedString\n displayValue: String\n}\n\ninterface Record {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n}\n\ninput PolymorphicParentRelationshipRecordFilter @generic {\n RecordFilter: RecordFilter @fieldCategory\n}\n\n\"\"\"\nA type that can contain any of the following types: Boolean, Date, DateTime, Double, String.\nFormat and Label are not supported by AnyType and displayValue is an unformatted string representation of the value.\n\"\"\"\nunion AnyType = BooleanValue | DateValue | DateTimeValue | DoubleValue | StringValue\n\ninput AggregateOrderByNumberClause {\n function: AggregateOrderByNumberFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ninput DateInput {\n value: Date\n literal: DateLiteral\n range: DateRange\n}\n\ninput RecordGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: RecordGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: PolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\ntype RecordQuery {\n # scope should be RecordScope, but it is an empty enum\n recordQuery(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, scope: String, upperBound: Int, updateMRU: Boolean): RecordConnection @fieldCategory\n}\n\ninput RecordAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ninput IgnoreRule {\n rule: String!\n teamName: String!\n justification: String!\n}\n\ndirective @generic on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT\ndirective @fieldCategory on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | ENUM_VALUE\ndirective @category(name: String!) on FIELD\n\"Specifies the team name for a type\"\ndirective @team(name: String!) on OBJECT | INPUT_OBJECT | INTERFACE | ENUM | UNION | SCALAR\n\"Specifies the validation rules to ignore for this element.\"\ndirective @ignoreRule(rules: [IgnoreRule!]!) on OBJECT\n | INPUT_OBJECT\n | INTERFACE\n | ENUM\n | UNION\n | SCALAR\n | FIELD_DEFINITION\n | INPUT_FIELD_DEFINITION\n | ARGUMENT_DEFINITION\n | ENUM_VALUE\ndirective @optional on FIELD\n\ntype __Type {\n kind: __TypeKind!\n name: String\n description: String\n fields(includeDeprecated: Boolean = false): [__Field!]\n interfaces: [__Type!]\n possibleTypes: [__Type!]\n enumValues(includeDeprecated: Boolean = false): [__EnumValue!]\n inputFields: [__InputValue!]\n ofType: __Type\n}";
|
|
85817
|
+
var uiapiSchemaString = "# Auto-generated merged GraphQL schema\n# Generated at: 2025-10-14T15:00:19.876399281Z\n# Source files: ui-services-private/java/resources/graphql-schemas/analytics.graphqls, ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls, ui-services-private/java/resources/graphql-schemas/setup.graphqls, ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/analytics.graphqls\n# ============================================================\ninput Analytics__AnalyticsFilter @team(name: \"TUA-Admin-Home-Search\") {\n Id: Setup__IdOperators\n MasterLabel: StringOperators\n DeveloperName: StringOperators\n NamespacePrefix: StringOperators\n AssetApiName: StringOperators\n DataConnectorType: StringOperators\n CreatedById: Setup__IdOperators\n LastModifiedById: Setup__IdOperators\n SemanticMetricId: Setup__IdOperators\n SemanticModelId: Setup__IdOperators\n LastModifiedDate: DateTimeOperators\n CreatedDate: DateTimeOperators\n AssetUsageType: PicklistOperators\n ActivePromotionRequestId: Setup__IdOperators\n SemanticModel: Analytics__SemanticModelFilter\n and: [Analytics__AnalyticsFilter]\n or: [Analytics__AnalyticsFilter]\n not: Analytics__AnalyticsFilter\n}\n\ninput Analytics__SemanticModelFilter @team(name: \"TUA-Admin-Home-Search\") {\n DeveloperName: StringOperators\n MasterLabel: StringOperators\n}\n\nenum Analytics__SortEnumType @team(name: \"TUA-Admin-Home-Search\") {\n ASC\n DESC\n}\n\ntype Analytics__SemanticSubMetricDefinitionConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticSubMetricDefinitionEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticSubMetricDefinitionEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticSubMetricDefinitionRepresentation\n cursor: String!\n}\n\ntype Analytics__DataspaceRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n MasterLabel: String\n DeveloperName: String\n}\n\ninterface Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__AnalyticsBrowse @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\n# Empty enum is invalid GraphQL\n# enum AnalyticsAssetType @team(name: \"TUA-Admin-Home-Search\") @generic {\n# }\n\ntype Analytics__AnalyticsWorkspaceAssetConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsWorkspaceAssetEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticDefinition implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n SemanticModelId: IDValue\n SemanticModel: Analytics__SemanticModel\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n SubMetrics(first: Int, after: String): Analytics__SemanticSubMetricDefinitionConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__DominoTemplate implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA Intel MarketPlace\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n TemplateStatus: StringValue\n TemplateType: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__AnalyticsEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsRepresentationInterface\n cursor: String!\n}\n\ntype Analytics__AnalyticsWorkspace @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n}\n\ntype Analytics__SemanticSubMetricDefinitionRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n SemanticMetricId: IDValue\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n}\n\ntype Analytics__AnalyticsWorkspaceAssetEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsWorkspaceAsset\n cursor: String!\n}\n\ninput Analytics__OrderByInput @team(name: \"TUA-Admin-Home-Search\") {\n order: Analytics__SortEnumType\n}\n\ntype Analytics__AnalyticsRepresentation implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n RecordOperations: [String]\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__SemanticModelRelatedModelConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticModelRelatedModelEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticModelRelatedModelRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n RelatedSemanticModel: Analytics__SemanticModel\n}\n\ntype Analytics__SemanticModelRelatedModelEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticModelRelatedModelRepresentation\n cursor: String!\n}\n\ntype Analytics__SemanticModel implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n RelatedModel(first: Int, after: String): Analytics__SemanticModelRelatedModelConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\n# assetTypes: AnalyticsAssetType - empty enum is invalid GraphQL so replace with String\ntype Analytics__Analytics @team(name: \"TUA-Admin-Home-Search\") {\n browse(where: Analytics__AnalyticsFilter, assetTypes: [String], orderBy: Analytics__AnalyticsOrderBy, first: Int, orgId: ID, after: String): Analytics__AnalyticsBrowse! @fieldCategory\n}\n\ntype Analytics__AnalyticsWorkspaceAsset @team(name: \"TUA-Admin-Home-Search\") {\n AnalyticsWorkspace: Analytics__AnalyticsWorkspace\n AssetUsageType: PicklistValue\n ActivePromotionRequestId: IDValue\n MetadataSourceType: PicklistValue\n}\n\ninput Analytics__AnalyticsOrderBy @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: Analytics__OrderByInput\n Id: Analytics__OrderByInput\n ApiName: Analytics__OrderByInput\n LastModifiedById: Analytics__OrderByInput\n CreatedById: Analytics__OrderByInput\n LastModifiedDate: Analytics__OrderByInput\n CreatedDate: Analytics__OrderByInput\n}\n\ntype Analytics__MktDataConnector implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n DataConnectorType: StringValue\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls\n# ============================================================\ninput Setup__ListOrderInput {\n apiName: String!\n order: ResultsOrder\n}\n\ntype Setup__ListOrder {\n apiName: String!\n order: ResultsOrder\n label: String\n}\n\ntype Setup__ListViewRowConnection {\n edges: [Setup__ListViewRowEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype Setup__ListView {\n listViewType: String!\n label: String\n displayColumns: [Setup__ListColumn!]!\n filters: [Setup__ListFilter!]\n filterLogic: String\n orderedByInfo: [Setup__ListOrder!]!\n searchable: Boolean!\n rows(first: Int, after: String, upperBound: Int, orderBy: Setup__ListOrderInput, searchTerm: String): Setup__ListViewRowConnection\n}\n\nenum Setup__ListFilterOperator {\n EQUALS\n NOT_EQUAL\n LESS_THAN\n GREATER_THAN\n LESS_OR_EQUAL\n GREATER_OR_EQUAL\n CONTAINS\n NOT_CONTAIN\n STARTS_WITH\n INCLUDES\n EXCLUDES\n WITHIN\n}\n\ntype Setup__ListFilter {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n label: String\n}\n\ntype Setup__ListColumn {\n apiName: String!\n label: String!\n type: DataType!\n displayable: Boolean!\n filterable: Boolean!\n defaultOperator: Setup__ListFilterOperator\n allowedOperators: [Setup__ListFilterOperator!]\n sortable: Boolean\n navigable: Boolean\n}\n\ntype Setup__ListScalarField {\n apiName: String!\n value: String\n dataType: DataType\n displayValue: String\n format: String\n label: String\n lookupRecordId: String\n lookupObjectApiName: String\n}\n\ntype Setup__ListViewRow {\n id: String\n columns(apiNames: [String!]): [Setup__ListScalarField]!\n}\n\ntype Setup__ListViewRowEdge {\n cursor: String!\n node: Setup__ListViewRow\n}\n\ntype Setup__ListViewObjectInfo {\n columns(apiNames: [String!], displayable: Boolean, filterable: Boolean) : [Setup__ListColumn!]!\n}\n\ninput Setup__ListFilterInput {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n}\n\nextend type Setup__Setup {\n ListView(listViewType: String!, label: String, displayColumns: [String!], filters: [Setup__ListFilterInput!], filterLogic: String): Setup__ListView!\n ListViewObjectInfo(listViewType: String!): Setup__ListViewObjectInfo!\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup.graphqls\n# ============================================================\n# scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQueryAggregate {\n recordQueryAggregate(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupAggregateOrderBy, scope: String, groupBy: Setup__SetupGroupBy, upperBound: Int, includeDeleted: Boolean): Setup__SetupAggregateConnection @fieldCategory\n}\n\nunion Setup__SetupPolymorphicParentRelationship @generic = Setup__EntityRepresentation\n\ninput Setup__SetupPolymorphicParentRelationshipRecordOrderBy @generic {\n Setup__SetupOrderBy: Setup__SetupOrderBy @fieldCategory\n}\n\ninput Setup__IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: Setup__JoinInput\n ninq: Setup__JoinInput\n}\n\ninput Setup__JoinInput {\n Record: Setup__SetupFilter @fieldCategory\n ApiName: String\n}\n\ntype Setup__SetupAggregateConnection @generic {\n edges: [Setup__SetupAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ninput Setup__SetupAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ntype Setup__SetupConnection @generic {\n edges: [Setup__SetupEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype Setup__SetupAggregateEdge @generic {\n node: Setup__SetupRecordResult\n cursor: String!\n}\n\ninput Setup__SetupPolymorphicParentRelationshipRecordFilter @generic {\n Setup__SetupFilter: Setup__SetupFilter @fieldCategory\n}\n\ntype Setup__SetupRecordResult @generic {\n aggregate: Setup__SetupRecordAggregate\n}\n\ntype Setup__SetupRecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: Setup__SetupRecordAggregate @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicAggregateParentRelationship @fieldCategory\n}\n\ninput Setup__SetupOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput Setup__SetupPolymorphicParentRelationshipOrderBy @generic {\n Setup__SetupAggregateOrderBy: Setup__SetupAggregateOrderBy @fieldCategory\n}\n\ntype Setup__SetupEdge @generic {\n node: Setup__EntityRepresentation\n cursor: String!\n}\n\n # scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQuery {\n recordQuery(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, scope: String, upperBound: Int, includeDeleted: Boolean, updateMRU: Boolean): Setup__SetupConnection @fieldCategory\n}\n\ntype Setup__EntityRepresentation @generic {\n Id: ID!\n ApiName: String!\n Entity__fields(type: SObject__FieldType): [SObject__Field]! @ignoreRule(rules:[{ rule: \"FieldCamelOrPascalCaseRule\" teamName: \"UI Experience API\" justification: \"SObject__ prefix added to prevent name collisions.\" }])\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: Setup__EntityRepresentation @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, upperBound: Int): Setup__SetupConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput Setup__SetupFilter @generic {\n and: [Setup__SetupFilter]\n or: [Setup__SetupFilter]\n not: Setup__SetupFilter\n parentRelationshipRecordFilter: Setup__SetupFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: Setup__SetupPolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n Setup__IdOperator: Setup__IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ninput Setup__SetupGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: Setup__SetupGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\nunion Setup__SetupPolymorphicAggregateParentRelationship @generic = Setup__SetupRecordAggregate\n\ntype Setup__Setup {\n query: Setup__SetupQuery!\n aggregate: Setup__SetupQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n}\n\ninput Setup__SetupPolymorphicParentRelationshipGroupBy @generic {\n Setup__SetupGroupBy: Setup__SetupGroupBy @fieldCategory\n}\n\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n# ============================================================\nscalar BigDecimal\nscalar Byte\nscalar Char\nscalar BigInteger\nscalar Short\nscalar String\nscalar Currency\nscalar Longitude\nscalar Float\nscalar PhoneNumber\nscalar Email\nscalar TextArea\nscalar Latitude\nscalar RichTextArea\nscalar EncryptedString\nscalar Long\nscalar JSON\nscalar Time\nscalar Percent\nscalar LongTextArea\nscalar DateTime\nscalar ID\nscalar Boolean\nscalar MultiPicklist\nscalar Base64\nscalar Url\nscalar Picklist\nscalar Double\nscalar Int\nscalar IdOrRef\nscalar Date\n\ntype PercentAggregate implements FieldValue {\n value: Percent\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: PercentValue\n min: PercentValue\n sum: PercentValue\n}\n\ntype StringAggregate implements FieldValue {\n value: String\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: StringValue\n min: StringValue\n}\n\ntype Query {\n uiapi: UIAPI!\n setup: Setup__Setup! @fieldCategory\n analytics: Analytics__Analytics! @fieldCategory\n}\n\ninput EmailOperators {\n eq: Email\n ne: Email\n like: Email\n lt: Email\n gt: Email\n lte: Email\n gte: Email\n in: [Email]\n nin: [Email]\n}\n\ninput DoubleOperators {\n eq: Double\n ne: Double\n lt: Double\n gt: Double\n lte: Double\n gte: Double\n in: [Double]\n nin: [Double]\n}\n\ntype DateOnlyAggregation {\n value: Date\n format: String\n}\n\ntype DateAggregate implements FieldValue {\n value: Date\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n grouping: IntValue\n max: DateValue\n min: DateValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\nenum GroupByFunction {\n DAY_IN_WEEK\n DAY_IN_MONTH\n DAY_IN_YEAR\n WEEK_IN_MONTH\n WEEK_IN_YEAR\n CALENDAR_MONTH\n CALENDAR_QUARTER\n CALENDAR_YEAR\n FISCAL_MONTH\n FISCAL_QUARTER\n FISCAL_YEAR\n DAY_ONLY\n HOUR_IN_DAY\n}\n\ntype RecordTypeInfo {\n available: Boolean!\n defaultRecordTypeMapping: Boolean!\n master: Boolean!\n name: String\n recordTypeId: ID\n}\n\ninput UIAPIMutationsInput {\n \"Determines whether or not all the operations should be rolled back in the event one or more operations fail.\"\n allOrNone: Boolean = true\n}\n\ntype ReferenceToInfo {\n ApiName: String!\n nameFields: [String]!\n objectInfo: ObjectInfo\n}\n\ninterface FieldValue {\n displayValue: String\n}\n\ntype LongitudeValue implements FieldValue {\n value: Longitude\n displayValue: String\n}\n\ntype IntValue implements FieldValue {\n value: Int\n displayValue: String\n format: String\n}\n\ntype UrlValue implements FieldValue {\n value: Url\n displayValue: String\n}\n\ntype LongAggregate implements FieldValue {\n value: Long\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: LongValue\n min: LongValue\n sum: LongValue\n}\n\ninput TimeOperators {\n eq: Time\n ne: Time\n lt: Time\n gt: Time\n lte: Time\n gte: Time\n in: [Time]\n nin: [Time]\n}\n\ntype PicklistValue implements FieldValue {\n value: Picklist\n displayValue: String\n label: String\n}\n\ntype RelatedListInfo @team(name: \"Lists Platform\") {\n childApiName: String!\n relatedListName: String!\n label: String!\n displayColumns: [ListColumn!]!\n orderedByInfo: [ListOrder!]!\n parentApiName: String!\n fieldApiName: String!\n}\n\ninput StringOperators {\n eq: String\n ne: String\n like: String\n lt: String\n gt: String\n lte: String\n gte: String\n in: [String]\n nin: [String]\n}\n\ntype UIAPI {\n query: RecordQuery!\n aggregate: RecordQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n relatedListByName(parentApiName: String!, relatedListName: String!): RelatedListInfo\n}\n\n\"Input for ObjectInfo and PickValues\"\ninput ObjectInfoInput {\n apiName: String!\n recordTypeIDs: [ID!]\n fieldNames: [String!]\n}\n\ninput MultiPicklistOperators {\n eq: MultiPicklist\n ne: MultiPicklist\n includes: [MultiPicklist]\n excludes: [MultiPicklist]\n}\n\ntype DateTimeAggregate implements FieldValue {\n value: DateTime\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n dayOnly: DateOnlyAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n hourInDay: DateFunctionAggregation\n max: DateTimeValue\n min: DateTimeValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\ntype EmailAggregate implements FieldValue {\n value: Email\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: EmailValue\n min: EmailValue\n}\n\ninput GroupByDateFunction {\n function: GroupByFunction\n}\n\ntype RichTextAreaValue implements FieldValue {\n value: RichTextArea\n displayValue: String\n label: String\n}\n\ninput DatePrimitiveOperators {\n eq: Date\n ne: Date\n lt: Date\n gt: Date\n lte: Date\n gte: Date\n in: [Date]\n nin: [Date]\n}\n\ntype TimeAggregate implements FieldValue {\n value: Time\n displayValue: String\n format: String\n hourInDay: DateFunctionAggregation\n}\n\ninput DistanceInput {\n latitude: Latitude!\n longitude: Longitude!\n}\n\nunion PolymorphicParentRelationship @generic = RecordRepresentation\n\nenum AggregateOrderByNumberFunction {\n AVG\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n SUM\n}\n\ntype LongTextAreaValue implements FieldValue {\n value: LongTextArea\n displayValue: String\n label: String\n}\n\ninput OrderByClause {\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype SObject__Field {\n name: String!\n value: String\n}\n\ntype RecordAggregateConnection @generic {\n edges: [RecordAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype LongitudeAggregate implements FieldValue {\n value: Longitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LongitudeValue\n min: LongitudeValue\n sum: DoubleValue\n}\n\ntype DateValue implements FieldValue {\n value: Date\n displayValue: String\n format: String\n}\n\ninput URLOperators {\n eq: Url\n ne: Url\n like: Url\n lt: Url\n gt: Url\n lte: Url\n gte: Url\n in: [Url]\n nin: [Url]\n}\n\ninput LongOperators {\n eq: Long\n ne: Long\n lt: Long\n gt: Long\n lte: Long\n gte: Long\n in: [Long]\n nin: [Long]\n}\n\nenum DataType {\n STRING\n TEXTAREA\n PHONE\n EMAIL\n URL\n ENCRYPTEDSTRING\n BOOLEAN\n CURRENCY\n INT\n LONG\n DOUBLE\n PERCENT\n DATETIME\n TIME\n DATE\n REFERENCE\n PICKLIST\n MULTIPICKLIST\n ADDRESS\n LOCATION\n BASE64\n COMPLEXVALUE\n COMBOBOX\n JSON\n JUNCTIONIDLIST\n ANYTYPE\n}\n\ntype DoubleAggregate implements FieldValue {\n value: Double\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: DoubleValue\n min: DoubleValue\n sum: DoubleValue\n}\n\ninput DateOperators {\n eq: DateInput\n ne: DateInput\n lt: DateInput\n gt: DateInput\n lte: DateInput\n gte: DateInput\n in: [DateInput]\n nin: [DateInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n}\n\ninput GeolocationInput {\n latitude: Latitude!\n longitude: Longitude!\n radius: Float!\n unit: Unit!\n}\n\ninput JoinInput {\n Record: RecordFilter @fieldCategory\n ApiName: String\n}\n\ntype RecordUpdatePayload @generic {\n Record: RecordRepresentation\n success: Boolean @deprecated\n}\n\ninput PercentOperators {\n eq: Percent\n ne: Percent\n lt: Percent\n gt: Percent\n lte: Percent\n gte: Percent\n in: [Percent]\n nin: [Percent]\n}\n\ntype DoubleValue implements FieldValue {\n value: Double\n displayValue: String\n format: String\n}\n\ntype IDAggregate implements FieldValue {\n value: ID\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: IDValue\n min: IDValue\n}\n\ninput RecordCreateInput @generic {\n record: RecordCreateRepresentation! @fieldCategory\n}\n\ninput AggregateOrderByStringClause {\n function: AggregateOrderByStringFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\n\"The return value for the mutation to delete a Record\"\ntype RecordDeletePayload {\n \"The ID of the deleted Record\"\n Id: ID\n}\n\nenum DateLiteral {\n YESTERDAY\n TODAY\n TOMORROW\n LAST_WEEK\n THIS_WEEK\n NEXT_WEEK\n LAST_MONTH\n THIS_MONTH\n NEXT_MONTH\n LAST_90_DAYS\n NEXT_90_DAYS\n LAST_QUARTER\n THIS_QUARTER\n NEXT_QUARTER\n LAST_FISCAL_QUARTER\n THIS_FISCAL_QUARTER\n NEXT_FISCAL_QUARTER\n LAST_YEAR\n THIS_YEAR\n NEXT_YEAR\n LAST_FISCAL_YEAR\n THIS_FISCAL_YEAR\n NEXT_FISCAL_YEAR\n}\n\ntype RecordRepresentation implements Record @generic {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n SetupUserSpecialField: BooleanValue @fieldCategory\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: RecordRepresentation @fieldCategory\n polymorphicParentRelationship: PolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, upperBound: Int): RecordConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput OrderByGeolocationClause {\n distance: DistanceInput\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype TextAreaAggregate implements FieldValue {\n value: TextArea\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: TextAreaValue\n min: TextAreaValue\n}\n\nenum GroupByType {\n GROUP_BY\n ROLLUP\n CUBE\n}\n\nenum ResultsOrder {\n ASC\n DESC\n}\n\ntype PicklistAggregate implements FieldValue {\n value: Picklist\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: PicklistValue\n min: PicklistValue\n}\n\ninput RecordUpdateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\ntype DateTimeValue implements FieldValue {\n value: DateTime\n displayValue: String\n format: String\n}\n\n\"Input to the mutation to delete a Record\"\ninput RecordDeleteInput {\n \"The ID of the Record to delete\"\n Id: IdOrRef!\n}\n\ntype ListOrder @team(name: \"Lists Platform\") {\n fieldApiName: String!\n sortDirection: ResultOrder\n}\n\nenum AggregateOrderByStringFunction {\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n}\n\ntype LongValue implements FieldValue {\n value: Long\n displayValue: String\n format: String\n}\n\ntype DependentField {\n controllingField: String!\n dependentFields: [String]!\n}\n\ntype PercentValue implements FieldValue {\n value: Percent\n displayValue: String\n format: String\n}\n\ninput NoFunctionAggregateOrderByClause {\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype RecordConnection @generic {\n edges: [RecordEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype FilteredLookupInfo {\n controllingFields: [String]!\n dependent: Boolean!\n optionalFilter: Boolean!\n}\n\ninput PhoneNumberOperators {\n eq: PhoneNumber\n ne: PhoneNumber\n like: PhoneNumber\n lt: PhoneNumber\n gt: PhoneNumber\n lte: PhoneNumber\n gte: PhoneNumber\n in: [PhoneNumber]\n nin: [PhoneNumber]\n}\n\ntype ObjectInfo {\n ApiName: String!\n childRelationships: [ChildRelationship]!\n createable: Boolean!\n custom: Boolean!\n defaultRecordTypeId: ID\n deletable: Boolean!\n dependentFields: [DependentField]!\n feedEnabled: Boolean!\n fields: [Field]!\n keyPrefix: String\n label: String\n labelPlural: String\n layoutable: Boolean!\n mruEnabled: Boolean!\n nameFields: [String]!\n queryable: Boolean!\n recordTypeInfos: [RecordTypeInfo]!\n searchable: Boolean!\n themeInfo: ThemeInfo\n updateable: Boolean!\n locale: String\n}\n\ninput LongitudeOperators {\n eq: Longitude\n ne: Longitude\n lt: Longitude\n gt: Longitude\n lte: Longitude\n gte: Longitude\n in: [Longitude]\n nin: [Longitude]\n}\n\ninterface Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype StandardField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n picklistValuesByRecordTypeIDs: [PicklistValueByRecordTypeIDs]\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistValueByRecordTypeIDs {\n recordTypeID: String!\n controllerValues: [ControllerValues!]\n picklistValues: [PicklistValues!]\n defaultValue: PicklistValues\n}\n\ntype ControllerValues {\n value: String\n index: Int\n}\n\ntype PicklistValues {\n value: String\n label: String\n validFor: [Int]\n attributes: PicklistAttributes\n}\n\ntype PicklistAttributes {\n picklistAtrributesValueType: String\n connectDisplayName: String\n internalName: String\n}\n\ninput DateTimeFunctionInput {\n value: DatePrimitiveOperators\n convertTimezoneValue: DatePrimitiveOperators\n}\n\ntype Base64Value implements FieldValue {\n value: Base64\n displayValue: String\n}\n\ntype CompoundField @generic {\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n}\n\ninput RecordUpdateInput @generic {\n Id: IdOrRef!\n record: RecordUpdateRepresentation! @fieldCategory\n}\n\ninput DateTimeInput {\n value: DateTime\n literal: DateLiteral\n range: DateRange\n}\n\ntype ChildRelationship {\n childObjectApiName: String!\n fieldName: String\n junctionIdListNames: [String]!\n junctionReferenceTo: [String]!\n relationshipName: String\n objectInfo: ObjectInfo\n}\n\ntype RecordResult @generic {\n aggregate: RecordAggregate\n}\n\ntype PageInfo {\n hasNextPage: Boolean!\n hasPreviousPage: Boolean!\n startCursor: String\n endCursor: String\n}\n\ntype CurrencyValue implements FieldValue {\n value: Currency\n displayValue: String\n format: String\n convertCurrency: Currency\n}\n\ntype DateFunctionAggregation {\n value: Long\n format: String\n}\n\ninput PolymorphicParentRelationshipRecordOrderBy @generic {\n RecordOrderBy: RecordOrderBy @fieldCategory\n}\n\ntype RecordCreatePayload @generic {\n Record: RecordRepresentation\n}\n\ninput PolymorphicParentRelationshipGroupBy @generic {\n RecordGroupBy: RecordGroupBy @fieldCategory\n}\n\ntype BooleanValue implements FieldValue {\n value: Boolean\n displayValue: String\n}\n\ntype StringValue implements FieldValue {\n value: String\n displayValue: String\n label: String\n}\n\ninput IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: JoinInput\n ninq: JoinInput\n}\n\ntype PhoneNumberAggregate implements FieldValue {\n value: PhoneNumber\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: PhoneNumberValue\n min: PhoneNumberValue\n}\n\ntype CurrencyAggregate implements FieldValue {\n value: Currency\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: CurrencyValue\n min: CurrencyValue\n sum: CurrencyValue\n}\n\ninput BooleanOperators {\n eq: Boolean\n ne: Boolean\n}\n\ntype MultiPicklistValue implements FieldValue {\n value: MultiPicklist\n displayValue: String\n label: String\n}\n\ntype ListColumn @team(name: \"Lists Platform\") {\n fieldApiName: String!\n label: String!\n lookupId: String\n sortable: Boolean\n}\n\ntype LatitudeAggregate implements FieldValue {\n value: Latitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LatitudeValue\n min: LatitudeValue\n sum: DoubleValue\n}\n\ninput CurrencyOperators {\n eq: Currency\n ne: Currency\n lt: Currency\n gt: Currency\n lte: Currency\n gte: Currency\n in: [Currency]\n nin: [Currency]\n}\n\ntype LatitudeValue implements FieldValue {\n value: Latitude\n displayValue: String\n}\n\ninput GroupByClause {\n group: Boolean\n}\n\ntype RecordEdge @generic {\n node: RecordRepresentation\n cursor: String!\n}\n\nenum NullOrder {\n FIRST\n LAST\n}\n\ntype PhoneNumberValue implements FieldValue {\n value: PhoneNumber\n displayValue: String\n}\n\n# RecordScope is an empty enum\n# enum RecordScope @generic {\n# }\n\ninput TextAreaOperators {\n eq: TextArea\n ne: TextArea\n like: TextArea\n lt: TextArea\n gt: TextArea\n lte: TextArea\n gte: TextArea\n in: [TextArea]\n nin: [TextArea]\n}\n\ntype TextAreaValue implements FieldValue {\n value: TextArea\n displayValue: String\n label: String\n}\n\ntype RecordAggregateEdge @generic {\n node: RecordResult\n cursor: String!\n}\n\ntype ThemeInfo {\n color: String\n iconUrl: String\n}\n\ntype UrlAggregate implements FieldValue {\n value: Url\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: UrlValue\n min: UrlValue\n}\n\ntype IDValue implements FieldValue {\n value: ID\n displayValue: String\n}\n\nenum Unit {\n MI\n KM\n}\n\ninput PolymorphicParentRelationshipOrderBy @generic {\n RecordAggregateOrderBy: RecordAggregateOrderBy @fieldCategory\n}\n\nenum NullsOrder {\n FIRST\n LAST\n}\n\nenum ResultOrder {\n ASC\n DESC\n}\n\ninput RecordOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput PicklistOperators {\n eq: Picklist\n ne: Picklist\n in: [Picklist]\n nin: [Picklist]\n like: Picklist\n lt: Picklist\n gt: Picklist\n lte: Picklist\n gte: Picklist\n}\n\ninput RecordFilter @generic {\n and: [RecordFilter]\n or: [RecordFilter]\n not: RecordFilter\n parentRelationshipRecordFilter: RecordFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: PolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n IdOperator: IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ntype TimeValue implements FieldValue {\n value: Time\n displayValue: String\n format: String\n}\n\ninput GeolocationOperators {\n lt: GeolocationInput\n gt: GeolocationInput\n}\n\ninput LatitudeOperators {\n eq: Latitude\n ne: Latitude\n lt: Latitude\n gt: Latitude\n lte: Latitude\n gte: Latitude\n in: [Latitude]\n nin: [Latitude]\n}\n\ntype IntAggregate implements FieldValue {\n value: Int\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: IntValue\n min: IntValue\n sum: LongValue\n}\n\ntype RecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: RecordAggregate @fieldCategory\n polymorphicParentRelationship: PolymorphicAggregateParentRelationship @fieldCategory\n}\n\nenum SObject__FieldType {\n ALL\n STANDARD\n CUSTOM\n}\n\ntype JSONValue implements FieldValue {\n value: JSON\n displayValue: String\n}\n\ntype EmailValue implements FieldValue {\n value: Email\n displayValue: String\n}\n\ninput DateFunctionInput {\n value: LongOperators\n convertTimezoneValue: LongOperators\n}\n\n# Mutations are not supported by Luvio.\n# type Mutation {\n# uiapi(input: UIAPIMutationsInput): UIAPIMutations!\n# }\n\nunion PolymorphicAggregateParentRelationship @generic = RecordAggregate\n\ninput LongTextAreaOperators {\n eq: LongTextArea\n ne: LongTextArea\n like: LongTextArea\n lt: LongTextArea\n gt: LongTextArea\n lte: LongTextArea\n gte: LongTextArea\n in: [LongTextArea]\n nin: [LongTextArea]\n}\n\ninput DateTimeOperators {\n eq: DateTimeInput\n ne: DateTimeInput\n lt: DateTimeInput\n gt: DateTimeInput\n lte: DateTimeInput\n gte: DateTimeInput\n in: [DateTimeInput]\n nin: [DateTimeInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n DAY_ONLY: DateTimeFunctionInput\n HOUR_IN_DAY: DateFunctionInput\n}\n\ntype BooleanAggregate implements FieldValue {\n value: Boolean\n displayValue: String\n grouping: IntValue\n}\n\ntype RecordQueryAggregate {\n # scope should be RecordScope, but it is an empty enum\n recordQueryAggregate(first: Int, after: String, where: RecordFilter, orderBy: RecordAggregateOrderBy, scope: String, groupBy: RecordGroupBy, upperBound: Int): RecordAggregateConnection @fieldCategory\n}\n\ninput RecordCreateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\nenum FieldExtraTypeInfo {\n IMAGE_URL\n EXTERNAL_LOOKUP\n INDIRECT_LOOKUP\n PERSONNAME\n SWITCHABLE_PERSONNAME\n PLAINTEXTAREA\n RICHTEXTAREA\n}\n\ntype RateLimit {\n cost: Long\n limit: Long\n remaining: Long\n resetAt: DateTime\n}\n\ninput DateRange {\n last_n_days: Int\n next_n_days: Int\n last_n_weeks: Int\n next_n_weeks: Int\n last_n_months: Int\n next_n_months: Int\n last_n_quarters: Int\n next_n_quarters: Int\n last_n_fiscal_quarters: Int\n next_n_fiscal_quarters: Int\n last_n_years: Int\n next_n_years: Int\n last_n_fiscal_years: Int\n next_n_fiscal_years: Int\n n_days_ago: Int\n n_weeks_ago: Int\n n_months_ago: Int\n n_quarters_ago: Int\n n_years_ago: Int\n n_fiscal_quarters_ago: Int\n n_fiscal_years_ago: Int\n}\n\ntype UIAPIMutations {\n recordCreate(input: RecordCreateInput!): RecordCreatePayload @fieldCategory\n recordDelete(input: RecordDeleteInput!): RecordDeletePayload @fieldCategory\n recordUpdate(input: RecordUpdateInput!): RecordUpdatePayload @fieldCategory\n}\n\ninput IntegerOperators {\n eq: Int\n ne: Int\n lt: Int\n gt: Int\n lte: Int\n gte: Int\n in: [Int]\n nin: [Int]\n}\n\ntype EncryptedStringValue implements FieldValue {\n value: EncryptedString\n displayValue: String\n}\n\ninterface Record {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n}\n\ninput PolymorphicParentRelationshipRecordFilter @generic {\n RecordFilter: RecordFilter @fieldCategory\n}\n\n\"\"\"\nA type that can contain any of the following types: Boolean, Date, DateTime, Double, String.\nFormat and Label are not supported by AnyType and displayValue is an unformatted string representation of the value.\n\"\"\"\nunion AnyType = BooleanValue | DateValue | DateTimeValue | DoubleValue | StringValue\n\ninput AggregateOrderByNumberClause {\n function: AggregateOrderByNumberFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ninput DateInput {\n value: Date\n literal: DateLiteral\n range: DateRange\n}\n\ninput RecordGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: RecordGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: PolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\ntype RecordQuery {\n # scope should be RecordScope, but it is an empty enum\n recordQuery(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, scope: String, upperBound: Int, updateMRU: Boolean): RecordConnection @fieldCategory\n}\n\ninput RecordAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ninput IgnoreRule {\n rule: String!\n teamName: String!\n justification: String!\n}\n\ndirective @generic on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT\ndirective @fieldCategory on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | ENUM_VALUE\ndirective @category(name: String!) on FIELD\n\"Specifies the team name for a type\"\ndirective @team(name: String!) on OBJECT | INPUT_OBJECT | INTERFACE | ENUM | UNION | SCALAR\n\"Specifies the validation rules to ignore for this element.\"\ndirective @ignoreRule(rules: [IgnoreRule!]!) on OBJECT\n | INPUT_OBJECT\n | INTERFACE\n | ENUM\n | UNION\n | SCALAR\n | FIELD_DEFINITION\n | INPUT_FIELD_DEFINITION\n | ARGUMENT_DEFINITION\n | ENUM_VALUE\ndirective @optional on FIELD\n\ntype __Type {\n kind: __TypeKind!\n name: String\n description: String\n fields(includeDeprecated: Boolean = false): [__Field!]\n interfaces: [__Type!]\n possibleTypes: [__Type!]\n enumValues(includeDeprecated: Boolean = false): [__EnumValue!]\n inputFields: [__InputValue!]\n ofType: __Type\n}";
|
|
85512
85818
|
|
|
85513
85819
|
// Define additional schema that is missing from uiapi that we use in local evaluation
|
|
85514
85820
|
const additionalSchemaDefinitions = /* GraphQL */ `
|
|
@@ -89423,7 +89729,7 @@ const withInstrumentation = (operation, config) => {
|
|
|
89423
89729
|
return operation()
|
|
89424
89730
|
.catch((err) => {
|
|
89425
89731
|
hasError = true;
|
|
89426
|
-
const error = normalizeError$
|
|
89732
|
+
const error = normalizeError$2(err);
|
|
89427
89733
|
tags['errorMessage'] = error.message;
|
|
89428
89734
|
if (logError) {
|
|
89429
89735
|
ldsMobileInstrumentation$2.error(error);
|
|
@@ -95112,14 +95418,27 @@ const _FetchNetworkCommand = class _FetchNetworkCommand extends NetworkCommand {
|
|
|
95112
95418
|
constructor(services) {
|
|
95113
95419
|
super(services);
|
|
95114
95420
|
this.services = services;
|
|
95421
|
+
this.additionalNullResponses = [];
|
|
95115
95422
|
}
|
|
95116
|
-
fetch() {
|
|
95423
|
+
fetch(contextSeed) {
|
|
95117
95424
|
try {
|
|
95118
|
-
|
|
95425
|
+
const [input, init] = this.fetchParams;
|
|
95426
|
+
const initWithSeed = contextSeed === void 0 ? init : { ...init, __contextSeed: contextSeed };
|
|
95427
|
+
const fetchCall = initWithSeed === void 0 ? this.services.fetch(input) : this.services.fetch(input, initWithSeed);
|
|
95428
|
+
return this.convertFetchResponseToData(fetchCall);
|
|
95119
95429
|
} catch (reason) {
|
|
95120
95430
|
return resolvedPromiseLike$2(err$1(toError(reason)));
|
|
95121
95431
|
}
|
|
95122
95432
|
}
|
|
95433
|
+
isSemanticNullResponse(response) {
|
|
95434
|
+
return this.additionalNullResponses.includes(response.status);
|
|
95435
|
+
}
|
|
95436
|
+
isProtocolNoBodyStatus(status) {
|
|
95437
|
+
return status === 204 || status === 205;
|
|
95438
|
+
}
|
|
95439
|
+
isUndeclaredNoBodyResponse(response) {
|
|
95440
|
+
return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
|
|
95441
|
+
}
|
|
95123
95442
|
async coerceError(errorResponse) {
|
|
95124
95443
|
return toError(errorResponse.statusText);
|
|
95125
95444
|
}
|
|
@@ -95127,10 +95446,24 @@ const _FetchNetworkCommand = class _FetchNetworkCommand extends NetworkCommand {
|
|
|
95127
95446
|
return response.then(
|
|
95128
95447
|
(response2) => {
|
|
95129
95448
|
if (response2.ok) {
|
|
95130
|
-
|
|
95131
|
-
|
|
95132
|
-
|
|
95133
|
-
|
|
95449
|
+
let resultPromise;
|
|
95450
|
+
if (this.isSemanticNullResponse(response2)) {
|
|
95451
|
+
resultPromise = Promise.resolve(ok$1(null));
|
|
95452
|
+
} else if (this.isUndeclaredNoBodyResponse(response2)) {
|
|
95453
|
+
resultPromise = Promise.resolve(
|
|
95454
|
+
err$1(
|
|
95455
|
+
toError(
|
|
95456
|
+
`Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
|
|
95457
|
+
)
|
|
95458
|
+
)
|
|
95459
|
+
);
|
|
95460
|
+
} else {
|
|
95461
|
+
resultPromise = response2.json().then(
|
|
95462
|
+
(json) => ok$1(json),
|
|
95463
|
+
(reason) => err$1(toError(reason))
|
|
95464
|
+
);
|
|
95465
|
+
}
|
|
95466
|
+
return resultPromise.finally(() => {
|
|
95134
95467
|
try {
|
|
95135
95468
|
this.afterRequestHooks({ statusCode: response2.status });
|
|
95136
95469
|
} catch {
|
|
@@ -95177,6 +95510,7 @@ class HttpCacheControlCommand extends CacheControlCommand {
|
|
|
95177
95510
|
constructor(services) {
|
|
95178
95511
|
super(services);
|
|
95179
95512
|
this.services = services;
|
|
95513
|
+
this.additionalNullResponses = [];
|
|
95180
95514
|
}
|
|
95181
95515
|
requestFromNetwork() {
|
|
95182
95516
|
return this.fetch();
|
|
@@ -95188,6 +95522,15 @@ class HttpCacheControlCommand extends CacheControlCommand {
|
|
|
95188
95522
|
return resolvedPromiseLike$2(err$1(toError(reason)));
|
|
95189
95523
|
}
|
|
95190
95524
|
}
|
|
95525
|
+
isSemanticNullResponse(response) {
|
|
95526
|
+
return this.additionalNullResponses.includes(response.status);
|
|
95527
|
+
}
|
|
95528
|
+
isProtocolNoBodyStatus(status) {
|
|
95529
|
+
return status === 204 || status === 205;
|
|
95530
|
+
}
|
|
95531
|
+
isUndeclaredNoBodyResponse(response) {
|
|
95532
|
+
return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
|
|
95533
|
+
}
|
|
95191
95534
|
async coerceError(errorResponse) {
|
|
95192
95535
|
return toError(errorResponse.statusText);
|
|
95193
95536
|
}
|
|
@@ -95198,12 +95541,26 @@ class HttpCacheControlCommand extends CacheControlCommand {
|
|
|
95198
95541
|
return response.then(
|
|
95199
95542
|
(response2) => {
|
|
95200
95543
|
if (response2.ok) {
|
|
95201
|
-
|
|
95202
|
-
|
|
95203
|
-
|
|
95204
|
-
|
|
95205
|
-
|
|
95206
|
-
|
|
95544
|
+
let resultPromise;
|
|
95545
|
+
if (this.isSemanticNullResponse(response2)) {
|
|
95546
|
+
resultPromise = Promise.resolve(ok$1(null));
|
|
95547
|
+
} else if (this.isUndeclaredNoBodyResponse(response2)) {
|
|
95548
|
+
resultPromise = Promise.resolve(
|
|
95549
|
+
err$1(
|
|
95550
|
+
toError(
|
|
95551
|
+
`Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
|
|
95552
|
+
)
|
|
95553
|
+
)
|
|
95554
|
+
);
|
|
95555
|
+
} else {
|
|
95556
|
+
resultPromise = response2.json().then(
|
|
95557
|
+
(json) => {
|
|
95558
|
+
return this.processFetchReturnValue(json);
|
|
95559
|
+
},
|
|
95560
|
+
(reason) => err$1(toError(reason))
|
|
95561
|
+
);
|
|
95562
|
+
}
|
|
95563
|
+
return resultPromise.finally(() => {
|
|
95207
95564
|
try {
|
|
95208
95565
|
this.afterRequestHooks({ statusCode: response2.status });
|
|
95209
95566
|
} catch {
|
|
@@ -96191,7 +96548,7 @@ function buildServiceDescriptor$b(luvio) {
|
|
|
96191
96548
|
},
|
|
96192
96549
|
};
|
|
96193
96550
|
}
|
|
96194
|
-
// version: 1.428.0-
|
|
96551
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
96195
96552
|
|
|
96196
96553
|
/**
|
|
96197
96554
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -96217,7 +96574,7 @@ function buildServiceDescriptor$a(notifyRecordUpdateAvailable, getNormalizedLuvi
|
|
|
96217
96574
|
},
|
|
96218
96575
|
};
|
|
96219
96576
|
}
|
|
96220
|
-
// version: 1.428.0-
|
|
96577
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
96221
96578
|
|
|
96222
96579
|
/*!
|
|
96223
96580
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -96702,6 +97059,9 @@ function invalidSchemaResponseWithError$1(error) {
|
|
|
96702
97059
|
return err$1([error]);
|
|
96703
97060
|
}
|
|
96704
97061
|
function validateJsonSchema$1(data, schema, path = "$", document = schema) {
|
|
97062
|
+
return validateJsonSchemaInternal$1(data, schema, path, document, /* @__PURE__ */ new Map());
|
|
97063
|
+
}
|
|
97064
|
+
function validateJsonSchemaInternal$1(data, schema, path, document, visited) {
|
|
96705
97065
|
if (schema === true) return validSchemaResponse$1();
|
|
96706
97066
|
if (schema === false)
|
|
96707
97067
|
return invalidSchemaResponseWithError$1(
|
|
@@ -96710,22 +97070,22 @@ function validateJsonSchema$1(data, schema, path = "$", document = schema) {
|
|
|
96710
97070
|
const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
|
|
96711
97071
|
const errorCollector = new JsonSchemaErrorCollector$1();
|
|
96712
97072
|
if ("anyOf" in schema) {
|
|
96713
|
-
errorCollector.append(validateAnyOf$1(data, schema, path, document));
|
|
97073
|
+
errorCollector.append(validateAnyOf$1(data, schema, path, document, visited));
|
|
96714
97074
|
} else if ("oneOf" in schema) {
|
|
96715
|
-
errorCollector.append(validateOneOf$1(data, schema, path, document));
|
|
97075
|
+
errorCollector.append(validateOneOf$1(data, schema, path, document, visited));
|
|
96716
97076
|
} else if ("allOf" in schema) {
|
|
96717
|
-
errorCollector.append(validateAllOf$1(data, schema, path, document));
|
|
97077
|
+
errorCollector.append(validateAllOf$1(data, schema, path, document, visited));
|
|
96718
97078
|
} else if ("not" in schema) {
|
|
96719
|
-
errorCollector.append(validateNot$1(data, schema, path, document));
|
|
97079
|
+
errorCollector.append(validateNot$1(data, schema, path, document, visited));
|
|
96720
97080
|
} else if ("$ref" in schema) {
|
|
96721
|
-
errorCollector.append(validateRef$1(data, schema, path, document));
|
|
97081
|
+
errorCollector.append(validateRef$1(data, schema, path, document, visited));
|
|
96722
97082
|
} else if ("type" in schema) {
|
|
96723
97083
|
if (schema.type === "object") {
|
|
96724
97084
|
if (dataType !== "object") {
|
|
96725
97085
|
errorCollector.add(incorrectTypeError$1("object", dataType, path));
|
|
96726
97086
|
} else {
|
|
96727
97087
|
errorCollector.append(
|
|
96728
|
-
validateObject$1(data, schema, path, document)
|
|
97088
|
+
validateObject$1(data, schema, path, document, visited)
|
|
96729
97089
|
);
|
|
96730
97090
|
}
|
|
96731
97091
|
} else if (schema.type === "array") {
|
|
@@ -96733,7 +97093,7 @@ function validateJsonSchema$1(data, schema, path = "$", document = schema) {
|
|
|
96733
97093
|
errorCollector.add(incorrectTypeError$1("array", dataType, path));
|
|
96734
97094
|
} else {
|
|
96735
97095
|
errorCollector.append(
|
|
96736
|
-
validateArray$1(data, schema, path, document)
|
|
97096
|
+
validateArray$1(data, schema, path, document, visited)
|
|
96737
97097
|
);
|
|
96738
97098
|
}
|
|
96739
97099
|
} else {
|
|
@@ -96750,16 +97110,17 @@ function validateJsonSchema$1(data, schema, path = "$", document = schema) {
|
|
|
96750
97110
|
}
|
|
96751
97111
|
return errorCollector.toValidationResponse();
|
|
96752
97112
|
}
|
|
96753
|
-
function validateAnyOf$1(data, schema, path, document) {
|
|
97113
|
+
function validateAnyOf$1(data, schema, path, document, visited) {
|
|
96754
97114
|
let isValid = false;
|
|
96755
97115
|
const errorCollector = new JsonSchemaErrorCollector$1();
|
|
96756
97116
|
for (let i = 0, { length } = schema.anyOf; i < length; i++) {
|
|
96757
97117
|
const element = schema.anyOf[i];
|
|
96758
|
-
const validationResponse =
|
|
97118
|
+
const validationResponse = validateJsonSchemaInternal$1(
|
|
96759
97119
|
data,
|
|
96760
97120
|
element,
|
|
96761
97121
|
`${path}.anyOf[${i}]`,
|
|
96762
|
-
document
|
|
97122
|
+
document,
|
|
97123
|
+
visited
|
|
96763
97124
|
);
|
|
96764
97125
|
if (validationResponse.isOk()) {
|
|
96765
97126
|
isValid = true;
|
|
@@ -96776,13 +97137,22 @@ function validateAnyOf$1(data, schema, path, document) {
|
|
|
96776
97137
|
}
|
|
96777
97138
|
return validSchemaResponse$1();
|
|
96778
97139
|
}
|
|
96779
|
-
function validateOneOf$1(data, schema, path, document) {
|
|
97140
|
+
function validateOneOf$1(data, schema, path, document, visited) {
|
|
97141
|
+
if (schema.discriminator !== void 0) {
|
|
97142
|
+
return validateDiscriminatedOneOf$1(data, schema.discriminator, path, document, visited);
|
|
97143
|
+
}
|
|
96780
97144
|
let validSubShemaPaths = [];
|
|
96781
97145
|
const errorCollector = new JsonSchemaErrorCollector$1();
|
|
96782
97146
|
for (let i = 0, { length } = schema.oneOf; i < length; i++) {
|
|
96783
97147
|
const element = schema.oneOf[i];
|
|
96784
97148
|
const oneOfPath = `${path}.oneOf[${i}]`;
|
|
96785
|
-
const validationResponse =
|
|
97149
|
+
const validationResponse = validateJsonSchemaInternal$1(
|
|
97150
|
+
data,
|
|
97151
|
+
element,
|
|
97152
|
+
oneOfPath,
|
|
97153
|
+
document,
|
|
97154
|
+
visited
|
|
97155
|
+
);
|
|
96786
97156
|
if (validationResponse.isOk()) {
|
|
96787
97157
|
validSubShemaPaths.push(oneOfPath);
|
|
96788
97158
|
} else {
|
|
@@ -96804,16 +97174,45 @@ function validateOneOf$1(data, schema, path, document) {
|
|
|
96804
97174
|
}
|
|
96805
97175
|
return validSchemaResponse$1();
|
|
96806
97176
|
}
|
|
96807
|
-
function
|
|
97177
|
+
function validateDiscriminatedOneOf$1(data, discriminator, path, document, visited) {
|
|
97178
|
+
if (data === null || typeof data !== "object" || Array.isArray(data)) {
|
|
97179
|
+
return invalidSchemaResponseWithError$1(incorrectTypeError$1("object", typeof data, path));
|
|
97180
|
+
}
|
|
97181
|
+
const { propertyName, mapping } = discriminator;
|
|
97182
|
+
const discriminatorValue = data[propertyName];
|
|
97183
|
+
if (discriminatorValue === void 0) {
|
|
97184
|
+
return invalidSchemaResponseWithError$1(
|
|
97185
|
+
new MissingRequiredPropertyError$1(
|
|
97186
|
+
`Object at path '${path}' is missing required discriminator property '${propertyName}'.`
|
|
97187
|
+
)
|
|
97188
|
+
);
|
|
97189
|
+
}
|
|
97190
|
+
if (typeof discriminatorValue !== "string") {
|
|
97191
|
+
return invalidSchemaResponseWithError$1(
|
|
97192
|
+
incorrectTypeError$1("string", typeof discriminatorValue, `${path}.${propertyName}`)
|
|
97193
|
+
);
|
|
97194
|
+
}
|
|
97195
|
+
const targetRef = mapping[discriminatorValue];
|
|
97196
|
+
if (targetRef === void 0) {
|
|
97197
|
+
return invalidSchemaResponseWithError$1(
|
|
97198
|
+
new JsonSchemaViolationError$1(
|
|
97199
|
+
`Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
|
|
97200
|
+
)
|
|
97201
|
+
);
|
|
97202
|
+
}
|
|
97203
|
+
return validateJsonSchemaInternal$1(data, { $ref: targetRef }, path, document, visited);
|
|
97204
|
+
}
|
|
97205
|
+
function validateAllOf$1(data, schema, path, document, visited) {
|
|
96808
97206
|
let isValid = true;
|
|
96809
97207
|
const errorCollector = new JsonSchemaErrorCollector$1();
|
|
96810
97208
|
for (let i = 0, { length } = schema.allOf; i < length; i++) {
|
|
96811
97209
|
const element = schema.allOf[i];
|
|
96812
|
-
const validationResponse =
|
|
97210
|
+
const validationResponse = validateJsonSchemaInternal$1(
|
|
96813
97211
|
data,
|
|
96814
97212
|
element,
|
|
96815
97213
|
`${path}.allOf[${i}]`,
|
|
96816
|
-
document
|
|
97214
|
+
document,
|
|
97215
|
+
visited
|
|
96817
97216
|
);
|
|
96818
97217
|
if (!validationResponse.isOk()) {
|
|
96819
97218
|
errorCollector.append(validationResponse);
|
|
@@ -96827,8 +97226,14 @@ function validateAllOf$1(data, schema, path, document) {
|
|
|
96827
97226
|
}
|
|
96828
97227
|
return errorCollector.toValidationResponse();
|
|
96829
97228
|
}
|
|
96830
|
-
function validateNot$1(data, schema, path, document) {
|
|
96831
|
-
const validationResponse =
|
|
97229
|
+
function validateNot$1(data, schema, path, document, visited) {
|
|
97230
|
+
const validationResponse = validateJsonSchemaInternal$1(
|
|
97231
|
+
data,
|
|
97232
|
+
schema.not,
|
|
97233
|
+
path,
|
|
97234
|
+
document,
|
|
97235
|
+
visited
|
|
97236
|
+
);
|
|
96832
97237
|
if (validationResponse.isOk()) {
|
|
96833
97238
|
return invalidSchemaResponseWithError$1(
|
|
96834
97239
|
new JsonSchemaViolationError$1(
|
|
@@ -96838,7 +97243,7 @@ function validateNot$1(data, schema, path, document) {
|
|
|
96838
97243
|
}
|
|
96839
97244
|
return validSchemaResponse$1();
|
|
96840
97245
|
}
|
|
96841
|
-
function validateObject$1(data, schema, path, document) {
|
|
97246
|
+
function validateObject$1(data, schema, path, document, visited) {
|
|
96842
97247
|
const schemaKeys = Object.keys(schema.properties);
|
|
96843
97248
|
const requiredKeys = new Set(schema.required);
|
|
96844
97249
|
const schemaKeySet = new Set(schemaKeys);
|
|
@@ -96846,11 +97251,12 @@ function validateObject$1(data, schema, path, document) {
|
|
|
96846
97251
|
Object.keys(data).forEach((key) => {
|
|
96847
97252
|
if (!schemaKeySet.has(key)) {
|
|
96848
97253
|
errorCollector.append(
|
|
96849
|
-
|
|
97254
|
+
validateJsonSchemaInternal$1(
|
|
96850
97255
|
data[key],
|
|
96851
97256
|
schema.additionalProperties,
|
|
96852
97257
|
`${path}.additionalProperties[${key}]`,
|
|
96853
|
-
document
|
|
97258
|
+
document,
|
|
97259
|
+
visited
|
|
96854
97260
|
)
|
|
96855
97261
|
);
|
|
96856
97262
|
}
|
|
@@ -96867,18 +97273,19 @@ function validateObject$1(data, schema, path, document) {
|
|
|
96867
97273
|
}
|
|
96868
97274
|
if (keyInData) {
|
|
96869
97275
|
errorCollector.append(
|
|
96870
|
-
|
|
97276
|
+
validateJsonSchemaInternal$1(
|
|
96871
97277
|
data[key],
|
|
96872
97278
|
schema.properties[key],
|
|
96873
97279
|
`${path}.${key}`,
|
|
96874
|
-
document
|
|
97280
|
+
document,
|
|
97281
|
+
visited
|
|
96875
97282
|
)
|
|
96876
97283
|
);
|
|
96877
97284
|
}
|
|
96878
97285
|
}
|
|
96879
97286
|
return errorCollector.toValidationResponse();
|
|
96880
97287
|
}
|
|
96881
|
-
function validateArray$1(data, schema, path, document) {
|
|
97288
|
+
function validateArray$1(data, schema, path, document, visited) {
|
|
96882
97289
|
if (schema.minItems !== void 0 && data.length < schema.minItems) {
|
|
96883
97290
|
return invalidSchemaResponseWithError$1(
|
|
96884
97291
|
new MinItemsViolationError$1(
|
|
@@ -96896,7 +97303,13 @@ function validateArray$1(data, schema, path, document) {
|
|
|
96896
97303
|
const errorCollector = new JsonSchemaErrorCollector$1();
|
|
96897
97304
|
data.forEach(
|
|
96898
97305
|
(element, index) => errorCollector.append(
|
|
96899
|
-
|
|
97306
|
+
validateJsonSchemaInternal$1(
|
|
97307
|
+
element,
|
|
97308
|
+
schema.items,
|
|
97309
|
+
`${path}[${index}]`,
|
|
97310
|
+
document,
|
|
97311
|
+
visited
|
|
97312
|
+
)
|
|
96900
97313
|
)
|
|
96901
97314
|
);
|
|
96902
97315
|
return errorCollector.toValidationResponse();
|
|
@@ -96931,7 +97344,7 @@ function validateScalar$1(data, schema, path) {
|
|
|
96931
97344
|
}
|
|
96932
97345
|
return validSchemaResponse$1();
|
|
96933
97346
|
}
|
|
96934
|
-
function validateRef$1(data, schema, path, document) {
|
|
97347
|
+
function validateRef$1(data, schema, path, document, visited) {
|
|
96935
97348
|
if (!schema.$ref.startsWith("#")) {
|
|
96936
97349
|
return invalidSchemaResponseWithError$1(
|
|
96937
97350
|
new InvalidRefError$1(
|
|
@@ -96939,11 +97352,23 @@ function validateRef$1(data, schema, path, document) {
|
|
|
96939
97352
|
)
|
|
96940
97353
|
);
|
|
96941
97354
|
}
|
|
97355
|
+
let refsForData = visited.get(data);
|
|
97356
|
+
if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
|
|
97357
|
+
return validSchemaResponse$1();
|
|
97358
|
+
}
|
|
97359
|
+
if (refsForData === void 0) {
|
|
97360
|
+
refsForData = /* @__PURE__ */ new Set();
|
|
97361
|
+
visited.set(data, refsForData);
|
|
97362
|
+
}
|
|
97363
|
+
refsForData.add(schema.$ref);
|
|
96942
97364
|
try {
|
|
96943
97365
|
const schemaToValidate = findSchemaAtPath$1(document, schema.$ref);
|
|
96944
|
-
return
|
|
97366
|
+
return validateJsonSchemaInternal$1(data, schemaToValidate, path, document, visited);
|
|
96945
97367
|
} catch (e) {
|
|
96946
97368
|
return invalidSchemaResponseWithError$1(e);
|
|
97369
|
+
} finally {
|
|
97370
|
+
refsForData.delete(schema.$ref);
|
|
97371
|
+
if (refsForData.size === 0) visited.delete(data);
|
|
96947
97372
|
}
|
|
96948
97373
|
}
|
|
96949
97374
|
function validateEnum$1(data, enumValue, path) {
|
|
@@ -97828,9 +98253,18 @@ function buildServiceDescriptor$1(interceptors = {
|
|
|
97828
98253
|
return {
|
|
97829
98254
|
type: "fetch",
|
|
97830
98255
|
version: "1.0",
|
|
97831
|
-
service: function(
|
|
98256
|
+
service: function(input, init) {
|
|
97832
98257
|
var _a;
|
|
97833
|
-
|
|
98258
|
+
let contextSeed;
|
|
98259
|
+
let cleanInit = init;
|
|
98260
|
+
if (init !== void 0 && "__contextSeed" in init) {
|
|
98261
|
+
const { __contextSeed, ...initWithoutSeed } = init;
|
|
98262
|
+
contextSeed = __contextSeed;
|
|
98263
|
+
cleanInit = Object.keys(initWithoutSeed).length === 0 ? void 0 : initWithoutSeed;
|
|
98264
|
+
}
|
|
98265
|
+
const fetchArgs = cleanInit === void 0 ? [input] : [input, cleanInit];
|
|
98266
|
+
const baseContext = (_a = interceptors.createContext) == null ? void 0 : _a.call(interceptors);
|
|
98267
|
+
const context = contextSeed === void 0 ? baseContext : { ...baseContext, ...contextSeed };
|
|
97834
98268
|
const {
|
|
97835
98269
|
request: requestInterceptors = [],
|
|
97836
98270
|
retry: retryInterceptor = void 0,
|
|
@@ -97838,17 +98272,17 @@ function buildServiceDescriptor$1(interceptors = {
|
|
|
97838
98272
|
finally: finallyInterceptors = []
|
|
97839
98273
|
} = interceptors;
|
|
97840
98274
|
const pending = requestInterceptors.reduce(
|
|
97841
|
-
(previousPromise, interceptor) => previousPromise.then((
|
|
97842
|
-
resolvedPromiseLike$2(
|
|
98275
|
+
(previousPromise, interceptor) => previousPromise.then((args) => interceptor(args, context)),
|
|
98276
|
+
resolvedPromiseLike$2(fetchArgs)
|
|
97843
98277
|
);
|
|
97844
|
-
return Promise.resolve(pending).then((
|
|
98278
|
+
return Promise.resolve(pending).then((args) => {
|
|
97845
98279
|
if (retryInterceptor) {
|
|
97846
|
-
return retryInterceptor(
|
|
98280
|
+
return retryInterceptor(args, retryService, context);
|
|
97847
98281
|
} else {
|
|
97848
98282
|
if (retryService) {
|
|
97849
|
-
return retryService.applyRetry(() => fetch(...
|
|
98283
|
+
return retryService.applyRetry(() => fetch(...args));
|
|
97850
98284
|
}
|
|
97851
|
-
return fetch(...
|
|
98285
|
+
return fetch(...args);
|
|
97852
98286
|
}
|
|
97853
98287
|
}).then((response) => {
|
|
97854
98288
|
return responseInterceptors.reduce(
|
|
@@ -98874,7 +99308,7 @@ register$1({
|
|
|
98874
99308
|
id: '@salesforce/lds-network-adapter',
|
|
98875
99309
|
instrument: instrument$2,
|
|
98876
99310
|
});
|
|
98877
|
-
// version: 1.428.0-
|
|
99311
|
+
// version: 1.428.0-dev21-c9faba50c9
|
|
98878
99312
|
|
|
98879
99313
|
const { create: create$2, keys: keys$2 } = Object;
|
|
98880
99314
|
const { stringify, parse } = JSON;
|
|
@@ -98965,6 +99399,9 @@ function invalidSchemaResponseWithError(error) {
|
|
|
98965
99399
|
return err$4([error]);
|
|
98966
99400
|
}
|
|
98967
99401
|
function validateJsonSchema(data, schema, path = "$", document = schema) {
|
|
99402
|
+
return validateJsonSchemaInternal(data, schema, path, document, /* @__PURE__ */ new Map());
|
|
99403
|
+
}
|
|
99404
|
+
function validateJsonSchemaInternal(data, schema, path, document, visited) {
|
|
98968
99405
|
if (schema === true) return validSchemaResponse();
|
|
98969
99406
|
if (schema === false)
|
|
98970
99407
|
return invalidSchemaResponseWithError(
|
|
@@ -98973,22 +99410,22 @@ function validateJsonSchema(data, schema, path = "$", document = schema) {
|
|
|
98973
99410
|
const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
|
|
98974
99411
|
const errorCollector = new JsonSchemaErrorCollector();
|
|
98975
99412
|
if ("anyOf" in schema) {
|
|
98976
|
-
errorCollector.append(validateAnyOf(data, schema, path, document));
|
|
99413
|
+
errorCollector.append(validateAnyOf(data, schema, path, document, visited));
|
|
98977
99414
|
} else if ("oneOf" in schema) {
|
|
98978
|
-
errorCollector.append(validateOneOf(data, schema, path, document));
|
|
99415
|
+
errorCollector.append(validateOneOf(data, schema, path, document, visited));
|
|
98979
99416
|
} else if ("allOf" in schema) {
|
|
98980
|
-
errorCollector.append(validateAllOf(data, schema, path, document));
|
|
99417
|
+
errorCollector.append(validateAllOf(data, schema, path, document, visited));
|
|
98981
99418
|
} else if ("not" in schema) {
|
|
98982
|
-
errorCollector.append(validateNot(data, schema, path, document));
|
|
99419
|
+
errorCollector.append(validateNot(data, schema, path, document, visited));
|
|
98983
99420
|
} else if ("$ref" in schema) {
|
|
98984
|
-
errorCollector.append(validateRef(data, schema, path, document));
|
|
99421
|
+
errorCollector.append(validateRef(data, schema, path, document, visited));
|
|
98985
99422
|
} else if ("type" in schema) {
|
|
98986
99423
|
if (schema.type === "object") {
|
|
98987
99424
|
if (dataType !== "object") {
|
|
98988
99425
|
errorCollector.add(incorrectTypeError("object", dataType, path));
|
|
98989
99426
|
} else {
|
|
98990
99427
|
errorCollector.append(
|
|
98991
|
-
validateObject(data, schema, path, document)
|
|
99428
|
+
validateObject(data, schema, path, document, visited)
|
|
98992
99429
|
);
|
|
98993
99430
|
}
|
|
98994
99431
|
} else if (schema.type === "array") {
|
|
@@ -98996,7 +99433,7 @@ function validateJsonSchema(data, schema, path = "$", document = schema) {
|
|
|
98996
99433
|
errorCollector.add(incorrectTypeError("array", dataType, path));
|
|
98997
99434
|
} else {
|
|
98998
99435
|
errorCollector.append(
|
|
98999
|
-
validateArray(data, schema, path, document)
|
|
99436
|
+
validateArray(data, schema, path, document, visited)
|
|
99000
99437
|
);
|
|
99001
99438
|
}
|
|
99002
99439
|
} else {
|
|
@@ -99013,16 +99450,17 @@ function validateJsonSchema(data, schema, path = "$", document = schema) {
|
|
|
99013
99450
|
}
|
|
99014
99451
|
return errorCollector.toValidationResponse();
|
|
99015
99452
|
}
|
|
99016
|
-
function validateAnyOf(data, schema, path, document) {
|
|
99453
|
+
function validateAnyOf(data, schema, path, document, visited) {
|
|
99017
99454
|
let isValid = false;
|
|
99018
99455
|
const errorCollector = new JsonSchemaErrorCollector();
|
|
99019
99456
|
for (let i = 0, { length } = schema.anyOf; i < length; i++) {
|
|
99020
99457
|
const element = schema.anyOf[i];
|
|
99021
|
-
const validationResponse =
|
|
99458
|
+
const validationResponse = validateJsonSchemaInternal(
|
|
99022
99459
|
data,
|
|
99023
99460
|
element,
|
|
99024
99461
|
`${path}.anyOf[${i}]`,
|
|
99025
|
-
document
|
|
99462
|
+
document,
|
|
99463
|
+
visited
|
|
99026
99464
|
);
|
|
99027
99465
|
if (validationResponse.isOk()) {
|
|
99028
99466
|
isValid = true;
|
|
@@ -99039,13 +99477,22 @@ function validateAnyOf(data, schema, path, document) {
|
|
|
99039
99477
|
}
|
|
99040
99478
|
return validSchemaResponse();
|
|
99041
99479
|
}
|
|
99042
|
-
function validateOneOf(data, schema, path, document) {
|
|
99480
|
+
function validateOneOf(data, schema, path, document, visited) {
|
|
99481
|
+
if (schema.discriminator !== void 0) {
|
|
99482
|
+
return validateDiscriminatedOneOf(data, schema.discriminator, path, document, visited);
|
|
99483
|
+
}
|
|
99043
99484
|
let validSubShemaPaths = [];
|
|
99044
99485
|
const errorCollector = new JsonSchemaErrorCollector();
|
|
99045
99486
|
for (let i = 0, { length } = schema.oneOf; i < length; i++) {
|
|
99046
99487
|
const element = schema.oneOf[i];
|
|
99047
99488
|
const oneOfPath = `${path}.oneOf[${i}]`;
|
|
99048
|
-
const validationResponse =
|
|
99489
|
+
const validationResponse = validateJsonSchemaInternal(
|
|
99490
|
+
data,
|
|
99491
|
+
element,
|
|
99492
|
+
oneOfPath,
|
|
99493
|
+
document,
|
|
99494
|
+
visited
|
|
99495
|
+
);
|
|
99049
99496
|
if (validationResponse.isOk()) {
|
|
99050
99497
|
validSubShemaPaths.push(oneOfPath);
|
|
99051
99498
|
} else {
|
|
@@ -99067,16 +99514,45 @@ function validateOneOf(data, schema, path, document) {
|
|
|
99067
99514
|
}
|
|
99068
99515
|
return validSchemaResponse();
|
|
99069
99516
|
}
|
|
99070
|
-
function
|
|
99517
|
+
function validateDiscriminatedOneOf(data, discriminator, path, document, visited) {
|
|
99518
|
+
if (data === null || typeof data !== "object" || Array.isArray(data)) {
|
|
99519
|
+
return invalidSchemaResponseWithError(incorrectTypeError("object", typeof data, path));
|
|
99520
|
+
}
|
|
99521
|
+
const { propertyName, mapping } = discriminator;
|
|
99522
|
+
const discriminatorValue = data[propertyName];
|
|
99523
|
+
if (discriminatorValue === void 0) {
|
|
99524
|
+
return invalidSchemaResponseWithError(
|
|
99525
|
+
new MissingRequiredPropertyError(
|
|
99526
|
+
`Object at path '${path}' is missing required discriminator property '${propertyName}'.`
|
|
99527
|
+
)
|
|
99528
|
+
);
|
|
99529
|
+
}
|
|
99530
|
+
if (typeof discriminatorValue !== "string") {
|
|
99531
|
+
return invalidSchemaResponseWithError(
|
|
99532
|
+
incorrectTypeError("string", typeof discriminatorValue, `${path}.${propertyName}`)
|
|
99533
|
+
);
|
|
99534
|
+
}
|
|
99535
|
+
const targetRef = mapping[discriminatorValue];
|
|
99536
|
+
if (targetRef === void 0) {
|
|
99537
|
+
return invalidSchemaResponseWithError(
|
|
99538
|
+
new JsonSchemaViolationError(
|
|
99539
|
+
`Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
|
|
99540
|
+
)
|
|
99541
|
+
);
|
|
99542
|
+
}
|
|
99543
|
+
return validateJsonSchemaInternal(data, { $ref: targetRef }, path, document, visited);
|
|
99544
|
+
}
|
|
99545
|
+
function validateAllOf(data, schema, path, document, visited) {
|
|
99071
99546
|
let isValid = true;
|
|
99072
99547
|
const errorCollector = new JsonSchemaErrorCollector();
|
|
99073
99548
|
for (let i = 0, { length } = schema.allOf; i < length; i++) {
|
|
99074
99549
|
const element = schema.allOf[i];
|
|
99075
|
-
const validationResponse =
|
|
99550
|
+
const validationResponse = validateJsonSchemaInternal(
|
|
99076
99551
|
data,
|
|
99077
99552
|
element,
|
|
99078
99553
|
`${path}.allOf[${i}]`,
|
|
99079
|
-
document
|
|
99554
|
+
document,
|
|
99555
|
+
visited
|
|
99080
99556
|
);
|
|
99081
99557
|
if (!validationResponse.isOk()) {
|
|
99082
99558
|
errorCollector.append(validationResponse);
|
|
@@ -99090,8 +99566,14 @@ function validateAllOf(data, schema, path, document) {
|
|
|
99090
99566
|
}
|
|
99091
99567
|
return errorCollector.toValidationResponse();
|
|
99092
99568
|
}
|
|
99093
|
-
function validateNot(data, schema, path, document) {
|
|
99094
|
-
const validationResponse =
|
|
99569
|
+
function validateNot(data, schema, path, document, visited) {
|
|
99570
|
+
const validationResponse = validateJsonSchemaInternal(
|
|
99571
|
+
data,
|
|
99572
|
+
schema.not,
|
|
99573
|
+
path,
|
|
99574
|
+
document,
|
|
99575
|
+
visited
|
|
99576
|
+
);
|
|
99095
99577
|
if (validationResponse.isOk()) {
|
|
99096
99578
|
return invalidSchemaResponseWithError(
|
|
99097
99579
|
new JsonSchemaViolationError(
|
|
@@ -99101,7 +99583,7 @@ function validateNot(data, schema, path, document) {
|
|
|
99101
99583
|
}
|
|
99102
99584
|
return validSchemaResponse();
|
|
99103
99585
|
}
|
|
99104
|
-
function validateObject(data, schema, path, document) {
|
|
99586
|
+
function validateObject(data, schema, path, document, visited) {
|
|
99105
99587
|
const schemaKeys = Object.keys(schema.properties);
|
|
99106
99588
|
const requiredKeys = new Set(schema.required);
|
|
99107
99589
|
const schemaKeySet = new Set(schemaKeys);
|
|
@@ -99109,11 +99591,12 @@ function validateObject(data, schema, path, document) {
|
|
|
99109
99591
|
Object.keys(data).forEach((key) => {
|
|
99110
99592
|
if (!schemaKeySet.has(key)) {
|
|
99111
99593
|
errorCollector.append(
|
|
99112
|
-
|
|
99594
|
+
validateJsonSchemaInternal(
|
|
99113
99595
|
data[key],
|
|
99114
99596
|
schema.additionalProperties,
|
|
99115
99597
|
`${path}.additionalProperties[${key}]`,
|
|
99116
|
-
document
|
|
99598
|
+
document,
|
|
99599
|
+
visited
|
|
99117
99600
|
)
|
|
99118
99601
|
);
|
|
99119
99602
|
}
|
|
@@ -99130,18 +99613,19 @@ function validateObject(data, schema, path, document) {
|
|
|
99130
99613
|
}
|
|
99131
99614
|
if (keyInData) {
|
|
99132
99615
|
errorCollector.append(
|
|
99133
|
-
|
|
99616
|
+
validateJsonSchemaInternal(
|
|
99134
99617
|
data[key],
|
|
99135
99618
|
schema.properties[key],
|
|
99136
99619
|
`${path}.${key}`,
|
|
99137
|
-
document
|
|
99620
|
+
document,
|
|
99621
|
+
visited
|
|
99138
99622
|
)
|
|
99139
99623
|
);
|
|
99140
99624
|
}
|
|
99141
99625
|
}
|
|
99142
99626
|
return errorCollector.toValidationResponse();
|
|
99143
99627
|
}
|
|
99144
|
-
function validateArray(data, schema, path, document) {
|
|
99628
|
+
function validateArray(data, schema, path, document, visited) {
|
|
99145
99629
|
if (schema.minItems !== void 0 && data.length < schema.minItems) {
|
|
99146
99630
|
return invalidSchemaResponseWithError(
|
|
99147
99631
|
new MinItemsViolationError(
|
|
@@ -99159,7 +99643,13 @@ function validateArray(data, schema, path, document) {
|
|
|
99159
99643
|
const errorCollector = new JsonSchemaErrorCollector();
|
|
99160
99644
|
data.forEach(
|
|
99161
99645
|
(element, index) => errorCollector.append(
|
|
99162
|
-
|
|
99646
|
+
validateJsonSchemaInternal(
|
|
99647
|
+
element,
|
|
99648
|
+
schema.items,
|
|
99649
|
+
`${path}[${index}]`,
|
|
99650
|
+
document,
|
|
99651
|
+
visited
|
|
99652
|
+
)
|
|
99163
99653
|
)
|
|
99164
99654
|
);
|
|
99165
99655
|
return errorCollector.toValidationResponse();
|
|
@@ -99194,7 +99684,7 @@ function validateScalar(data, schema, path) {
|
|
|
99194
99684
|
}
|
|
99195
99685
|
return validSchemaResponse();
|
|
99196
99686
|
}
|
|
99197
|
-
function validateRef(data, schema, path, document) {
|
|
99687
|
+
function validateRef(data, schema, path, document, visited) {
|
|
99198
99688
|
if (!schema.$ref.startsWith("#")) {
|
|
99199
99689
|
return invalidSchemaResponseWithError(
|
|
99200
99690
|
new InvalidRefError(
|
|
@@ -99202,11 +99692,23 @@ function validateRef(data, schema, path, document) {
|
|
|
99202
99692
|
)
|
|
99203
99693
|
);
|
|
99204
99694
|
}
|
|
99695
|
+
let refsForData = visited.get(data);
|
|
99696
|
+
if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
|
|
99697
|
+
return validSchemaResponse();
|
|
99698
|
+
}
|
|
99699
|
+
if (refsForData === void 0) {
|
|
99700
|
+
refsForData = /* @__PURE__ */ new Set();
|
|
99701
|
+
visited.set(data, refsForData);
|
|
99702
|
+
}
|
|
99703
|
+
refsForData.add(schema.$ref);
|
|
99205
99704
|
try {
|
|
99206
99705
|
const schemaToValidate = findSchemaAtPath(document, schema.$ref);
|
|
99207
|
-
return
|
|
99706
|
+
return validateJsonSchemaInternal(data, schemaToValidate, path, document, visited);
|
|
99208
99707
|
} catch (e) {
|
|
99209
99708
|
return invalidSchemaResponseWithError(e);
|
|
99709
|
+
} finally {
|
|
99710
|
+
refsForData.delete(schema.$ref);
|
|
99711
|
+
if (refsForData.size === 0) visited.delete(data);
|
|
99210
99712
|
}
|
|
99211
99713
|
}
|
|
99212
99714
|
function validateEnum(data, enumValue, path) {
|
|
@@ -101420,6 +101922,7 @@ class Analytics__AnalyticsRepresentationInterfaceRepository extends BaseInterfac
|
|
|
101420
101922
|
RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
|
|
101421
101923
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101422
101924
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
101925
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101423
101926
|
};
|
|
101424
101927
|
}
|
|
101425
101928
|
get possibleTypes() {
|
|
@@ -101461,6 +101964,7 @@ class Analytics__AnalyticsRepresentationRepository extends IdentifiableGraphQLTy
|
|
|
101461
101964
|
Dataspaces: new BaseArrayFieldDef(new BaseObjectFieldDef(this.typeRegistry.Analytics__DataspaceRepresentation, true), true),
|
|
101462
101965
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101463
101966
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
101967
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101464
101968
|
};
|
|
101465
101969
|
}
|
|
101466
101970
|
get cacheControl() {
|
|
@@ -101610,6 +102114,7 @@ class Analytics__DominoTemplateRepository extends IdentifiableGraphQLTypeReposit
|
|
|
101610
102114
|
RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
|
|
101611
102115
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101612
102116
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
102117
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101613
102118
|
};
|
|
101614
102119
|
}
|
|
101615
102120
|
get cacheControl() {
|
|
@@ -101646,6 +102151,7 @@ class Analytics__MktDataConnectorRepository extends IdentifiableGraphQLTypeRepos
|
|
|
101646
102151
|
DataConnectorType: new BaseObjectFieldDef(this.typeRegistry.StringValue, true),
|
|
101647
102152
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101648
102153
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
102154
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101649
102155
|
};
|
|
101650
102156
|
}
|
|
101651
102157
|
get cacheControl() {
|
|
@@ -101684,6 +102190,7 @@ class Analytics__SemanticDefinitionRepository extends IdentifiableGraphQLTypeRep
|
|
|
101684
102190
|
RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
|
|
101685
102191
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101686
102192
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
102193
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101687
102194
|
};
|
|
101688
102195
|
}
|
|
101689
102196
|
get cacheControl() {
|
|
@@ -101782,6 +102289,7 @@ class Analytics__SemanticModelRepository extends IdentifiableGraphQLTypeReposito
|
|
|
101782
102289
|
RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
|
|
101783
102290
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101784
102291
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
102292
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101785
102293
|
};
|
|
101786
102294
|
}
|
|
101787
102295
|
get cacheControl() {
|
|
@@ -106364,6 +106872,11 @@ function buildCommandClass(baseClass) {
|
|
|
106364
106872
|
Object.entries(this.latestUsedRecordIdToWeakEtagMap).forEach(([recordId, oneStoreRecordWeakEtag]) => {
|
|
106365
106873
|
const normalizedLuvioRecord = this.services.luvioUiapiRecords.getNormalizedLuvioRecord(recordId, reader);
|
|
106366
106874
|
if (!normalizedLuvioRecord) {
|
|
106875
|
+
// A record that was present when this snapshot was read
|
|
106876
|
+
// is now absent from the Luvio store (e.g. evicted by a
|
|
106877
|
+
// uiRecordApi deleteRecord). Its disappearance changes the
|
|
106878
|
+
// result set, so treat it as a change and re-emit.
|
|
106879
|
+
dataChanged = true;
|
|
106367
106880
|
return;
|
|
106368
106881
|
}
|
|
106369
106882
|
const luvioRecordWeakEtag = normalizedLuvioRecord.weakEtag;
|
|
@@ -106812,7 +107325,7 @@ getServices(serviceRequirements).then((services) => {
|
|
|
106812
107325
|
_(config, CONFIG_SCHEMA);
|
|
106813
107326
|
const baseCommand = new graphql_imperative_ctor(config, documentRootType, services);
|
|
106814
107327
|
return applyDecorators(baseCommand, [services.fetchNetworkCommandBaseClass.availableDecorators.abortable], options);
|
|
106815
|
-
},
|
|
107328
|
+
}, true);
|
|
106816
107329
|
graphql_imperative_legacy = services.graphQLLegacyImperativeBindings.bind(({ config, assertIsValid }) => {
|
|
106817
107330
|
const _ = assertIsValid;
|
|
106818
107331
|
_(config, CONFIG_SCHEMA);
|
|
@@ -106865,7 +107378,7 @@ function registerCallback(cb) {
|
|
|
106865
107378
|
cb(graphql_v1_import, graphql_imperative$1, graphql_imperative_legacy_v1_import, graphql_state_manager, useOneStoreGraphQL);
|
|
106866
107379
|
}
|
|
106867
107380
|
}
|
|
106868
|
-
// version: 1.428.0-
|
|
107381
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
106869
107382
|
|
|
106870
107383
|
function createFragmentMap(documentNode) {
|
|
106871
107384
|
const fragments = {};
|
|
@@ -110927,7 +111440,7 @@ function getInContextFragmentType$1K(fragment, fragmentMap) {
|
|
|
110927
111440
|
}
|
|
110928
111441
|
|
|
110929
111442
|
const name$1k = 'Analytics__SemanticModel';
|
|
110930
|
-
const VERSION$1B = '
|
|
111443
|
+
const VERSION$1B = '0c41256ae05a32ed1af0deea45e4906e';
|
|
110931
111444
|
function keyBuilder$1p(luvio, path, data) {
|
|
110932
111445
|
return keyPrefix$1 + '::uiapi::' + name$1k + '::' + data.Id; // We're missing idNodeName in the actual key here...
|
|
110933
111446
|
}
|
|
@@ -111243,6 +111756,12 @@ function getFieldType$1J(field) {
|
|
|
111243
111756
|
typename: 'Boolean'
|
|
111244
111757
|
};
|
|
111245
111758
|
}
|
|
111759
|
+
case 'ReusedAssetStatus': {
|
|
111760
|
+
return {
|
|
111761
|
+
isArray: false,
|
|
111762
|
+
typename: 'String'
|
|
111763
|
+
};
|
|
111764
|
+
}
|
|
111246
111765
|
default:
|
|
111247
111766
|
return undefined;
|
|
111248
111767
|
}
|
|
@@ -111309,7 +111828,7 @@ function getInContextFragmentType$1J(fragment, fragmentMap) {
|
|
|
111309
111828
|
}
|
|
111310
111829
|
|
|
111311
111830
|
const name$1j = 'Analytics__SemanticDefinition';
|
|
111312
|
-
const VERSION$1A = '
|
|
111831
|
+
const VERSION$1A = 'df1ed427fbc57558390ff0e3537f2290';
|
|
111313
111832
|
function keyBuilder$1o(luvio, path, data) {
|
|
111314
111833
|
return keyPrefix$1 + '::uiapi::' + name$1j + '::' + data.Id; // We're missing idNodeName in the actual key here...
|
|
111315
111834
|
}
|
|
@@ -111651,6 +112170,12 @@ function getFieldType$1I(field) {
|
|
|
111651
112170
|
typename: 'Boolean'
|
|
111652
112171
|
};
|
|
111653
112172
|
}
|
|
112173
|
+
case 'ReusedAssetStatus': {
|
|
112174
|
+
return {
|
|
112175
|
+
isArray: false,
|
|
112176
|
+
typename: 'String'
|
|
112177
|
+
};
|
|
112178
|
+
}
|
|
111654
112179
|
default:
|
|
111655
112180
|
return undefined;
|
|
111656
112181
|
}
|
|
@@ -111722,7 +112247,7 @@ function getInContextFragmentType$1I(fragment, fragmentMap) {
|
|
|
111722
112247
|
}
|
|
111723
112248
|
|
|
111724
112249
|
const name$1i = 'Analytics__DominoTemplate';
|
|
111725
|
-
const VERSION$1z = '
|
|
112250
|
+
const VERSION$1z = 'fda433601cadf10ecc8a0de3d54052ee';
|
|
111726
112251
|
function keyBuilder$1n(luvio, path, data) {
|
|
111727
112252
|
return keyPrefix$1 + '::uiapi::' + name$1i + '::' + data.Id; // We're missing idNodeName in the actual key here...
|
|
111728
112253
|
}
|
|
@@ -112045,6 +112570,12 @@ function getFieldType$1H(field) {
|
|
|
112045
112570
|
typename: 'Boolean'
|
|
112046
112571
|
};
|
|
112047
112572
|
}
|
|
112573
|
+
case 'ReusedAssetStatus': {
|
|
112574
|
+
return {
|
|
112575
|
+
isArray: false,
|
|
112576
|
+
typename: 'String'
|
|
112577
|
+
};
|
|
112578
|
+
}
|
|
112048
112579
|
default:
|
|
112049
112580
|
return undefined;
|
|
112050
112581
|
}
|
|
@@ -112106,7 +112637,7 @@ function getInContextFragmentType$1H(fragment, fragmentMap) {
|
|
|
112106
112637
|
}
|
|
112107
112638
|
|
|
112108
112639
|
const name$1h = 'Analytics__AnalyticsRepresentation';
|
|
112109
|
-
const VERSION$1y = '
|
|
112640
|
+
const VERSION$1y = 'b299cf324d3e10f682533db156b3db05';
|
|
112110
112641
|
function keyBuilder$1m(luvio, path, data) {
|
|
112111
112642
|
return keyPrefix$1 + '::uiapi::' + name$1h + '::' + data.Id; // We're missing idNodeName in the actual key here...
|
|
112112
112643
|
}
|
|
@@ -112407,6 +112938,12 @@ function getFieldType$1G(field) {
|
|
|
112407
112938
|
typename: 'Boolean'
|
|
112408
112939
|
};
|
|
112409
112940
|
}
|
|
112941
|
+
case 'ReusedAssetStatus': {
|
|
112942
|
+
return {
|
|
112943
|
+
isArray: false,
|
|
112944
|
+
typename: 'String'
|
|
112945
|
+
};
|
|
112946
|
+
}
|
|
112410
112947
|
default:
|
|
112411
112948
|
return undefined;
|
|
112412
112949
|
}
|
|
@@ -112468,7 +113005,7 @@ function getInContextFragmentType$1G(fragment, fragmentMap) {
|
|
|
112468
113005
|
}
|
|
112469
113006
|
|
|
112470
113007
|
const name$1g = 'Analytics__MktDataConnector';
|
|
112471
|
-
const VERSION$1x = '
|
|
113008
|
+
const VERSION$1x = 'b0f45c68439021ded5640b5e3920ee2f';
|
|
112472
113009
|
function keyBuilder$1l(luvio, path, data) {
|
|
112473
113010
|
return keyPrefix$1 + '::uiapi::' + name$1g + '::' + data.Id; // We're missing idNodeName in the actual key here...
|
|
112474
113011
|
}
|
|
@@ -112780,6 +113317,12 @@ function getFieldType$1F(field) {
|
|
|
112780
113317
|
typename: 'Boolean'
|
|
112781
113318
|
};
|
|
112782
113319
|
}
|
|
113320
|
+
case 'ReusedAssetStatus': {
|
|
113321
|
+
return {
|
|
113322
|
+
isArray: false,
|
|
113323
|
+
typename: 'String'
|
|
113324
|
+
};
|
|
113325
|
+
}
|
|
112783
113326
|
default:
|
|
112784
113327
|
return undefined;
|
|
112785
113328
|
}
|
|
@@ -113017,6 +113560,12 @@ function getFieldType$1E(field) {
|
|
|
113017
113560
|
typename: 'Boolean'
|
|
113018
113561
|
};
|
|
113019
113562
|
}
|
|
113563
|
+
case 'ReusedAssetStatus': {
|
|
113564
|
+
return {
|
|
113565
|
+
isArray: false,
|
|
113566
|
+
typename: 'String'
|
|
113567
|
+
};
|
|
113568
|
+
}
|
|
113020
113569
|
default:
|
|
113021
113570
|
return undefined;
|
|
113022
113571
|
}
|
|
@@ -136102,7 +136651,7 @@ register$1({
|
|
|
136102
136651
|
configuration: { ...configurationForGraphQLAdapters$1 },
|
|
136103
136652
|
instrument: instrument$1,
|
|
136104
136653
|
});
|
|
136105
|
-
// version: 1.428.0-
|
|
136654
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
136106
136655
|
|
|
136107
136656
|
// On core the unstable adapters are re-exported with different names,
|
|
136108
136657
|
// we want to match them here.
|
|
@@ -136254,7 +136803,7 @@ withDefaultLuvio((luvio) => {
|
|
|
136254
136803
|
unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
|
|
136255
136804
|
graphQLImperative = ldsAdapter;
|
|
136256
136805
|
});
|
|
136257
|
-
// version: 1.428.0-
|
|
136806
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
136258
136807
|
|
|
136259
136808
|
var gqlApi = /*#__PURE__*/Object.freeze({
|
|
136260
136809
|
__proto__: null,
|
|
@@ -137053,7 +137602,7 @@ const callbacks$1 = [];
|
|
|
137053
137602
|
function register(r) {
|
|
137054
137603
|
callbacks$1.forEach((callback) => callback(r));
|
|
137055
137604
|
}
|
|
137056
|
-
// version: 1.428.0-
|
|
137605
|
+
// version: 1.428.0-dev21-c9faba50c9
|
|
137057
137606
|
|
|
137058
137607
|
/**
|
|
137059
137608
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -138369,4 +138918,4 @@ const { luvio } = getRuntime();
|
|
|
138369
138918
|
setDefaultLuvio({ luvio });
|
|
138370
138919
|
|
|
138371
138920
|
export { createPrimingSession, draftManager, draftQueue, evictCacheRecordsByIds, evictExpiredCacheEntries, executeAdapter, executeMutatingAdapter, getImperativeAdapterNames, importLuvioAdapterModule, importOneStoreAdapterModule, invokeAdapter, invokeAdapterWithDraftToMerge, invokeAdapterWithDraftToReplace, invokeAdapterWithMetadata, nimbusDraftQueue, registerReportObserver, setMetadataTTL, setUiApiRecordTTL, stopEviction, subscribeToAdapter };
|
|
138372
|
-
// version: 1.428.0-
|
|
138921
|
+
// version: 1.428.0-dev21-c9faba50c9
|