@salesforce/lds-worker-api 1.428.0-dev2 → 1.428.0-dev20

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.3-354dc58b
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-dev2-ad2109c7a1
4283
+ // version: 1.428.0-dev20-1b319a0432
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-dev2-ad2109c7a1
5327
+ // version: 1.428.0-dev20-1b319a0432
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.3-354dc58b
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-dev2-2d5e0a6e5f
32619
+ // version: 1.428.0-dev20-d72ac06681
32620
32620
 
32621
- var allowUpdatesForNonCachedRecords = {
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,322 @@
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
+ /** Content Document */
79761
+ const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
79762
+ const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
79763
+ /** Priming */
79764
+ const PRIMING_TOTAL_SESSION_COUNT = 'priming-total-session-count';
79765
+ const PRIMING_TOTAL_ERROR_COUNT = 'priming-total-error-count';
79766
+ const PRIMING_TOTAL_PRIMED_COUNT = 'priming-total-primed-count';
79767
+ const PRIMING_TOTAL_CONFLICT_COUNT = 'priming-total-conflict-count';
79768
+ // logs
79769
+ const GRAPHQL_QUERY_PARSE_ERROR = 'gql-query-parse-error';
79770
+ const GRAPHQL_SQL_EVAL_PRECONDITION_ERROR = 'gql-sql-pre-eval-error';
79771
+ const GRAPHQL_CREATE_SNAPSHOT_ERROR = 'gql-create-snapshot-error';
79772
+ const DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR = 'draft-aware-create-content-document-and-version-error';
79773
+ /** Garbage Collection */
79774
+ const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT = 'garbage-collection-aggressive-trim-count';
79775
+ const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED = 'garbage-collection-aggressive-trim-records-trimmed';
79776
+ const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM = 'garbage-collection-aggressive-trim-total-records-before-trim';
79777
+ const ldsMobileInstrumentation$2 = getInstrumentation();
79778
+ const nimbusLogger = typeof __nimbus !== 'undefined' &&
79779
+ __nimbus.plugins !== undefined &&
79780
+ __nimbus.plugins.JSLoggerPlugin !== undefined
79781
+ ? __nimbus.plugins.JSLoggerPlugin
79782
+ : undefined;
79783
+ function reportGraphqlQueryParseError(err) {
79784
+ const error = normalizeError$2(err);
79785
+ const errorCode = GRAPHQL_QUERY_PARSE_ERROR;
79786
+ // Metric
79787
+ reportGraphqlAdapterError(errorCode);
79788
+ // Log
79789
+ ldsMobileInstrumentation$2.error(error, errorCode);
79790
+ }
79791
+ function reportGraphqlSqlEvalPreconditionError(err) {
79792
+ const error = normalizeError$2(err);
79793
+ const errorCode = GRAPHQL_SQL_EVAL_PRECONDITION_ERROR;
79794
+ // Metric
79795
+ reportGraphqlAdapterError(errorCode);
79796
+ // Log
79797
+ ldsMobileInstrumentation$2.error(error, errorCode);
79798
+ }
79799
+ function reportGraphqlCreateSnapshotError(err) {
79800
+ const error = normalizeError$2(err);
79801
+ const errorCode = GRAPHQL_CREATE_SNAPSHOT_ERROR;
79802
+ // Metric
79803
+ reportGraphqlAdapterError(errorCode);
79804
+ // Log
79805
+ ldsMobileInstrumentation$2.error(error, errorCode);
79806
+ }
79807
+ function reportGraphQlEvalDbReadDuration(duration) {
79808
+ ldsMobileInstrumentation$2.trackValue(GRAPHQL_EVAL_DB_READ_DURATION, duration);
79809
+ }
79810
+ function reportGraphqlAdapterError(errorCode) {
79811
+ // Increment overall count with errorCode as tag
79812
+ ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_EVAL_ERROR, 1, true, { errorCode });
79813
+ }
79814
+ function reportGraphqlQueryInstrumentation(data) {
79815
+ const queryBuckets = [1, 2, 3, 4, 5, 10, 20, 50, 100];
79816
+ const recordBuckets = [
79817
+ 1, 5, 10, 20, 50, 100, 1000, 2000, 5000, 10000, 50000, 100000, 1000000,
79818
+ ];
79819
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_ROOT_QUERY_COUNT, data.rootQueryCount, queryBuckets);
79820
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_TOTAL_QUERY_COUNT, data.totalQueryCount, queryBuckets);
79821
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
79822
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
79823
+ }
79824
+ function incrementGraphQLRefreshUndfined() {
79825
+ ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
79826
+ }
79827
+ function reportDraftActionEvent(state, draftCount, message) {
79828
+ if (nimbusLogger) {
79829
+ nimbusLogger.logInfo(`Draft action event: ${state}, depth: ${draftCount}${message ? `, message: ${message}` : ''}`);
79830
+ }
79831
+ switch (state) {
79832
+ case 'added':
79833
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_ADDED);
79834
+ break;
79835
+ case 'uploading':
79836
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOADING);
79837
+ break;
79838
+ case 'completed':
79839
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_COMPLETED);
79840
+ break;
79841
+ case 'deleted':
79842
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_DELETED);
79843
+ break;
79844
+ case 'failed':
79845
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_FAILED, 1, true);
79846
+ break;
79847
+ case 'updated':
79848
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPDATED);
79849
+ break;
79850
+ }
79851
+ }
79852
+ /**
79853
+ * Reports an exception thrown while uploading a draft action. The thrown error is
79854
+ * otherwise swallowed by the upload handler's retry path, leaving the failure
79855
+ * invisible in telemetry; this surfaces it to o11y (log + counter) so a deterministic
79856
+ * upload failure can be diagnosed instead of silently retried forever.
79857
+ *
79858
+ * PII: the device log line carries only the handler id, retry attempt, and the error
79859
+ * NAME (e.g. "TypeError") — never the free-text error message, which can embed record
79860
+ * ids (URL path segments) or server field-validation strings. The full normalized error
79861
+ * (message + stack) is handed only to `ldsMobileInstrumentation.error`, the structured
79862
+ * o11y error pipeline responsible for scrubbing/handling that detail. Also does NOT log
79863
+ * the action's targetId/tag or any request body/field values.
79864
+ */
79865
+ function reportDraftActionUploadError(error, handlerId, attempt) {
79866
+ const normalized = normalizeError$2(error);
79867
+ if (nimbusLogger) {
79868
+ nimbusLogger.logError(`Draft action upload error: handler=${handlerId}, attempt=${attempt}, name=${normalized.name}`);
79869
+ }
79870
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOAD_ERROR, 1, true, {
79871
+ handlerId,
79872
+ });
79873
+ ldsMobileInstrumentation$2.error(normalized, DRAFT_QUEUE_ACTION_UPLOAD_ERROR);
79874
+ }
79875
+ function reportDraftQueueState(state, draftCount) {
79876
+ if (nimbusLogger) {
79877
+ nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
79878
+ }
79879
+ switch (state) {
79880
+ case 'started':
79881
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STARTED);
79882
+ break;
79883
+ case 'error':
79884
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_ERROR, 1, true);
79885
+ break;
79886
+ case 'waiting':
79887
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_WAITING);
79888
+ break;
79889
+ case 'stopped':
79890
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STOPPED);
79891
+ break;
79892
+ }
79893
+ }
79894
+ function reportDraftAwareContentDocumentVersionSynthesizeError(err) {
79895
+ let error;
79896
+ if (err.body !== undefined) {
79897
+ error = err.body;
79898
+ }
79899
+ else {
79900
+ error = normalizeError$2(err);
79901
+ }
79902
+ const errorCode = DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR;
79903
+ const errorType = error.errorType;
79904
+ const tags = {
79905
+ errorCode,
79906
+ };
79907
+ if (errorType !== undefined) {
79908
+ tags.errorType = errorType;
79909
+ }
79910
+ // Metric
79911
+ ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR, 1, true, tags);
79912
+ // Log
79913
+ ldsMobileInstrumentation$2.error(error, errorCode);
79914
+ }
79915
+ function reportDraftAwareContentVersionSynthesizeCalls(mimeType) {
79916
+ ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS, 1, undefined, { mimeType });
79917
+ }
79918
+ /** Priming */
79919
+ function reportPrimingSessionCreated() {
79920
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_SESSION_COUNT, 1, undefined, {});
79921
+ }
79922
+ function reportPrimingError(errorType, recordCount) {
79923
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_ERROR_COUNT, recordCount, undefined, {
79924
+ errorType,
79925
+ });
79926
+ }
79927
+ function reportPrimingSuccess(recordCount) {
79928
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_PRIMED_COUNT, recordCount, undefined);
79929
+ }
79930
+ function reportPrimingConflict(resolutionType, recordCount) {
79931
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_CONFLICT_COUNT, recordCount, undefined, {
79932
+ resolutionType,
79933
+ });
79934
+ }
79935
+ /** Network */
79936
+ function reportChunkCandidateUrlLength(urlLength) {
79937
+ const buckets = [8000, 10000, 12000, 14000, 16000];
79938
+ ldsMobileInstrumentation$2.bucketValue('chunk-candidate-url-length-histogram', urlLength, buckets);
79939
+ }
79940
+ /** Garbage Collection */
79941
+ function reportAggressiveTrimTriggered(trimCount, beforeTrimRecordCount, totalRecordsTrimmed) {
79942
+ ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT, trimCount);
79943
+ ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM, beforeTrimRecordCount);
79944
+ ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED, totalRecordsTrimmed);
79945
+ }
79946
+ /** One Store Cache Purge */
79947
+ const ONESTORE_CACHE_PURGING_RECORDS_PURGED = 'onestore-cache-purging-records-purged';
79948
+ const ONESTORE_CACHE_PURGING_RECORDS_ERROR = 'onestore-cache-purging-records-error';
79949
+ function reportOneStoreRecordsPurgedFromCache(recordsPurged) {
79950
+ ldsMobileInstrumentation$2.trackValue(ONESTORE_CACHE_PURGING_RECORDS_PURGED, recordsPurged);
79951
+ }
79952
+ function reportOneStoreCachePurgingError(error) {
79953
+ const errorMessage = normalizeError$2(error);
79954
+ ldsMobileInstrumentation$2.error(errorMessage, ONESTORE_CACHE_PURGING_RECORDS_ERROR);
79955
+ }
79956
+
79612
79957
  const HTTP_HEADER_RETRY_AFTER = 'Retry-After';
79613
79958
  const HTTP_HEADER_IDEMPOTENCY_KEY = 'Idempotency-Key';
79614
79959
  const ERROR_CODE_IDEMPOTENCY_FEATURE_NOT_ENABLED = 'IDEMPOTENCY_FEATURE_NOT_ENABLED';
@@ -79697,6 +80042,14 @@
79697
80042
  if (request && request.headers && request.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
79698
80043
  const status = response.status;
79699
80044
  switch (status) {
80045
+ case 0 /* IdempotentWriteSpecificHttpStatusCode.NoResponse */:
80046
+ // statusCode 0 = the client sent the request but received no response
80047
+ // (connection dropped / app suspended in flight). The write may already
80048
+ // have committed at the origin, so we MUST retry with the SAME idempotency
80049
+ // key and let the server dedupe — rotating the key here would duplicate an
80050
+ // already-committed record.
80051
+ shouldRetry = true;
80052
+ break;
79700
80053
  case 408 /* IdempotentWriteSpecificHttpStatusCode.RequestTimeout */:
79701
80054
  case 503 /* IdempotentWriteSpecificHttpStatusCode.ServiceUnavailable */:
79702
80055
  retryDelayInMs = getRetryAfterInMs(response.headers);
@@ -79743,11 +80096,33 @@
79743
80096
  }
79744
80097
  }
79745
80098
  }
80099
+ // A generic 400 that none of the idempotency-specific branches above claimed
80100
+ // (shouldRetry still false) and that is not a backdating collision. @W-23445154
79746
80101
  if (response.status === HttpStatusCode$2.BadRequest &&
80102
+ !shouldRetry &&
79747
80103
  this.hasIdempotencySupport() &&
79748
- updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined) {
79749
- updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
79750
- actionDataChanged = true;
80104
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined &&
80105
+ !this.isBackdatingError(response.body, action)) {
80106
+ if (!preserveIdempotencyKeyOn400Gate.isOpen({ fallback: false })) {
80107
+ // Gate CLOSED (default) — legacy behavior: rotate the key and let the draft
80108
+ // error (shouldRetry stays false). Retained as the default until the fix is
80109
+ // enabled; this is the path that duplicated already-committed writes.
80110
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80111
+ actionDataChanged = true;
80112
+ }
80113
+ else if (!this.isServerGeneratedError(response.body)) {
80114
+ // Gate OPEN — the fix: only an edge/gateway-injected 400 (no recognizable
80115
+ // server error body) is retried with the SAME key, so the server can dedupe a
80116
+ // write that may already have committed at the origin. A real, server-generated
80117
+ // 400 (UiApiError[] or an enhancedErrorType body, e.g. a field-validation
80118
+ // failure) falls through to the error path below: retrying it unchanged would
80119
+ // only be rejected again, so the draft is errored for the user to fix or discard
80120
+ // — the same terminal outcome as the legacy path, minus the duplicating key
80121
+ // rotation. The key is only ever rotated by the recognized idempotency error
80122
+ // codes above, by a backdating collision (new body), or when the user edits an
80123
+ // errored draft (mergeActions/handleReplaceAction).
80124
+ shouldRetry = true;
80125
+ }
79751
80126
  }
79752
80127
  if (response.status === HttpStatusCode$2.BadRequest &&
79753
80128
  this.isBackdatingError(response.body, action)) {
@@ -79756,23 +80131,101 @@
79756
80131
  ...updatedAction.data.body.fields,
79757
80132
  LastModifiedDate: new Date(updatedAction.timestamp).toISOString(),
79758
80133
  };
80134
+ // The record content changed (LastModifiedDate is bumped), so this is a NEW
80135
+ // logical write. Rotate the idempotency key so the server treats it as such
80136
+ // rather than deduping it against the stale, pre-backdate request. This is a
80137
+ // legitimate rotation — the request body is modified — unlike the generic-400
80138
+ // fallback above which must preserve the key when the fix is enabled. @W-23445154
80139
+ if (this.hasIdempotencySupport() &&
80140
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined) {
80141
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80142
+ }
79759
80143
  shouldRetry = true;
79760
80144
  actionDataChanged = true;
79761
80145
  }
79762
- await actionErrored(shouldRetry
79763
- ? updatedAction
79764
- : {
80146
+ if (shouldRetry) {
80147
+ // Funnel the retry through the cap: when the gate is open this persists
80148
+ // the attempt count and errors out once the cap is hit; when the gate is
80149
+ // closed it behaves exactly as before. The non-ok response is the failure
80150
+ // that would otherwise be retried.
80151
+ await this.retryOrCap(updatedAction, response, actionErrored, retryDelayInMs, actionDataChanged);
80152
+ }
80153
+ else {
80154
+ await actionErrored({
79765
80155
  ...updatedAction,
79766
80156
  error: response,
79767
80157
  status: DraftActionStatus.Error,
79768
- }, shouldRetry, retryDelayInMs, actionDataChanged);
80158
+ }, false, retryDelayInMs, actionDataChanged);
80159
+ }
79769
80160
  return ProcessActionResult.ACTION_ERRORED;
79770
80161
  }
79771
80162
  catch (e) {
79772
- await actionErrored(action, true);
80163
+ // #3 (ungated): the thrown exception is otherwise swallowed here, leaving a
80164
+ // deterministic upload failure invisible in telemetry. Surface it to o11y
80165
+ // before deciding whether to retry.
80166
+ const error = normalizeError$1(e);
80167
+ const attempt = this.getUploadRetryCount(action) + 1;
80168
+ reportDraftActionUploadError(error, this.handlerId, attempt);
80169
+ await this.retryOrCap(action, error, actionErrored);
79773
80170
  return ProcessActionResult.NETWORK_ERROR;
79774
80171
  }
79775
80172
  }
80173
+ /**
80174
+ * Reads the persisted upload retry-attempt count from the action's durable metadata
80175
+ * bag. The count lives in metadata (rather than in-memory) so it survives app
80176
+ * restarts and queue re-creation — the failure modes that let the unbounded retry
80177
+ * loop run for days.
80178
+ */
80179
+ getUploadRetryCount(action) {
80180
+ const parsed = Number(action.metadata?.[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]);
80181
+ // Guard against a missing/corrupt persisted value: a NaN, fractional, or negative
80182
+ // count must never weaken the cap. Floor to a non-negative integer, defaulting to 0.
80183
+ if (!Number.isFinite(parsed) || parsed < 0) {
80184
+ return 0;
80185
+ }
80186
+ return Math.floor(parsed);
80187
+ }
80188
+ /**
80189
+ * Enforces the upload retry-attempt cap around the queue's `actionErrored` callback.
80190
+ * Both retry paths — a retryable HTTP error and a thrown exception — funnel through
80191
+ * here.
80192
+ *
80193
+ * The entire cap behavior is gated behind `lmr.draft-queue-max-retry-attempts`. When
80194
+ * the gate is CLOSED this is a transparent passthrough: it issues the same
80195
+ * `actionErrored(action, true, ...)` retry the queue made before this change, and
80196
+ * writes no extra metadata. When the gate is OPEN it persists an incremented attempt
80197
+ * count to the action's durable metadata and, once the action has failed
80198
+ * {@link MAX_RETRY_ATTEMPTS} times, transitions it to Error (carrying a
80199
+ * FetchResponse-shaped error that names the failure that exhausted the retries)
80200
+ * instead of scheduling yet another retry.
80201
+ */
80202
+ async retryOrCap(action, lastFailure, actionErrored, retryDelayInMs, actionDataChanged) {
80203
+ if (!draftQueueMaxRetryAttemptsGate.isOpen({ fallback: false })) {
80204
+ // Gate closed: preserve the pre-existing unbounded-retry behavior exactly.
80205
+ await actionErrored(action, true, retryDelayInMs, actionDataChanged);
80206
+ return;
80207
+ }
80208
+ const attempt = this.getUploadRetryCount(action) + 1;
80209
+ if (attempt >= MAX_RETRY_ATTEMPTS) {
80210
+ await actionErrored({
80211
+ ...action,
80212
+ error: buildMaxRetryError(lastFailure),
80213
+ status: DraftActionStatus.Error,
80214
+ }, false);
80215
+ return;
80216
+ }
80217
+ // Persist the incremented attempt count so it survives restarts. Forcing
80218
+ // actionDataChanged ensures the queue writes the updated metadata before the
80219
+ // action is rescheduled for retry.
80220
+ const retryingAction = {
80221
+ ...action,
80222
+ metadata: {
80223
+ ...action.metadata,
80224
+ [DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]: String(attempt),
80225
+ },
80226
+ };
80227
+ await actionErrored(retryingAction, true, retryDelayInMs, true);
80228
+ }
79776
80229
  async handleActionEnqueued(action) {
79777
80230
  const impactedKeys = await this.recordService.setSideEffectsForActions([action]);
79778
80231
  await this.recordService.reapplyRecordSideEffects(impactedKeys);
@@ -79936,6 +80389,13 @@
79936
80389
  this.isActionOfType(sourceAction)) {
79937
80390
  targetAction.status = DraftActionStatus.Pending;
79938
80391
  targetAction.data = sourceAction.data;
80392
+ // Replacing an action's data re-queues it as a fresh upload, so the persisted
80393
+ // upload retry-attempt count must not carry over — otherwise a previously-
80394
+ // throttled action could immediately re-hit the cap on its first new attempt.
80395
+ // (Mirrors the same clear in mergeActions.)
80396
+ if (targetAction.metadata !== undefined) {
80397
+ delete targetAction.metadata[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY];
80398
+ }
79939
80399
  return targetAction;
79940
80400
  }
79941
80401
  else {
@@ -79975,6 +80435,11 @@
79975
80435
  }
79976
80436
  // overlay metadata
79977
80437
  merged.metadata = { ...targetMetadata, ...sourceMetadata };
80438
+ // A merge folds new user data into the action and re-queues it as a fresh upload,
80439
+ // so the persisted upload retry-attempt count must not carry over — otherwise a
80440
+ // previously-throttled action could immediately re-hit the cap on its first new
80441
+ // attempt.
80442
+ delete merged.metadata[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY];
79978
80443
  // put status back to pending to auto upload if queue is active and targed is at the head.
79979
80444
  merged.status = DraftActionStatus.Pending;
79980
80445
  return merged;
@@ -80009,8 +80474,36 @@
80009
80474
  isUiApiErrors(body) {
80010
80475
  return body !== undefined && isArray$3$1(body) && body.length > 0 && body[0].errorCode;
80011
80476
  }
80477
+ // Distinguishes a real, server-generated 400 from an edge/gateway-injected one.
80478
+ //
80479
+ // A 400 the origin (UiApi/APREST) actually produced carries a structured error body:
80480
+ // either a `UiApiError[]` (see isUiApiErrors) or an enhanced-error object tagged with
80481
+ // `enhancedErrorType` (e.g. 'RecordError' for field-validation failures). These describe
80482
+ // a request the server understood and deliberately rejected — retrying it unchanged would
80483
+ // just be rejected again, so the draft must be errored for the user to fix or discard.
80484
+ //
80485
+ // An edge/gateway-injected 400 (the duplicate-record incident, @W-23445154) has NO such
80486
+ // body — it's a tiny generic error page ({ message: 'Bad Request' }), a plain string, or
80487
+ // empty — and is returned on a request that may already have committed at the origin.
80488
+ // Only those should be retried with the same idempotency key so the server can dedupe.
80489
+ isServerGeneratedError(body) {
80490
+ if (this.isUiApiErrors(body)) {
80491
+ return true;
80492
+ }
80493
+ // enhancedErrorType is the origin's marker for a structured record error (field
80494
+ // validation, backdating collision, etc.). Guard the deref so a string/undefined
80495
+ // edge body doesn't throw.
80496
+ return (body !== null &&
80497
+ typeof body === 'object' &&
80498
+ body.enhancedErrorType !== undefined);
80499
+ }
80012
80500
  isBackdatingError(body, action) {
80013
- if (body.enhancedErrorType &&
80501
+ if (
80502
+ // An edge/gateway-injected 400 can carry an empty, string, or missing body; guard
80503
+ // the deref so classifying such a response never throws. @W-23445154
80504
+ body !== null &&
80505
+ typeof body === 'object' &&
80506
+ body.enhancedErrorType &&
80014
80507
  body.enhancedErrorType === 'RecordError' &&
80015
80508
  body.output &&
80016
80509
  body.output.errors &&
@@ -80585,229 +81078,6 @@
80585
81078
  }
80586
81079
  }
80587
81080
 
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
81081
  const QUICK_ACTION_HANDLER = 'QUICK_ACTION_HANDLER';
80812
81082
  class QuickActionExecutionRepresentationHandler extends AbstractQuickActionHandler {
80813
81083
  constructor(getLuvio, draftRecordService, draftQueue, networkAdapter, isDraftId, sideEffectService, objectInfoService, getRecord) {
@@ -85514,7 +85784,7 @@
85514
85784
  return Boolean(interfaces.find((iface) => iface.name === 'Record'));
85515
85785
  }
85516
85786
 
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}";
85787
+ 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
85788
 
85519
85789
  // Define additional schema that is missing from uiapi that we use in local evaluation
85520
85790
  const additionalSchemaDefinitions = /* GraphQL */ `
@@ -89429,7 +89699,7 @@
89429
89699
  return operation()
89430
89700
  .catch((err) => {
89431
89701
  hasError = true;
89432
- const error = normalizeError$1(err);
89702
+ const error = normalizeError$2(err);
89433
89703
  tags['errorMessage'] = error.message;
89434
89704
  if (logError) {
89435
89705
  ldsMobileInstrumentation$2.error(error);
@@ -95118,14 +95388,27 @@
95118
95388
  constructor(services) {
95119
95389
  super(services);
95120
95390
  this.services = services;
95391
+ this.additionalNullResponses = [];
95121
95392
  }
95122
- fetch() {
95393
+ fetch(contextSeed) {
95123
95394
  try {
95124
- return this.convertFetchResponseToData(this.services.fetch(...this.fetchParams));
95395
+ const [input, init] = this.fetchParams;
95396
+ const initWithSeed = contextSeed === void 0 ? init : { ...init, __contextSeed: contextSeed };
95397
+ const fetchCall = initWithSeed === void 0 ? this.services.fetch(input) : this.services.fetch(input, initWithSeed);
95398
+ return this.convertFetchResponseToData(fetchCall);
95125
95399
  } catch (reason) {
95126
95400
  return resolvedPromiseLike$2(err$1(toError(reason)));
95127
95401
  }
95128
95402
  }
95403
+ isSemanticNullResponse(response) {
95404
+ return this.additionalNullResponses.includes(response.status);
95405
+ }
95406
+ isProtocolNoBodyStatus(status) {
95407
+ return status === 204 || status === 205;
95408
+ }
95409
+ isUndeclaredNoBodyResponse(response) {
95410
+ return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
95411
+ }
95129
95412
  async coerceError(errorResponse) {
95130
95413
  return toError(errorResponse.statusText);
95131
95414
  }
@@ -95133,10 +95416,24 @@
95133
95416
  return response.then(
95134
95417
  (response2) => {
95135
95418
  if (response2.ok) {
95136
- return response2.json().then(
95137
- (json) => ok$1(json),
95138
- (reason) => err$1(toError(reason))
95139
- ).finally(() => {
95419
+ let resultPromise;
95420
+ if (this.isSemanticNullResponse(response2)) {
95421
+ resultPromise = Promise.resolve(ok$1(null));
95422
+ } else if (this.isUndeclaredNoBodyResponse(response2)) {
95423
+ resultPromise = Promise.resolve(
95424
+ err$1(
95425
+ toError(
95426
+ `Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
95427
+ )
95428
+ )
95429
+ );
95430
+ } else {
95431
+ resultPromise = response2.json().then(
95432
+ (json) => ok$1(json),
95433
+ (reason) => err$1(toError(reason))
95434
+ );
95435
+ }
95436
+ return resultPromise.finally(() => {
95140
95437
  try {
95141
95438
  this.afterRequestHooks({ statusCode: response2.status });
95142
95439
  } catch {
@@ -95183,6 +95480,7 @@
95183
95480
  constructor(services) {
95184
95481
  super(services);
95185
95482
  this.services = services;
95483
+ this.additionalNullResponses = [];
95186
95484
  }
95187
95485
  requestFromNetwork() {
95188
95486
  return this.fetch();
@@ -95194,6 +95492,15 @@
95194
95492
  return resolvedPromiseLike$2(err$1(toError(reason)));
95195
95493
  }
95196
95494
  }
95495
+ isSemanticNullResponse(response) {
95496
+ return this.additionalNullResponses.includes(response.status);
95497
+ }
95498
+ isProtocolNoBodyStatus(status) {
95499
+ return status === 204 || status === 205;
95500
+ }
95501
+ isUndeclaredNoBodyResponse(response) {
95502
+ return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
95503
+ }
95197
95504
  async coerceError(errorResponse) {
95198
95505
  return toError(errorResponse.statusText);
95199
95506
  }
@@ -95204,12 +95511,26 @@
95204
95511
  return response.then(
95205
95512
  (response2) => {
95206
95513
  if (response2.ok) {
95207
- return response2.json().then(
95208
- (json) => {
95209
- return this.processFetchReturnValue(json);
95210
- },
95211
- (reason) => err$1(toError(reason))
95212
- ).finally(() => {
95514
+ let resultPromise;
95515
+ if (this.isSemanticNullResponse(response2)) {
95516
+ resultPromise = Promise.resolve(ok$1(null));
95517
+ } else if (this.isUndeclaredNoBodyResponse(response2)) {
95518
+ resultPromise = Promise.resolve(
95519
+ err$1(
95520
+ toError(
95521
+ `Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
95522
+ )
95523
+ )
95524
+ );
95525
+ } else {
95526
+ resultPromise = response2.json().then(
95527
+ (json) => {
95528
+ return this.processFetchReturnValue(json);
95529
+ },
95530
+ (reason) => err$1(toError(reason))
95531
+ );
95532
+ }
95533
+ return resultPromise.finally(() => {
95213
95534
  try {
95214
95535
  this.afterRequestHooks({ statusCode: response2.status });
95215
95536
  } catch {
@@ -96197,7 +96518,7 @@
96197
96518
  },
96198
96519
  };
96199
96520
  }
96200
- // version: 1.428.0-dev2-2d5e0a6e5f
96521
+ // version: 1.428.0-dev20-d72ac06681
96201
96522
 
96202
96523
  /**
96203
96524
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -96223,7 +96544,7 @@
96223
96544
  },
96224
96545
  };
96225
96546
  }
96226
- // version: 1.428.0-dev2-2d5e0a6e5f
96547
+ // version: 1.428.0-dev20-d72ac06681
96227
96548
 
96228
96549
  /*!
96229
96550
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -96708,6 +97029,9 @@
96708
97029
  return err$1([error]);
96709
97030
  }
96710
97031
  function validateJsonSchema$1(data, schema, path = "$", document = schema) {
97032
+ return validateJsonSchemaInternal$1(data, schema, path, document, /* @__PURE__ */ new Map());
97033
+ }
97034
+ function validateJsonSchemaInternal$1(data, schema, path, document, visited) {
96711
97035
  if (schema === true) return validSchemaResponse$1();
96712
97036
  if (schema === false)
96713
97037
  return invalidSchemaResponseWithError$1(
@@ -96716,22 +97040,22 @@
96716
97040
  const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
96717
97041
  const errorCollector = new JsonSchemaErrorCollector$1();
96718
97042
  if ("anyOf" in schema) {
96719
- errorCollector.append(validateAnyOf$1(data, schema, path, document));
97043
+ errorCollector.append(validateAnyOf$1(data, schema, path, document, visited));
96720
97044
  } else if ("oneOf" in schema) {
96721
- errorCollector.append(validateOneOf$1(data, schema, path, document));
97045
+ errorCollector.append(validateOneOf$1(data, schema, path, document, visited));
96722
97046
  } else if ("allOf" in schema) {
96723
- errorCollector.append(validateAllOf$1(data, schema, path, document));
97047
+ errorCollector.append(validateAllOf$1(data, schema, path, document, visited));
96724
97048
  } else if ("not" in schema) {
96725
- errorCollector.append(validateNot$1(data, schema, path, document));
97049
+ errorCollector.append(validateNot$1(data, schema, path, document, visited));
96726
97050
  } else if ("$ref" in schema) {
96727
- errorCollector.append(validateRef$1(data, schema, path, document));
97051
+ errorCollector.append(validateRef$1(data, schema, path, document, visited));
96728
97052
  } else if ("type" in schema) {
96729
97053
  if (schema.type === "object") {
96730
97054
  if (dataType !== "object") {
96731
97055
  errorCollector.add(incorrectTypeError$1("object", dataType, path));
96732
97056
  } else {
96733
97057
  errorCollector.append(
96734
- validateObject$1(data, schema, path, document)
97058
+ validateObject$1(data, schema, path, document, visited)
96735
97059
  );
96736
97060
  }
96737
97061
  } else if (schema.type === "array") {
@@ -96739,7 +97063,7 @@
96739
97063
  errorCollector.add(incorrectTypeError$1("array", dataType, path));
96740
97064
  } else {
96741
97065
  errorCollector.append(
96742
- validateArray$1(data, schema, path, document)
97066
+ validateArray$1(data, schema, path, document, visited)
96743
97067
  );
96744
97068
  }
96745
97069
  } else {
@@ -96756,16 +97080,17 @@
96756
97080
  }
96757
97081
  return errorCollector.toValidationResponse();
96758
97082
  }
96759
- function validateAnyOf$1(data, schema, path, document) {
97083
+ function validateAnyOf$1(data, schema, path, document, visited) {
96760
97084
  let isValid = false;
96761
97085
  const errorCollector = new JsonSchemaErrorCollector$1();
96762
97086
  for (let i = 0, { length } = schema.anyOf; i < length; i++) {
96763
97087
  const element = schema.anyOf[i];
96764
- const validationResponse = validateJsonSchema$1(
97088
+ const validationResponse = validateJsonSchemaInternal$1(
96765
97089
  data,
96766
97090
  element,
96767
97091
  `${path}.anyOf[${i}]`,
96768
- document
97092
+ document,
97093
+ visited
96769
97094
  );
96770
97095
  if (validationResponse.isOk()) {
96771
97096
  isValid = true;
@@ -96782,13 +97107,22 @@
96782
97107
  }
96783
97108
  return validSchemaResponse$1();
96784
97109
  }
96785
- function validateOneOf$1(data, schema, path, document) {
97110
+ function validateOneOf$1(data, schema, path, document, visited) {
97111
+ if (schema.discriminator !== void 0) {
97112
+ return validateDiscriminatedOneOf$1(data, schema.discriminator, path, document, visited);
97113
+ }
96786
97114
  let validSubShemaPaths = [];
96787
97115
  const errorCollector = new JsonSchemaErrorCollector$1();
96788
97116
  for (let i = 0, { length } = schema.oneOf; i < length; i++) {
96789
97117
  const element = schema.oneOf[i];
96790
97118
  const oneOfPath = `${path}.oneOf[${i}]`;
96791
- const validationResponse = validateJsonSchema$1(data, element, oneOfPath, document);
97119
+ const validationResponse = validateJsonSchemaInternal$1(
97120
+ data,
97121
+ element,
97122
+ oneOfPath,
97123
+ document,
97124
+ visited
97125
+ );
96792
97126
  if (validationResponse.isOk()) {
96793
97127
  validSubShemaPaths.push(oneOfPath);
96794
97128
  } else {
@@ -96810,16 +97144,45 @@
96810
97144
  }
96811
97145
  return validSchemaResponse$1();
96812
97146
  }
96813
- function validateAllOf$1(data, schema, path, document) {
97147
+ function validateDiscriminatedOneOf$1(data, discriminator, path, document, visited) {
97148
+ if (data === null || typeof data !== "object" || Array.isArray(data)) {
97149
+ return invalidSchemaResponseWithError$1(incorrectTypeError$1("object", typeof data, path));
97150
+ }
97151
+ const { propertyName, mapping } = discriminator;
97152
+ const discriminatorValue = data[propertyName];
97153
+ if (discriminatorValue === void 0) {
97154
+ return invalidSchemaResponseWithError$1(
97155
+ new MissingRequiredPropertyError$1(
97156
+ `Object at path '${path}' is missing required discriminator property '${propertyName}'.`
97157
+ )
97158
+ );
97159
+ }
97160
+ if (typeof discriminatorValue !== "string") {
97161
+ return invalidSchemaResponseWithError$1(
97162
+ incorrectTypeError$1("string", typeof discriminatorValue, `${path}.${propertyName}`)
97163
+ );
97164
+ }
97165
+ const targetRef = mapping[discriminatorValue];
97166
+ if (targetRef === void 0) {
97167
+ return invalidSchemaResponseWithError$1(
97168
+ new JsonSchemaViolationError$1(
97169
+ `Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
97170
+ )
97171
+ );
97172
+ }
97173
+ return validateJsonSchemaInternal$1(data, { $ref: targetRef }, path, document, visited);
97174
+ }
97175
+ function validateAllOf$1(data, schema, path, document, visited) {
96814
97176
  let isValid = true;
96815
97177
  const errorCollector = new JsonSchemaErrorCollector$1();
96816
97178
  for (let i = 0, { length } = schema.allOf; i < length; i++) {
96817
97179
  const element = schema.allOf[i];
96818
- const validationResponse = validateJsonSchema$1(
97180
+ const validationResponse = validateJsonSchemaInternal$1(
96819
97181
  data,
96820
97182
  element,
96821
97183
  `${path}.allOf[${i}]`,
96822
- document
97184
+ document,
97185
+ visited
96823
97186
  );
96824
97187
  if (!validationResponse.isOk()) {
96825
97188
  errorCollector.append(validationResponse);
@@ -96833,8 +97196,14 @@
96833
97196
  }
96834
97197
  return errorCollector.toValidationResponse();
96835
97198
  }
96836
- function validateNot$1(data, schema, path, document) {
96837
- const validationResponse = validateJsonSchema$1(data, schema.not, path, document);
97199
+ function validateNot$1(data, schema, path, document, visited) {
97200
+ const validationResponse = validateJsonSchemaInternal$1(
97201
+ data,
97202
+ schema.not,
97203
+ path,
97204
+ document,
97205
+ visited
97206
+ );
96838
97207
  if (validationResponse.isOk()) {
96839
97208
  return invalidSchemaResponseWithError$1(
96840
97209
  new JsonSchemaViolationError$1(
@@ -96844,7 +97213,7 @@
96844
97213
  }
96845
97214
  return validSchemaResponse$1();
96846
97215
  }
96847
- function validateObject$1(data, schema, path, document) {
97216
+ function validateObject$1(data, schema, path, document, visited) {
96848
97217
  const schemaKeys = Object.keys(schema.properties);
96849
97218
  const requiredKeys = new Set(schema.required);
96850
97219
  const schemaKeySet = new Set(schemaKeys);
@@ -96852,11 +97221,12 @@
96852
97221
  Object.keys(data).forEach((key) => {
96853
97222
  if (!schemaKeySet.has(key)) {
96854
97223
  errorCollector.append(
96855
- validateJsonSchema$1(
97224
+ validateJsonSchemaInternal$1(
96856
97225
  data[key],
96857
97226
  schema.additionalProperties,
96858
97227
  `${path}.additionalProperties[${key}]`,
96859
- document
97228
+ document,
97229
+ visited
96860
97230
  )
96861
97231
  );
96862
97232
  }
@@ -96873,18 +97243,19 @@
96873
97243
  }
96874
97244
  if (keyInData) {
96875
97245
  errorCollector.append(
96876
- validateJsonSchema$1(
97246
+ validateJsonSchemaInternal$1(
96877
97247
  data[key],
96878
97248
  schema.properties[key],
96879
97249
  `${path}.${key}`,
96880
- document
97250
+ document,
97251
+ visited
96881
97252
  )
96882
97253
  );
96883
97254
  }
96884
97255
  }
96885
97256
  return errorCollector.toValidationResponse();
96886
97257
  }
96887
- function validateArray$1(data, schema, path, document) {
97258
+ function validateArray$1(data, schema, path, document, visited) {
96888
97259
  if (schema.minItems !== void 0 && data.length < schema.minItems) {
96889
97260
  return invalidSchemaResponseWithError$1(
96890
97261
  new MinItemsViolationError$1(
@@ -96902,7 +97273,13 @@
96902
97273
  const errorCollector = new JsonSchemaErrorCollector$1();
96903
97274
  data.forEach(
96904
97275
  (element, index) => errorCollector.append(
96905
- validateJsonSchema$1(element, schema.items, `${path}[${index}]`, document)
97276
+ validateJsonSchemaInternal$1(
97277
+ element,
97278
+ schema.items,
97279
+ `${path}[${index}]`,
97280
+ document,
97281
+ visited
97282
+ )
96906
97283
  )
96907
97284
  );
96908
97285
  return errorCollector.toValidationResponse();
@@ -96937,7 +97314,7 @@
96937
97314
  }
96938
97315
  return validSchemaResponse$1();
96939
97316
  }
96940
- function validateRef$1(data, schema, path, document) {
97317
+ function validateRef$1(data, schema, path, document, visited) {
96941
97318
  if (!schema.$ref.startsWith("#")) {
96942
97319
  return invalidSchemaResponseWithError$1(
96943
97320
  new InvalidRefError$1(
@@ -96945,11 +97322,23 @@
96945
97322
  )
96946
97323
  );
96947
97324
  }
97325
+ let refsForData = visited.get(data);
97326
+ if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
97327
+ return validSchemaResponse$1();
97328
+ }
97329
+ if (refsForData === void 0) {
97330
+ refsForData = /* @__PURE__ */ new Set();
97331
+ visited.set(data, refsForData);
97332
+ }
97333
+ refsForData.add(schema.$ref);
96948
97334
  try {
96949
97335
  const schemaToValidate = findSchemaAtPath$1(document, schema.$ref);
96950
- return validateJsonSchema$1(data, schemaToValidate, path, document);
97336
+ return validateJsonSchemaInternal$1(data, schemaToValidate, path, document, visited);
96951
97337
  } catch (e) {
96952
97338
  return invalidSchemaResponseWithError$1(e);
97339
+ } finally {
97340
+ refsForData.delete(schema.$ref);
97341
+ if (refsForData.size === 0) visited.delete(data);
96953
97342
  }
96954
97343
  }
96955
97344
  function validateEnum$1(data, enumValue, path) {
@@ -97834,9 +98223,18 @@
97834
98223
  return {
97835
98224
  type: "fetch",
97836
98225
  version: "1.0",
97837
- service: function(...args) {
98226
+ service: function(input, init) {
97838
98227
  var _a;
97839
- const context = (_a = interceptors.createContext) == null ? void 0 : _a.call(interceptors);
98228
+ let contextSeed;
98229
+ let cleanInit = init;
98230
+ if (init !== void 0 && "__contextSeed" in init) {
98231
+ const { __contextSeed, ...initWithoutSeed } = init;
98232
+ contextSeed = __contextSeed;
98233
+ cleanInit = Object.keys(initWithoutSeed).length === 0 ? void 0 : initWithoutSeed;
98234
+ }
98235
+ const fetchArgs = cleanInit === void 0 ? [input] : [input, cleanInit];
98236
+ const baseContext = (_a = interceptors.createContext) == null ? void 0 : _a.call(interceptors);
98237
+ const context = contextSeed === void 0 ? baseContext : { ...baseContext, ...contextSeed };
97840
98238
  const {
97841
98239
  request: requestInterceptors = [],
97842
98240
  retry: retryInterceptor = void 0,
@@ -97844,17 +98242,17 @@
97844
98242
  finally: finallyInterceptors = []
97845
98243
  } = interceptors;
97846
98244
  const pending = requestInterceptors.reduce(
97847
- (previousPromise, interceptor) => previousPromise.then((args2) => interceptor(args2, context)),
97848
- resolvedPromiseLike$2(args)
98245
+ (previousPromise, interceptor) => previousPromise.then((args) => interceptor(args, context)),
98246
+ resolvedPromiseLike$2(fetchArgs)
97849
98247
  );
97850
- return Promise.resolve(pending).then((args2) => {
98248
+ return Promise.resolve(pending).then((args) => {
97851
98249
  if (retryInterceptor) {
97852
- return retryInterceptor(args2, retryService, context);
98250
+ return retryInterceptor(args, retryService, context);
97853
98251
  } else {
97854
98252
  if (retryService) {
97855
- return retryService.applyRetry(() => fetch(...args2));
98253
+ return retryService.applyRetry(() => fetch(...args));
97856
98254
  }
97857
- return fetch(...args2);
98255
+ return fetch(...args);
97858
98256
  }
97859
98257
  }).then((response) => {
97860
98258
  return responseInterceptors.reduce(
@@ -98880,7 +99278,7 @@
98880
99278
  id: '@salesforce/lds-network-adapter',
98881
99279
  instrument: instrument$2,
98882
99280
  });
98883
- // version: 1.428.0-dev2-ad2109c7a1
99281
+ // version: 1.428.0-dev20-1b319a0432
98884
99282
 
98885
99283
  const { create: create$2, keys: keys$2 } = Object;
98886
99284
  const { stringify, parse } = JSON;
@@ -98971,6 +99369,9 @@
98971
99369
  return err$4([error]);
98972
99370
  }
98973
99371
  function validateJsonSchema(data, schema, path = "$", document = schema) {
99372
+ return validateJsonSchemaInternal(data, schema, path, document, /* @__PURE__ */ new Map());
99373
+ }
99374
+ function validateJsonSchemaInternal(data, schema, path, document, visited) {
98974
99375
  if (schema === true) return validSchemaResponse();
98975
99376
  if (schema === false)
98976
99377
  return invalidSchemaResponseWithError(
@@ -98979,22 +99380,22 @@
98979
99380
  const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
98980
99381
  const errorCollector = new JsonSchemaErrorCollector();
98981
99382
  if ("anyOf" in schema) {
98982
- errorCollector.append(validateAnyOf(data, schema, path, document));
99383
+ errorCollector.append(validateAnyOf(data, schema, path, document, visited));
98983
99384
  } else if ("oneOf" in schema) {
98984
- errorCollector.append(validateOneOf(data, schema, path, document));
99385
+ errorCollector.append(validateOneOf(data, schema, path, document, visited));
98985
99386
  } else if ("allOf" in schema) {
98986
- errorCollector.append(validateAllOf(data, schema, path, document));
99387
+ errorCollector.append(validateAllOf(data, schema, path, document, visited));
98987
99388
  } else if ("not" in schema) {
98988
- errorCollector.append(validateNot(data, schema, path, document));
99389
+ errorCollector.append(validateNot(data, schema, path, document, visited));
98989
99390
  } else if ("$ref" in schema) {
98990
- errorCollector.append(validateRef(data, schema, path, document));
99391
+ errorCollector.append(validateRef(data, schema, path, document, visited));
98991
99392
  } else if ("type" in schema) {
98992
99393
  if (schema.type === "object") {
98993
99394
  if (dataType !== "object") {
98994
99395
  errorCollector.add(incorrectTypeError("object", dataType, path));
98995
99396
  } else {
98996
99397
  errorCollector.append(
98997
- validateObject(data, schema, path, document)
99398
+ validateObject(data, schema, path, document, visited)
98998
99399
  );
98999
99400
  }
99000
99401
  } else if (schema.type === "array") {
@@ -99002,7 +99403,7 @@
99002
99403
  errorCollector.add(incorrectTypeError("array", dataType, path));
99003
99404
  } else {
99004
99405
  errorCollector.append(
99005
- validateArray(data, schema, path, document)
99406
+ validateArray(data, schema, path, document, visited)
99006
99407
  );
99007
99408
  }
99008
99409
  } else {
@@ -99019,16 +99420,17 @@
99019
99420
  }
99020
99421
  return errorCollector.toValidationResponse();
99021
99422
  }
99022
- function validateAnyOf(data, schema, path, document) {
99423
+ function validateAnyOf(data, schema, path, document, visited) {
99023
99424
  let isValid = false;
99024
99425
  const errorCollector = new JsonSchemaErrorCollector();
99025
99426
  for (let i = 0, { length } = schema.anyOf; i < length; i++) {
99026
99427
  const element = schema.anyOf[i];
99027
- const validationResponse = validateJsonSchema(
99428
+ const validationResponse = validateJsonSchemaInternal(
99028
99429
  data,
99029
99430
  element,
99030
99431
  `${path}.anyOf[${i}]`,
99031
- document
99432
+ document,
99433
+ visited
99032
99434
  );
99033
99435
  if (validationResponse.isOk()) {
99034
99436
  isValid = true;
@@ -99045,13 +99447,22 @@
99045
99447
  }
99046
99448
  return validSchemaResponse();
99047
99449
  }
99048
- function validateOneOf(data, schema, path, document) {
99450
+ function validateOneOf(data, schema, path, document, visited) {
99451
+ if (schema.discriminator !== void 0) {
99452
+ return validateDiscriminatedOneOf(data, schema.discriminator, path, document, visited);
99453
+ }
99049
99454
  let validSubShemaPaths = [];
99050
99455
  const errorCollector = new JsonSchemaErrorCollector();
99051
99456
  for (let i = 0, { length } = schema.oneOf; i < length; i++) {
99052
99457
  const element = schema.oneOf[i];
99053
99458
  const oneOfPath = `${path}.oneOf[${i}]`;
99054
- const validationResponse = validateJsonSchema(data, element, oneOfPath, document);
99459
+ const validationResponse = validateJsonSchemaInternal(
99460
+ data,
99461
+ element,
99462
+ oneOfPath,
99463
+ document,
99464
+ visited
99465
+ );
99055
99466
  if (validationResponse.isOk()) {
99056
99467
  validSubShemaPaths.push(oneOfPath);
99057
99468
  } else {
@@ -99073,16 +99484,45 @@
99073
99484
  }
99074
99485
  return validSchemaResponse();
99075
99486
  }
99076
- function validateAllOf(data, schema, path, document) {
99487
+ function validateDiscriminatedOneOf(data, discriminator, path, document, visited) {
99488
+ if (data === null || typeof data !== "object" || Array.isArray(data)) {
99489
+ return invalidSchemaResponseWithError(incorrectTypeError("object", typeof data, path));
99490
+ }
99491
+ const { propertyName, mapping } = discriminator;
99492
+ const discriminatorValue = data[propertyName];
99493
+ if (discriminatorValue === void 0) {
99494
+ return invalidSchemaResponseWithError(
99495
+ new MissingRequiredPropertyError(
99496
+ `Object at path '${path}' is missing required discriminator property '${propertyName}'.`
99497
+ )
99498
+ );
99499
+ }
99500
+ if (typeof discriminatorValue !== "string") {
99501
+ return invalidSchemaResponseWithError(
99502
+ incorrectTypeError("string", typeof discriminatorValue, `${path}.${propertyName}`)
99503
+ );
99504
+ }
99505
+ const targetRef = mapping[discriminatorValue];
99506
+ if (targetRef === void 0) {
99507
+ return invalidSchemaResponseWithError(
99508
+ new JsonSchemaViolationError(
99509
+ `Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
99510
+ )
99511
+ );
99512
+ }
99513
+ return validateJsonSchemaInternal(data, { $ref: targetRef }, path, document, visited);
99514
+ }
99515
+ function validateAllOf(data, schema, path, document, visited) {
99077
99516
  let isValid = true;
99078
99517
  const errorCollector = new JsonSchemaErrorCollector();
99079
99518
  for (let i = 0, { length } = schema.allOf; i < length; i++) {
99080
99519
  const element = schema.allOf[i];
99081
- const validationResponse = validateJsonSchema(
99520
+ const validationResponse = validateJsonSchemaInternal(
99082
99521
  data,
99083
99522
  element,
99084
99523
  `${path}.allOf[${i}]`,
99085
- document
99524
+ document,
99525
+ visited
99086
99526
  );
99087
99527
  if (!validationResponse.isOk()) {
99088
99528
  errorCollector.append(validationResponse);
@@ -99096,8 +99536,14 @@
99096
99536
  }
99097
99537
  return errorCollector.toValidationResponse();
99098
99538
  }
99099
- function validateNot(data, schema, path, document) {
99100
- const validationResponse = validateJsonSchema(data, schema.not, path, document);
99539
+ function validateNot(data, schema, path, document, visited) {
99540
+ const validationResponse = validateJsonSchemaInternal(
99541
+ data,
99542
+ schema.not,
99543
+ path,
99544
+ document,
99545
+ visited
99546
+ );
99101
99547
  if (validationResponse.isOk()) {
99102
99548
  return invalidSchemaResponseWithError(
99103
99549
  new JsonSchemaViolationError(
@@ -99107,7 +99553,7 @@
99107
99553
  }
99108
99554
  return validSchemaResponse();
99109
99555
  }
99110
- function validateObject(data, schema, path, document) {
99556
+ function validateObject(data, schema, path, document, visited) {
99111
99557
  const schemaKeys = Object.keys(schema.properties);
99112
99558
  const requiredKeys = new Set(schema.required);
99113
99559
  const schemaKeySet = new Set(schemaKeys);
@@ -99115,11 +99561,12 @@
99115
99561
  Object.keys(data).forEach((key) => {
99116
99562
  if (!schemaKeySet.has(key)) {
99117
99563
  errorCollector.append(
99118
- validateJsonSchema(
99564
+ validateJsonSchemaInternal(
99119
99565
  data[key],
99120
99566
  schema.additionalProperties,
99121
99567
  `${path}.additionalProperties[${key}]`,
99122
- document
99568
+ document,
99569
+ visited
99123
99570
  )
99124
99571
  );
99125
99572
  }
@@ -99136,18 +99583,19 @@
99136
99583
  }
99137
99584
  if (keyInData) {
99138
99585
  errorCollector.append(
99139
- validateJsonSchema(
99586
+ validateJsonSchemaInternal(
99140
99587
  data[key],
99141
99588
  schema.properties[key],
99142
99589
  `${path}.${key}`,
99143
- document
99590
+ document,
99591
+ visited
99144
99592
  )
99145
99593
  );
99146
99594
  }
99147
99595
  }
99148
99596
  return errorCollector.toValidationResponse();
99149
99597
  }
99150
- function validateArray(data, schema, path, document) {
99598
+ function validateArray(data, schema, path, document, visited) {
99151
99599
  if (schema.minItems !== void 0 && data.length < schema.minItems) {
99152
99600
  return invalidSchemaResponseWithError(
99153
99601
  new MinItemsViolationError(
@@ -99165,7 +99613,13 @@
99165
99613
  const errorCollector = new JsonSchemaErrorCollector();
99166
99614
  data.forEach(
99167
99615
  (element, index) => errorCollector.append(
99168
- validateJsonSchema(element, schema.items, `${path}[${index}]`, document)
99616
+ validateJsonSchemaInternal(
99617
+ element,
99618
+ schema.items,
99619
+ `${path}[${index}]`,
99620
+ document,
99621
+ visited
99622
+ )
99169
99623
  )
99170
99624
  );
99171
99625
  return errorCollector.toValidationResponse();
@@ -99200,7 +99654,7 @@
99200
99654
  }
99201
99655
  return validSchemaResponse();
99202
99656
  }
99203
- function validateRef(data, schema, path, document) {
99657
+ function validateRef(data, schema, path, document, visited) {
99204
99658
  if (!schema.$ref.startsWith("#")) {
99205
99659
  return invalidSchemaResponseWithError(
99206
99660
  new InvalidRefError(
@@ -99208,11 +99662,23 @@
99208
99662
  )
99209
99663
  );
99210
99664
  }
99665
+ let refsForData = visited.get(data);
99666
+ if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
99667
+ return validSchemaResponse();
99668
+ }
99669
+ if (refsForData === void 0) {
99670
+ refsForData = /* @__PURE__ */ new Set();
99671
+ visited.set(data, refsForData);
99672
+ }
99673
+ refsForData.add(schema.$ref);
99211
99674
  try {
99212
99675
  const schemaToValidate = findSchemaAtPath(document, schema.$ref);
99213
- return validateJsonSchema(data, schemaToValidate, path, document);
99676
+ return validateJsonSchemaInternal(data, schemaToValidate, path, document, visited);
99214
99677
  } catch (e) {
99215
99678
  return invalidSchemaResponseWithError(e);
99679
+ } finally {
99680
+ refsForData.delete(schema.$ref);
99681
+ if (refsForData.size === 0) visited.delete(data);
99216
99682
  }
99217
99683
  }
99218
99684
  function validateEnum(data, enumValue, path) {
@@ -101426,6 +101892,7 @@
101426
101892
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101427
101893
  AssetApiName: new BaseScalarFieldDef(true),
101428
101894
  DloActiveStatus: new BaseScalarFieldDef(true),
101895
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101429
101896
  };
101430
101897
  }
101431
101898
  get possibleTypes() {
@@ -101467,6 +101934,7 @@
101467
101934
  Dataspaces: new BaseArrayFieldDef(new BaseObjectFieldDef(this.typeRegistry.Analytics__DataspaceRepresentation, true), true),
101468
101935
  AssetApiName: new BaseScalarFieldDef(true),
101469
101936
  DloActiveStatus: new BaseScalarFieldDef(true),
101937
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101470
101938
  };
101471
101939
  }
101472
101940
  get cacheControl() {
@@ -101616,6 +102084,7 @@
101616
102084
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101617
102085
  AssetApiName: new BaseScalarFieldDef(true),
101618
102086
  DloActiveStatus: new BaseScalarFieldDef(true),
102087
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101619
102088
  };
101620
102089
  }
101621
102090
  get cacheControl() {
@@ -101652,6 +102121,7 @@
101652
102121
  DataConnectorType: new BaseObjectFieldDef(this.typeRegistry.StringValue, true),
101653
102122
  AssetApiName: new BaseScalarFieldDef(true),
101654
102123
  DloActiveStatus: new BaseScalarFieldDef(true),
102124
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101655
102125
  };
101656
102126
  }
101657
102127
  get cacheControl() {
@@ -101690,6 +102160,7 @@
101690
102160
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101691
102161
  AssetApiName: new BaseScalarFieldDef(true),
101692
102162
  DloActiveStatus: new BaseScalarFieldDef(true),
102163
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101693
102164
  };
101694
102165
  }
101695
102166
  get cacheControl() {
@@ -101788,6 +102259,7 @@
101788
102259
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101789
102260
  AssetApiName: new BaseScalarFieldDef(true),
101790
102261
  DloActiveStatus: new BaseScalarFieldDef(true),
102262
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101791
102263
  };
101792
102264
  }
101793
102265
  get cacheControl() {
@@ -106370,6 +106842,11 @@
106370
106842
  Object.entries(this.latestUsedRecordIdToWeakEtagMap).forEach(([recordId, oneStoreRecordWeakEtag]) => {
106371
106843
  const normalizedLuvioRecord = this.services.luvioUiapiRecords.getNormalizedLuvioRecord(recordId, reader);
106372
106844
  if (!normalizedLuvioRecord) {
106845
+ // A record that was present when this snapshot was read
106846
+ // is now absent from the Luvio store (e.g. evicted by a
106847
+ // uiRecordApi deleteRecord). Its disappearance changes the
106848
+ // result set, so treat it as a change and re-emit.
106849
+ dataChanged = true;
106373
106850
  return;
106374
106851
  }
106375
106852
  const luvioRecordWeakEtag = normalizedLuvioRecord.weakEtag;
@@ -106818,7 +107295,7 @@
106818
107295
  _(config, CONFIG_SCHEMA);
106819
107296
  const baseCommand = new graphql_imperative_ctor(config, documentRootType, services);
106820
107297
  return applyDecorators(baseCommand, [services.fetchNetworkCommandBaseClass.availableDecorators.abortable], options);
106821
- }, false);
107298
+ }, true);
106822
107299
  graphql_imperative_legacy = services.graphQLLegacyImperativeBindings.bind(({ config, assertIsValid }) => {
106823
107300
  const _ = assertIsValid;
106824
107301
  _(config, CONFIG_SCHEMA);
@@ -106871,7 +107348,7 @@
106871
107348
  cb(graphql_v1_import, graphql_imperative$1, graphql_imperative_legacy_v1_import, graphql_state_manager, useOneStoreGraphQL);
106872
107349
  }
106873
107350
  }
106874
- // version: 1.428.0-dev2-2d5e0a6e5f
107351
+ // version: 1.428.0-dev20-d72ac06681
106875
107352
 
106876
107353
  function createFragmentMap(documentNode) {
106877
107354
  const fragments = {};
@@ -110933,7 +111410,7 @@
110933
111410
  }
110934
111411
 
110935
111412
  const name$1k = 'Analytics__SemanticModel';
110936
- const VERSION$1B = 'f1919b0768e93d3885cd5b983e61a194';
111413
+ const VERSION$1B = '0c41256ae05a32ed1af0deea45e4906e';
110937
111414
  function keyBuilder$1p(luvio, path, data) {
110938
111415
  return keyPrefix$1 + '::uiapi::' + name$1k + '::' + data.Id; // We're missing idNodeName in the actual key here...
110939
111416
  }
@@ -111249,6 +111726,12 @@
111249
111726
  typename: 'Boolean'
111250
111727
  };
111251
111728
  }
111729
+ case 'ReusedAssetStatus': {
111730
+ return {
111731
+ isArray: false,
111732
+ typename: 'String'
111733
+ };
111734
+ }
111252
111735
  default:
111253
111736
  return undefined;
111254
111737
  }
@@ -111315,7 +111798,7 @@
111315
111798
  }
111316
111799
 
111317
111800
  const name$1j = 'Analytics__SemanticDefinition';
111318
- const VERSION$1A = 'f2f3d7655e13edcb6330eee2b54a7c3e';
111801
+ const VERSION$1A = 'df1ed427fbc57558390ff0e3537f2290';
111319
111802
  function keyBuilder$1o(luvio, path, data) {
111320
111803
  return keyPrefix$1 + '::uiapi::' + name$1j + '::' + data.Id; // We're missing idNodeName in the actual key here...
111321
111804
  }
@@ -111657,6 +112140,12 @@
111657
112140
  typename: 'Boolean'
111658
112141
  };
111659
112142
  }
112143
+ case 'ReusedAssetStatus': {
112144
+ return {
112145
+ isArray: false,
112146
+ typename: 'String'
112147
+ };
112148
+ }
111660
112149
  default:
111661
112150
  return undefined;
111662
112151
  }
@@ -111728,7 +112217,7 @@
111728
112217
  }
111729
112218
 
111730
112219
  const name$1i = 'Analytics__DominoTemplate';
111731
- const VERSION$1z = 'c253660a6d3fad6b0556236ab107b5f6';
112220
+ const VERSION$1z = 'fda433601cadf10ecc8a0de3d54052ee';
111732
112221
  function keyBuilder$1n(luvio, path, data) {
111733
112222
  return keyPrefix$1 + '::uiapi::' + name$1i + '::' + data.Id; // We're missing idNodeName in the actual key here...
111734
112223
  }
@@ -112051,6 +112540,12 @@
112051
112540
  typename: 'Boolean'
112052
112541
  };
112053
112542
  }
112543
+ case 'ReusedAssetStatus': {
112544
+ return {
112545
+ isArray: false,
112546
+ typename: 'String'
112547
+ };
112548
+ }
112054
112549
  default:
112055
112550
  return undefined;
112056
112551
  }
@@ -112112,7 +112607,7 @@
112112
112607
  }
112113
112608
 
112114
112609
  const name$1h = 'Analytics__AnalyticsRepresentation';
112115
- const VERSION$1y = 'ac72d1c80cd40da609e0deb08f7aa498';
112610
+ const VERSION$1y = 'b299cf324d3e10f682533db156b3db05';
112116
112611
  function keyBuilder$1m(luvio, path, data) {
112117
112612
  return keyPrefix$1 + '::uiapi::' + name$1h + '::' + data.Id; // We're missing idNodeName in the actual key here...
112118
112613
  }
@@ -112413,6 +112908,12 @@
112413
112908
  typename: 'Boolean'
112414
112909
  };
112415
112910
  }
112911
+ case 'ReusedAssetStatus': {
112912
+ return {
112913
+ isArray: false,
112914
+ typename: 'String'
112915
+ };
112916
+ }
112416
112917
  default:
112417
112918
  return undefined;
112418
112919
  }
@@ -112474,7 +112975,7 @@
112474
112975
  }
112475
112976
 
112476
112977
  const name$1g = 'Analytics__MktDataConnector';
112477
- const VERSION$1x = 'a8c9731c67bcbcde83c6e5bacb3299b4';
112978
+ const VERSION$1x = 'b0f45c68439021ded5640b5e3920ee2f';
112478
112979
  function keyBuilder$1l(luvio, path, data) {
112479
112980
  return keyPrefix$1 + '::uiapi::' + name$1g + '::' + data.Id; // We're missing idNodeName in the actual key here...
112480
112981
  }
@@ -112786,6 +113287,12 @@
112786
113287
  typename: 'Boolean'
112787
113288
  };
112788
113289
  }
113290
+ case 'ReusedAssetStatus': {
113291
+ return {
113292
+ isArray: false,
113293
+ typename: 'String'
113294
+ };
113295
+ }
112789
113296
  default:
112790
113297
  return undefined;
112791
113298
  }
@@ -113023,6 +113530,12 @@
113023
113530
  typename: 'Boolean'
113024
113531
  };
113025
113532
  }
113533
+ case 'ReusedAssetStatus': {
113534
+ return {
113535
+ isArray: false,
113536
+ typename: 'String'
113537
+ };
113538
+ }
113026
113539
  default:
113027
113540
  return undefined;
113028
113541
  }
@@ -136108,7 +136621,7 @@
136108
136621
  configuration: { ...configurationForGraphQLAdapters$1 },
136109
136622
  instrument: instrument$1,
136110
136623
  });
136111
- // version: 1.428.0-dev2-2d5e0a6e5f
136624
+ // version: 1.428.0-dev20-d72ac06681
136112
136625
 
136113
136626
  // On core the unstable adapters are re-exported with different names,
136114
136627
  // we want to match them here.
@@ -136260,7 +136773,7 @@
136260
136773
  unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
136261
136774
  graphQLImperative = ldsAdapter;
136262
136775
  });
136263
- // version: 1.428.0-dev2-2d5e0a6e5f
136776
+ // version: 1.428.0-dev20-d72ac06681
136264
136777
 
136265
136778
  var gqlApi = /*#__PURE__*/Object.freeze({
136266
136779
  __proto__: null,
@@ -137059,7 +137572,7 @@
137059
137572
  function register(r) {
137060
137573
  callbacks$1.forEach((callback) => callback(r));
137061
137574
  }
137062
- // version: 1.428.0-dev2-ad2109c7a1
137575
+ // version: 1.428.0-dev20-1b319a0432
137063
137576
 
137064
137577
  /**
137065
137578
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -138396,4 +138909,4 @@
138396
138909
  exports.subscribeToAdapter = subscribeToAdapter;
138397
138910
 
138398
138911
  }));
138399
- // version: 1.428.0-dev2-ad2109c7a1
138912
+ // version: 1.428.0-dev20-1b319a0432