@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.
|
@@ -3289,7 +3289,7 @@
|
|
|
3289
3289
|
}
|
|
3290
3290
|
}
|
|
3291
3291
|
}
|
|
3292
|
-
function isFetchResponse(error) {
|
|
3292
|
+
function isFetchResponse$1(error) {
|
|
3293
3293
|
return error !== null && typeof error === 'object' && 'status' in error;
|
|
3294
3294
|
}
|
|
3295
3295
|
/**
|
|
@@ -3368,7 +3368,7 @@
|
|
|
3368
3368
|
// the new network adapter behavior
|
|
3369
3369
|
return reject(
|
|
3370
3370
|
// legacy network adapter check
|
|
3371
|
-
isFetchResponse(error)
|
|
3371
|
+
isFetchResponse$1(error)
|
|
3372
3372
|
? {
|
|
3373
3373
|
...error,
|
|
3374
3374
|
errorType: 'fetchResponse',
|
|
@@ -4152,7 +4152,7 @@
|
|
|
4152
4152
|
}
|
|
4153
4153
|
return resourceParams;
|
|
4154
4154
|
}
|
|
4155
|
-
// engine version: 0.160.
|
|
4155
|
+
// engine version: 0.160.4-dev1-4b808818
|
|
4156
4156
|
|
|
4157
4157
|
/**
|
|
4158
4158
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -4280,7 +4280,7 @@
|
|
|
4280
4280
|
}
|
|
4281
4281
|
callbacks.push(callback);
|
|
4282
4282
|
}
|
|
4283
|
-
// version: 1.428.0-
|
|
4283
|
+
// version: 1.428.0-dev21-c9faba50c9
|
|
4284
4284
|
|
|
4285
4285
|
// TODO [TD-0081508]: once that TD is fulfilled we can probably change this file
|
|
4286
4286
|
function instrumentAdapter$1(createFunction, _metadata) {
|
|
@@ -5324,7 +5324,7 @@
|
|
|
5324
5324
|
const { apiFamily, name } = metadata;
|
|
5325
5325
|
return createGraphQLWireAdapterConstructor$1(adapter, `${apiFamily}.${name}`, luvio, astResolver);
|
|
5326
5326
|
}
|
|
5327
|
-
// version: 1.428.0-
|
|
5327
|
+
// version: 1.428.0-dev21-c9faba50c9
|
|
5328
5328
|
|
|
5329
5329
|
function isSupportedEntity(_objectApiName) {
|
|
5330
5330
|
return true;
|
|
@@ -5428,7 +5428,7 @@
|
|
|
5428
5428
|
TypeCheckShapes[TypeCheckShapes["Integer"] = 3] = "Integer";
|
|
5429
5429
|
TypeCheckShapes[TypeCheckShapes["Unsupported"] = 4] = "Unsupported";
|
|
5430
5430
|
})(TypeCheckShapes || (TypeCheckShapes = {}));
|
|
5431
|
-
// engine version: 0.160.
|
|
5431
|
+
// engine version: 0.160.4-dev1-4b808818
|
|
5432
5432
|
|
|
5433
5433
|
const { keys: ObjectKeys$4, create: ObjectCreate$4 } = Object;
|
|
5434
5434
|
|
|
@@ -32616,9 +32616,18 @@
|
|
|
32616
32616
|
throttle(60, 60000, setupNotifyAllListRecordUpdateAvailable(luvio));
|
|
32617
32617
|
throttle(60, 60000, setupNotifyAllListInfoSummaryUpdateAvailable(luvio));
|
|
32618
32618
|
});
|
|
32619
|
-
// version: 1.428.0-
|
|
32619
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
32620
32620
|
|
|
32621
|
-
var
|
|
32621
|
+
var draftQueueMaxRetryAttemptsGate = {
|
|
32622
|
+
isOpen: function (e) {
|
|
32623
|
+
return e.fallback;
|
|
32624
|
+
},
|
|
32625
|
+
hasError: function () {
|
|
32626
|
+
return !0;
|
|
32627
|
+
},
|
|
32628
|
+
};
|
|
32629
|
+
|
|
32630
|
+
var preserveIdempotencyKeyOn400Gate = {
|
|
32622
32631
|
isOpen: function (e) {
|
|
32623
32632
|
return e.fallback;
|
|
32624
32633
|
},
|
|
@@ -32670,6 +32679,15 @@
|
|
|
32670
32679
|
return mockInstrumentation;
|
|
32671
32680
|
};
|
|
32672
32681
|
|
|
32682
|
+
var allowUpdatesForNonCachedRecords = {
|
|
32683
|
+
isOpen: function (e) {
|
|
32684
|
+
return e.fallback;
|
|
32685
|
+
},
|
|
32686
|
+
hasError: function () {
|
|
32687
|
+
return !0;
|
|
32688
|
+
},
|
|
32689
|
+
};
|
|
32690
|
+
|
|
32673
32691
|
var caseSensitiveUserId = '005B0000000GR4OIAW';
|
|
32674
32692
|
|
|
32675
32693
|
/**
|
|
@@ -47840,6 +47858,13 @@
|
|
|
47840
47858
|
}
|
|
47841
47859
|
|
|
47842
47860
|
const DRAFT_SEGMENT = 'DRAFT';
|
|
47861
|
+
/**
|
|
47862
|
+
* Metadata key under which an action's upload retry-attempt count is persisted.
|
|
47863
|
+
* Lives in the action's durable `metadata` bag so the count survives app restarts
|
|
47864
|
+
* (the in-memory backoff interval resets on every startQueue()). Written by the
|
|
47865
|
+
* action handler on each retry and cleared when an action is manually retried.
|
|
47866
|
+
*/
|
|
47867
|
+
const DRAFT_ACTION_RETRY_COUNT_METADATA_KEY = 'retryCount';
|
|
47843
47868
|
class DurableDraftQueue {
|
|
47844
47869
|
getHandler(id) {
|
|
47845
47870
|
const handler = this.handlers[id];
|
|
@@ -48198,10 +48223,14 @@
|
|
|
48198
48223
|
if (!isDraftError(target)) {
|
|
48199
48224
|
throw Error(`Action ${actionId} is not in Error state`);
|
|
48200
48225
|
}
|
|
48226
|
+
// A manual retry is a fresh start: clear the persisted upload retry-attempt
|
|
48227
|
+
// count so the action doesn't immediately re-cap after a single failure.
|
|
48228
|
+
const { [DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]: _retryCount, ...metadataWithoutRetryCount } = target.metadata || {};
|
|
48201
48229
|
let pendingAction = {
|
|
48202
48230
|
...target,
|
|
48203
48231
|
status: DraftActionStatus.Pending,
|
|
48204
48232
|
error: undefined,
|
|
48233
|
+
metadata: metadataWithoutRetryCount,
|
|
48205
48234
|
};
|
|
48206
48235
|
await this.draftStore.writeAction(pendingAction);
|
|
48207
48236
|
await this.notifyChangedListeners({
|
|
@@ -79609,6 +79638,354 @@
|
|
|
79609
79638
|
return create$3(adapterSpecificEnvironments, {});
|
|
79610
79639
|
}
|
|
79611
79640
|
|
|
79641
|
+
/**
|
|
79642
|
+
* This function takes an unknown error and normalizes it to an Error object
|
|
79643
|
+
*/
|
|
79644
|
+
function normalizeError$1(error) {
|
|
79645
|
+
if (typeof error === 'object' && error instanceof Error) {
|
|
79646
|
+
return error;
|
|
79647
|
+
}
|
|
79648
|
+
else if (typeof error === 'string') {
|
|
79649
|
+
return new Error(error);
|
|
79650
|
+
}
|
|
79651
|
+
return new Error(stringify$5(error));
|
|
79652
|
+
}
|
|
79653
|
+
/**
|
|
79654
|
+
* Maximum number of times an action's upload will be retried before the action is
|
|
79655
|
+
* transitioned to Error and surfaced to the consumer. Caps the otherwise-unbounded
|
|
79656
|
+
* retry loop that can wedge the single-worker draft queue when an upload fails
|
|
79657
|
+
* deterministically on every dispatch. Only enforced when the
|
|
79658
|
+
* `lmr.draft-queue-max-retry-attempts` gate is open.
|
|
79659
|
+
*/
|
|
79660
|
+
const MAX_RETRY_ATTEMPTS = 5;
|
|
79661
|
+
const MAX_RETRY_ERROR_CODE = 'MAX_RETRY_ATTEMPTS_EXCEEDED';
|
|
79662
|
+
function isFetchResponse(failure) {
|
|
79663
|
+
// The union is exactly FetchResponse | Error, so "not an Error" is the FetchResponse.
|
|
79664
|
+
// This is safer than duck-typing on status/ok: a custom Error subclass that happens to
|
|
79665
|
+
// carry those properties would be misclassified by a structural check.
|
|
79666
|
+
return !(failure instanceof Error);
|
|
79667
|
+
}
|
|
79668
|
+
/**
|
|
79669
|
+
* Builds the FetchResponse-shaped error attached to an action that has exhausted its
|
|
79670
|
+
* upload retries. Shaped like a real network error response (status/statusText/ok/
|
|
79671
|
+
* headers/body) so downstream consumers (DraftManager, queue instrumentation) that
|
|
79672
|
+
* read `action.error.status`/`.body`/etc. behave consistently with a server error.
|
|
79673
|
+
*
|
|
79674
|
+
* The failure that caused the final attempt — a non-ok response (HTTP path) or a thrown
|
|
79675
|
+
* error (catch path) — is folded into the body so the surfaced error says WHAT failed,
|
|
79676
|
+
* not merely that the attempt cap was reached.
|
|
79677
|
+
*/
|
|
79678
|
+
function buildMaxRetryError(lastFailure) {
|
|
79679
|
+
const capMessage = `Draft action exceeded ${MAX_RETRY_ATTEMPTS} upload retry attempts`;
|
|
79680
|
+
if (isFetchResponse(lastFailure)) {
|
|
79681
|
+
// Preserve the server's own error detail (status + body) so the surfaced error
|
|
79682
|
+
// carries the last response that caused us to give up retrying.
|
|
79683
|
+
return {
|
|
79684
|
+
status: HttpStatusCode$2.ServerError,
|
|
79685
|
+
statusText: capMessage,
|
|
79686
|
+
ok: false,
|
|
79687
|
+
headers: {},
|
|
79688
|
+
body: {
|
|
79689
|
+
errorCode: MAX_RETRY_ERROR_CODE,
|
|
79690
|
+
message: `${capMessage}. Last response: status=${lastFailure.status} ${lastFailure.statusText}`,
|
|
79691
|
+
lastResponseStatus: lastFailure.status,
|
|
79692
|
+
lastResponseBody: lastFailure.body,
|
|
79693
|
+
},
|
|
79694
|
+
};
|
|
79695
|
+
}
|
|
79696
|
+
return {
|
|
79697
|
+
status: HttpStatusCode$2.ServerError,
|
|
79698
|
+
statusText: capMessage,
|
|
79699
|
+
ok: false,
|
|
79700
|
+
headers: {},
|
|
79701
|
+
body: {
|
|
79702
|
+
errorCode: MAX_RETRY_ERROR_CODE,
|
|
79703
|
+
message: `${capMessage}. Last error: ${lastFailure.name}: ${lastFailure.message}`,
|
|
79704
|
+
lastErrorName: lastFailure.name,
|
|
79705
|
+
lastErrorMessage: lastFailure.message,
|
|
79706
|
+
},
|
|
79707
|
+
};
|
|
79708
|
+
}
|
|
79709
|
+
|
|
79710
|
+
function attachObserversToAdapterRequestContext(observers, adapterRequestContext) {
|
|
79711
|
+
if (adapterRequestContext === undefined) {
|
|
79712
|
+
return { eventObservers: observers };
|
|
79713
|
+
}
|
|
79714
|
+
if (adapterRequestContext.eventObservers === undefined) {
|
|
79715
|
+
return { ...adapterRequestContext, eventObservers: observers };
|
|
79716
|
+
}
|
|
79717
|
+
return {
|
|
79718
|
+
...adapterRequestContext,
|
|
79719
|
+
eventObservers: adapterRequestContext.eventObservers.concat(observers),
|
|
79720
|
+
};
|
|
79721
|
+
}
|
|
79722
|
+
/**
|
|
79723
|
+
* Use this method to sanitize the unknown error object when
|
|
79724
|
+
* we are unsure of the type of the error thrown
|
|
79725
|
+
*
|
|
79726
|
+
* @param err Unknown object to sanitize
|
|
79727
|
+
* @returns an instance of error
|
|
79728
|
+
*/
|
|
79729
|
+
function normalizeError$2(err) {
|
|
79730
|
+
if (err instanceof Error) {
|
|
79731
|
+
return err;
|
|
79732
|
+
}
|
|
79733
|
+
else if (typeof err === 'string') {
|
|
79734
|
+
return new Error(err);
|
|
79735
|
+
}
|
|
79736
|
+
return new Error(stringify$5(err));
|
|
79737
|
+
}
|
|
79738
|
+
// metrics
|
|
79739
|
+
/** GraphQL */
|
|
79740
|
+
const GRAPHQL_EVAL_ERROR = 'gql-eval-error';
|
|
79741
|
+
const GRAPHQL_EVAL_DB_READ_DURATION = 'gql-eval-db-read-duration';
|
|
79742
|
+
const GRAPHQL_EVAL_ROOT_QUERY_COUNT = 'gql-eval-root-query-count';
|
|
79743
|
+
const GRAPHQL_EVAL_TOTAL_QUERY_COUNT = 'gql-eval-total-query-count';
|
|
79744
|
+
const GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT = 'gql-eval-max-child-count';
|
|
79745
|
+
const GRAPHQL_EVAL_QUERY_RECORD_COUNT = 'gql-eval-query-record-count';
|
|
79746
|
+
const GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED = 'gql-snapshot-refresh-undefined';
|
|
79747
|
+
/** Draft Queue */
|
|
79748
|
+
const DRAFT_QUEUE_STATE_STARTED = 'draft-queue-state-started';
|
|
79749
|
+
const DRAFT_QUEUE_STATE_ERROR = 'draft-queue-state-error';
|
|
79750
|
+
const DRAFT_QUEUE_STATE_WAITING = 'draft-queue-state-waiting';
|
|
79751
|
+
const DRAFT_QUEUE_STATE_STOPPED = 'draft-queue-state-stopped';
|
|
79752
|
+
const DRAFT_QUEUE_ACTION_ADDED = 'draft-queue-action-added';
|
|
79753
|
+
const DRAFT_QUEUE_ACTION_UPLOADING = 'draft-queue-action-uploading';
|
|
79754
|
+
const DRAFT_QUEUE_ACTION_COMPLETED = 'draft-queue-action-completed';
|
|
79755
|
+
const DRAFT_QUEUE_ACTION_DELETED = 'draft-queue-action-deleted';
|
|
79756
|
+
const DRAFT_QUEUE_ACTION_UPDATED = 'draft-queue-action-updated';
|
|
79757
|
+
const DRAFT_QUEUE_ACTION_FAILED = 'draft-queue-action-failed';
|
|
79758
|
+
const DRAFT_QUEUE_ACTION_UPLOAD_ERROR = 'draft-queue-action-upload-error';
|
|
79759
|
+
const DRAFT_QUEUE_TOTAL_MERGE_ACTIONS_CALLS = 'draft-queue-total-mergeActions-calls';
|
|
79760
|
+
// Emitted every time a draft's Idempotency-Key is rotated (replaced with a fresh uuid).
|
|
79761
|
+
// Used to triage the WOLI duplicate-record investigation in Splunk — correlate by draftId
|
|
79762
|
+
// with the other draft-queue events. @W-23428669
|
|
79763
|
+
const DRAFT_QUEUE_IDEMPOTENCY_KEY_ROTATED = 'draft-queue-idempotency-key-rotated';
|
|
79764
|
+
/** Content Document */
|
|
79765
|
+
const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
|
|
79766
|
+
const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
|
|
79767
|
+
/** Priming */
|
|
79768
|
+
const PRIMING_TOTAL_SESSION_COUNT = 'priming-total-session-count';
|
|
79769
|
+
const PRIMING_TOTAL_ERROR_COUNT = 'priming-total-error-count';
|
|
79770
|
+
const PRIMING_TOTAL_PRIMED_COUNT = 'priming-total-primed-count';
|
|
79771
|
+
const PRIMING_TOTAL_CONFLICT_COUNT = 'priming-total-conflict-count';
|
|
79772
|
+
// logs
|
|
79773
|
+
const GRAPHQL_QUERY_PARSE_ERROR = 'gql-query-parse-error';
|
|
79774
|
+
const GRAPHQL_SQL_EVAL_PRECONDITION_ERROR = 'gql-sql-pre-eval-error';
|
|
79775
|
+
const GRAPHQL_CREATE_SNAPSHOT_ERROR = 'gql-create-snapshot-error';
|
|
79776
|
+
const DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR = 'draft-aware-create-content-document-and-version-error';
|
|
79777
|
+
/** Garbage Collection */
|
|
79778
|
+
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT = 'garbage-collection-aggressive-trim-count';
|
|
79779
|
+
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED = 'garbage-collection-aggressive-trim-records-trimmed';
|
|
79780
|
+
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM = 'garbage-collection-aggressive-trim-total-records-before-trim';
|
|
79781
|
+
const ldsMobileInstrumentation$2 = getInstrumentation();
|
|
79782
|
+
const nimbusLogger = typeof __nimbus !== 'undefined' &&
|
|
79783
|
+
__nimbus.plugins !== undefined &&
|
|
79784
|
+
__nimbus.plugins.JSLoggerPlugin !== undefined
|
|
79785
|
+
? __nimbus.plugins.JSLoggerPlugin
|
|
79786
|
+
: undefined;
|
|
79787
|
+
function reportGraphqlQueryParseError(err) {
|
|
79788
|
+
const error = normalizeError$2(err);
|
|
79789
|
+
const errorCode = GRAPHQL_QUERY_PARSE_ERROR;
|
|
79790
|
+
// Metric
|
|
79791
|
+
reportGraphqlAdapterError(errorCode);
|
|
79792
|
+
// Log
|
|
79793
|
+
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
79794
|
+
}
|
|
79795
|
+
function reportGraphqlSqlEvalPreconditionError(err) {
|
|
79796
|
+
const error = normalizeError$2(err);
|
|
79797
|
+
const errorCode = GRAPHQL_SQL_EVAL_PRECONDITION_ERROR;
|
|
79798
|
+
// Metric
|
|
79799
|
+
reportGraphqlAdapterError(errorCode);
|
|
79800
|
+
// Log
|
|
79801
|
+
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
79802
|
+
}
|
|
79803
|
+
function reportGraphqlCreateSnapshotError(err) {
|
|
79804
|
+
const error = normalizeError$2(err);
|
|
79805
|
+
const errorCode = GRAPHQL_CREATE_SNAPSHOT_ERROR;
|
|
79806
|
+
// Metric
|
|
79807
|
+
reportGraphqlAdapterError(errorCode);
|
|
79808
|
+
// Log
|
|
79809
|
+
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
79810
|
+
}
|
|
79811
|
+
function reportGraphQlEvalDbReadDuration(duration) {
|
|
79812
|
+
ldsMobileInstrumentation$2.trackValue(GRAPHQL_EVAL_DB_READ_DURATION, duration);
|
|
79813
|
+
}
|
|
79814
|
+
function reportGraphqlAdapterError(errorCode) {
|
|
79815
|
+
// Increment overall count with errorCode as tag
|
|
79816
|
+
ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_EVAL_ERROR, 1, true, { errorCode });
|
|
79817
|
+
}
|
|
79818
|
+
function reportGraphqlQueryInstrumentation(data) {
|
|
79819
|
+
const queryBuckets = [1, 2, 3, 4, 5, 10, 20, 50, 100];
|
|
79820
|
+
const recordBuckets = [
|
|
79821
|
+
1, 5, 10, 20, 50, 100, 1000, 2000, 5000, 10000, 50000, 100000, 1000000,
|
|
79822
|
+
];
|
|
79823
|
+
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_ROOT_QUERY_COUNT, data.rootQueryCount, queryBuckets);
|
|
79824
|
+
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_TOTAL_QUERY_COUNT, data.totalQueryCount, queryBuckets);
|
|
79825
|
+
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
|
|
79826
|
+
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
|
|
79827
|
+
}
|
|
79828
|
+
function incrementGraphQLRefreshUndfined() {
|
|
79829
|
+
ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
|
|
79830
|
+
}
|
|
79831
|
+
function reportDraftActionEvent(state, draftCount, message) {
|
|
79832
|
+
if (nimbusLogger) {
|
|
79833
|
+
nimbusLogger.logInfo(`Draft action event: ${state}, depth: ${draftCount}${message ? `, message: ${message}` : ''}`);
|
|
79834
|
+
}
|
|
79835
|
+
switch (state) {
|
|
79836
|
+
case 'added':
|
|
79837
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_ADDED);
|
|
79838
|
+
break;
|
|
79839
|
+
case 'uploading':
|
|
79840
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOADING);
|
|
79841
|
+
break;
|
|
79842
|
+
case 'completed':
|
|
79843
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_COMPLETED);
|
|
79844
|
+
break;
|
|
79845
|
+
case 'deleted':
|
|
79846
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_DELETED);
|
|
79847
|
+
break;
|
|
79848
|
+
case 'failed':
|
|
79849
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_FAILED, 1, true);
|
|
79850
|
+
break;
|
|
79851
|
+
case 'updated':
|
|
79852
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPDATED);
|
|
79853
|
+
break;
|
|
79854
|
+
}
|
|
79855
|
+
}
|
|
79856
|
+
/**
|
|
79857
|
+
* Reports an exception thrown while uploading a draft action. The thrown error is
|
|
79858
|
+
* otherwise swallowed by the upload handler's retry path, leaving the failure
|
|
79859
|
+
* invisible in telemetry; this surfaces it to o11y (log + counter) so a deterministic
|
|
79860
|
+
* upload failure can be diagnosed instead of silently retried forever.
|
|
79861
|
+
*
|
|
79862
|
+
* PII: the device log line carries only the handler id, retry attempt, and the error
|
|
79863
|
+
* NAME (e.g. "TypeError") — never the free-text error message, which can embed record
|
|
79864
|
+
* ids (URL path segments) or server field-validation strings. The full normalized error
|
|
79865
|
+
* (message + stack) is handed only to `ldsMobileInstrumentation.error`, the structured
|
|
79866
|
+
* o11y error pipeline responsible for scrubbing/handling that detail. Also does NOT log
|
|
79867
|
+
* the action's targetId/tag or any request body/field values.
|
|
79868
|
+
*/
|
|
79869
|
+
function reportDraftActionUploadError(error, handlerId, attempt) {
|
|
79870
|
+
const normalized = normalizeError$2(error);
|
|
79871
|
+
if (nimbusLogger) {
|
|
79872
|
+
nimbusLogger.logError(`Draft action upload error: handler=${handlerId}, attempt=${attempt}, name=${normalized.name}`);
|
|
79873
|
+
}
|
|
79874
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOAD_ERROR, 1, true, {
|
|
79875
|
+
handlerId,
|
|
79876
|
+
});
|
|
79877
|
+
ldsMobileInstrumentation$2.error(normalized, DRAFT_QUEUE_ACTION_UPLOAD_ERROR);
|
|
79878
|
+
}
|
|
79879
|
+
/**
|
|
79880
|
+
* Emits a single greppable Splunk log line (and an o11y counter) every time a draft's
|
|
79881
|
+
* Idempotency-Key is rotated — i.e. replaced with a fresh uuid rather than reused on
|
|
79882
|
+
* retry. This is the instrumentation for the WOLI duplicate-record investigation
|
|
79883
|
+
* (@W-23428669): a rotation mid-flight is the mechanism by which an already-committed
|
|
79884
|
+
* write can be re-sent under a new key and duplicated on the server, so recording every
|
|
79885
|
+
* rotation lets us reconstruct, on a future reproduction, exactly where and how often a
|
|
79886
|
+
* key changed for a given draft.
|
|
79887
|
+
*
|
|
79888
|
+
* The message is prefixed with a stable literal ("Idempotency key rotated") so it can be
|
|
79889
|
+
* pulled out of Splunk with a substring match, and carries:
|
|
79890
|
+
* - draftId: the local (client-synthesized) draft-action target id, so this event can be
|
|
79891
|
+
* correlated with the other draft-queue events for the same draft. This is NOT a server
|
|
79892
|
+
* record id or any field value — it is the same local id already surfaced by the queue's
|
|
79893
|
+
* other lifecycle logs, so it introduces no new PII.
|
|
79894
|
+
* - reason: which rotation call site fired, to disambiguate the distinct rotation paths.
|
|
79895
|
+
*
|
|
79896
|
+
* @param draftId the local draft-action target id whose key was rotated
|
|
79897
|
+
* @param reason the rotation call site (see IdempotencyKeyRotationReason)
|
|
79898
|
+
*/
|
|
79899
|
+
function reportIdempotencyKeyRotated(draftId, reason) {
|
|
79900
|
+
if (nimbusLogger) {
|
|
79901
|
+
nimbusLogger.logInfo(`Idempotency key rotated: draftId=${draftId}, reason=${reason}`);
|
|
79902
|
+
}
|
|
79903
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_IDEMPOTENCY_KEY_ROTATED, 1, undefined, {
|
|
79904
|
+
reason,
|
|
79905
|
+
});
|
|
79906
|
+
}
|
|
79907
|
+
function reportDraftQueueState(state, draftCount) {
|
|
79908
|
+
if (nimbusLogger) {
|
|
79909
|
+
nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
|
|
79910
|
+
}
|
|
79911
|
+
switch (state) {
|
|
79912
|
+
case 'started':
|
|
79913
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STARTED);
|
|
79914
|
+
break;
|
|
79915
|
+
case 'error':
|
|
79916
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_ERROR, 1, true);
|
|
79917
|
+
break;
|
|
79918
|
+
case 'waiting':
|
|
79919
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_WAITING);
|
|
79920
|
+
break;
|
|
79921
|
+
case 'stopped':
|
|
79922
|
+
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STOPPED);
|
|
79923
|
+
break;
|
|
79924
|
+
}
|
|
79925
|
+
}
|
|
79926
|
+
function reportDraftAwareContentDocumentVersionSynthesizeError(err) {
|
|
79927
|
+
let error;
|
|
79928
|
+
if (err.body !== undefined) {
|
|
79929
|
+
error = err.body;
|
|
79930
|
+
}
|
|
79931
|
+
else {
|
|
79932
|
+
error = normalizeError$2(err);
|
|
79933
|
+
}
|
|
79934
|
+
const errorCode = DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR;
|
|
79935
|
+
const errorType = error.errorType;
|
|
79936
|
+
const tags = {
|
|
79937
|
+
errorCode,
|
|
79938
|
+
};
|
|
79939
|
+
if (errorType !== undefined) {
|
|
79940
|
+
tags.errorType = errorType;
|
|
79941
|
+
}
|
|
79942
|
+
// Metric
|
|
79943
|
+
ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR, 1, true, tags);
|
|
79944
|
+
// Log
|
|
79945
|
+
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
79946
|
+
}
|
|
79947
|
+
function reportDraftAwareContentVersionSynthesizeCalls(mimeType) {
|
|
79948
|
+
ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS, 1, undefined, { mimeType });
|
|
79949
|
+
}
|
|
79950
|
+
/** Priming */
|
|
79951
|
+
function reportPrimingSessionCreated() {
|
|
79952
|
+
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_SESSION_COUNT, 1, undefined, {});
|
|
79953
|
+
}
|
|
79954
|
+
function reportPrimingError(errorType, recordCount) {
|
|
79955
|
+
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_ERROR_COUNT, recordCount, undefined, {
|
|
79956
|
+
errorType,
|
|
79957
|
+
});
|
|
79958
|
+
}
|
|
79959
|
+
function reportPrimingSuccess(recordCount) {
|
|
79960
|
+
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_PRIMED_COUNT, recordCount, undefined);
|
|
79961
|
+
}
|
|
79962
|
+
function reportPrimingConflict(resolutionType, recordCount) {
|
|
79963
|
+
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_CONFLICT_COUNT, recordCount, undefined, {
|
|
79964
|
+
resolutionType,
|
|
79965
|
+
});
|
|
79966
|
+
}
|
|
79967
|
+
/** Network */
|
|
79968
|
+
function reportChunkCandidateUrlLength(urlLength) {
|
|
79969
|
+
const buckets = [8000, 10000, 12000, 14000, 16000];
|
|
79970
|
+
ldsMobileInstrumentation$2.bucketValue('chunk-candidate-url-length-histogram', urlLength, buckets);
|
|
79971
|
+
}
|
|
79972
|
+
/** Garbage Collection */
|
|
79973
|
+
function reportAggressiveTrimTriggered(trimCount, beforeTrimRecordCount, totalRecordsTrimmed) {
|
|
79974
|
+
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT, trimCount);
|
|
79975
|
+
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM, beforeTrimRecordCount);
|
|
79976
|
+
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED, totalRecordsTrimmed);
|
|
79977
|
+
}
|
|
79978
|
+
/** One Store Cache Purge */
|
|
79979
|
+
const ONESTORE_CACHE_PURGING_RECORDS_PURGED = 'onestore-cache-purging-records-purged';
|
|
79980
|
+
const ONESTORE_CACHE_PURGING_RECORDS_ERROR = 'onestore-cache-purging-records-error';
|
|
79981
|
+
function reportOneStoreRecordsPurgedFromCache(recordsPurged) {
|
|
79982
|
+
ldsMobileInstrumentation$2.trackValue(ONESTORE_CACHE_PURGING_RECORDS_PURGED, recordsPurged);
|
|
79983
|
+
}
|
|
79984
|
+
function reportOneStoreCachePurgingError(error) {
|
|
79985
|
+
const errorMessage = normalizeError$2(error);
|
|
79986
|
+
ldsMobileInstrumentation$2.error(errorMessage, ONESTORE_CACHE_PURGING_RECORDS_ERROR);
|
|
79987
|
+
}
|
|
79988
|
+
|
|
79612
79989
|
const HTTP_HEADER_RETRY_AFTER = 'Retry-After';
|
|
79613
79990
|
const HTTP_HEADER_IDEMPOTENCY_KEY = 'Idempotency-Key';
|
|
79614
79991
|
const ERROR_CODE_IDEMPOTENCY_FEATURE_NOT_ENABLED = 'IDEMPOTENCY_FEATURE_NOT_ENABLED';
|
|
@@ -79697,6 +80074,14 @@
|
|
|
79697
80074
|
if (request && request.headers && request.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
|
|
79698
80075
|
const status = response.status;
|
|
79699
80076
|
switch (status) {
|
|
80077
|
+
case 0 /* IdempotentWriteSpecificHttpStatusCode.NoResponse */:
|
|
80078
|
+
// statusCode 0 = the client sent the request but received no response
|
|
80079
|
+
// (connection dropped / app suspended in flight). The write may already
|
|
80080
|
+
// have committed at the origin, so we MUST retry with the SAME idempotency
|
|
80081
|
+
// key and let the server dedupe — rotating the key here would duplicate an
|
|
80082
|
+
// already-committed record.
|
|
80083
|
+
shouldRetry = true;
|
|
80084
|
+
break;
|
|
79700
80085
|
case 408 /* IdempotentWriteSpecificHttpStatusCode.RequestTimeout */:
|
|
79701
80086
|
case 503 /* IdempotentWriteSpecificHttpStatusCode.ServiceUnavailable */:
|
|
79702
80087
|
retryDelayInMs = getRetryAfterInMs(response.headers);
|
|
@@ -79743,11 +80128,34 @@
|
|
|
79743
80128
|
}
|
|
79744
80129
|
}
|
|
79745
80130
|
}
|
|
80131
|
+
// A generic 400 that none of the idempotency-specific branches above claimed
|
|
80132
|
+
// (shouldRetry still false) and that is not a backdating collision. @W-23445154
|
|
79746
80133
|
if (response.status === HttpStatusCode$2.BadRequest &&
|
|
80134
|
+
!shouldRetry &&
|
|
79747
80135
|
this.hasIdempotencySupport() &&
|
|
79748
|
-
updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined
|
|
79749
|
-
|
|
79750
|
-
|
|
80136
|
+
updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined &&
|
|
80137
|
+
!this.isBackdatingError(response.body, action)) {
|
|
80138
|
+
if (!preserveIdempotencyKeyOn400Gate.isOpen({ fallback: false })) {
|
|
80139
|
+
// Gate CLOSED (default) — legacy behavior: rotate the key and let the draft
|
|
80140
|
+
// error (shouldRetry stays false). Retained as the default until the fix is
|
|
80141
|
+
// enabled; this is the path that duplicated already-committed writes.
|
|
80142
|
+
updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
80143
|
+
reportIdempotencyKeyRotated(updatedAction.targetId, 'generic-400-killswitch');
|
|
80144
|
+
actionDataChanged = true;
|
|
80145
|
+
}
|
|
80146
|
+
else if (!this.isServerGeneratedError(response.body)) {
|
|
80147
|
+
// Gate OPEN — the fix: only an edge/gateway-injected 400 (no recognizable
|
|
80148
|
+
// server error body) is retried with the SAME key, so the server can dedupe a
|
|
80149
|
+
// write that may already have committed at the origin. A real, server-generated
|
|
80150
|
+
// 400 (UiApiError[] or an enhancedErrorType body, e.g. a field-validation
|
|
80151
|
+
// failure) falls through to the error path below: retrying it unchanged would
|
|
80152
|
+
// only be rejected again, so the draft is errored for the user to fix or discard
|
|
80153
|
+
// — the same terminal outcome as the legacy path, minus the duplicating key
|
|
80154
|
+
// rotation. The key is only ever rotated by the recognized idempotency error
|
|
80155
|
+
// codes above, by a backdating collision (new body), or when the user edits an
|
|
80156
|
+
// errored draft (mergeActions/handleReplaceAction).
|
|
80157
|
+
shouldRetry = true;
|
|
80158
|
+
}
|
|
79751
80159
|
}
|
|
79752
80160
|
if (response.status === HttpStatusCode$2.BadRequest &&
|
|
79753
80161
|
this.isBackdatingError(response.body, action)) {
|
|
@@ -79756,23 +80164,102 @@
|
|
|
79756
80164
|
...updatedAction.data.body.fields,
|
|
79757
80165
|
LastModifiedDate: new Date(updatedAction.timestamp).toISOString(),
|
|
79758
80166
|
};
|
|
80167
|
+
// The record content changed (LastModifiedDate is bumped), so this is a NEW
|
|
80168
|
+
// logical write. Rotate the idempotency key so the server treats it as such
|
|
80169
|
+
// rather than deduping it against the stale, pre-backdate request. This is a
|
|
80170
|
+
// legitimate rotation — the request body is modified — unlike the generic-400
|
|
80171
|
+
// fallback above which must preserve the key when the fix is enabled. @W-23445154
|
|
80172
|
+
if (this.hasIdempotencySupport() &&
|
|
80173
|
+
updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined) {
|
|
80174
|
+
updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
80175
|
+
reportIdempotencyKeyRotated(updatedAction.targetId, 'backdating-collision');
|
|
80176
|
+
}
|
|
79759
80177
|
shouldRetry = true;
|
|
79760
80178
|
actionDataChanged = true;
|
|
79761
80179
|
}
|
|
79762
|
-
|
|
79763
|
-
|
|
79764
|
-
|
|
80180
|
+
if (shouldRetry) {
|
|
80181
|
+
// Funnel the retry through the cap: when the gate is open this persists
|
|
80182
|
+
// the attempt count and errors out once the cap is hit; when the gate is
|
|
80183
|
+
// closed it behaves exactly as before. The non-ok response is the failure
|
|
80184
|
+
// that would otherwise be retried.
|
|
80185
|
+
await this.retryOrCap(updatedAction, response, actionErrored, retryDelayInMs, actionDataChanged);
|
|
80186
|
+
}
|
|
80187
|
+
else {
|
|
80188
|
+
await actionErrored({
|
|
79765
80189
|
...updatedAction,
|
|
79766
80190
|
error: response,
|
|
79767
80191
|
status: DraftActionStatus.Error,
|
|
79768
|
-
},
|
|
80192
|
+
}, false, retryDelayInMs, actionDataChanged);
|
|
80193
|
+
}
|
|
79769
80194
|
return ProcessActionResult.ACTION_ERRORED;
|
|
79770
80195
|
}
|
|
79771
80196
|
catch (e) {
|
|
79772
|
-
|
|
80197
|
+
// #3 (ungated): the thrown exception is otherwise swallowed here, leaving a
|
|
80198
|
+
// deterministic upload failure invisible in telemetry. Surface it to o11y
|
|
80199
|
+
// before deciding whether to retry.
|
|
80200
|
+
const error = normalizeError$1(e);
|
|
80201
|
+
const attempt = this.getUploadRetryCount(action) + 1;
|
|
80202
|
+
reportDraftActionUploadError(error, this.handlerId, attempt);
|
|
80203
|
+
await this.retryOrCap(action, error, actionErrored);
|
|
79773
80204
|
return ProcessActionResult.NETWORK_ERROR;
|
|
79774
80205
|
}
|
|
79775
80206
|
}
|
|
80207
|
+
/**
|
|
80208
|
+
* Reads the persisted upload retry-attempt count from the action's durable metadata
|
|
80209
|
+
* bag. The count lives in metadata (rather than in-memory) so it survives app
|
|
80210
|
+
* restarts and queue re-creation — the failure modes that let the unbounded retry
|
|
80211
|
+
* loop run for days.
|
|
80212
|
+
*/
|
|
80213
|
+
getUploadRetryCount(action) {
|
|
80214
|
+
const parsed = Number(action.metadata?.[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]);
|
|
80215
|
+
// Guard against a missing/corrupt persisted value: a NaN, fractional, or negative
|
|
80216
|
+
// count must never weaken the cap. Floor to a non-negative integer, defaulting to 0.
|
|
80217
|
+
if (!Number.isFinite(parsed) || parsed < 0) {
|
|
80218
|
+
return 0;
|
|
80219
|
+
}
|
|
80220
|
+
return Math.floor(parsed);
|
|
80221
|
+
}
|
|
80222
|
+
/**
|
|
80223
|
+
* Enforces the upload retry-attempt cap around the queue's `actionErrored` callback.
|
|
80224
|
+
* Both retry paths — a retryable HTTP error and a thrown exception — funnel through
|
|
80225
|
+
* here.
|
|
80226
|
+
*
|
|
80227
|
+
* The entire cap behavior is gated behind `lmr.draft-queue-max-retry-attempts`. When
|
|
80228
|
+
* the gate is CLOSED this is a transparent passthrough: it issues the same
|
|
80229
|
+
* `actionErrored(action, true, ...)` retry the queue made before this change, and
|
|
80230
|
+
* writes no extra metadata. When the gate is OPEN it persists an incremented attempt
|
|
80231
|
+
* count to the action's durable metadata and, once the action has failed
|
|
80232
|
+
* {@link MAX_RETRY_ATTEMPTS} times, transitions it to Error (carrying a
|
|
80233
|
+
* FetchResponse-shaped error that names the failure that exhausted the retries)
|
|
80234
|
+
* instead of scheduling yet another retry.
|
|
80235
|
+
*/
|
|
80236
|
+
async retryOrCap(action, lastFailure, actionErrored, retryDelayInMs, actionDataChanged) {
|
|
80237
|
+
if (!draftQueueMaxRetryAttemptsGate.isOpen({ fallback: false })) {
|
|
80238
|
+
// Gate closed: preserve the pre-existing unbounded-retry behavior exactly.
|
|
80239
|
+
await actionErrored(action, true, retryDelayInMs, actionDataChanged);
|
|
80240
|
+
return;
|
|
80241
|
+
}
|
|
80242
|
+
const attempt = this.getUploadRetryCount(action) + 1;
|
|
80243
|
+
if (attempt >= MAX_RETRY_ATTEMPTS) {
|
|
80244
|
+
await actionErrored({
|
|
80245
|
+
...action,
|
|
80246
|
+
error: buildMaxRetryError(lastFailure),
|
|
80247
|
+
status: DraftActionStatus.Error,
|
|
80248
|
+
}, false);
|
|
80249
|
+
return;
|
|
80250
|
+
}
|
|
80251
|
+
// Persist the incremented attempt count so it survives restarts. Forcing
|
|
80252
|
+
// actionDataChanged ensures the queue writes the updated metadata before the
|
|
80253
|
+
// action is rescheduled for retry.
|
|
80254
|
+
const retryingAction = {
|
|
80255
|
+
...action,
|
|
80256
|
+
metadata: {
|
|
80257
|
+
...action.metadata,
|
|
80258
|
+
[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]: String(attempt),
|
|
80259
|
+
},
|
|
80260
|
+
};
|
|
80261
|
+
await actionErrored(retryingAction, true, retryDelayInMs, true);
|
|
80262
|
+
}
|
|
79776
80263
|
async handleActionEnqueued(action) {
|
|
79777
80264
|
const impactedKeys = await this.recordService.setSideEffectsForActions([action]);
|
|
79778
80265
|
await this.recordService.reapplyRecordSideEffects(impactedKeys);
|
|
@@ -79936,6 +80423,13 @@
|
|
|
79936
80423
|
this.isActionOfType(sourceAction)) {
|
|
79937
80424
|
targetAction.status = DraftActionStatus.Pending;
|
|
79938
80425
|
targetAction.data = sourceAction.data;
|
|
80426
|
+
// Replacing an action's data re-queues it as a fresh upload, so the persisted
|
|
80427
|
+
// upload retry-attempt count must not carry over — otherwise a previously-
|
|
80428
|
+
// throttled action could immediately re-hit the cap on its first new attempt.
|
|
80429
|
+
// (Mirrors the same clear in mergeActions.)
|
|
80430
|
+
if (targetAction.metadata !== undefined) {
|
|
80431
|
+
delete targetAction.metadata[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY];
|
|
80432
|
+
}
|
|
79939
80433
|
return targetAction;
|
|
79940
80434
|
}
|
|
79941
80435
|
else {
|
|
@@ -79972,9 +80466,15 @@
|
|
|
79972
80466
|
// Updates Idempotency key if target has one
|
|
79973
80467
|
if (targetData.headers && targetData.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
|
|
79974
80468
|
merged.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
80469
|
+
reportIdempotencyKeyRotated(merged.targetId, 'merge-actions');
|
|
79975
80470
|
}
|
|
79976
80471
|
// overlay metadata
|
|
79977
80472
|
merged.metadata = { ...targetMetadata, ...sourceMetadata };
|
|
80473
|
+
// A merge folds new user data into the action and re-queues it as a fresh upload,
|
|
80474
|
+
// so the persisted upload retry-attempt count must not carry over — otherwise a
|
|
80475
|
+
// previously-throttled action could immediately re-hit the cap on its first new
|
|
80476
|
+
// attempt.
|
|
80477
|
+
delete merged.metadata[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY];
|
|
79978
80478
|
// put status back to pending to auto upload if queue is active and targed is at the head.
|
|
79979
80479
|
merged.status = DraftActionStatus.Pending;
|
|
79980
80480
|
return merged;
|
|
@@ -79996,6 +80496,7 @@
|
|
|
79996
80496
|
action.data.headers = action.data.headers || {};
|
|
79997
80497
|
if (updateIdempotencyKey) {
|
|
79998
80498
|
action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
|
|
80499
|
+
reportIdempotencyKeyRotated(action.targetId, 'idempotency-error');
|
|
79999
80500
|
}
|
|
80000
80501
|
else {
|
|
80001
80502
|
delete action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY];
|
|
@@ -80009,8 +80510,36 @@
|
|
|
80009
80510
|
isUiApiErrors(body) {
|
|
80010
80511
|
return body !== undefined && isArray$3$1(body) && body.length > 0 && body[0].errorCode;
|
|
80011
80512
|
}
|
|
80513
|
+
// Distinguishes a real, server-generated 400 from an edge/gateway-injected one.
|
|
80514
|
+
//
|
|
80515
|
+
// A 400 the origin (UiApi/APREST) actually produced carries a structured error body:
|
|
80516
|
+
// either a `UiApiError[]` (see isUiApiErrors) or an enhanced-error object tagged with
|
|
80517
|
+
// `enhancedErrorType` (e.g. 'RecordError' for field-validation failures). These describe
|
|
80518
|
+
// a request the server understood and deliberately rejected — retrying it unchanged would
|
|
80519
|
+
// just be rejected again, so the draft must be errored for the user to fix or discard.
|
|
80520
|
+
//
|
|
80521
|
+
// An edge/gateway-injected 400 (the duplicate-record incident, @W-23445154) has NO such
|
|
80522
|
+
// body — it's a tiny generic error page ({ message: 'Bad Request' }), a plain string, or
|
|
80523
|
+
// empty — and is returned on a request that may already have committed at the origin.
|
|
80524
|
+
// Only those should be retried with the same idempotency key so the server can dedupe.
|
|
80525
|
+
isServerGeneratedError(body) {
|
|
80526
|
+
if (this.isUiApiErrors(body)) {
|
|
80527
|
+
return true;
|
|
80528
|
+
}
|
|
80529
|
+
// enhancedErrorType is the origin's marker for a structured record error (field
|
|
80530
|
+
// validation, backdating collision, etc.). Guard the deref so a string/undefined
|
|
80531
|
+
// edge body doesn't throw.
|
|
80532
|
+
return (body !== null &&
|
|
80533
|
+
typeof body === 'object' &&
|
|
80534
|
+
body.enhancedErrorType !== undefined);
|
|
80535
|
+
}
|
|
80012
80536
|
isBackdatingError(body, action) {
|
|
80013
|
-
if (
|
|
80537
|
+
if (
|
|
80538
|
+
// An edge/gateway-injected 400 can carry an empty, string, or missing body; guard
|
|
80539
|
+
// the deref so classifying such a response never throws. @W-23445154
|
|
80540
|
+
body !== null &&
|
|
80541
|
+
typeof body === 'object' &&
|
|
80542
|
+
body.enhancedErrorType &&
|
|
80014
80543
|
body.enhancedErrorType === 'RecordError' &&
|
|
80015
80544
|
body.output &&
|
|
80016
80545
|
body.output.errors &&
|
|
@@ -80585,229 +81114,6 @@
|
|
|
80585
81114
|
}
|
|
80586
81115
|
}
|
|
80587
81116
|
|
|
80588
|
-
function attachObserversToAdapterRequestContext(observers, adapterRequestContext) {
|
|
80589
|
-
if (adapterRequestContext === undefined) {
|
|
80590
|
-
return { eventObservers: observers };
|
|
80591
|
-
}
|
|
80592
|
-
if (adapterRequestContext.eventObservers === undefined) {
|
|
80593
|
-
return { ...adapterRequestContext, eventObservers: observers };
|
|
80594
|
-
}
|
|
80595
|
-
return {
|
|
80596
|
-
...adapterRequestContext,
|
|
80597
|
-
eventObservers: adapterRequestContext.eventObservers.concat(observers),
|
|
80598
|
-
};
|
|
80599
|
-
}
|
|
80600
|
-
/**
|
|
80601
|
-
* Use this method to sanitize the unknown error object when
|
|
80602
|
-
* we are unsure of the type of the error thrown
|
|
80603
|
-
*
|
|
80604
|
-
* @param err Unknown object to sanitize
|
|
80605
|
-
* @returns an instance of error
|
|
80606
|
-
*/
|
|
80607
|
-
function normalizeError$1(err) {
|
|
80608
|
-
if (err instanceof Error) {
|
|
80609
|
-
return err;
|
|
80610
|
-
}
|
|
80611
|
-
else if (typeof err === 'string') {
|
|
80612
|
-
return new Error(err);
|
|
80613
|
-
}
|
|
80614
|
-
return new Error(stringify$5(err));
|
|
80615
|
-
}
|
|
80616
|
-
// metrics
|
|
80617
|
-
/** GraphQL */
|
|
80618
|
-
const GRAPHQL_EVAL_ERROR = 'gql-eval-error';
|
|
80619
|
-
const GRAPHQL_EVAL_DB_READ_DURATION = 'gql-eval-db-read-duration';
|
|
80620
|
-
const GRAPHQL_EVAL_ROOT_QUERY_COUNT = 'gql-eval-root-query-count';
|
|
80621
|
-
const GRAPHQL_EVAL_TOTAL_QUERY_COUNT = 'gql-eval-total-query-count';
|
|
80622
|
-
const GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT = 'gql-eval-max-child-count';
|
|
80623
|
-
const GRAPHQL_EVAL_QUERY_RECORD_COUNT = 'gql-eval-query-record-count';
|
|
80624
|
-
const GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED = 'gql-snapshot-refresh-undefined';
|
|
80625
|
-
/** Draft Queue */
|
|
80626
|
-
const DRAFT_QUEUE_STATE_STARTED = 'draft-queue-state-started';
|
|
80627
|
-
const DRAFT_QUEUE_STATE_ERROR = 'draft-queue-state-error';
|
|
80628
|
-
const DRAFT_QUEUE_STATE_WAITING = 'draft-queue-state-waiting';
|
|
80629
|
-
const DRAFT_QUEUE_STATE_STOPPED = 'draft-queue-state-stopped';
|
|
80630
|
-
const DRAFT_QUEUE_ACTION_ADDED = 'draft-queue-action-added';
|
|
80631
|
-
const DRAFT_QUEUE_ACTION_UPLOADING = 'draft-queue-action-uploading';
|
|
80632
|
-
const DRAFT_QUEUE_ACTION_COMPLETED = 'draft-queue-action-completed';
|
|
80633
|
-
const DRAFT_QUEUE_ACTION_DELETED = 'draft-queue-action-deleted';
|
|
80634
|
-
const DRAFT_QUEUE_ACTION_UPDATED = 'draft-queue-action-updated';
|
|
80635
|
-
const DRAFT_QUEUE_ACTION_FAILED = 'draft-queue-action-failed';
|
|
80636
|
-
const DRAFT_QUEUE_TOTAL_MERGE_ACTIONS_CALLS = 'draft-queue-total-mergeActions-calls';
|
|
80637
|
-
/** Content Document */
|
|
80638
|
-
const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
|
|
80639
|
-
const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
|
|
80640
|
-
/** Priming */
|
|
80641
|
-
const PRIMING_TOTAL_SESSION_COUNT = 'priming-total-session-count';
|
|
80642
|
-
const PRIMING_TOTAL_ERROR_COUNT = 'priming-total-error-count';
|
|
80643
|
-
const PRIMING_TOTAL_PRIMED_COUNT = 'priming-total-primed-count';
|
|
80644
|
-
const PRIMING_TOTAL_CONFLICT_COUNT = 'priming-total-conflict-count';
|
|
80645
|
-
// logs
|
|
80646
|
-
const GRAPHQL_QUERY_PARSE_ERROR = 'gql-query-parse-error';
|
|
80647
|
-
const GRAPHQL_SQL_EVAL_PRECONDITION_ERROR = 'gql-sql-pre-eval-error';
|
|
80648
|
-
const GRAPHQL_CREATE_SNAPSHOT_ERROR = 'gql-create-snapshot-error';
|
|
80649
|
-
const DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR = 'draft-aware-create-content-document-and-version-error';
|
|
80650
|
-
/** Garbage Collection */
|
|
80651
|
-
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT = 'garbage-collection-aggressive-trim-count';
|
|
80652
|
-
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED = 'garbage-collection-aggressive-trim-records-trimmed';
|
|
80653
|
-
const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM = 'garbage-collection-aggressive-trim-total-records-before-trim';
|
|
80654
|
-
const ldsMobileInstrumentation$2 = getInstrumentation();
|
|
80655
|
-
const nimbusLogger = typeof __nimbus !== 'undefined' &&
|
|
80656
|
-
__nimbus.plugins !== undefined &&
|
|
80657
|
-
__nimbus.plugins.JSLoggerPlugin !== undefined
|
|
80658
|
-
? __nimbus.plugins.JSLoggerPlugin
|
|
80659
|
-
: undefined;
|
|
80660
|
-
function reportGraphqlQueryParseError(err) {
|
|
80661
|
-
const error = normalizeError$1(err);
|
|
80662
|
-
const errorCode = GRAPHQL_QUERY_PARSE_ERROR;
|
|
80663
|
-
// Metric
|
|
80664
|
-
reportGraphqlAdapterError(errorCode);
|
|
80665
|
-
// Log
|
|
80666
|
-
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
80667
|
-
}
|
|
80668
|
-
function reportGraphqlSqlEvalPreconditionError(err) {
|
|
80669
|
-
const error = normalizeError$1(err);
|
|
80670
|
-
const errorCode = GRAPHQL_SQL_EVAL_PRECONDITION_ERROR;
|
|
80671
|
-
// Metric
|
|
80672
|
-
reportGraphqlAdapterError(errorCode);
|
|
80673
|
-
// Log
|
|
80674
|
-
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
80675
|
-
}
|
|
80676
|
-
function reportGraphqlCreateSnapshotError(err) {
|
|
80677
|
-
const error = normalizeError$1(err);
|
|
80678
|
-
const errorCode = GRAPHQL_CREATE_SNAPSHOT_ERROR;
|
|
80679
|
-
// Metric
|
|
80680
|
-
reportGraphqlAdapterError(errorCode);
|
|
80681
|
-
// Log
|
|
80682
|
-
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
80683
|
-
}
|
|
80684
|
-
function reportGraphQlEvalDbReadDuration(duration) {
|
|
80685
|
-
ldsMobileInstrumentation$2.trackValue(GRAPHQL_EVAL_DB_READ_DURATION, duration);
|
|
80686
|
-
}
|
|
80687
|
-
function reportGraphqlAdapterError(errorCode) {
|
|
80688
|
-
// Increment overall count with errorCode as tag
|
|
80689
|
-
ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_EVAL_ERROR, 1, true, { errorCode });
|
|
80690
|
-
}
|
|
80691
|
-
function reportGraphqlQueryInstrumentation(data) {
|
|
80692
|
-
const queryBuckets = [1, 2, 3, 4, 5, 10, 20, 50, 100];
|
|
80693
|
-
const recordBuckets = [
|
|
80694
|
-
1, 5, 10, 20, 50, 100, 1000, 2000, 5000, 10000, 50000, 100000, 1000000,
|
|
80695
|
-
];
|
|
80696
|
-
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_ROOT_QUERY_COUNT, data.rootQueryCount, queryBuckets);
|
|
80697
|
-
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_TOTAL_QUERY_COUNT, data.totalQueryCount, queryBuckets);
|
|
80698
|
-
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
|
|
80699
|
-
ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
|
|
80700
|
-
}
|
|
80701
|
-
function incrementGraphQLRefreshUndfined() {
|
|
80702
|
-
ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
|
|
80703
|
-
}
|
|
80704
|
-
function reportDraftActionEvent(state, draftCount, message) {
|
|
80705
|
-
if (nimbusLogger) {
|
|
80706
|
-
nimbusLogger.logInfo(`Draft action event: ${state}, depth: ${draftCount}${message ? `, message: ${message}` : ''}`);
|
|
80707
|
-
}
|
|
80708
|
-
switch (state) {
|
|
80709
|
-
case 'added':
|
|
80710
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_ADDED);
|
|
80711
|
-
break;
|
|
80712
|
-
case 'uploading':
|
|
80713
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOADING);
|
|
80714
|
-
break;
|
|
80715
|
-
case 'completed':
|
|
80716
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_COMPLETED);
|
|
80717
|
-
break;
|
|
80718
|
-
case 'deleted':
|
|
80719
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_DELETED);
|
|
80720
|
-
break;
|
|
80721
|
-
case 'failed':
|
|
80722
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_FAILED, 1, true);
|
|
80723
|
-
break;
|
|
80724
|
-
case 'updated':
|
|
80725
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPDATED);
|
|
80726
|
-
break;
|
|
80727
|
-
}
|
|
80728
|
-
}
|
|
80729
|
-
function reportDraftQueueState(state, draftCount) {
|
|
80730
|
-
if (nimbusLogger) {
|
|
80731
|
-
nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
|
|
80732
|
-
}
|
|
80733
|
-
switch (state) {
|
|
80734
|
-
case 'started':
|
|
80735
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STARTED);
|
|
80736
|
-
break;
|
|
80737
|
-
case 'error':
|
|
80738
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_ERROR, 1, true);
|
|
80739
|
-
break;
|
|
80740
|
-
case 'waiting':
|
|
80741
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_WAITING);
|
|
80742
|
-
break;
|
|
80743
|
-
case 'stopped':
|
|
80744
|
-
ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STOPPED);
|
|
80745
|
-
break;
|
|
80746
|
-
}
|
|
80747
|
-
}
|
|
80748
|
-
function reportDraftAwareContentDocumentVersionSynthesizeError(err) {
|
|
80749
|
-
let error;
|
|
80750
|
-
if (err.body !== undefined) {
|
|
80751
|
-
error = err.body;
|
|
80752
|
-
}
|
|
80753
|
-
else {
|
|
80754
|
-
error = normalizeError$1(err);
|
|
80755
|
-
}
|
|
80756
|
-
const errorCode = DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR;
|
|
80757
|
-
const errorType = error.errorType;
|
|
80758
|
-
const tags = {
|
|
80759
|
-
errorCode,
|
|
80760
|
-
};
|
|
80761
|
-
if (errorType !== undefined) {
|
|
80762
|
-
tags.errorType = errorType;
|
|
80763
|
-
}
|
|
80764
|
-
// Metric
|
|
80765
|
-
ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR, 1, true, tags);
|
|
80766
|
-
// Log
|
|
80767
|
-
ldsMobileInstrumentation$2.error(error, errorCode);
|
|
80768
|
-
}
|
|
80769
|
-
function reportDraftAwareContentVersionSynthesizeCalls(mimeType) {
|
|
80770
|
-
ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS, 1, undefined, { mimeType });
|
|
80771
|
-
}
|
|
80772
|
-
/** Priming */
|
|
80773
|
-
function reportPrimingSessionCreated() {
|
|
80774
|
-
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_SESSION_COUNT, 1, undefined, {});
|
|
80775
|
-
}
|
|
80776
|
-
function reportPrimingError(errorType, recordCount) {
|
|
80777
|
-
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_ERROR_COUNT, recordCount, undefined, {
|
|
80778
|
-
errorType,
|
|
80779
|
-
});
|
|
80780
|
-
}
|
|
80781
|
-
function reportPrimingSuccess(recordCount) {
|
|
80782
|
-
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_PRIMED_COUNT, recordCount, undefined);
|
|
80783
|
-
}
|
|
80784
|
-
function reportPrimingConflict(resolutionType, recordCount) {
|
|
80785
|
-
ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_CONFLICT_COUNT, recordCount, undefined, {
|
|
80786
|
-
resolutionType,
|
|
80787
|
-
});
|
|
80788
|
-
}
|
|
80789
|
-
/** Network */
|
|
80790
|
-
function reportChunkCandidateUrlLength(urlLength) {
|
|
80791
|
-
const buckets = [8000, 10000, 12000, 14000, 16000];
|
|
80792
|
-
ldsMobileInstrumentation$2.bucketValue('chunk-candidate-url-length-histogram', urlLength, buckets);
|
|
80793
|
-
}
|
|
80794
|
-
/** Garbage Collection */
|
|
80795
|
-
function reportAggressiveTrimTriggered(trimCount, beforeTrimRecordCount, totalRecordsTrimmed) {
|
|
80796
|
-
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT, trimCount);
|
|
80797
|
-
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM, beforeTrimRecordCount);
|
|
80798
|
-
ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED, totalRecordsTrimmed);
|
|
80799
|
-
}
|
|
80800
|
-
/** One Store Cache Purge */
|
|
80801
|
-
const ONESTORE_CACHE_PURGING_RECORDS_PURGED = 'onestore-cache-purging-records-purged';
|
|
80802
|
-
const ONESTORE_CACHE_PURGING_RECORDS_ERROR = 'onestore-cache-purging-records-error';
|
|
80803
|
-
function reportOneStoreRecordsPurgedFromCache(recordsPurged) {
|
|
80804
|
-
ldsMobileInstrumentation$2.trackValue(ONESTORE_CACHE_PURGING_RECORDS_PURGED, recordsPurged);
|
|
80805
|
-
}
|
|
80806
|
-
function reportOneStoreCachePurgingError(error) {
|
|
80807
|
-
const errorMessage = normalizeError$1(error);
|
|
80808
|
-
ldsMobileInstrumentation$2.error(errorMessage, ONESTORE_CACHE_PURGING_RECORDS_ERROR);
|
|
80809
|
-
}
|
|
80810
|
-
|
|
80811
81117
|
const QUICK_ACTION_HANDLER = 'QUICK_ACTION_HANDLER';
|
|
80812
81118
|
class QuickActionExecutionRepresentationHandler extends AbstractQuickActionHandler {
|
|
80813
81119
|
constructor(getLuvio, draftRecordService, draftQueue, networkAdapter, isDraftId, sideEffectService, objectInfoService, getRecord) {
|
|
@@ -85514,7 +85820,7 @@
|
|
|
85514
85820
|
return Boolean(interfaces.find((iface) => iface.name === 'Record'));
|
|
85515
85821
|
}
|
|
85516
85822
|
|
|
85517
|
-
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}";
|
|
85823
|
+
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}";
|
|
85518
85824
|
|
|
85519
85825
|
// Define additional schema that is missing from uiapi that we use in local evaluation
|
|
85520
85826
|
const additionalSchemaDefinitions = /* GraphQL */ `
|
|
@@ -89429,7 +89735,7 @@
|
|
|
89429
89735
|
return operation()
|
|
89430
89736
|
.catch((err) => {
|
|
89431
89737
|
hasError = true;
|
|
89432
|
-
const error = normalizeError$
|
|
89738
|
+
const error = normalizeError$2(err);
|
|
89433
89739
|
tags['errorMessage'] = error.message;
|
|
89434
89740
|
if (logError) {
|
|
89435
89741
|
ldsMobileInstrumentation$2.error(error);
|
|
@@ -95118,14 +95424,27 @@
|
|
|
95118
95424
|
constructor(services) {
|
|
95119
95425
|
super(services);
|
|
95120
95426
|
this.services = services;
|
|
95427
|
+
this.additionalNullResponses = [];
|
|
95121
95428
|
}
|
|
95122
|
-
fetch() {
|
|
95429
|
+
fetch(contextSeed) {
|
|
95123
95430
|
try {
|
|
95124
|
-
|
|
95431
|
+
const [input, init] = this.fetchParams;
|
|
95432
|
+
const initWithSeed = contextSeed === void 0 ? init : { ...init, __contextSeed: contextSeed };
|
|
95433
|
+
const fetchCall = initWithSeed === void 0 ? this.services.fetch(input) : this.services.fetch(input, initWithSeed);
|
|
95434
|
+
return this.convertFetchResponseToData(fetchCall);
|
|
95125
95435
|
} catch (reason) {
|
|
95126
95436
|
return resolvedPromiseLike$2(err$1(toError(reason)));
|
|
95127
95437
|
}
|
|
95128
95438
|
}
|
|
95439
|
+
isSemanticNullResponse(response) {
|
|
95440
|
+
return this.additionalNullResponses.includes(response.status);
|
|
95441
|
+
}
|
|
95442
|
+
isProtocolNoBodyStatus(status) {
|
|
95443
|
+
return status === 204 || status === 205;
|
|
95444
|
+
}
|
|
95445
|
+
isUndeclaredNoBodyResponse(response) {
|
|
95446
|
+
return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
|
|
95447
|
+
}
|
|
95129
95448
|
async coerceError(errorResponse) {
|
|
95130
95449
|
return toError(errorResponse.statusText);
|
|
95131
95450
|
}
|
|
@@ -95133,10 +95452,24 @@
|
|
|
95133
95452
|
return response.then(
|
|
95134
95453
|
(response2) => {
|
|
95135
95454
|
if (response2.ok) {
|
|
95136
|
-
|
|
95137
|
-
|
|
95138
|
-
|
|
95139
|
-
|
|
95455
|
+
let resultPromise;
|
|
95456
|
+
if (this.isSemanticNullResponse(response2)) {
|
|
95457
|
+
resultPromise = Promise.resolve(ok$1(null));
|
|
95458
|
+
} else if (this.isUndeclaredNoBodyResponse(response2)) {
|
|
95459
|
+
resultPromise = Promise.resolve(
|
|
95460
|
+
err$1(
|
|
95461
|
+
toError(
|
|
95462
|
+
`Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
|
|
95463
|
+
)
|
|
95464
|
+
)
|
|
95465
|
+
);
|
|
95466
|
+
} else {
|
|
95467
|
+
resultPromise = response2.json().then(
|
|
95468
|
+
(json) => ok$1(json),
|
|
95469
|
+
(reason) => err$1(toError(reason))
|
|
95470
|
+
);
|
|
95471
|
+
}
|
|
95472
|
+
return resultPromise.finally(() => {
|
|
95140
95473
|
try {
|
|
95141
95474
|
this.afterRequestHooks({ statusCode: response2.status });
|
|
95142
95475
|
} catch {
|
|
@@ -95183,6 +95516,7 @@
|
|
|
95183
95516
|
constructor(services) {
|
|
95184
95517
|
super(services);
|
|
95185
95518
|
this.services = services;
|
|
95519
|
+
this.additionalNullResponses = [];
|
|
95186
95520
|
}
|
|
95187
95521
|
requestFromNetwork() {
|
|
95188
95522
|
return this.fetch();
|
|
@@ -95194,6 +95528,15 @@
|
|
|
95194
95528
|
return resolvedPromiseLike$2(err$1(toError(reason)));
|
|
95195
95529
|
}
|
|
95196
95530
|
}
|
|
95531
|
+
isSemanticNullResponse(response) {
|
|
95532
|
+
return this.additionalNullResponses.includes(response.status);
|
|
95533
|
+
}
|
|
95534
|
+
isProtocolNoBodyStatus(status) {
|
|
95535
|
+
return status === 204 || status === 205;
|
|
95536
|
+
}
|
|
95537
|
+
isUndeclaredNoBodyResponse(response) {
|
|
95538
|
+
return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
|
|
95539
|
+
}
|
|
95197
95540
|
async coerceError(errorResponse) {
|
|
95198
95541
|
return toError(errorResponse.statusText);
|
|
95199
95542
|
}
|
|
@@ -95204,12 +95547,26 @@
|
|
|
95204
95547
|
return response.then(
|
|
95205
95548
|
(response2) => {
|
|
95206
95549
|
if (response2.ok) {
|
|
95207
|
-
|
|
95208
|
-
|
|
95209
|
-
|
|
95210
|
-
|
|
95211
|
-
|
|
95212
|
-
|
|
95550
|
+
let resultPromise;
|
|
95551
|
+
if (this.isSemanticNullResponse(response2)) {
|
|
95552
|
+
resultPromise = Promise.resolve(ok$1(null));
|
|
95553
|
+
} else if (this.isUndeclaredNoBodyResponse(response2)) {
|
|
95554
|
+
resultPromise = Promise.resolve(
|
|
95555
|
+
err$1(
|
|
95556
|
+
toError(
|
|
95557
|
+
`Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
|
|
95558
|
+
)
|
|
95559
|
+
)
|
|
95560
|
+
);
|
|
95561
|
+
} else {
|
|
95562
|
+
resultPromise = response2.json().then(
|
|
95563
|
+
(json) => {
|
|
95564
|
+
return this.processFetchReturnValue(json);
|
|
95565
|
+
},
|
|
95566
|
+
(reason) => err$1(toError(reason))
|
|
95567
|
+
);
|
|
95568
|
+
}
|
|
95569
|
+
return resultPromise.finally(() => {
|
|
95213
95570
|
try {
|
|
95214
95571
|
this.afterRequestHooks({ statusCode: response2.status });
|
|
95215
95572
|
} catch {
|
|
@@ -96197,7 +96554,7 @@
|
|
|
96197
96554
|
},
|
|
96198
96555
|
};
|
|
96199
96556
|
}
|
|
96200
|
-
// version: 1.428.0-
|
|
96557
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
96201
96558
|
|
|
96202
96559
|
/**
|
|
96203
96560
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -96223,7 +96580,7 @@
|
|
|
96223
96580
|
},
|
|
96224
96581
|
};
|
|
96225
96582
|
}
|
|
96226
|
-
// version: 1.428.0-
|
|
96583
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
96227
96584
|
|
|
96228
96585
|
/*!
|
|
96229
96586
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -96708,6 +97065,9 @@
|
|
|
96708
97065
|
return err$1([error]);
|
|
96709
97066
|
}
|
|
96710
97067
|
function validateJsonSchema$1(data, schema, path = "$", document = schema) {
|
|
97068
|
+
return validateJsonSchemaInternal$1(data, schema, path, document, /* @__PURE__ */ new Map());
|
|
97069
|
+
}
|
|
97070
|
+
function validateJsonSchemaInternal$1(data, schema, path, document, visited) {
|
|
96711
97071
|
if (schema === true) return validSchemaResponse$1();
|
|
96712
97072
|
if (schema === false)
|
|
96713
97073
|
return invalidSchemaResponseWithError$1(
|
|
@@ -96716,22 +97076,22 @@
|
|
|
96716
97076
|
const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
|
|
96717
97077
|
const errorCollector = new JsonSchemaErrorCollector$1();
|
|
96718
97078
|
if ("anyOf" in schema) {
|
|
96719
|
-
errorCollector.append(validateAnyOf$1(data, schema, path, document));
|
|
97079
|
+
errorCollector.append(validateAnyOf$1(data, schema, path, document, visited));
|
|
96720
97080
|
} else if ("oneOf" in schema) {
|
|
96721
|
-
errorCollector.append(validateOneOf$1(data, schema, path, document));
|
|
97081
|
+
errorCollector.append(validateOneOf$1(data, schema, path, document, visited));
|
|
96722
97082
|
} else if ("allOf" in schema) {
|
|
96723
|
-
errorCollector.append(validateAllOf$1(data, schema, path, document));
|
|
97083
|
+
errorCollector.append(validateAllOf$1(data, schema, path, document, visited));
|
|
96724
97084
|
} else if ("not" in schema) {
|
|
96725
|
-
errorCollector.append(validateNot$1(data, schema, path, document));
|
|
97085
|
+
errorCollector.append(validateNot$1(data, schema, path, document, visited));
|
|
96726
97086
|
} else if ("$ref" in schema) {
|
|
96727
|
-
errorCollector.append(validateRef$1(data, schema, path, document));
|
|
97087
|
+
errorCollector.append(validateRef$1(data, schema, path, document, visited));
|
|
96728
97088
|
} else if ("type" in schema) {
|
|
96729
97089
|
if (schema.type === "object") {
|
|
96730
97090
|
if (dataType !== "object") {
|
|
96731
97091
|
errorCollector.add(incorrectTypeError$1("object", dataType, path));
|
|
96732
97092
|
} else {
|
|
96733
97093
|
errorCollector.append(
|
|
96734
|
-
validateObject$1(data, schema, path, document)
|
|
97094
|
+
validateObject$1(data, schema, path, document, visited)
|
|
96735
97095
|
);
|
|
96736
97096
|
}
|
|
96737
97097
|
} else if (schema.type === "array") {
|
|
@@ -96739,7 +97099,7 @@
|
|
|
96739
97099
|
errorCollector.add(incorrectTypeError$1("array", dataType, path));
|
|
96740
97100
|
} else {
|
|
96741
97101
|
errorCollector.append(
|
|
96742
|
-
validateArray$1(data, schema, path, document)
|
|
97102
|
+
validateArray$1(data, schema, path, document, visited)
|
|
96743
97103
|
);
|
|
96744
97104
|
}
|
|
96745
97105
|
} else {
|
|
@@ -96756,16 +97116,17 @@
|
|
|
96756
97116
|
}
|
|
96757
97117
|
return errorCollector.toValidationResponse();
|
|
96758
97118
|
}
|
|
96759
|
-
function validateAnyOf$1(data, schema, path, document) {
|
|
97119
|
+
function validateAnyOf$1(data, schema, path, document, visited) {
|
|
96760
97120
|
let isValid = false;
|
|
96761
97121
|
const errorCollector = new JsonSchemaErrorCollector$1();
|
|
96762
97122
|
for (let i = 0, { length } = schema.anyOf; i < length; i++) {
|
|
96763
97123
|
const element = schema.anyOf[i];
|
|
96764
|
-
const validationResponse =
|
|
97124
|
+
const validationResponse = validateJsonSchemaInternal$1(
|
|
96765
97125
|
data,
|
|
96766
97126
|
element,
|
|
96767
97127
|
`${path}.anyOf[${i}]`,
|
|
96768
|
-
document
|
|
97128
|
+
document,
|
|
97129
|
+
visited
|
|
96769
97130
|
);
|
|
96770
97131
|
if (validationResponse.isOk()) {
|
|
96771
97132
|
isValid = true;
|
|
@@ -96782,13 +97143,22 @@
|
|
|
96782
97143
|
}
|
|
96783
97144
|
return validSchemaResponse$1();
|
|
96784
97145
|
}
|
|
96785
|
-
function validateOneOf$1(data, schema, path, document) {
|
|
97146
|
+
function validateOneOf$1(data, schema, path, document, visited) {
|
|
97147
|
+
if (schema.discriminator !== void 0) {
|
|
97148
|
+
return validateDiscriminatedOneOf$1(data, schema.discriminator, path, document, visited);
|
|
97149
|
+
}
|
|
96786
97150
|
let validSubShemaPaths = [];
|
|
96787
97151
|
const errorCollector = new JsonSchemaErrorCollector$1();
|
|
96788
97152
|
for (let i = 0, { length } = schema.oneOf; i < length; i++) {
|
|
96789
97153
|
const element = schema.oneOf[i];
|
|
96790
97154
|
const oneOfPath = `${path}.oneOf[${i}]`;
|
|
96791
|
-
const validationResponse =
|
|
97155
|
+
const validationResponse = validateJsonSchemaInternal$1(
|
|
97156
|
+
data,
|
|
97157
|
+
element,
|
|
97158
|
+
oneOfPath,
|
|
97159
|
+
document,
|
|
97160
|
+
visited
|
|
97161
|
+
);
|
|
96792
97162
|
if (validationResponse.isOk()) {
|
|
96793
97163
|
validSubShemaPaths.push(oneOfPath);
|
|
96794
97164
|
} else {
|
|
@@ -96810,16 +97180,45 @@
|
|
|
96810
97180
|
}
|
|
96811
97181
|
return validSchemaResponse$1();
|
|
96812
97182
|
}
|
|
96813
|
-
function
|
|
97183
|
+
function validateDiscriminatedOneOf$1(data, discriminator, path, document, visited) {
|
|
97184
|
+
if (data === null || typeof data !== "object" || Array.isArray(data)) {
|
|
97185
|
+
return invalidSchemaResponseWithError$1(incorrectTypeError$1("object", typeof data, path));
|
|
97186
|
+
}
|
|
97187
|
+
const { propertyName, mapping } = discriminator;
|
|
97188
|
+
const discriminatorValue = data[propertyName];
|
|
97189
|
+
if (discriminatorValue === void 0) {
|
|
97190
|
+
return invalidSchemaResponseWithError$1(
|
|
97191
|
+
new MissingRequiredPropertyError$1(
|
|
97192
|
+
`Object at path '${path}' is missing required discriminator property '${propertyName}'.`
|
|
97193
|
+
)
|
|
97194
|
+
);
|
|
97195
|
+
}
|
|
97196
|
+
if (typeof discriminatorValue !== "string") {
|
|
97197
|
+
return invalidSchemaResponseWithError$1(
|
|
97198
|
+
incorrectTypeError$1("string", typeof discriminatorValue, `${path}.${propertyName}`)
|
|
97199
|
+
);
|
|
97200
|
+
}
|
|
97201
|
+
const targetRef = mapping[discriminatorValue];
|
|
97202
|
+
if (targetRef === void 0) {
|
|
97203
|
+
return invalidSchemaResponseWithError$1(
|
|
97204
|
+
new JsonSchemaViolationError$1(
|
|
97205
|
+
`Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
|
|
97206
|
+
)
|
|
97207
|
+
);
|
|
97208
|
+
}
|
|
97209
|
+
return validateJsonSchemaInternal$1(data, { $ref: targetRef }, path, document, visited);
|
|
97210
|
+
}
|
|
97211
|
+
function validateAllOf$1(data, schema, path, document, visited) {
|
|
96814
97212
|
let isValid = true;
|
|
96815
97213
|
const errorCollector = new JsonSchemaErrorCollector$1();
|
|
96816
97214
|
for (let i = 0, { length } = schema.allOf; i < length; i++) {
|
|
96817
97215
|
const element = schema.allOf[i];
|
|
96818
|
-
const validationResponse =
|
|
97216
|
+
const validationResponse = validateJsonSchemaInternal$1(
|
|
96819
97217
|
data,
|
|
96820
97218
|
element,
|
|
96821
97219
|
`${path}.allOf[${i}]`,
|
|
96822
|
-
document
|
|
97220
|
+
document,
|
|
97221
|
+
visited
|
|
96823
97222
|
);
|
|
96824
97223
|
if (!validationResponse.isOk()) {
|
|
96825
97224
|
errorCollector.append(validationResponse);
|
|
@@ -96833,8 +97232,14 @@
|
|
|
96833
97232
|
}
|
|
96834
97233
|
return errorCollector.toValidationResponse();
|
|
96835
97234
|
}
|
|
96836
|
-
function validateNot$1(data, schema, path, document) {
|
|
96837
|
-
const validationResponse =
|
|
97235
|
+
function validateNot$1(data, schema, path, document, visited) {
|
|
97236
|
+
const validationResponse = validateJsonSchemaInternal$1(
|
|
97237
|
+
data,
|
|
97238
|
+
schema.not,
|
|
97239
|
+
path,
|
|
97240
|
+
document,
|
|
97241
|
+
visited
|
|
97242
|
+
);
|
|
96838
97243
|
if (validationResponse.isOk()) {
|
|
96839
97244
|
return invalidSchemaResponseWithError$1(
|
|
96840
97245
|
new JsonSchemaViolationError$1(
|
|
@@ -96844,7 +97249,7 @@
|
|
|
96844
97249
|
}
|
|
96845
97250
|
return validSchemaResponse$1();
|
|
96846
97251
|
}
|
|
96847
|
-
function validateObject$1(data, schema, path, document) {
|
|
97252
|
+
function validateObject$1(data, schema, path, document, visited) {
|
|
96848
97253
|
const schemaKeys = Object.keys(schema.properties);
|
|
96849
97254
|
const requiredKeys = new Set(schema.required);
|
|
96850
97255
|
const schemaKeySet = new Set(schemaKeys);
|
|
@@ -96852,11 +97257,12 @@
|
|
|
96852
97257
|
Object.keys(data).forEach((key) => {
|
|
96853
97258
|
if (!schemaKeySet.has(key)) {
|
|
96854
97259
|
errorCollector.append(
|
|
96855
|
-
|
|
97260
|
+
validateJsonSchemaInternal$1(
|
|
96856
97261
|
data[key],
|
|
96857
97262
|
schema.additionalProperties,
|
|
96858
97263
|
`${path}.additionalProperties[${key}]`,
|
|
96859
|
-
document
|
|
97264
|
+
document,
|
|
97265
|
+
visited
|
|
96860
97266
|
)
|
|
96861
97267
|
);
|
|
96862
97268
|
}
|
|
@@ -96873,18 +97279,19 @@
|
|
|
96873
97279
|
}
|
|
96874
97280
|
if (keyInData) {
|
|
96875
97281
|
errorCollector.append(
|
|
96876
|
-
|
|
97282
|
+
validateJsonSchemaInternal$1(
|
|
96877
97283
|
data[key],
|
|
96878
97284
|
schema.properties[key],
|
|
96879
97285
|
`${path}.${key}`,
|
|
96880
|
-
document
|
|
97286
|
+
document,
|
|
97287
|
+
visited
|
|
96881
97288
|
)
|
|
96882
97289
|
);
|
|
96883
97290
|
}
|
|
96884
97291
|
}
|
|
96885
97292
|
return errorCollector.toValidationResponse();
|
|
96886
97293
|
}
|
|
96887
|
-
function validateArray$1(data, schema, path, document) {
|
|
97294
|
+
function validateArray$1(data, schema, path, document, visited) {
|
|
96888
97295
|
if (schema.minItems !== void 0 && data.length < schema.minItems) {
|
|
96889
97296
|
return invalidSchemaResponseWithError$1(
|
|
96890
97297
|
new MinItemsViolationError$1(
|
|
@@ -96902,7 +97309,13 @@
|
|
|
96902
97309
|
const errorCollector = new JsonSchemaErrorCollector$1();
|
|
96903
97310
|
data.forEach(
|
|
96904
97311
|
(element, index) => errorCollector.append(
|
|
96905
|
-
|
|
97312
|
+
validateJsonSchemaInternal$1(
|
|
97313
|
+
element,
|
|
97314
|
+
schema.items,
|
|
97315
|
+
`${path}[${index}]`,
|
|
97316
|
+
document,
|
|
97317
|
+
visited
|
|
97318
|
+
)
|
|
96906
97319
|
)
|
|
96907
97320
|
);
|
|
96908
97321
|
return errorCollector.toValidationResponse();
|
|
@@ -96937,7 +97350,7 @@
|
|
|
96937
97350
|
}
|
|
96938
97351
|
return validSchemaResponse$1();
|
|
96939
97352
|
}
|
|
96940
|
-
function validateRef$1(data, schema, path, document) {
|
|
97353
|
+
function validateRef$1(data, schema, path, document, visited) {
|
|
96941
97354
|
if (!schema.$ref.startsWith("#")) {
|
|
96942
97355
|
return invalidSchemaResponseWithError$1(
|
|
96943
97356
|
new InvalidRefError$1(
|
|
@@ -96945,11 +97358,23 @@
|
|
|
96945
97358
|
)
|
|
96946
97359
|
);
|
|
96947
97360
|
}
|
|
97361
|
+
let refsForData = visited.get(data);
|
|
97362
|
+
if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
|
|
97363
|
+
return validSchemaResponse$1();
|
|
97364
|
+
}
|
|
97365
|
+
if (refsForData === void 0) {
|
|
97366
|
+
refsForData = /* @__PURE__ */ new Set();
|
|
97367
|
+
visited.set(data, refsForData);
|
|
97368
|
+
}
|
|
97369
|
+
refsForData.add(schema.$ref);
|
|
96948
97370
|
try {
|
|
96949
97371
|
const schemaToValidate = findSchemaAtPath$1(document, schema.$ref);
|
|
96950
|
-
return
|
|
97372
|
+
return validateJsonSchemaInternal$1(data, schemaToValidate, path, document, visited);
|
|
96951
97373
|
} catch (e) {
|
|
96952
97374
|
return invalidSchemaResponseWithError$1(e);
|
|
97375
|
+
} finally {
|
|
97376
|
+
refsForData.delete(schema.$ref);
|
|
97377
|
+
if (refsForData.size === 0) visited.delete(data);
|
|
96953
97378
|
}
|
|
96954
97379
|
}
|
|
96955
97380
|
function validateEnum$1(data, enumValue, path) {
|
|
@@ -97834,9 +98259,18 @@
|
|
|
97834
98259
|
return {
|
|
97835
98260
|
type: "fetch",
|
|
97836
98261
|
version: "1.0",
|
|
97837
|
-
service: function(
|
|
98262
|
+
service: function(input, init) {
|
|
97838
98263
|
var _a;
|
|
97839
|
-
|
|
98264
|
+
let contextSeed;
|
|
98265
|
+
let cleanInit = init;
|
|
98266
|
+
if (init !== void 0 && "__contextSeed" in init) {
|
|
98267
|
+
const { __contextSeed, ...initWithoutSeed } = init;
|
|
98268
|
+
contextSeed = __contextSeed;
|
|
98269
|
+
cleanInit = Object.keys(initWithoutSeed).length === 0 ? void 0 : initWithoutSeed;
|
|
98270
|
+
}
|
|
98271
|
+
const fetchArgs = cleanInit === void 0 ? [input] : [input, cleanInit];
|
|
98272
|
+
const baseContext = (_a = interceptors.createContext) == null ? void 0 : _a.call(interceptors);
|
|
98273
|
+
const context = contextSeed === void 0 ? baseContext : { ...baseContext, ...contextSeed };
|
|
97840
98274
|
const {
|
|
97841
98275
|
request: requestInterceptors = [],
|
|
97842
98276
|
retry: retryInterceptor = void 0,
|
|
@@ -97844,17 +98278,17 @@
|
|
|
97844
98278
|
finally: finallyInterceptors = []
|
|
97845
98279
|
} = interceptors;
|
|
97846
98280
|
const pending = requestInterceptors.reduce(
|
|
97847
|
-
(previousPromise, interceptor) => previousPromise.then((
|
|
97848
|
-
resolvedPromiseLike$2(
|
|
98281
|
+
(previousPromise, interceptor) => previousPromise.then((args) => interceptor(args, context)),
|
|
98282
|
+
resolvedPromiseLike$2(fetchArgs)
|
|
97849
98283
|
);
|
|
97850
|
-
return Promise.resolve(pending).then((
|
|
98284
|
+
return Promise.resolve(pending).then((args) => {
|
|
97851
98285
|
if (retryInterceptor) {
|
|
97852
|
-
return retryInterceptor(
|
|
98286
|
+
return retryInterceptor(args, retryService, context);
|
|
97853
98287
|
} else {
|
|
97854
98288
|
if (retryService) {
|
|
97855
|
-
return retryService.applyRetry(() => fetch(...
|
|
98289
|
+
return retryService.applyRetry(() => fetch(...args));
|
|
97856
98290
|
}
|
|
97857
|
-
return fetch(...
|
|
98291
|
+
return fetch(...args);
|
|
97858
98292
|
}
|
|
97859
98293
|
}).then((response) => {
|
|
97860
98294
|
return responseInterceptors.reduce(
|
|
@@ -98880,7 +99314,7 @@
|
|
|
98880
99314
|
id: '@salesforce/lds-network-adapter',
|
|
98881
99315
|
instrument: instrument$2,
|
|
98882
99316
|
});
|
|
98883
|
-
// version: 1.428.0-
|
|
99317
|
+
// version: 1.428.0-dev21-c9faba50c9
|
|
98884
99318
|
|
|
98885
99319
|
const { create: create$2, keys: keys$2 } = Object;
|
|
98886
99320
|
const { stringify, parse } = JSON;
|
|
@@ -98971,6 +99405,9 @@
|
|
|
98971
99405
|
return err$4([error]);
|
|
98972
99406
|
}
|
|
98973
99407
|
function validateJsonSchema(data, schema, path = "$", document = schema) {
|
|
99408
|
+
return validateJsonSchemaInternal(data, schema, path, document, /* @__PURE__ */ new Map());
|
|
99409
|
+
}
|
|
99410
|
+
function validateJsonSchemaInternal(data, schema, path, document, visited) {
|
|
98974
99411
|
if (schema === true) return validSchemaResponse();
|
|
98975
99412
|
if (schema === false)
|
|
98976
99413
|
return invalidSchemaResponseWithError(
|
|
@@ -98979,22 +99416,22 @@
|
|
|
98979
99416
|
const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
|
|
98980
99417
|
const errorCollector = new JsonSchemaErrorCollector();
|
|
98981
99418
|
if ("anyOf" in schema) {
|
|
98982
|
-
errorCollector.append(validateAnyOf(data, schema, path, document));
|
|
99419
|
+
errorCollector.append(validateAnyOf(data, schema, path, document, visited));
|
|
98983
99420
|
} else if ("oneOf" in schema) {
|
|
98984
|
-
errorCollector.append(validateOneOf(data, schema, path, document));
|
|
99421
|
+
errorCollector.append(validateOneOf(data, schema, path, document, visited));
|
|
98985
99422
|
} else if ("allOf" in schema) {
|
|
98986
|
-
errorCollector.append(validateAllOf(data, schema, path, document));
|
|
99423
|
+
errorCollector.append(validateAllOf(data, schema, path, document, visited));
|
|
98987
99424
|
} else if ("not" in schema) {
|
|
98988
|
-
errorCollector.append(validateNot(data, schema, path, document));
|
|
99425
|
+
errorCollector.append(validateNot(data, schema, path, document, visited));
|
|
98989
99426
|
} else if ("$ref" in schema) {
|
|
98990
|
-
errorCollector.append(validateRef(data, schema, path, document));
|
|
99427
|
+
errorCollector.append(validateRef(data, schema, path, document, visited));
|
|
98991
99428
|
} else if ("type" in schema) {
|
|
98992
99429
|
if (schema.type === "object") {
|
|
98993
99430
|
if (dataType !== "object") {
|
|
98994
99431
|
errorCollector.add(incorrectTypeError("object", dataType, path));
|
|
98995
99432
|
} else {
|
|
98996
99433
|
errorCollector.append(
|
|
98997
|
-
validateObject(data, schema, path, document)
|
|
99434
|
+
validateObject(data, schema, path, document, visited)
|
|
98998
99435
|
);
|
|
98999
99436
|
}
|
|
99000
99437
|
} else if (schema.type === "array") {
|
|
@@ -99002,7 +99439,7 @@
|
|
|
99002
99439
|
errorCollector.add(incorrectTypeError("array", dataType, path));
|
|
99003
99440
|
} else {
|
|
99004
99441
|
errorCollector.append(
|
|
99005
|
-
validateArray(data, schema, path, document)
|
|
99442
|
+
validateArray(data, schema, path, document, visited)
|
|
99006
99443
|
);
|
|
99007
99444
|
}
|
|
99008
99445
|
} else {
|
|
@@ -99019,16 +99456,17 @@
|
|
|
99019
99456
|
}
|
|
99020
99457
|
return errorCollector.toValidationResponse();
|
|
99021
99458
|
}
|
|
99022
|
-
function validateAnyOf(data, schema, path, document) {
|
|
99459
|
+
function validateAnyOf(data, schema, path, document, visited) {
|
|
99023
99460
|
let isValid = false;
|
|
99024
99461
|
const errorCollector = new JsonSchemaErrorCollector();
|
|
99025
99462
|
for (let i = 0, { length } = schema.anyOf; i < length; i++) {
|
|
99026
99463
|
const element = schema.anyOf[i];
|
|
99027
|
-
const validationResponse =
|
|
99464
|
+
const validationResponse = validateJsonSchemaInternal(
|
|
99028
99465
|
data,
|
|
99029
99466
|
element,
|
|
99030
99467
|
`${path}.anyOf[${i}]`,
|
|
99031
|
-
document
|
|
99468
|
+
document,
|
|
99469
|
+
visited
|
|
99032
99470
|
);
|
|
99033
99471
|
if (validationResponse.isOk()) {
|
|
99034
99472
|
isValid = true;
|
|
@@ -99045,13 +99483,22 @@
|
|
|
99045
99483
|
}
|
|
99046
99484
|
return validSchemaResponse();
|
|
99047
99485
|
}
|
|
99048
|
-
function validateOneOf(data, schema, path, document) {
|
|
99486
|
+
function validateOneOf(data, schema, path, document, visited) {
|
|
99487
|
+
if (schema.discriminator !== void 0) {
|
|
99488
|
+
return validateDiscriminatedOneOf(data, schema.discriminator, path, document, visited);
|
|
99489
|
+
}
|
|
99049
99490
|
let validSubShemaPaths = [];
|
|
99050
99491
|
const errorCollector = new JsonSchemaErrorCollector();
|
|
99051
99492
|
for (let i = 0, { length } = schema.oneOf; i < length; i++) {
|
|
99052
99493
|
const element = schema.oneOf[i];
|
|
99053
99494
|
const oneOfPath = `${path}.oneOf[${i}]`;
|
|
99054
|
-
const validationResponse =
|
|
99495
|
+
const validationResponse = validateJsonSchemaInternal(
|
|
99496
|
+
data,
|
|
99497
|
+
element,
|
|
99498
|
+
oneOfPath,
|
|
99499
|
+
document,
|
|
99500
|
+
visited
|
|
99501
|
+
);
|
|
99055
99502
|
if (validationResponse.isOk()) {
|
|
99056
99503
|
validSubShemaPaths.push(oneOfPath);
|
|
99057
99504
|
} else {
|
|
@@ -99073,16 +99520,45 @@
|
|
|
99073
99520
|
}
|
|
99074
99521
|
return validSchemaResponse();
|
|
99075
99522
|
}
|
|
99076
|
-
function
|
|
99523
|
+
function validateDiscriminatedOneOf(data, discriminator, path, document, visited) {
|
|
99524
|
+
if (data === null || typeof data !== "object" || Array.isArray(data)) {
|
|
99525
|
+
return invalidSchemaResponseWithError(incorrectTypeError("object", typeof data, path));
|
|
99526
|
+
}
|
|
99527
|
+
const { propertyName, mapping } = discriminator;
|
|
99528
|
+
const discriminatorValue = data[propertyName];
|
|
99529
|
+
if (discriminatorValue === void 0) {
|
|
99530
|
+
return invalidSchemaResponseWithError(
|
|
99531
|
+
new MissingRequiredPropertyError(
|
|
99532
|
+
`Object at path '${path}' is missing required discriminator property '${propertyName}'.`
|
|
99533
|
+
)
|
|
99534
|
+
);
|
|
99535
|
+
}
|
|
99536
|
+
if (typeof discriminatorValue !== "string") {
|
|
99537
|
+
return invalidSchemaResponseWithError(
|
|
99538
|
+
incorrectTypeError("string", typeof discriminatorValue, `${path}.${propertyName}`)
|
|
99539
|
+
);
|
|
99540
|
+
}
|
|
99541
|
+
const targetRef = mapping[discriminatorValue];
|
|
99542
|
+
if (targetRef === void 0) {
|
|
99543
|
+
return invalidSchemaResponseWithError(
|
|
99544
|
+
new JsonSchemaViolationError(
|
|
99545
|
+
`Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
|
|
99546
|
+
)
|
|
99547
|
+
);
|
|
99548
|
+
}
|
|
99549
|
+
return validateJsonSchemaInternal(data, { $ref: targetRef }, path, document, visited);
|
|
99550
|
+
}
|
|
99551
|
+
function validateAllOf(data, schema, path, document, visited) {
|
|
99077
99552
|
let isValid = true;
|
|
99078
99553
|
const errorCollector = new JsonSchemaErrorCollector();
|
|
99079
99554
|
for (let i = 0, { length } = schema.allOf; i < length; i++) {
|
|
99080
99555
|
const element = schema.allOf[i];
|
|
99081
|
-
const validationResponse =
|
|
99556
|
+
const validationResponse = validateJsonSchemaInternal(
|
|
99082
99557
|
data,
|
|
99083
99558
|
element,
|
|
99084
99559
|
`${path}.allOf[${i}]`,
|
|
99085
|
-
document
|
|
99560
|
+
document,
|
|
99561
|
+
visited
|
|
99086
99562
|
);
|
|
99087
99563
|
if (!validationResponse.isOk()) {
|
|
99088
99564
|
errorCollector.append(validationResponse);
|
|
@@ -99096,8 +99572,14 @@
|
|
|
99096
99572
|
}
|
|
99097
99573
|
return errorCollector.toValidationResponse();
|
|
99098
99574
|
}
|
|
99099
|
-
function validateNot(data, schema, path, document) {
|
|
99100
|
-
const validationResponse =
|
|
99575
|
+
function validateNot(data, schema, path, document, visited) {
|
|
99576
|
+
const validationResponse = validateJsonSchemaInternal(
|
|
99577
|
+
data,
|
|
99578
|
+
schema.not,
|
|
99579
|
+
path,
|
|
99580
|
+
document,
|
|
99581
|
+
visited
|
|
99582
|
+
);
|
|
99101
99583
|
if (validationResponse.isOk()) {
|
|
99102
99584
|
return invalidSchemaResponseWithError(
|
|
99103
99585
|
new JsonSchemaViolationError(
|
|
@@ -99107,7 +99589,7 @@
|
|
|
99107
99589
|
}
|
|
99108
99590
|
return validSchemaResponse();
|
|
99109
99591
|
}
|
|
99110
|
-
function validateObject(data, schema, path, document) {
|
|
99592
|
+
function validateObject(data, schema, path, document, visited) {
|
|
99111
99593
|
const schemaKeys = Object.keys(schema.properties);
|
|
99112
99594
|
const requiredKeys = new Set(schema.required);
|
|
99113
99595
|
const schemaKeySet = new Set(schemaKeys);
|
|
@@ -99115,11 +99597,12 @@
|
|
|
99115
99597
|
Object.keys(data).forEach((key) => {
|
|
99116
99598
|
if (!schemaKeySet.has(key)) {
|
|
99117
99599
|
errorCollector.append(
|
|
99118
|
-
|
|
99600
|
+
validateJsonSchemaInternal(
|
|
99119
99601
|
data[key],
|
|
99120
99602
|
schema.additionalProperties,
|
|
99121
99603
|
`${path}.additionalProperties[${key}]`,
|
|
99122
|
-
document
|
|
99604
|
+
document,
|
|
99605
|
+
visited
|
|
99123
99606
|
)
|
|
99124
99607
|
);
|
|
99125
99608
|
}
|
|
@@ -99136,18 +99619,19 @@
|
|
|
99136
99619
|
}
|
|
99137
99620
|
if (keyInData) {
|
|
99138
99621
|
errorCollector.append(
|
|
99139
|
-
|
|
99622
|
+
validateJsonSchemaInternal(
|
|
99140
99623
|
data[key],
|
|
99141
99624
|
schema.properties[key],
|
|
99142
99625
|
`${path}.${key}`,
|
|
99143
|
-
document
|
|
99626
|
+
document,
|
|
99627
|
+
visited
|
|
99144
99628
|
)
|
|
99145
99629
|
);
|
|
99146
99630
|
}
|
|
99147
99631
|
}
|
|
99148
99632
|
return errorCollector.toValidationResponse();
|
|
99149
99633
|
}
|
|
99150
|
-
function validateArray(data, schema, path, document) {
|
|
99634
|
+
function validateArray(data, schema, path, document, visited) {
|
|
99151
99635
|
if (schema.minItems !== void 0 && data.length < schema.minItems) {
|
|
99152
99636
|
return invalidSchemaResponseWithError(
|
|
99153
99637
|
new MinItemsViolationError(
|
|
@@ -99165,7 +99649,13 @@
|
|
|
99165
99649
|
const errorCollector = new JsonSchemaErrorCollector();
|
|
99166
99650
|
data.forEach(
|
|
99167
99651
|
(element, index) => errorCollector.append(
|
|
99168
|
-
|
|
99652
|
+
validateJsonSchemaInternal(
|
|
99653
|
+
element,
|
|
99654
|
+
schema.items,
|
|
99655
|
+
`${path}[${index}]`,
|
|
99656
|
+
document,
|
|
99657
|
+
visited
|
|
99658
|
+
)
|
|
99169
99659
|
)
|
|
99170
99660
|
);
|
|
99171
99661
|
return errorCollector.toValidationResponse();
|
|
@@ -99200,7 +99690,7 @@
|
|
|
99200
99690
|
}
|
|
99201
99691
|
return validSchemaResponse();
|
|
99202
99692
|
}
|
|
99203
|
-
function validateRef(data, schema, path, document) {
|
|
99693
|
+
function validateRef(data, schema, path, document, visited) {
|
|
99204
99694
|
if (!schema.$ref.startsWith("#")) {
|
|
99205
99695
|
return invalidSchemaResponseWithError(
|
|
99206
99696
|
new InvalidRefError(
|
|
@@ -99208,11 +99698,23 @@
|
|
|
99208
99698
|
)
|
|
99209
99699
|
);
|
|
99210
99700
|
}
|
|
99701
|
+
let refsForData = visited.get(data);
|
|
99702
|
+
if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
|
|
99703
|
+
return validSchemaResponse();
|
|
99704
|
+
}
|
|
99705
|
+
if (refsForData === void 0) {
|
|
99706
|
+
refsForData = /* @__PURE__ */ new Set();
|
|
99707
|
+
visited.set(data, refsForData);
|
|
99708
|
+
}
|
|
99709
|
+
refsForData.add(schema.$ref);
|
|
99211
99710
|
try {
|
|
99212
99711
|
const schemaToValidate = findSchemaAtPath(document, schema.$ref);
|
|
99213
|
-
return
|
|
99712
|
+
return validateJsonSchemaInternal(data, schemaToValidate, path, document, visited);
|
|
99214
99713
|
} catch (e) {
|
|
99215
99714
|
return invalidSchemaResponseWithError(e);
|
|
99715
|
+
} finally {
|
|
99716
|
+
refsForData.delete(schema.$ref);
|
|
99717
|
+
if (refsForData.size === 0) visited.delete(data);
|
|
99216
99718
|
}
|
|
99217
99719
|
}
|
|
99218
99720
|
function validateEnum(data, enumValue, path) {
|
|
@@ -101426,6 +101928,7 @@
|
|
|
101426
101928
|
RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
|
|
101427
101929
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101428
101930
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
101931
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101429
101932
|
};
|
|
101430
101933
|
}
|
|
101431
101934
|
get possibleTypes() {
|
|
@@ -101467,6 +101970,7 @@
|
|
|
101467
101970
|
Dataspaces: new BaseArrayFieldDef(new BaseObjectFieldDef(this.typeRegistry.Analytics__DataspaceRepresentation, true), true),
|
|
101468
101971
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101469
101972
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
101973
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101470
101974
|
};
|
|
101471
101975
|
}
|
|
101472
101976
|
get cacheControl() {
|
|
@@ -101616,6 +102120,7 @@
|
|
|
101616
102120
|
RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
|
|
101617
102121
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101618
102122
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
102123
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101619
102124
|
};
|
|
101620
102125
|
}
|
|
101621
102126
|
get cacheControl() {
|
|
@@ -101652,6 +102157,7 @@
|
|
|
101652
102157
|
DataConnectorType: new BaseObjectFieldDef(this.typeRegistry.StringValue, true),
|
|
101653
102158
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101654
102159
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
102160
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101655
102161
|
};
|
|
101656
102162
|
}
|
|
101657
102163
|
get cacheControl() {
|
|
@@ -101690,6 +102196,7 @@
|
|
|
101690
102196
|
RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
|
|
101691
102197
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101692
102198
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
102199
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101693
102200
|
};
|
|
101694
102201
|
}
|
|
101695
102202
|
get cacheControl() {
|
|
@@ -101788,6 +102295,7 @@
|
|
|
101788
102295
|
RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
|
|
101789
102296
|
AssetApiName: new BaseScalarFieldDef(true),
|
|
101790
102297
|
DloActiveStatus: new BaseScalarFieldDef(true),
|
|
102298
|
+
ReusedAssetStatus: new BaseScalarFieldDef(true),
|
|
101791
102299
|
};
|
|
101792
102300
|
}
|
|
101793
102301
|
get cacheControl() {
|
|
@@ -106370,6 +106878,11 @@
|
|
|
106370
106878
|
Object.entries(this.latestUsedRecordIdToWeakEtagMap).forEach(([recordId, oneStoreRecordWeakEtag]) => {
|
|
106371
106879
|
const normalizedLuvioRecord = this.services.luvioUiapiRecords.getNormalizedLuvioRecord(recordId, reader);
|
|
106372
106880
|
if (!normalizedLuvioRecord) {
|
|
106881
|
+
// A record that was present when this snapshot was read
|
|
106882
|
+
// is now absent from the Luvio store (e.g. evicted by a
|
|
106883
|
+
// uiRecordApi deleteRecord). Its disappearance changes the
|
|
106884
|
+
// result set, so treat it as a change and re-emit.
|
|
106885
|
+
dataChanged = true;
|
|
106373
106886
|
return;
|
|
106374
106887
|
}
|
|
106375
106888
|
const luvioRecordWeakEtag = normalizedLuvioRecord.weakEtag;
|
|
@@ -106818,7 +107331,7 @@
|
|
|
106818
107331
|
_(config, CONFIG_SCHEMA);
|
|
106819
107332
|
const baseCommand = new graphql_imperative_ctor(config, documentRootType, services);
|
|
106820
107333
|
return applyDecorators(baseCommand, [services.fetchNetworkCommandBaseClass.availableDecorators.abortable], options);
|
|
106821
|
-
},
|
|
107334
|
+
}, true);
|
|
106822
107335
|
graphql_imperative_legacy = services.graphQLLegacyImperativeBindings.bind(({ config, assertIsValid }) => {
|
|
106823
107336
|
const _ = assertIsValid;
|
|
106824
107337
|
_(config, CONFIG_SCHEMA);
|
|
@@ -106871,7 +107384,7 @@
|
|
|
106871
107384
|
cb(graphql_v1_import, graphql_imperative$1, graphql_imperative_legacy_v1_import, graphql_state_manager, useOneStoreGraphQL);
|
|
106872
107385
|
}
|
|
106873
107386
|
}
|
|
106874
|
-
// version: 1.428.0-
|
|
107387
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
106875
107388
|
|
|
106876
107389
|
function createFragmentMap(documentNode) {
|
|
106877
107390
|
const fragments = {};
|
|
@@ -110933,7 +111446,7 @@
|
|
|
110933
111446
|
}
|
|
110934
111447
|
|
|
110935
111448
|
const name$1k = 'Analytics__SemanticModel';
|
|
110936
|
-
const VERSION$1B = '
|
|
111449
|
+
const VERSION$1B = '0c41256ae05a32ed1af0deea45e4906e';
|
|
110937
111450
|
function keyBuilder$1p(luvio, path, data) {
|
|
110938
111451
|
return keyPrefix$1 + '::uiapi::' + name$1k + '::' + data.Id; // We're missing idNodeName in the actual key here...
|
|
110939
111452
|
}
|
|
@@ -111249,6 +111762,12 @@
|
|
|
111249
111762
|
typename: 'Boolean'
|
|
111250
111763
|
};
|
|
111251
111764
|
}
|
|
111765
|
+
case 'ReusedAssetStatus': {
|
|
111766
|
+
return {
|
|
111767
|
+
isArray: false,
|
|
111768
|
+
typename: 'String'
|
|
111769
|
+
};
|
|
111770
|
+
}
|
|
111252
111771
|
default:
|
|
111253
111772
|
return undefined;
|
|
111254
111773
|
}
|
|
@@ -111315,7 +111834,7 @@
|
|
|
111315
111834
|
}
|
|
111316
111835
|
|
|
111317
111836
|
const name$1j = 'Analytics__SemanticDefinition';
|
|
111318
|
-
const VERSION$1A = '
|
|
111837
|
+
const VERSION$1A = 'df1ed427fbc57558390ff0e3537f2290';
|
|
111319
111838
|
function keyBuilder$1o(luvio, path, data) {
|
|
111320
111839
|
return keyPrefix$1 + '::uiapi::' + name$1j + '::' + data.Id; // We're missing idNodeName in the actual key here...
|
|
111321
111840
|
}
|
|
@@ -111657,6 +112176,12 @@
|
|
|
111657
112176
|
typename: 'Boolean'
|
|
111658
112177
|
};
|
|
111659
112178
|
}
|
|
112179
|
+
case 'ReusedAssetStatus': {
|
|
112180
|
+
return {
|
|
112181
|
+
isArray: false,
|
|
112182
|
+
typename: 'String'
|
|
112183
|
+
};
|
|
112184
|
+
}
|
|
111660
112185
|
default:
|
|
111661
112186
|
return undefined;
|
|
111662
112187
|
}
|
|
@@ -111728,7 +112253,7 @@
|
|
|
111728
112253
|
}
|
|
111729
112254
|
|
|
111730
112255
|
const name$1i = 'Analytics__DominoTemplate';
|
|
111731
|
-
const VERSION$1z = '
|
|
112256
|
+
const VERSION$1z = 'fda433601cadf10ecc8a0de3d54052ee';
|
|
111732
112257
|
function keyBuilder$1n(luvio, path, data) {
|
|
111733
112258
|
return keyPrefix$1 + '::uiapi::' + name$1i + '::' + data.Id; // We're missing idNodeName in the actual key here...
|
|
111734
112259
|
}
|
|
@@ -112051,6 +112576,12 @@
|
|
|
112051
112576
|
typename: 'Boolean'
|
|
112052
112577
|
};
|
|
112053
112578
|
}
|
|
112579
|
+
case 'ReusedAssetStatus': {
|
|
112580
|
+
return {
|
|
112581
|
+
isArray: false,
|
|
112582
|
+
typename: 'String'
|
|
112583
|
+
};
|
|
112584
|
+
}
|
|
112054
112585
|
default:
|
|
112055
112586
|
return undefined;
|
|
112056
112587
|
}
|
|
@@ -112112,7 +112643,7 @@
|
|
|
112112
112643
|
}
|
|
112113
112644
|
|
|
112114
112645
|
const name$1h = 'Analytics__AnalyticsRepresentation';
|
|
112115
|
-
const VERSION$1y = '
|
|
112646
|
+
const VERSION$1y = 'b299cf324d3e10f682533db156b3db05';
|
|
112116
112647
|
function keyBuilder$1m(luvio, path, data) {
|
|
112117
112648
|
return keyPrefix$1 + '::uiapi::' + name$1h + '::' + data.Id; // We're missing idNodeName in the actual key here...
|
|
112118
112649
|
}
|
|
@@ -112413,6 +112944,12 @@
|
|
|
112413
112944
|
typename: 'Boolean'
|
|
112414
112945
|
};
|
|
112415
112946
|
}
|
|
112947
|
+
case 'ReusedAssetStatus': {
|
|
112948
|
+
return {
|
|
112949
|
+
isArray: false,
|
|
112950
|
+
typename: 'String'
|
|
112951
|
+
};
|
|
112952
|
+
}
|
|
112416
112953
|
default:
|
|
112417
112954
|
return undefined;
|
|
112418
112955
|
}
|
|
@@ -112474,7 +113011,7 @@
|
|
|
112474
113011
|
}
|
|
112475
113012
|
|
|
112476
113013
|
const name$1g = 'Analytics__MktDataConnector';
|
|
112477
|
-
const VERSION$1x = '
|
|
113014
|
+
const VERSION$1x = 'b0f45c68439021ded5640b5e3920ee2f';
|
|
112478
113015
|
function keyBuilder$1l(luvio, path, data) {
|
|
112479
113016
|
return keyPrefix$1 + '::uiapi::' + name$1g + '::' + data.Id; // We're missing idNodeName in the actual key here...
|
|
112480
113017
|
}
|
|
@@ -112786,6 +113323,12 @@
|
|
|
112786
113323
|
typename: 'Boolean'
|
|
112787
113324
|
};
|
|
112788
113325
|
}
|
|
113326
|
+
case 'ReusedAssetStatus': {
|
|
113327
|
+
return {
|
|
113328
|
+
isArray: false,
|
|
113329
|
+
typename: 'String'
|
|
113330
|
+
};
|
|
113331
|
+
}
|
|
112789
113332
|
default:
|
|
112790
113333
|
return undefined;
|
|
112791
113334
|
}
|
|
@@ -113023,6 +113566,12 @@
|
|
|
113023
113566
|
typename: 'Boolean'
|
|
113024
113567
|
};
|
|
113025
113568
|
}
|
|
113569
|
+
case 'ReusedAssetStatus': {
|
|
113570
|
+
return {
|
|
113571
|
+
isArray: false,
|
|
113572
|
+
typename: 'String'
|
|
113573
|
+
};
|
|
113574
|
+
}
|
|
113026
113575
|
default:
|
|
113027
113576
|
return undefined;
|
|
113028
113577
|
}
|
|
@@ -136108,7 +136657,7 @@
|
|
|
136108
136657
|
configuration: { ...configurationForGraphQLAdapters$1 },
|
|
136109
136658
|
instrument: instrument$1,
|
|
136110
136659
|
});
|
|
136111
|
-
// version: 1.428.0-
|
|
136660
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
136112
136661
|
|
|
136113
136662
|
// On core the unstable adapters are re-exported with different names,
|
|
136114
136663
|
// we want to match them here.
|
|
@@ -136260,7 +136809,7 @@
|
|
|
136260
136809
|
unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
|
|
136261
136810
|
graphQLImperative = ldsAdapter;
|
|
136262
136811
|
});
|
|
136263
|
-
// version: 1.428.0-
|
|
136812
|
+
// version: 1.428.0-dev21-133a7da4f5
|
|
136264
136813
|
|
|
136265
136814
|
var gqlApi = /*#__PURE__*/Object.freeze({
|
|
136266
136815
|
__proto__: null,
|
|
@@ -137059,7 +137608,7 @@
|
|
|
137059
137608
|
function register(r) {
|
|
137060
137609
|
callbacks$1.forEach((callback) => callback(r));
|
|
137061
137610
|
}
|
|
137062
|
-
// version: 1.428.0-
|
|
137611
|
+
// version: 1.428.0-dev21-c9faba50c9
|
|
137063
137612
|
|
|
137064
137613
|
/**
|
|
137065
137614
|
* Copyright (c) 2022, Salesforce, Inc.,
|
|
@@ -138396,4 +138945,4 @@
|
|
|
138396
138945
|
exports.subscribeToAdapter = subscribeToAdapter;
|
|
138397
138946
|
|
|
138398
138947
|
}));
|
|
138399
|
-
// version: 1.428.0-
|
|
138948
|
+
// version: 1.428.0-dev21-c9faba50c9
|