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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3289,7 +3289,7 @@
3289
3289
  }
3290
3290
  }
3291
3291
  }
3292
- function isFetchResponse(error) {
3292
+ function isFetchResponse$1(error) {
3293
3293
  return error !== null && typeof error === 'object' && 'status' in error;
3294
3294
  }
3295
3295
  /**
@@ -3368,7 +3368,7 @@
3368
3368
  // the new network adapter behavior
3369
3369
  return reject(
3370
3370
  // legacy network adapter check
3371
- isFetchResponse(error)
3371
+ isFetchResponse$1(error)
3372
3372
  ? {
3373
3373
  ...error,
3374
3374
  errorType: 'fetchResponse',
@@ -4152,7 +4152,7 @@
4152
4152
  }
4153
4153
  return resourceParams;
4154
4154
  }
4155
- // engine version: 0.160.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-dev21-c9faba50c9
4284
4284
 
4285
4285
  // TODO [TD-0081508]: once that TD is fulfilled we can probably change this file
4286
4286
  function instrumentAdapter$1(createFunction, _metadata) {
@@ -5324,7 +5324,7 @@
5324
5324
  const { apiFamily, name } = metadata;
5325
5325
  return createGraphQLWireAdapterConstructor$1(adapter, `${apiFamily}.${name}`, luvio, astResolver);
5326
5326
  }
5327
- // version: 1.428.0-dev2-ad2109c7a1
5327
+ // version: 1.428.0-dev21-c9faba50c9
5328
5328
 
5329
5329
  function isSupportedEntity(_objectApiName) {
5330
5330
  return true;
@@ -5428,7 +5428,7 @@
5428
5428
  TypeCheckShapes[TypeCheckShapes["Integer"] = 3] = "Integer";
5429
5429
  TypeCheckShapes[TypeCheckShapes["Unsupported"] = 4] = "Unsupported";
5430
5430
  })(TypeCheckShapes || (TypeCheckShapes = {}));
5431
- // engine version: 0.160.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-dev21-133a7da4f5
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,354 @@
79609
79638
  return create$3(adapterSpecificEnvironments, {});
79610
79639
  }
79611
79640
 
79641
+ /**
79642
+ * This function takes an unknown error and normalizes it to an Error object
79643
+ */
79644
+ function normalizeError$1(error) {
79645
+ if (typeof error === 'object' && error instanceof Error) {
79646
+ return error;
79647
+ }
79648
+ else if (typeof error === 'string') {
79649
+ return new Error(error);
79650
+ }
79651
+ return new Error(stringify$5(error));
79652
+ }
79653
+ /**
79654
+ * Maximum number of times an action's upload will be retried before the action is
79655
+ * transitioned to Error and surfaced to the consumer. Caps the otherwise-unbounded
79656
+ * retry loop that can wedge the single-worker draft queue when an upload fails
79657
+ * deterministically on every dispatch. Only enforced when the
79658
+ * `lmr.draft-queue-max-retry-attempts` gate is open.
79659
+ */
79660
+ const MAX_RETRY_ATTEMPTS = 5;
79661
+ const MAX_RETRY_ERROR_CODE = 'MAX_RETRY_ATTEMPTS_EXCEEDED';
79662
+ function isFetchResponse(failure) {
79663
+ // The union is exactly FetchResponse | Error, so "not an Error" is the FetchResponse.
79664
+ // This is safer than duck-typing on status/ok: a custom Error subclass that happens to
79665
+ // carry those properties would be misclassified by a structural check.
79666
+ return !(failure instanceof Error);
79667
+ }
79668
+ /**
79669
+ * Builds the FetchResponse-shaped error attached to an action that has exhausted its
79670
+ * upload retries. Shaped like a real network error response (status/statusText/ok/
79671
+ * headers/body) so downstream consumers (DraftManager, queue instrumentation) that
79672
+ * read `action.error.status`/`.body`/etc. behave consistently with a server error.
79673
+ *
79674
+ * The failure that caused the final attempt — a non-ok response (HTTP path) or a thrown
79675
+ * error (catch path) — is folded into the body so the surfaced error says WHAT failed,
79676
+ * not merely that the attempt cap was reached.
79677
+ */
79678
+ function buildMaxRetryError(lastFailure) {
79679
+ const capMessage = `Draft action exceeded ${MAX_RETRY_ATTEMPTS} upload retry attempts`;
79680
+ if (isFetchResponse(lastFailure)) {
79681
+ // Preserve the server's own error detail (status + body) so the surfaced error
79682
+ // carries the last response that caused us to give up retrying.
79683
+ return {
79684
+ status: HttpStatusCode$2.ServerError,
79685
+ statusText: capMessage,
79686
+ ok: false,
79687
+ headers: {},
79688
+ body: {
79689
+ errorCode: MAX_RETRY_ERROR_CODE,
79690
+ message: `${capMessage}. Last response: status=${lastFailure.status} ${lastFailure.statusText}`,
79691
+ lastResponseStatus: lastFailure.status,
79692
+ lastResponseBody: lastFailure.body,
79693
+ },
79694
+ };
79695
+ }
79696
+ return {
79697
+ status: HttpStatusCode$2.ServerError,
79698
+ statusText: capMessage,
79699
+ ok: false,
79700
+ headers: {},
79701
+ body: {
79702
+ errorCode: MAX_RETRY_ERROR_CODE,
79703
+ message: `${capMessage}. Last error: ${lastFailure.name}: ${lastFailure.message}`,
79704
+ lastErrorName: lastFailure.name,
79705
+ lastErrorMessage: lastFailure.message,
79706
+ },
79707
+ };
79708
+ }
79709
+
79710
+ function attachObserversToAdapterRequestContext(observers, adapterRequestContext) {
79711
+ if (adapterRequestContext === undefined) {
79712
+ return { eventObservers: observers };
79713
+ }
79714
+ if (adapterRequestContext.eventObservers === undefined) {
79715
+ return { ...adapterRequestContext, eventObservers: observers };
79716
+ }
79717
+ return {
79718
+ ...adapterRequestContext,
79719
+ eventObservers: adapterRequestContext.eventObservers.concat(observers),
79720
+ };
79721
+ }
79722
+ /**
79723
+ * Use this method to sanitize the unknown error object when
79724
+ * we are unsure of the type of the error thrown
79725
+ *
79726
+ * @param err Unknown object to sanitize
79727
+ * @returns an instance of error
79728
+ */
79729
+ function normalizeError$2(err) {
79730
+ if (err instanceof Error) {
79731
+ return err;
79732
+ }
79733
+ else if (typeof err === 'string') {
79734
+ return new Error(err);
79735
+ }
79736
+ return new Error(stringify$5(err));
79737
+ }
79738
+ // metrics
79739
+ /** GraphQL */
79740
+ const GRAPHQL_EVAL_ERROR = 'gql-eval-error';
79741
+ const GRAPHQL_EVAL_DB_READ_DURATION = 'gql-eval-db-read-duration';
79742
+ const GRAPHQL_EVAL_ROOT_QUERY_COUNT = 'gql-eval-root-query-count';
79743
+ const GRAPHQL_EVAL_TOTAL_QUERY_COUNT = 'gql-eval-total-query-count';
79744
+ const GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT = 'gql-eval-max-child-count';
79745
+ const GRAPHQL_EVAL_QUERY_RECORD_COUNT = 'gql-eval-query-record-count';
79746
+ const GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED = 'gql-snapshot-refresh-undefined';
79747
+ /** Draft Queue */
79748
+ const DRAFT_QUEUE_STATE_STARTED = 'draft-queue-state-started';
79749
+ const DRAFT_QUEUE_STATE_ERROR = 'draft-queue-state-error';
79750
+ const DRAFT_QUEUE_STATE_WAITING = 'draft-queue-state-waiting';
79751
+ const DRAFT_QUEUE_STATE_STOPPED = 'draft-queue-state-stopped';
79752
+ const DRAFT_QUEUE_ACTION_ADDED = 'draft-queue-action-added';
79753
+ const DRAFT_QUEUE_ACTION_UPLOADING = 'draft-queue-action-uploading';
79754
+ const DRAFT_QUEUE_ACTION_COMPLETED = 'draft-queue-action-completed';
79755
+ const DRAFT_QUEUE_ACTION_DELETED = 'draft-queue-action-deleted';
79756
+ const DRAFT_QUEUE_ACTION_UPDATED = 'draft-queue-action-updated';
79757
+ const DRAFT_QUEUE_ACTION_FAILED = 'draft-queue-action-failed';
79758
+ const DRAFT_QUEUE_ACTION_UPLOAD_ERROR = 'draft-queue-action-upload-error';
79759
+ const DRAFT_QUEUE_TOTAL_MERGE_ACTIONS_CALLS = 'draft-queue-total-mergeActions-calls';
79760
+ // Emitted every time a draft's Idempotency-Key is rotated (replaced with a fresh uuid).
79761
+ // Used to triage the WOLI duplicate-record investigation in Splunk — correlate by draftId
79762
+ // with the other draft-queue events. @W-23428669
79763
+ const DRAFT_QUEUE_IDEMPOTENCY_KEY_ROTATED = 'draft-queue-idempotency-key-rotated';
79764
+ /** Content Document */
79765
+ const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
79766
+ const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
79767
+ /** Priming */
79768
+ const PRIMING_TOTAL_SESSION_COUNT = 'priming-total-session-count';
79769
+ const PRIMING_TOTAL_ERROR_COUNT = 'priming-total-error-count';
79770
+ const PRIMING_TOTAL_PRIMED_COUNT = 'priming-total-primed-count';
79771
+ const PRIMING_TOTAL_CONFLICT_COUNT = 'priming-total-conflict-count';
79772
+ // logs
79773
+ const GRAPHQL_QUERY_PARSE_ERROR = 'gql-query-parse-error';
79774
+ const GRAPHQL_SQL_EVAL_PRECONDITION_ERROR = 'gql-sql-pre-eval-error';
79775
+ const GRAPHQL_CREATE_SNAPSHOT_ERROR = 'gql-create-snapshot-error';
79776
+ const DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR = 'draft-aware-create-content-document-and-version-error';
79777
+ /** Garbage Collection */
79778
+ const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT = 'garbage-collection-aggressive-trim-count';
79779
+ const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED = 'garbage-collection-aggressive-trim-records-trimmed';
79780
+ const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM = 'garbage-collection-aggressive-trim-total-records-before-trim';
79781
+ const ldsMobileInstrumentation$2 = getInstrumentation();
79782
+ const nimbusLogger = typeof __nimbus !== 'undefined' &&
79783
+ __nimbus.plugins !== undefined &&
79784
+ __nimbus.plugins.JSLoggerPlugin !== undefined
79785
+ ? __nimbus.plugins.JSLoggerPlugin
79786
+ : undefined;
79787
+ function reportGraphqlQueryParseError(err) {
79788
+ const error = normalizeError$2(err);
79789
+ const errorCode = GRAPHQL_QUERY_PARSE_ERROR;
79790
+ // Metric
79791
+ reportGraphqlAdapterError(errorCode);
79792
+ // Log
79793
+ ldsMobileInstrumentation$2.error(error, errorCode);
79794
+ }
79795
+ function reportGraphqlSqlEvalPreconditionError(err) {
79796
+ const error = normalizeError$2(err);
79797
+ const errorCode = GRAPHQL_SQL_EVAL_PRECONDITION_ERROR;
79798
+ // Metric
79799
+ reportGraphqlAdapterError(errorCode);
79800
+ // Log
79801
+ ldsMobileInstrumentation$2.error(error, errorCode);
79802
+ }
79803
+ function reportGraphqlCreateSnapshotError(err) {
79804
+ const error = normalizeError$2(err);
79805
+ const errorCode = GRAPHQL_CREATE_SNAPSHOT_ERROR;
79806
+ // Metric
79807
+ reportGraphqlAdapterError(errorCode);
79808
+ // Log
79809
+ ldsMobileInstrumentation$2.error(error, errorCode);
79810
+ }
79811
+ function reportGraphQlEvalDbReadDuration(duration) {
79812
+ ldsMobileInstrumentation$2.trackValue(GRAPHQL_EVAL_DB_READ_DURATION, duration);
79813
+ }
79814
+ function reportGraphqlAdapterError(errorCode) {
79815
+ // Increment overall count with errorCode as tag
79816
+ ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_EVAL_ERROR, 1, true, { errorCode });
79817
+ }
79818
+ function reportGraphqlQueryInstrumentation(data) {
79819
+ const queryBuckets = [1, 2, 3, 4, 5, 10, 20, 50, 100];
79820
+ const recordBuckets = [
79821
+ 1, 5, 10, 20, 50, 100, 1000, 2000, 5000, 10000, 50000, 100000, 1000000,
79822
+ ];
79823
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_ROOT_QUERY_COUNT, data.rootQueryCount, queryBuckets);
79824
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_TOTAL_QUERY_COUNT, data.totalQueryCount, queryBuckets);
79825
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
79826
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
79827
+ }
79828
+ function incrementGraphQLRefreshUndfined() {
79829
+ ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
79830
+ }
79831
+ function reportDraftActionEvent(state, draftCount, message) {
79832
+ if (nimbusLogger) {
79833
+ nimbusLogger.logInfo(`Draft action event: ${state}, depth: ${draftCount}${message ? `, message: ${message}` : ''}`);
79834
+ }
79835
+ switch (state) {
79836
+ case 'added':
79837
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_ADDED);
79838
+ break;
79839
+ case 'uploading':
79840
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOADING);
79841
+ break;
79842
+ case 'completed':
79843
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_COMPLETED);
79844
+ break;
79845
+ case 'deleted':
79846
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_DELETED);
79847
+ break;
79848
+ case 'failed':
79849
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_FAILED, 1, true);
79850
+ break;
79851
+ case 'updated':
79852
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPDATED);
79853
+ break;
79854
+ }
79855
+ }
79856
+ /**
79857
+ * Reports an exception thrown while uploading a draft action. The thrown error is
79858
+ * otherwise swallowed by the upload handler's retry path, leaving the failure
79859
+ * invisible in telemetry; this surfaces it to o11y (log + counter) so a deterministic
79860
+ * upload failure can be diagnosed instead of silently retried forever.
79861
+ *
79862
+ * PII: the device log line carries only the handler id, retry attempt, and the error
79863
+ * NAME (e.g. "TypeError") — never the free-text error message, which can embed record
79864
+ * ids (URL path segments) or server field-validation strings. The full normalized error
79865
+ * (message + stack) is handed only to `ldsMobileInstrumentation.error`, the structured
79866
+ * o11y error pipeline responsible for scrubbing/handling that detail. Also does NOT log
79867
+ * the action's targetId/tag or any request body/field values.
79868
+ */
79869
+ function reportDraftActionUploadError(error, handlerId, attempt) {
79870
+ const normalized = normalizeError$2(error);
79871
+ if (nimbusLogger) {
79872
+ nimbusLogger.logError(`Draft action upload error: handler=${handlerId}, attempt=${attempt}, name=${normalized.name}`);
79873
+ }
79874
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOAD_ERROR, 1, true, {
79875
+ handlerId,
79876
+ });
79877
+ ldsMobileInstrumentation$2.error(normalized, DRAFT_QUEUE_ACTION_UPLOAD_ERROR);
79878
+ }
79879
+ /**
79880
+ * Emits a single greppable Splunk log line (and an o11y counter) every time a draft's
79881
+ * Idempotency-Key is rotated — i.e. replaced with a fresh uuid rather than reused on
79882
+ * retry. This is the instrumentation for the WOLI duplicate-record investigation
79883
+ * (@W-23428669): a rotation mid-flight is the mechanism by which an already-committed
79884
+ * write can be re-sent under a new key and duplicated on the server, so recording every
79885
+ * rotation lets us reconstruct, on a future reproduction, exactly where and how often a
79886
+ * key changed for a given draft.
79887
+ *
79888
+ * The message is prefixed with a stable literal ("Idempotency key rotated") so it can be
79889
+ * pulled out of Splunk with a substring match, and carries:
79890
+ * - draftId: the local (client-synthesized) draft-action target id, so this event can be
79891
+ * correlated with the other draft-queue events for the same draft. This is NOT a server
79892
+ * record id or any field value — it is the same local id already surfaced by the queue's
79893
+ * other lifecycle logs, so it introduces no new PII.
79894
+ * - reason: which rotation call site fired, to disambiguate the distinct rotation paths.
79895
+ *
79896
+ * @param draftId the local draft-action target id whose key was rotated
79897
+ * @param reason the rotation call site (see IdempotencyKeyRotationReason)
79898
+ */
79899
+ function reportIdempotencyKeyRotated(draftId, reason) {
79900
+ if (nimbusLogger) {
79901
+ nimbusLogger.logInfo(`Idempotency key rotated: draftId=${draftId}, reason=${reason}`);
79902
+ }
79903
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_IDEMPOTENCY_KEY_ROTATED, 1, undefined, {
79904
+ reason,
79905
+ });
79906
+ }
79907
+ function reportDraftQueueState(state, draftCount) {
79908
+ if (nimbusLogger) {
79909
+ nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
79910
+ }
79911
+ switch (state) {
79912
+ case 'started':
79913
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STARTED);
79914
+ break;
79915
+ case 'error':
79916
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_ERROR, 1, true);
79917
+ break;
79918
+ case 'waiting':
79919
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_WAITING);
79920
+ break;
79921
+ case 'stopped':
79922
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STOPPED);
79923
+ break;
79924
+ }
79925
+ }
79926
+ function reportDraftAwareContentDocumentVersionSynthesizeError(err) {
79927
+ let error;
79928
+ if (err.body !== undefined) {
79929
+ error = err.body;
79930
+ }
79931
+ else {
79932
+ error = normalizeError$2(err);
79933
+ }
79934
+ const errorCode = DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR;
79935
+ const errorType = error.errorType;
79936
+ const tags = {
79937
+ errorCode,
79938
+ };
79939
+ if (errorType !== undefined) {
79940
+ tags.errorType = errorType;
79941
+ }
79942
+ // Metric
79943
+ ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR, 1, true, tags);
79944
+ // Log
79945
+ ldsMobileInstrumentation$2.error(error, errorCode);
79946
+ }
79947
+ function reportDraftAwareContentVersionSynthesizeCalls(mimeType) {
79948
+ ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS, 1, undefined, { mimeType });
79949
+ }
79950
+ /** Priming */
79951
+ function reportPrimingSessionCreated() {
79952
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_SESSION_COUNT, 1, undefined, {});
79953
+ }
79954
+ function reportPrimingError(errorType, recordCount) {
79955
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_ERROR_COUNT, recordCount, undefined, {
79956
+ errorType,
79957
+ });
79958
+ }
79959
+ function reportPrimingSuccess(recordCount) {
79960
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_PRIMED_COUNT, recordCount, undefined);
79961
+ }
79962
+ function reportPrimingConflict(resolutionType, recordCount) {
79963
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_CONFLICT_COUNT, recordCount, undefined, {
79964
+ resolutionType,
79965
+ });
79966
+ }
79967
+ /** Network */
79968
+ function reportChunkCandidateUrlLength(urlLength) {
79969
+ const buckets = [8000, 10000, 12000, 14000, 16000];
79970
+ ldsMobileInstrumentation$2.bucketValue('chunk-candidate-url-length-histogram', urlLength, buckets);
79971
+ }
79972
+ /** Garbage Collection */
79973
+ function reportAggressiveTrimTriggered(trimCount, beforeTrimRecordCount, totalRecordsTrimmed) {
79974
+ ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT, trimCount);
79975
+ ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM, beforeTrimRecordCount);
79976
+ ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED, totalRecordsTrimmed);
79977
+ }
79978
+ /** One Store Cache Purge */
79979
+ const ONESTORE_CACHE_PURGING_RECORDS_PURGED = 'onestore-cache-purging-records-purged';
79980
+ const ONESTORE_CACHE_PURGING_RECORDS_ERROR = 'onestore-cache-purging-records-error';
79981
+ function reportOneStoreRecordsPurgedFromCache(recordsPurged) {
79982
+ ldsMobileInstrumentation$2.trackValue(ONESTORE_CACHE_PURGING_RECORDS_PURGED, recordsPurged);
79983
+ }
79984
+ function reportOneStoreCachePurgingError(error) {
79985
+ const errorMessage = normalizeError$2(error);
79986
+ ldsMobileInstrumentation$2.error(errorMessage, ONESTORE_CACHE_PURGING_RECORDS_ERROR);
79987
+ }
79988
+
79612
79989
  const HTTP_HEADER_RETRY_AFTER = 'Retry-After';
79613
79990
  const HTTP_HEADER_IDEMPOTENCY_KEY = 'Idempotency-Key';
79614
79991
  const ERROR_CODE_IDEMPOTENCY_FEATURE_NOT_ENABLED = 'IDEMPOTENCY_FEATURE_NOT_ENABLED';
@@ -79697,6 +80074,14 @@
79697
80074
  if (request && request.headers && request.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
79698
80075
  const status = response.status;
79699
80076
  switch (status) {
80077
+ case 0 /* IdempotentWriteSpecificHttpStatusCode.NoResponse */:
80078
+ // statusCode 0 = the client sent the request but received no response
80079
+ // (connection dropped / app suspended in flight). The write may already
80080
+ // have committed at the origin, so we MUST retry with the SAME idempotency
80081
+ // key and let the server dedupe — rotating the key here would duplicate an
80082
+ // already-committed record.
80083
+ shouldRetry = true;
80084
+ break;
79700
80085
  case 408 /* IdempotentWriteSpecificHttpStatusCode.RequestTimeout */:
79701
80086
  case 503 /* IdempotentWriteSpecificHttpStatusCode.ServiceUnavailable */:
79702
80087
  retryDelayInMs = getRetryAfterInMs(response.headers);
@@ -79743,11 +80128,34 @@
79743
80128
  }
79744
80129
  }
79745
80130
  }
80131
+ // A generic 400 that none of the idempotency-specific branches above claimed
80132
+ // (shouldRetry still false) and that is not a backdating collision. @W-23445154
79746
80133
  if (response.status === HttpStatusCode$2.BadRequest &&
80134
+ !shouldRetry &&
79747
80135
  this.hasIdempotencySupport() &&
79748
- updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined) {
79749
- updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
79750
- actionDataChanged = true;
80136
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined &&
80137
+ !this.isBackdatingError(response.body, action)) {
80138
+ if (!preserveIdempotencyKeyOn400Gate.isOpen({ fallback: false })) {
80139
+ // Gate CLOSED (default) — legacy behavior: rotate the key and let the draft
80140
+ // error (shouldRetry stays false). Retained as the default until the fix is
80141
+ // enabled; this is the path that duplicated already-committed writes.
80142
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80143
+ reportIdempotencyKeyRotated(updatedAction.targetId, 'generic-400-killswitch');
80144
+ actionDataChanged = true;
80145
+ }
80146
+ else if (!this.isServerGeneratedError(response.body)) {
80147
+ // Gate OPEN — the fix: only an edge/gateway-injected 400 (no recognizable
80148
+ // server error body) is retried with the SAME key, so the server can dedupe a
80149
+ // write that may already have committed at the origin. A real, server-generated
80150
+ // 400 (UiApiError[] or an enhancedErrorType body, e.g. a field-validation
80151
+ // failure) falls through to the error path below: retrying it unchanged would
80152
+ // only be rejected again, so the draft is errored for the user to fix or discard
80153
+ // — the same terminal outcome as the legacy path, minus the duplicating key
80154
+ // rotation. The key is only ever rotated by the recognized idempotency error
80155
+ // codes above, by a backdating collision (new body), or when the user edits an
80156
+ // errored draft (mergeActions/handleReplaceAction).
80157
+ shouldRetry = true;
80158
+ }
79751
80159
  }
79752
80160
  if (response.status === HttpStatusCode$2.BadRequest &&
79753
80161
  this.isBackdatingError(response.body, action)) {
@@ -79756,23 +80164,102 @@
79756
80164
  ...updatedAction.data.body.fields,
79757
80165
  LastModifiedDate: new Date(updatedAction.timestamp).toISOString(),
79758
80166
  };
80167
+ // The record content changed (LastModifiedDate is bumped), so this is a NEW
80168
+ // logical write. Rotate the idempotency key so the server treats it as such
80169
+ // rather than deduping it against the stale, pre-backdate request. This is a
80170
+ // legitimate rotation — the request body is modified — unlike the generic-400
80171
+ // fallback above which must preserve the key when the fix is enabled. @W-23445154
80172
+ if (this.hasIdempotencySupport() &&
80173
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined) {
80174
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80175
+ reportIdempotencyKeyRotated(updatedAction.targetId, 'backdating-collision');
80176
+ }
79759
80177
  shouldRetry = true;
79760
80178
  actionDataChanged = true;
79761
80179
  }
79762
- await actionErrored(shouldRetry
79763
- ? updatedAction
79764
- : {
80180
+ if (shouldRetry) {
80181
+ // Funnel the retry through the cap: when the gate is open this persists
80182
+ // the attempt count and errors out once the cap is hit; when the gate is
80183
+ // closed it behaves exactly as before. The non-ok response is the failure
80184
+ // that would otherwise be retried.
80185
+ await this.retryOrCap(updatedAction, response, actionErrored, retryDelayInMs, actionDataChanged);
80186
+ }
80187
+ else {
80188
+ await actionErrored({
79765
80189
  ...updatedAction,
79766
80190
  error: response,
79767
80191
  status: DraftActionStatus.Error,
79768
- }, shouldRetry, retryDelayInMs, actionDataChanged);
80192
+ }, false, retryDelayInMs, actionDataChanged);
80193
+ }
79769
80194
  return ProcessActionResult.ACTION_ERRORED;
79770
80195
  }
79771
80196
  catch (e) {
79772
- await actionErrored(action, true);
80197
+ // #3 (ungated): the thrown exception is otherwise swallowed here, leaving a
80198
+ // deterministic upload failure invisible in telemetry. Surface it to o11y
80199
+ // before deciding whether to retry.
80200
+ const error = normalizeError$1(e);
80201
+ const attempt = this.getUploadRetryCount(action) + 1;
80202
+ reportDraftActionUploadError(error, this.handlerId, attempt);
80203
+ await this.retryOrCap(action, error, actionErrored);
79773
80204
  return ProcessActionResult.NETWORK_ERROR;
79774
80205
  }
79775
80206
  }
80207
+ /**
80208
+ * Reads the persisted upload retry-attempt count from the action's durable metadata
80209
+ * bag. The count lives in metadata (rather than in-memory) so it survives app
80210
+ * restarts and queue re-creation — the failure modes that let the unbounded retry
80211
+ * loop run for days.
80212
+ */
80213
+ getUploadRetryCount(action) {
80214
+ const parsed = Number(action.metadata?.[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]);
80215
+ // Guard against a missing/corrupt persisted value: a NaN, fractional, or negative
80216
+ // count must never weaken the cap. Floor to a non-negative integer, defaulting to 0.
80217
+ if (!Number.isFinite(parsed) || parsed < 0) {
80218
+ return 0;
80219
+ }
80220
+ return Math.floor(parsed);
80221
+ }
80222
+ /**
80223
+ * Enforces the upload retry-attempt cap around the queue's `actionErrored` callback.
80224
+ * Both retry paths — a retryable HTTP error and a thrown exception — funnel through
80225
+ * here.
80226
+ *
80227
+ * The entire cap behavior is gated behind `lmr.draft-queue-max-retry-attempts`. When
80228
+ * the gate is CLOSED this is a transparent passthrough: it issues the same
80229
+ * `actionErrored(action, true, ...)` retry the queue made before this change, and
80230
+ * writes no extra metadata. When the gate is OPEN it persists an incremented attempt
80231
+ * count to the action's durable metadata and, once the action has failed
80232
+ * {@link MAX_RETRY_ATTEMPTS} times, transitions it to Error (carrying a
80233
+ * FetchResponse-shaped error that names the failure that exhausted the retries)
80234
+ * instead of scheduling yet another retry.
80235
+ */
80236
+ async retryOrCap(action, lastFailure, actionErrored, retryDelayInMs, actionDataChanged) {
80237
+ if (!draftQueueMaxRetryAttemptsGate.isOpen({ fallback: false })) {
80238
+ // Gate closed: preserve the pre-existing unbounded-retry behavior exactly.
80239
+ await actionErrored(action, true, retryDelayInMs, actionDataChanged);
80240
+ return;
80241
+ }
80242
+ const attempt = this.getUploadRetryCount(action) + 1;
80243
+ if (attempt >= MAX_RETRY_ATTEMPTS) {
80244
+ await actionErrored({
80245
+ ...action,
80246
+ error: buildMaxRetryError(lastFailure),
80247
+ status: DraftActionStatus.Error,
80248
+ }, false);
80249
+ return;
80250
+ }
80251
+ // Persist the incremented attempt count so it survives restarts. Forcing
80252
+ // actionDataChanged ensures the queue writes the updated metadata before the
80253
+ // action is rescheduled for retry.
80254
+ const retryingAction = {
80255
+ ...action,
80256
+ metadata: {
80257
+ ...action.metadata,
80258
+ [DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]: String(attempt),
80259
+ },
80260
+ };
80261
+ await actionErrored(retryingAction, true, retryDelayInMs, true);
80262
+ }
79776
80263
  async handleActionEnqueued(action) {
79777
80264
  const impactedKeys = await this.recordService.setSideEffectsForActions([action]);
79778
80265
  await this.recordService.reapplyRecordSideEffects(impactedKeys);
@@ -79936,6 +80423,13 @@
79936
80423
  this.isActionOfType(sourceAction)) {
79937
80424
  targetAction.status = DraftActionStatus.Pending;
79938
80425
  targetAction.data = sourceAction.data;
80426
+ // Replacing an action's data re-queues it as a fresh upload, so the persisted
80427
+ // upload retry-attempt count must not carry over — otherwise a previously-
80428
+ // throttled action could immediately re-hit the cap on its first new attempt.
80429
+ // (Mirrors the same clear in mergeActions.)
80430
+ if (targetAction.metadata !== undefined) {
80431
+ delete targetAction.metadata[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY];
80432
+ }
79939
80433
  return targetAction;
79940
80434
  }
79941
80435
  else {
@@ -79972,9 +80466,15 @@
79972
80466
  // Updates Idempotency key if target has one
79973
80467
  if (targetData.headers && targetData.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
79974
80468
  merged.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80469
+ reportIdempotencyKeyRotated(merged.targetId, 'merge-actions');
79975
80470
  }
79976
80471
  // overlay metadata
79977
80472
  merged.metadata = { ...targetMetadata, ...sourceMetadata };
80473
+ // A merge folds new user data into the action and re-queues it as a fresh upload,
80474
+ // so the persisted upload retry-attempt count must not carry over — otherwise a
80475
+ // previously-throttled action could immediately re-hit the cap on its first new
80476
+ // attempt.
80477
+ delete merged.metadata[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY];
79978
80478
  // put status back to pending to auto upload if queue is active and targed is at the head.
79979
80479
  merged.status = DraftActionStatus.Pending;
79980
80480
  return merged;
@@ -79996,6 +80496,7 @@
79996
80496
  action.data.headers = action.data.headers || {};
79997
80497
  if (updateIdempotencyKey) {
79998
80498
  action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80499
+ reportIdempotencyKeyRotated(action.targetId, 'idempotency-error');
79999
80500
  }
80000
80501
  else {
80001
80502
  delete action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY];
@@ -80009,8 +80510,36 @@
80009
80510
  isUiApiErrors(body) {
80010
80511
  return body !== undefined && isArray$3$1(body) && body.length > 0 && body[0].errorCode;
80011
80512
  }
80513
+ // Distinguishes a real, server-generated 400 from an edge/gateway-injected one.
80514
+ //
80515
+ // A 400 the origin (UiApi/APREST) actually produced carries a structured error body:
80516
+ // either a `UiApiError[]` (see isUiApiErrors) or an enhanced-error object tagged with
80517
+ // `enhancedErrorType` (e.g. 'RecordError' for field-validation failures). These describe
80518
+ // a request the server understood and deliberately rejected — retrying it unchanged would
80519
+ // just be rejected again, so the draft must be errored for the user to fix or discard.
80520
+ //
80521
+ // An edge/gateway-injected 400 (the duplicate-record incident, @W-23445154) has NO such
80522
+ // body — it's a tiny generic error page ({ message: 'Bad Request' }), a plain string, or
80523
+ // empty — and is returned on a request that may already have committed at the origin.
80524
+ // Only those should be retried with the same idempotency key so the server can dedupe.
80525
+ isServerGeneratedError(body) {
80526
+ if (this.isUiApiErrors(body)) {
80527
+ return true;
80528
+ }
80529
+ // enhancedErrorType is the origin's marker for a structured record error (field
80530
+ // validation, backdating collision, etc.). Guard the deref so a string/undefined
80531
+ // edge body doesn't throw.
80532
+ return (body !== null &&
80533
+ typeof body === 'object' &&
80534
+ body.enhancedErrorType !== undefined);
80535
+ }
80012
80536
  isBackdatingError(body, action) {
80013
- if (body.enhancedErrorType &&
80537
+ if (
80538
+ // An edge/gateway-injected 400 can carry an empty, string, or missing body; guard
80539
+ // the deref so classifying such a response never throws. @W-23445154
80540
+ body !== null &&
80541
+ typeof body === 'object' &&
80542
+ body.enhancedErrorType &&
80014
80543
  body.enhancedErrorType === 'RecordError' &&
80015
80544
  body.output &&
80016
80545
  body.output.errors &&
@@ -80585,229 +81114,6 @@
80585
81114
  }
80586
81115
  }
80587
81116
 
80588
- function attachObserversToAdapterRequestContext(observers, adapterRequestContext) {
80589
- if (adapterRequestContext === undefined) {
80590
- return { eventObservers: observers };
80591
- }
80592
- if (adapterRequestContext.eventObservers === undefined) {
80593
- return { ...adapterRequestContext, eventObservers: observers };
80594
- }
80595
- return {
80596
- ...adapterRequestContext,
80597
- eventObservers: adapterRequestContext.eventObservers.concat(observers),
80598
- };
80599
- }
80600
- /**
80601
- * Use this method to sanitize the unknown error object when
80602
- * we are unsure of the type of the error thrown
80603
- *
80604
- * @param err Unknown object to sanitize
80605
- * @returns an instance of error
80606
- */
80607
- function normalizeError$1(err) {
80608
- if (err instanceof Error) {
80609
- return err;
80610
- }
80611
- else if (typeof err === 'string') {
80612
- return new Error(err);
80613
- }
80614
- return new Error(stringify$5(err));
80615
- }
80616
- // metrics
80617
- /** GraphQL */
80618
- const GRAPHQL_EVAL_ERROR = 'gql-eval-error';
80619
- const GRAPHQL_EVAL_DB_READ_DURATION = 'gql-eval-db-read-duration';
80620
- const GRAPHQL_EVAL_ROOT_QUERY_COUNT = 'gql-eval-root-query-count';
80621
- const GRAPHQL_EVAL_TOTAL_QUERY_COUNT = 'gql-eval-total-query-count';
80622
- const GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT = 'gql-eval-max-child-count';
80623
- const GRAPHQL_EVAL_QUERY_RECORD_COUNT = 'gql-eval-query-record-count';
80624
- const GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED = 'gql-snapshot-refresh-undefined';
80625
- /** Draft Queue */
80626
- const DRAFT_QUEUE_STATE_STARTED = 'draft-queue-state-started';
80627
- const DRAFT_QUEUE_STATE_ERROR = 'draft-queue-state-error';
80628
- const DRAFT_QUEUE_STATE_WAITING = 'draft-queue-state-waiting';
80629
- const DRAFT_QUEUE_STATE_STOPPED = 'draft-queue-state-stopped';
80630
- const DRAFT_QUEUE_ACTION_ADDED = 'draft-queue-action-added';
80631
- const DRAFT_QUEUE_ACTION_UPLOADING = 'draft-queue-action-uploading';
80632
- const DRAFT_QUEUE_ACTION_COMPLETED = 'draft-queue-action-completed';
80633
- const DRAFT_QUEUE_ACTION_DELETED = 'draft-queue-action-deleted';
80634
- const DRAFT_QUEUE_ACTION_UPDATED = 'draft-queue-action-updated';
80635
- const DRAFT_QUEUE_ACTION_FAILED = 'draft-queue-action-failed';
80636
- const DRAFT_QUEUE_TOTAL_MERGE_ACTIONS_CALLS = 'draft-queue-total-mergeActions-calls';
80637
- /** Content Document */
80638
- const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
80639
- const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
80640
- /** Priming */
80641
- const PRIMING_TOTAL_SESSION_COUNT = 'priming-total-session-count';
80642
- const PRIMING_TOTAL_ERROR_COUNT = 'priming-total-error-count';
80643
- const PRIMING_TOTAL_PRIMED_COUNT = 'priming-total-primed-count';
80644
- const PRIMING_TOTAL_CONFLICT_COUNT = 'priming-total-conflict-count';
80645
- // logs
80646
- const GRAPHQL_QUERY_PARSE_ERROR = 'gql-query-parse-error';
80647
- const GRAPHQL_SQL_EVAL_PRECONDITION_ERROR = 'gql-sql-pre-eval-error';
80648
- const GRAPHQL_CREATE_SNAPSHOT_ERROR = 'gql-create-snapshot-error';
80649
- const DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR = 'draft-aware-create-content-document-and-version-error';
80650
- /** Garbage Collection */
80651
- const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT = 'garbage-collection-aggressive-trim-count';
80652
- const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED = 'garbage-collection-aggressive-trim-records-trimmed';
80653
- const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM = 'garbage-collection-aggressive-trim-total-records-before-trim';
80654
- const ldsMobileInstrumentation$2 = getInstrumentation();
80655
- const nimbusLogger = typeof __nimbus !== 'undefined' &&
80656
- __nimbus.plugins !== undefined &&
80657
- __nimbus.plugins.JSLoggerPlugin !== undefined
80658
- ? __nimbus.plugins.JSLoggerPlugin
80659
- : undefined;
80660
- function reportGraphqlQueryParseError(err) {
80661
- const error = normalizeError$1(err);
80662
- const errorCode = GRAPHQL_QUERY_PARSE_ERROR;
80663
- // Metric
80664
- reportGraphqlAdapterError(errorCode);
80665
- // Log
80666
- ldsMobileInstrumentation$2.error(error, errorCode);
80667
- }
80668
- function reportGraphqlSqlEvalPreconditionError(err) {
80669
- const error = normalizeError$1(err);
80670
- const errorCode = GRAPHQL_SQL_EVAL_PRECONDITION_ERROR;
80671
- // Metric
80672
- reportGraphqlAdapterError(errorCode);
80673
- // Log
80674
- ldsMobileInstrumentation$2.error(error, errorCode);
80675
- }
80676
- function reportGraphqlCreateSnapshotError(err) {
80677
- const error = normalizeError$1(err);
80678
- const errorCode = GRAPHQL_CREATE_SNAPSHOT_ERROR;
80679
- // Metric
80680
- reportGraphqlAdapterError(errorCode);
80681
- // Log
80682
- ldsMobileInstrumentation$2.error(error, errorCode);
80683
- }
80684
- function reportGraphQlEvalDbReadDuration(duration) {
80685
- ldsMobileInstrumentation$2.trackValue(GRAPHQL_EVAL_DB_READ_DURATION, duration);
80686
- }
80687
- function reportGraphqlAdapterError(errorCode) {
80688
- // Increment overall count with errorCode as tag
80689
- ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_EVAL_ERROR, 1, true, { errorCode });
80690
- }
80691
- function reportGraphqlQueryInstrumentation(data) {
80692
- const queryBuckets = [1, 2, 3, 4, 5, 10, 20, 50, 100];
80693
- const recordBuckets = [
80694
- 1, 5, 10, 20, 50, 100, 1000, 2000, 5000, 10000, 50000, 100000, 1000000,
80695
- ];
80696
- ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_ROOT_QUERY_COUNT, data.rootQueryCount, queryBuckets);
80697
- ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_TOTAL_QUERY_COUNT, data.totalQueryCount, queryBuckets);
80698
- ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
80699
- ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
80700
- }
80701
- function incrementGraphQLRefreshUndfined() {
80702
- ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
80703
- }
80704
- function reportDraftActionEvent(state, draftCount, message) {
80705
- if (nimbusLogger) {
80706
- nimbusLogger.logInfo(`Draft action event: ${state}, depth: ${draftCount}${message ? `, message: ${message}` : ''}`);
80707
- }
80708
- switch (state) {
80709
- case 'added':
80710
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_ADDED);
80711
- break;
80712
- case 'uploading':
80713
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOADING);
80714
- break;
80715
- case 'completed':
80716
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_COMPLETED);
80717
- break;
80718
- case 'deleted':
80719
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_DELETED);
80720
- break;
80721
- case 'failed':
80722
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_FAILED, 1, true);
80723
- break;
80724
- case 'updated':
80725
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPDATED);
80726
- break;
80727
- }
80728
- }
80729
- function reportDraftQueueState(state, draftCount) {
80730
- if (nimbusLogger) {
80731
- nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
80732
- }
80733
- switch (state) {
80734
- case 'started':
80735
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STARTED);
80736
- break;
80737
- case 'error':
80738
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_ERROR, 1, true);
80739
- break;
80740
- case 'waiting':
80741
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_WAITING);
80742
- break;
80743
- case 'stopped':
80744
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STOPPED);
80745
- break;
80746
- }
80747
- }
80748
- function reportDraftAwareContentDocumentVersionSynthesizeError(err) {
80749
- let error;
80750
- if (err.body !== undefined) {
80751
- error = err.body;
80752
- }
80753
- else {
80754
- error = normalizeError$1(err);
80755
- }
80756
- const errorCode = DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR;
80757
- const errorType = error.errorType;
80758
- const tags = {
80759
- errorCode,
80760
- };
80761
- if (errorType !== undefined) {
80762
- tags.errorType = errorType;
80763
- }
80764
- // Metric
80765
- ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR, 1, true, tags);
80766
- // Log
80767
- ldsMobileInstrumentation$2.error(error, errorCode);
80768
- }
80769
- function reportDraftAwareContentVersionSynthesizeCalls(mimeType) {
80770
- ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS, 1, undefined, { mimeType });
80771
- }
80772
- /** Priming */
80773
- function reportPrimingSessionCreated() {
80774
- ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_SESSION_COUNT, 1, undefined, {});
80775
- }
80776
- function reportPrimingError(errorType, recordCount) {
80777
- ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_ERROR_COUNT, recordCount, undefined, {
80778
- errorType,
80779
- });
80780
- }
80781
- function reportPrimingSuccess(recordCount) {
80782
- ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_PRIMED_COUNT, recordCount, undefined);
80783
- }
80784
- function reportPrimingConflict(resolutionType, recordCount) {
80785
- ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_CONFLICT_COUNT, recordCount, undefined, {
80786
- resolutionType,
80787
- });
80788
- }
80789
- /** Network */
80790
- function reportChunkCandidateUrlLength(urlLength) {
80791
- const buckets = [8000, 10000, 12000, 14000, 16000];
80792
- ldsMobileInstrumentation$2.bucketValue('chunk-candidate-url-length-histogram', urlLength, buckets);
80793
- }
80794
- /** Garbage Collection */
80795
- function reportAggressiveTrimTriggered(trimCount, beforeTrimRecordCount, totalRecordsTrimmed) {
80796
- ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT, trimCount);
80797
- ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM, beforeTrimRecordCount);
80798
- ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED, totalRecordsTrimmed);
80799
- }
80800
- /** One Store Cache Purge */
80801
- const ONESTORE_CACHE_PURGING_RECORDS_PURGED = 'onestore-cache-purging-records-purged';
80802
- const ONESTORE_CACHE_PURGING_RECORDS_ERROR = 'onestore-cache-purging-records-error';
80803
- function reportOneStoreRecordsPurgedFromCache(recordsPurged) {
80804
- ldsMobileInstrumentation$2.trackValue(ONESTORE_CACHE_PURGING_RECORDS_PURGED, recordsPurged);
80805
- }
80806
- function reportOneStoreCachePurgingError(error) {
80807
- const errorMessage = normalizeError$1(error);
80808
- ldsMobileInstrumentation$2.error(errorMessage, ONESTORE_CACHE_PURGING_RECORDS_ERROR);
80809
- }
80810
-
80811
81117
  const QUICK_ACTION_HANDLER = 'QUICK_ACTION_HANDLER';
80812
81118
  class QuickActionExecutionRepresentationHandler extends AbstractQuickActionHandler {
80813
81119
  constructor(getLuvio, draftRecordService, draftQueue, networkAdapter, isDraftId, sideEffectService, objectInfoService, getRecord) {
@@ -85514,7 +85820,7 @@
85514
85820
  return Boolean(interfaces.find((iface) => iface.name === 'Record'));
85515
85821
  }
85516
85822
 
85517
- var uiapiSchemaString = "# Auto-generated merged GraphQL schema\n# Generated at: 2025-10-14T15:00:19.876399281Z\n# Source files: ui-services-private/java/resources/graphql-schemas/analytics.graphqls, ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls, ui-services-private/java/resources/graphql-schemas/setup.graphqls, ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/analytics.graphqls\n# ============================================================\ninput Analytics__AnalyticsFilter @team(name: \"TUA-Admin-Home-Search\") {\n Id: Setup__IdOperators\n MasterLabel: StringOperators\n DeveloperName: StringOperators\n NamespacePrefix: StringOperators\n AssetApiName: StringOperators\n DataConnectorType: StringOperators\n CreatedById: Setup__IdOperators\n LastModifiedById: Setup__IdOperators\n SemanticMetricId: Setup__IdOperators\n SemanticModelId: Setup__IdOperators\n LastModifiedDate: DateTimeOperators\n CreatedDate: DateTimeOperators\n AssetUsageType: PicklistOperators\n ActivePromotionRequestId: Setup__IdOperators\n SemanticModel: Analytics__SemanticModelFilter\n and: [Analytics__AnalyticsFilter]\n or: [Analytics__AnalyticsFilter]\n not: Analytics__AnalyticsFilter\n}\n\ninput Analytics__SemanticModelFilter @team(name: \"TUA-Admin-Home-Search\") {\n DeveloperName: StringOperators\n MasterLabel: StringOperators\n}\n\nenum Analytics__SortEnumType @team(name: \"TUA-Admin-Home-Search\") {\n ASC\n DESC\n}\n\ntype Analytics__SemanticSubMetricDefinitionConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticSubMetricDefinitionEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticSubMetricDefinitionEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticSubMetricDefinitionRepresentation\n cursor: String!\n}\n\ntype Analytics__DataspaceRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n MasterLabel: String\n DeveloperName: String\n}\n\ninterface Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__AnalyticsBrowse @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\n# Empty enum is invalid GraphQL\n# enum AnalyticsAssetType @team(name: \"TUA-Admin-Home-Search\") @generic {\n# }\n\ntype Analytics__AnalyticsWorkspaceAssetConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsWorkspaceAssetEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticDefinition implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n SemanticModelId: IDValue\n SemanticModel: Analytics__SemanticModel\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n SubMetrics(first: Int, after: String): Analytics__SemanticSubMetricDefinitionConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__DominoTemplate implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA Intel MarketPlace\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n TemplateStatus: StringValue\n TemplateType: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__AnalyticsEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsRepresentationInterface\n cursor: String!\n}\n\ntype Analytics__AnalyticsWorkspace @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n}\n\ntype Analytics__SemanticSubMetricDefinitionRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n SemanticMetricId: IDValue\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n}\n\ntype Analytics__AnalyticsWorkspaceAssetEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsWorkspaceAsset\n cursor: String!\n}\n\ninput Analytics__OrderByInput @team(name: \"TUA-Admin-Home-Search\") {\n order: Analytics__SortEnumType\n}\n\ntype Analytics__AnalyticsRepresentation implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n RecordOperations: [String]\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__SemanticModelRelatedModelConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticModelRelatedModelEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticModelRelatedModelRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n RelatedSemanticModel: Analytics__SemanticModel\n}\n\ntype Analytics__SemanticModelRelatedModelEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticModelRelatedModelRepresentation\n cursor: String!\n}\n\ntype Analytics__SemanticModel implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n RelatedModel(first: Int, after: String): Analytics__SemanticModelRelatedModelConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\n# assetTypes: AnalyticsAssetType - empty enum is invalid GraphQL so replace with String\ntype Analytics__Analytics @team(name: \"TUA-Admin-Home-Search\") {\n browse(where: Analytics__AnalyticsFilter, assetTypes: [String], orderBy: Analytics__AnalyticsOrderBy, first: Int, orgId: ID, after: String): Analytics__AnalyticsBrowse! @fieldCategory\n}\n\ntype Analytics__AnalyticsWorkspaceAsset @team(name: \"TUA-Admin-Home-Search\") {\n AnalyticsWorkspace: Analytics__AnalyticsWorkspace\n AssetUsageType: PicklistValue\n ActivePromotionRequestId: IDValue\n MetadataSourceType: PicklistValue\n}\n\ninput Analytics__AnalyticsOrderBy @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: Analytics__OrderByInput\n Id: Analytics__OrderByInput\n ApiName: Analytics__OrderByInput\n LastModifiedById: Analytics__OrderByInput\n CreatedById: Analytics__OrderByInput\n LastModifiedDate: Analytics__OrderByInput\n CreatedDate: Analytics__OrderByInput\n}\n\ntype Analytics__MktDataConnector implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n DataConnectorType: StringValue\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls\n# ============================================================\ninput Setup__ListOrderInput {\n apiName: String!\n order: ResultsOrder\n}\n\ntype Setup__ListOrder {\n apiName: String!\n order: ResultsOrder\n label: String\n}\n\ntype Setup__ListViewRowConnection {\n edges: [Setup__ListViewRowEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype Setup__ListView {\n listViewType: String!\n label: String\n displayColumns: [Setup__ListColumn!]!\n filters: [Setup__ListFilter!]\n filterLogic: String\n orderedByInfo: [Setup__ListOrder!]!\n searchable: Boolean!\n rows(first: Int, after: String, upperBound: Int, orderBy: Setup__ListOrderInput, searchTerm: String): Setup__ListViewRowConnection\n}\n\nenum Setup__ListFilterOperator {\n EQUALS\n NOT_EQUAL\n LESS_THAN\n GREATER_THAN\n LESS_OR_EQUAL\n GREATER_OR_EQUAL\n CONTAINS\n NOT_CONTAIN\n STARTS_WITH\n INCLUDES\n EXCLUDES\n WITHIN\n}\n\ntype Setup__ListFilter {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n label: String\n}\n\ntype Setup__ListColumn {\n apiName: String!\n label: String!\n type: DataType!\n displayable: Boolean!\n filterable: Boolean!\n defaultOperator: Setup__ListFilterOperator\n allowedOperators: [Setup__ListFilterOperator!]\n sortable: Boolean\n navigable: Boolean\n}\n\ntype Setup__ListScalarField {\n apiName: String!\n value: String\n dataType: DataType\n displayValue: String\n format: String\n label: String\n lookupRecordId: String\n lookupObjectApiName: String\n}\n\ntype Setup__ListViewRow {\n id: String\n columns(apiNames: [String!]): [Setup__ListScalarField]!\n}\n\ntype Setup__ListViewRowEdge {\n cursor: String!\n node: Setup__ListViewRow\n}\n\ntype Setup__ListViewObjectInfo {\n columns(apiNames: [String!], displayable: Boolean, filterable: Boolean) : [Setup__ListColumn!]!\n}\n\ninput Setup__ListFilterInput {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n}\n\nextend type Setup__Setup {\n ListView(listViewType: String!, label: String, displayColumns: [String!], filters: [Setup__ListFilterInput!], filterLogic: String): Setup__ListView!\n ListViewObjectInfo(listViewType: String!): Setup__ListViewObjectInfo!\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup.graphqls\n# ============================================================\n# scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQueryAggregate {\n recordQueryAggregate(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupAggregateOrderBy, scope: String, groupBy: Setup__SetupGroupBy, upperBound: Int, includeDeleted: Boolean): Setup__SetupAggregateConnection @fieldCategory\n}\n\nunion Setup__SetupPolymorphicParentRelationship @generic = Setup__EntityRepresentation\n\ninput Setup__SetupPolymorphicParentRelationshipRecordOrderBy @generic {\n Setup__SetupOrderBy: Setup__SetupOrderBy @fieldCategory\n}\n\ninput Setup__IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: Setup__JoinInput\n ninq: Setup__JoinInput\n}\n\ninput Setup__JoinInput {\n Record: Setup__SetupFilter @fieldCategory\n ApiName: String\n}\n\ntype Setup__SetupAggregateConnection @generic {\n edges: [Setup__SetupAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ninput Setup__SetupAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ntype Setup__SetupConnection @generic {\n edges: [Setup__SetupEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype Setup__SetupAggregateEdge @generic {\n node: Setup__SetupRecordResult\n cursor: String!\n}\n\ninput Setup__SetupPolymorphicParentRelationshipRecordFilter @generic {\n Setup__SetupFilter: Setup__SetupFilter @fieldCategory\n}\n\ntype Setup__SetupRecordResult @generic {\n aggregate: Setup__SetupRecordAggregate\n}\n\ntype Setup__SetupRecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: Setup__SetupRecordAggregate @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicAggregateParentRelationship @fieldCategory\n}\n\ninput Setup__SetupOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput Setup__SetupPolymorphicParentRelationshipOrderBy @generic {\n Setup__SetupAggregateOrderBy: Setup__SetupAggregateOrderBy @fieldCategory\n}\n\ntype Setup__SetupEdge @generic {\n node: Setup__EntityRepresentation\n cursor: String!\n}\n\n # scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQuery {\n recordQuery(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, scope: String, upperBound: Int, includeDeleted: Boolean, updateMRU: Boolean): Setup__SetupConnection @fieldCategory\n}\n\ntype Setup__EntityRepresentation @generic {\n Id: ID!\n ApiName: String!\n Entity__fields(type: SObject__FieldType): [SObject__Field]! @ignoreRule(rules:[{ rule: \"FieldCamelOrPascalCaseRule\" teamName: \"UI Experience API\" justification: \"SObject__ prefix added to prevent name collisions.\" }])\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: Setup__EntityRepresentation @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, upperBound: Int): Setup__SetupConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput Setup__SetupFilter @generic {\n and: [Setup__SetupFilter]\n or: [Setup__SetupFilter]\n not: Setup__SetupFilter\n parentRelationshipRecordFilter: Setup__SetupFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: Setup__SetupPolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n Setup__IdOperator: Setup__IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ninput Setup__SetupGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: Setup__SetupGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\nunion Setup__SetupPolymorphicAggregateParentRelationship @generic = Setup__SetupRecordAggregate\n\ntype Setup__Setup {\n query: Setup__SetupQuery!\n aggregate: Setup__SetupQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n}\n\ninput Setup__SetupPolymorphicParentRelationshipGroupBy @generic {\n Setup__SetupGroupBy: Setup__SetupGroupBy @fieldCategory\n}\n\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n# ============================================================\nscalar BigDecimal\nscalar Byte\nscalar Char\nscalar BigInteger\nscalar Short\nscalar String\nscalar Currency\nscalar Longitude\nscalar Float\nscalar PhoneNumber\nscalar Email\nscalar TextArea\nscalar Latitude\nscalar RichTextArea\nscalar EncryptedString\nscalar Long\nscalar JSON\nscalar Time\nscalar Percent\nscalar LongTextArea\nscalar DateTime\nscalar ID\nscalar Boolean\nscalar MultiPicklist\nscalar Base64\nscalar Url\nscalar Picklist\nscalar Double\nscalar Int\nscalar IdOrRef\nscalar Date\n\ntype PercentAggregate implements FieldValue {\n value: Percent\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: PercentValue\n min: PercentValue\n sum: PercentValue\n}\n\ntype StringAggregate implements FieldValue {\n value: String\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: StringValue\n min: StringValue\n}\n\ntype Query {\n uiapi: UIAPI!\n setup: Setup__Setup! @fieldCategory\n analytics: Analytics__Analytics! @fieldCategory\n}\n\ninput EmailOperators {\n eq: Email\n ne: Email\n like: Email\n lt: Email\n gt: Email\n lte: Email\n gte: Email\n in: [Email]\n nin: [Email]\n}\n\ninput DoubleOperators {\n eq: Double\n ne: Double\n lt: Double\n gt: Double\n lte: Double\n gte: Double\n in: [Double]\n nin: [Double]\n}\n\ntype DateOnlyAggregation {\n value: Date\n format: String\n}\n\ntype DateAggregate implements FieldValue {\n value: Date\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n grouping: IntValue\n max: DateValue\n min: DateValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\nenum GroupByFunction {\n DAY_IN_WEEK\n DAY_IN_MONTH\n DAY_IN_YEAR\n WEEK_IN_MONTH\n WEEK_IN_YEAR\n CALENDAR_MONTH\n CALENDAR_QUARTER\n CALENDAR_YEAR\n FISCAL_MONTH\n FISCAL_QUARTER\n FISCAL_YEAR\n DAY_ONLY\n HOUR_IN_DAY\n}\n\ntype RecordTypeInfo {\n available: Boolean!\n defaultRecordTypeMapping: Boolean!\n master: Boolean!\n name: String\n recordTypeId: ID\n}\n\ninput UIAPIMutationsInput {\n \"Determines whether or not all the operations should be rolled back in the event one or more operations fail.\"\n allOrNone: Boolean = true\n}\n\ntype ReferenceToInfo {\n ApiName: String!\n nameFields: [String]!\n objectInfo: ObjectInfo\n}\n\ninterface FieldValue {\n displayValue: String\n}\n\ntype LongitudeValue implements FieldValue {\n value: Longitude\n displayValue: String\n}\n\ntype IntValue implements FieldValue {\n value: Int\n displayValue: String\n format: String\n}\n\ntype UrlValue implements FieldValue {\n value: Url\n displayValue: String\n}\n\ntype LongAggregate implements FieldValue {\n value: Long\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: LongValue\n min: LongValue\n sum: LongValue\n}\n\ninput TimeOperators {\n eq: Time\n ne: Time\n lt: Time\n gt: Time\n lte: Time\n gte: Time\n in: [Time]\n nin: [Time]\n}\n\ntype PicklistValue implements FieldValue {\n value: Picklist\n displayValue: String\n label: String\n}\n\ntype RelatedListInfo @team(name: \"Lists Platform\") {\n childApiName: String!\n relatedListName: String!\n label: String!\n displayColumns: [ListColumn!]!\n orderedByInfo: [ListOrder!]!\n parentApiName: String!\n fieldApiName: String!\n}\n\ninput StringOperators {\n eq: String\n ne: String\n like: String\n lt: String\n gt: String\n lte: String\n gte: String\n in: [String]\n nin: [String]\n}\n\ntype UIAPI {\n query: RecordQuery!\n aggregate: RecordQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n relatedListByName(parentApiName: String!, relatedListName: String!): RelatedListInfo\n}\n\n\"Input for ObjectInfo and PickValues\"\ninput ObjectInfoInput {\n apiName: String!\n recordTypeIDs: [ID!]\n fieldNames: [String!]\n}\n\ninput MultiPicklistOperators {\n eq: MultiPicklist\n ne: MultiPicklist\n includes: [MultiPicklist]\n excludes: [MultiPicklist]\n}\n\ntype DateTimeAggregate implements FieldValue {\n value: DateTime\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n dayOnly: DateOnlyAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n hourInDay: DateFunctionAggregation\n max: DateTimeValue\n min: DateTimeValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\ntype EmailAggregate implements FieldValue {\n value: Email\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: EmailValue\n min: EmailValue\n}\n\ninput GroupByDateFunction {\n function: GroupByFunction\n}\n\ntype RichTextAreaValue implements FieldValue {\n value: RichTextArea\n displayValue: String\n label: String\n}\n\ninput DatePrimitiveOperators {\n eq: Date\n ne: Date\n lt: Date\n gt: Date\n lte: Date\n gte: Date\n in: [Date]\n nin: [Date]\n}\n\ntype TimeAggregate implements FieldValue {\n value: Time\n displayValue: String\n format: String\n hourInDay: DateFunctionAggregation\n}\n\ninput DistanceInput {\n latitude: Latitude!\n longitude: Longitude!\n}\n\nunion PolymorphicParentRelationship @generic = RecordRepresentation\n\nenum AggregateOrderByNumberFunction {\n AVG\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n SUM\n}\n\ntype LongTextAreaValue implements FieldValue {\n value: LongTextArea\n displayValue: String\n label: String\n}\n\ninput OrderByClause {\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype SObject__Field {\n name: String!\n value: String\n}\n\ntype RecordAggregateConnection @generic {\n edges: [RecordAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype LongitudeAggregate implements FieldValue {\n value: Longitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LongitudeValue\n min: LongitudeValue\n sum: DoubleValue\n}\n\ntype DateValue implements FieldValue {\n value: Date\n displayValue: String\n format: String\n}\n\ninput URLOperators {\n eq: Url\n ne: Url\n like: Url\n lt: Url\n gt: Url\n lte: Url\n gte: Url\n in: [Url]\n nin: [Url]\n}\n\ninput LongOperators {\n eq: Long\n ne: Long\n lt: Long\n gt: Long\n lte: Long\n gte: Long\n in: [Long]\n nin: [Long]\n}\n\nenum DataType {\n STRING\n TEXTAREA\n PHONE\n EMAIL\n URL\n ENCRYPTEDSTRING\n BOOLEAN\n CURRENCY\n INT\n LONG\n DOUBLE\n PERCENT\n DATETIME\n TIME\n DATE\n REFERENCE\n PICKLIST\n MULTIPICKLIST\n ADDRESS\n LOCATION\n BASE64\n COMPLEXVALUE\n COMBOBOX\n JSON\n JUNCTIONIDLIST\n ANYTYPE\n}\n\ntype DoubleAggregate implements FieldValue {\n value: Double\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: DoubleValue\n min: DoubleValue\n sum: DoubleValue\n}\n\ninput DateOperators {\n eq: DateInput\n ne: DateInput\n lt: DateInput\n gt: DateInput\n lte: DateInput\n gte: DateInput\n in: [DateInput]\n nin: [DateInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n}\n\ninput GeolocationInput {\n latitude: Latitude!\n longitude: Longitude!\n radius: Float!\n unit: Unit!\n}\n\ninput JoinInput {\n Record: RecordFilter @fieldCategory\n ApiName: String\n}\n\ntype RecordUpdatePayload @generic {\n Record: RecordRepresentation\n success: Boolean @deprecated\n}\n\ninput PercentOperators {\n eq: Percent\n ne: Percent\n lt: Percent\n gt: Percent\n lte: Percent\n gte: Percent\n in: [Percent]\n nin: [Percent]\n}\n\ntype DoubleValue implements FieldValue {\n value: Double\n displayValue: String\n format: String\n}\n\ntype IDAggregate implements FieldValue {\n value: ID\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: IDValue\n min: IDValue\n}\n\ninput RecordCreateInput @generic {\n record: RecordCreateRepresentation! @fieldCategory\n}\n\ninput AggregateOrderByStringClause {\n function: AggregateOrderByStringFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\n\"The return value for the mutation to delete a Record\"\ntype RecordDeletePayload {\n \"The ID of the deleted Record\"\n Id: ID\n}\n\nenum DateLiteral {\n YESTERDAY\n TODAY\n TOMORROW\n LAST_WEEK\n THIS_WEEK\n NEXT_WEEK\n LAST_MONTH\n THIS_MONTH\n NEXT_MONTH\n LAST_90_DAYS\n NEXT_90_DAYS\n LAST_QUARTER\n THIS_QUARTER\n NEXT_QUARTER\n LAST_FISCAL_QUARTER\n THIS_FISCAL_QUARTER\n NEXT_FISCAL_QUARTER\n LAST_YEAR\n THIS_YEAR\n NEXT_YEAR\n LAST_FISCAL_YEAR\n THIS_FISCAL_YEAR\n NEXT_FISCAL_YEAR\n}\n\ntype RecordRepresentation implements Record @generic {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n SetupUserSpecialField: BooleanValue @fieldCategory\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: RecordRepresentation @fieldCategory\n polymorphicParentRelationship: PolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, upperBound: Int): RecordConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput OrderByGeolocationClause {\n distance: DistanceInput\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype TextAreaAggregate implements FieldValue {\n value: TextArea\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: TextAreaValue\n min: TextAreaValue\n}\n\nenum GroupByType {\n GROUP_BY\n ROLLUP\n CUBE\n}\n\nenum ResultsOrder {\n ASC\n DESC\n}\n\ntype PicklistAggregate implements FieldValue {\n value: Picklist\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: PicklistValue\n min: PicklistValue\n}\n\ninput RecordUpdateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\ntype DateTimeValue implements FieldValue {\n value: DateTime\n displayValue: String\n format: String\n}\n\n\"Input to the mutation to delete a Record\"\ninput RecordDeleteInput {\n \"The ID of the Record to delete\"\n Id: IdOrRef!\n}\n\ntype ListOrder @team(name: \"Lists Platform\") {\n fieldApiName: String!\n sortDirection: ResultOrder\n}\n\nenum AggregateOrderByStringFunction {\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n}\n\ntype LongValue implements FieldValue {\n value: Long\n displayValue: String\n format: String\n}\n\ntype DependentField {\n controllingField: String!\n dependentFields: [String]!\n}\n\ntype PercentValue implements FieldValue {\n value: Percent\n displayValue: String\n format: String\n}\n\ninput NoFunctionAggregateOrderByClause {\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype RecordConnection @generic {\n edges: [RecordEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype FilteredLookupInfo {\n controllingFields: [String]!\n dependent: Boolean!\n optionalFilter: Boolean!\n}\n\ninput PhoneNumberOperators {\n eq: PhoneNumber\n ne: PhoneNumber\n like: PhoneNumber\n lt: PhoneNumber\n gt: PhoneNumber\n lte: PhoneNumber\n gte: PhoneNumber\n in: [PhoneNumber]\n nin: [PhoneNumber]\n}\n\ntype ObjectInfo {\n ApiName: String!\n childRelationships: [ChildRelationship]!\n createable: Boolean!\n custom: Boolean!\n defaultRecordTypeId: ID\n deletable: Boolean!\n dependentFields: [DependentField]!\n feedEnabled: Boolean!\n fields: [Field]!\n keyPrefix: String\n label: String\n labelPlural: String\n layoutable: Boolean!\n mruEnabled: Boolean!\n nameFields: [String]!\n queryable: Boolean!\n recordTypeInfos: [RecordTypeInfo]!\n searchable: Boolean!\n themeInfo: ThemeInfo\n updateable: Boolean!\n locale: String\n}\n\ninput LongitudeOperators {\n eq: Longitude\n ne: Longitude\n lt: Longitude\n gt: Longitude\n lte: Longitude\n gte: Longitude\n in: [Longitude]\n nin: [Longitude]\n}\n\ninterface Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype StandardField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n picklistValuesByRecordTypeIDs: [PicklistValueByRecordTypeIDs]\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistValueByRecordTypeIDs {\n recordTypeID: String!\n controllerValues: [ControllerValues!]\n picklistValues: [PicklistValues!]\n defaultValue: PicklistValues\n}\n\ntype ControllerValues {\n value: String\n index: Int\n}\n\ntype PicklistValues {\n value: String\n label: String\n validFor: [Int]\n attributes: PicklistAttributes\n}\n\ntype PicklistAttributes {\n picklistAtrributesValueType: String\n connectDisplayName: String\n internalName: String\n}\n\ninput DateTimeFunctionInput {\n value: DatePrimitiveOperators\n convertTimezoneValue: DatePrimitiveOperators\n}\n\ntype Base64Value implements FieldValue {\n value: Base64\n displayValue: String\n}\n\ntype CompoundField @generic {\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n}\n\ninput RecordUpdateInput @generic {\n Id: IdOrRef!\n record: RecordUpdateRepresentation! @fieldCategory\n}\n\ninput DateTimeInput {\n value: DateTime\n literal: DateLiteral\n range: DateRange\n}\n\ntype ChildRelationship {\n childObjectApiName: String!\n fieldName: String\n junctionIdListNames: [String]!\n junctionReferenceTo: [String]!\n relationshipName: String\n objectInfo: ObjectInfo\n}\n\ntype RecordResult @generic {\n aggregate: RecordAggregate\n}\n\ntype PageInfo {\n hasNextPage: Boolean!\n hasPreviousPage: Boolean!\n startCursor: String\n endCursor: String\n}\n\ntype CurrencyValue implements FieldValue {\n value: Currency\n displayValue: String\n format: String\n convertCurrency: Currency\n}\n\ntype DateFunctionAggregation {\n value: Long\n format: String\n}\n\ninput PolymorphicParentRelationshipRecordOrderBy @generic {\n RecordOrderBy: RecordOrderBy @fieldCategory\n}\n\ntype RecordCreatePayload @generic {\n Record: RecordRepresentation\n}\n\ninput PolymorphicParentRelationshipGroupBy @generic {\n RecordGroupBy: RecordGroupBy @fieldCategory\n}\n\ntype BooleanValue implements FieldValue {\n value: Boolean\n displayValue: String\n}\n\ntype StringValue implements FieldValue {\n value: String\n displayValue: String\n label: String\n}\n\ninput IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: JoinInput\n ninq: JoinInput\n}\n\ntype PhoneNumberAggregate implements FieldValue {\n value: PhoneNumber\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: PhoneNumberValue\n min: PhoneNumberValue\n}\n\ntype CurrencyAggregate implements FieldValue {\n value: Currency\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: CurrencyValue\n min: CurrencyValue\n sum: CurrencyValue\n}\n\ninput BooleanOperators {\n eq: Boolean\n ne: Boolean\n}\n\ntype MultiPicklistValue implements FieldValue {\n value: MultiPicklist\n displayValue: String\n label: String\n}\n\ntype ListColumn @team(name: \"Lists Platform\") {\n fieldApiName: String!\n label: String!\n lookupId: String\n sortable: Boolean\n}\n\ntype LatitudeAggregate implements FieldValue {\n value: Latitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LatitudeValue\n min: LatitudeValue\n sum: DoubleValue\n}\n\ninput CurrencyOperators {\n eq: Currency\n ne: Currency\n lt: Currency\n gt: Currency\n lte: Currency\n gte: Currency\n in: [Currency]\n nin: [Currency]\n}\n\ntype LatitudeValue implements FieldValue {\n value: Latitude\n displayValue: String\n}\n\ninput GroupByClause {\n group: Boolean\n}\n\ntype RecordEdge @generic {\n node: RecordRepresentation\n cursor: String!\n}\n\nenum NullOrder {\n FIRST\n LAST\n}\n\ntype PhoneNumberValue implements FieldValue {\n value: PhoneNumber\n displayValue: String\n}\n\n# RecordScope is an empty enum\n# enum RecordScope @generic {\n# }\n\ninput TextAreaOperators {\n eq: TextArea\n ne: TextArea\n like: TextArea\n lt: TextArea\n gt: TextArea\n lte: TextArea\n gte: TextArea\n in: [TextArea]\n nin: [TextArea]\n}\n\ntype TextAreaValue implements FieldValue {\n value: TextArea\n displayValue: String\n label: String\n}\n\ntype RecordAggregateEdge @generic {\n node: RecordResult\n cursor: String!\n}\n\ntype ThemeInfo {\n color: String\n iconUrl: String\n}\n\ntype UrlAggregate implements FieldValue {\n value: Url\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: UrlValue\n min: UrlValue\n}\n\ntype IDValue implements FieldValue {\n value: ID\n displayValue: String\n}\n\nenum Unit {\n MI\n KM\n}\n\ninput PolymorphicParentRelationshipOrderBy @generic {\n RecordAggregateOrderBy: RecordAggregateOrderBy @fieldCategory\n}\n\nenum NullsOrder {\n FIRST\n LAST\n}\n\nenum ResultOrder {\n ASC\n DESC\n}\n\ninput RecordOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput PicklistOperators {\n eq: Picklist\n ne: Picklist\n in: [Picklist]\n nin: [Picklist]\n like: Picklist\n lt: Picklist\n gt: Picklist\n lte: Picklist\n gte: Picklist\n}\n\ninput RecordFilter @generic {\n and: [RecordFilter]\n or: [RecordFilter]\n not: RecordFilter\n parentRelationshipRecordFilter: RecordFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: PolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n IdOperator: IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ntype TimeValue implements FieldValue {\n value: Time\n displayValue: String\n format: String\n}\n\ninput GeolocationOperators {\n lt: GeolocationInput\n gt: GeolocationInput\n}\n\ninput LatitudeOperators {\n eq: Latitude\n ne: Latitude\n lt: Latitude\n gt: Latitude\n lte: Latitude\n gte: Latitude\n in: [Latitude]\n nin: [Latitude]\n}\n\ntype IntAggregate implements FieldValue {\n value: Int\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: IntValue\n min: IntValue\n sum: LongValue\n}\n\ntype RecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: RecordAggregate @fieldCategory\n polymorphicParentRelationship: PolymorphicAggregateParentRelationship @fieldCategory\n}\n\nenum SObject__FieldType {\n ALL\n STANDARD\n CUSTOM\n}\n\ntype JSONValue implements FieldValue {\n value: JSON\n displayValue: String\n}\n\ntype EmailValue implements FieldValue {\n value: Email\n displayValue: String\n}\n\ninput DateFunctionInput {\n value: LongOperators\n convertTimezoneValue: LongOperators\n}\n\n# Mutations are not supported by Luvio.\n# type Mutation {\n# uiapi(input: UIAPIMutationsInput): UIAPIMutations!\n# }\n\nunion PolymorphicAggregateParentRelationship @generic = RecordAggregate\n\ninput LongTextAreaOperators {\n eq: LongTextArea\n ne: LongTextArea\n like: LongTextArea\n lt: LongTextArea\n gt: LongTextArea\n lte: LongTextArea\n gte: LongTextArea\n in: [LongTextArea]\n nin: [LongTextArea]\n}\n\ninput DateTimeOperators {\n eq: DateTimeInput\n ne: DateTimeInput\n lt: DateTimeInput\n gt: DateTimeInput\n lte: DateTimeInput\n gte: DateTimeInput\n in: [DateTimeInput]\n nin: [DateTimeInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n DAY_ONLY: DateTimeFunctionInput\n HOUR_IN_DAY: DateFunctionInput\n}\n\ntype BooleanAggregate implements FieldValue {\n value: Boolean\n displayValue: String\n grouping: IntValue\n}\n\ntype RecordQueryAggregate {\n # scope should be RecordScope, but it is an empty enum\n recordQueryAggregate(first: Int, after: String, where: RecordFilter, orderBy: RecordAggregateOrderBy, scope: String, groupBy: RecordGroupBy, upperBound: Int): RecordAggregateConnection @fieldCategory\n}\n\ninput RecordCreateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\nenum FieldExtraTypeInfo {\n IMAGE_URL\n EXTERNAL_LOOKUP\n INDIRECT_LOOKUP\n PERSONNAME\n SWITCHABLE_PERSONNAME\n PLAINTEXTAREA\n RICHTEXTAREA\n}\n\ntype RateLimit {\n cost: Long\n limit: Long\n remaining: Long\n resetAt: DateTime\n}\n\ninput DateRange {\n last_n_days: Int\n next_n_days: Int\n last_n_weeks: Int\n next_n_weeks: Int\n last_n_months: Int\n next_n_months: Int\n last_n_quarters: Int\n next_n_quarters: Int\n last_n_fiscal_quarters: Int\n next_n_fiscal_quarters: Int\n last_n_years: Int\n next_n_years: Int\n last_n_fiscal_years: Int\n next_n_fiscal_years: Int\n n_days_ago: Int\n n_weeks_ago: Int\n n_months_ago: Int\n n_quarters_ago: Int\n n_years_ago: Int\n n_fiscal_quarters_ago: Int\n n_fiscal_years_ago: Int\n}\n\ntype UIAPIMutations {\n recordCreate(input: RecordCreateInput!): RecordCreatePayload @fieldCategory\n recordDelete(input: RecordDeleteInput!): RecordDeletePayload @fieldCategory\n recordUpdate(input: RecordUpdateInput!): RecordUpdatePayload @fieldCategory\n}\n\ninput IntegerOperators {\n eq: Int\n ne: Int\n lt: Int\n gt: Int\n lte: Int\n gte: Int\n in: [Int]\n nin: [Int]\n}\n\ntype EncryptedStringValue implements FieldValue {\n value: EncryptedString\n displayValue: String\n}\n\ninterface Record {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n}\n\ninput PolymorphicParentRelationshipRecordFilter @generic {\n RecordFilter: RecordFilter @fieldCategory\n}\n\n\"\"\"\nA type that can contain any of the following types: Boolean, Date, DateTime, Double, String.\nFormat and Label are not supported by AnyType and displayValue is an unformatted string representation of the value.\n\"\"\"\nunion AnyType = BooleanValue | DateValue | DateTimeValue | DoubleValue | StringValue\n\ninput AggregateOrderByNumberClause {\n function: AggregateOrderByNumberFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ninput DateInput {\n value: Date\n literal: DateLiteral\n range: DateRange\n}\n\ninput RecordGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: RecordGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: PolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\ntype RecordQuery {\n # scope should be RecordScope, but it is an empty enum\n recordQuery(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, scope: String, upperBound: Int, updateMRU: Boolean): RecordConnection @fieldCategory\n}\n\ninput RecordAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ninput IgnoreRule {\n rule: String!\n teamName: String!\n justification: String!\n}\n\ndirective @generic on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT\ndirective @fieldCategory on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | ENUM_VALUE\ndirective @category(name: String!) on FIELD\n\"Specifies the team name for a type\"\ndirective @team(name: String!) on OBJECT | INPUT_OBJECT | INTERFACE | ENUM | UNION | SCALAR\n\"Specifies the validation rules to ignore for this element.\"\ndirective @ignoreRule(rules: [IgnoreRule!]!) on OBJECT\n | INPUT_OBJECT\n | INTERFACE\n | ENUM\n | UNION\n | SCALAR\n | FIELD_DEFINITION\n | INPUT_FIELD_DEFINITION\n | ARGUMENT_DEFINITION\n | ENUM_VALUE\ndirective @optional on FIELD\n\ntype __Type {\n kind: __TypeKind!\n name: String\n description: String\n fields(includeDeprecated: Boolean = false): [__Field!]\n interfaces: [__Type!]\n possibleTypes: [__Type!]\n enumValues(includeDeprecated: Boolean = false): [__EnumValue!]\n inputFields: [__InputValue!]\n ofType: __Type\n}";
85823
+ var uiapiSchemaString = "# Auto-generated merged GraphQL schema\n# Generated at: 2025-10-14T15:00:19.876399281Z\n# Source files: ui-services-private/java/resources/graphql-schemas/analytics.graphqls, ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls, ui-services-private/java/resources/graphql-schemas/setup.graphqls, ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/analytics.graphqls\n# ============================================================\ninput Analytics__AnalyticsFilter @team(name: \"TUA-Admin-Home-Search\") {\n Id: Setup__IdOperators\n MasterLabel: StringOperators\n DeveloperName: StringOperators\n NamespacePrefix: StringOperators\n AssetApiName: StringOperators\n DataConnectorType: StringOperators\n CreatedById: Setup__IdOperators\n LastModifiedById: Setup__IdOperators\n SemanticMetricId: Setup__IdOperators\n SemanticModelId: Setup__IdOperators\n LastModifiedDate: DateTimeOperators\n CreatedDate: DateTimeOperators\n AssetUsageType: PicklistOperators\n ActivePromotionRequestId: Setup__IdOperators\n SemanticModel: Analytics__SemanticModelFilter\n and: [Analytics__AnalyticsFilter]\n or: [Analytics__AnalyticsFilter]\n not: Analytics__AnalyticsFilter\n}\n\ninput Analytics__SemanticModelFilter @team(name: \"TUA-Admin-Home-Search\") {\n DeveloperName: StringOperators\n MasterLabel: StringOperators\n}\n\nenum Analytics__SortEnumType @team(name: \"TUA-Admin-Home-Search\") {\n ASC\n DESC\n}\n\ntype Analytics__SemanticSubMetricDefinitionConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticSubMetricDefinitionEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticSubMetricDefinitionEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticSubMetricDefinitionRepresentation\n cursor: String!\n}\n\ntype Analytics__DataspaceRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n MasterLabel: String\n DeveloperName: String\n}\n\ninterface Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__AnalyticsBrowse @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\n# Empty enum is invalid GraphQL\n# enum AnalyticsAssetType @team(name: \"TUA-Admin-Home-Search\") @generic {\n# }\n\ntype Analytics__AnalyticsWorkspaceAssetConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsWorkspaceAssetEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticDefinition implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n SemanticModelId: IDValue\n SemanticModel: Analytics__SemanticModel\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n SubMetrics(first: Int, after: String): Analytics__SemanticSubMetricDefinitionConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__DominoTemplate implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA Intel MarketPlace\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n TemplateStatus: StringValue\n TemplateType: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__AnalyticsEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsRepresentationInterface\n cursor: String!\n}\n\ntype Analytics__AnalyticsWorkspace @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n}\n\ntype Analytics__SemanticSubMetricDefinitionRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n SemanticMetricId: IDValue\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n}\n\ntype Analytics__AnalyticsWorkspaceAssetEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsWorkspaceAsset\n cursor: String!\n}\n\ninput Analytics__OrderByInput @team(name: \"TUA-Admin-Home-Search\") {\n order: Analytics__SortEnumType\n}\n\ntype Analytics__AnalyticsRepresentation implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n RecordOperations: [String]\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__SemanticModelRelatedModelConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticModelRelatedModelEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticModelRelatedModelRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n RelatedSemanticModel: Analytics__SemanticModel\n}\n\ntype Analytics__SemanticModelRelatedModelEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticModelRelatedModelRepresentation\n cursor: String!\n}\n\ntype Analytics__SemanticModel implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n RelatedModel(first: Int, after: String): Analytics__SemanticModelRelatedModelConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\n# assetTypes: AnalyticsAssetType - empty enum is invalid GraphQL so replace with String\ntype Analytics__Analytics @team(name: \"TUA-Admin-Home-Search\") {\n browse(where: Analytics__AnalyticsFilter, assetTypes: [String], orderBy: Analytics__AnalyticsOrderBy, first: Int, orgId: ID, after: String): Analytics__AnalyticsBrowse! @fieldCategory\n}\n\ntype Analytics__AnalyticsWorkspaceAsset @team(name: \"TUA-Admin-Home-Search\") {\n AnalyticsWorkspace: Analytics__AnalyticsWorkspace\n AssetUsageType: PicklistValue\n ActivePromotionRequestId: IDValue\n MetadataSourceType: PicklistValue\n}\n\ninput Analytics__AnalyticsOrderBy @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: Analytics__OrderByInput\n Id: Analytics__OrderByInput\n ApiName: Analytics__OrderByInput\n LastModifiedById: Analytics__OrderByInput\n CreatedById: Analytics__OrderByInput\n LastModifiedDate: Analytics__OrderByInput\n CreatedDate: Analytics__OrderByInput\n}\n\ntype Analytics__MktDataConnector implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n DataConnectorType: StringValue\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls\n# ============================================================\ninput Setup__ListOrderInput {\n apiName: String!\n order: ResultsOrder\n}\n\ntype Setup__ListOrder {\n apiName: String!\n order: ResultsOrder\n label: String\n}\n\ntype Setup__ListViewRowConnection {\n edges: [Setup__ListViewRowEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype Setup__ListView {\n listViewType: String!\n label: String\n displayColumns: [Setup__ListColumn!]!\n filters: [Setup__ListFilter!]\n filterLogic: String\n orderedByInfo: [Setup__ListOrder!]!\n searchable: Boolean!\n rows(first: Int, after: String, upperBound: Int, orderBy: Setup__ListOrderInput, searchTerm: String): Setup__ListViewRowConnection\n}\n\nenum Setup__ListFilterOperator {\n EQUALS\n NOT_EQUAL\n LESS_THAN\n GREATER_THAN\n LESS_OR_EQUAL\n GREATER_OR_EQUAL\n CONTAINS\n NOT_CONTAIN\n STARTS_WITH\n INCLUDES\n EXCLUDES\n WITHIN\n}\n\ntype Setup__ListFilter {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n label: String\n}\n\ntype Setup__ListColumn {\n apiName: String!\n label: String!\n type: DataType!\n displayable: Boolean!\n filterable: Boolean!\n defaultOperator: Setup__ListFilterOperator\n allowedOperators: [Setup__ListFilterOperator!]\n sortable: Boolean\n navigable: Boolean\n}\n\ntype Setup__ListScalarField {\n apiName: String!\n value: String\n dataType: DataType\n displayValue: String\n format: String\n label: String\n lookupRecordId: String\n lookupObjectApiName: String\n}\n\ntype Setup__ListViewRow {\n id: String\n columns(apiNames: [String!]): [Setup__ListScalarField]!\n}\n\ntype Setup__ListViewRowEdge {\n cursor: String!\n node: Setup__ListViewRow\n}\n\ntype Setup__ListViewObjectInfo {\n columns(apiNames: [String!], displayable: Boolean, filterable: Boolean) : [Setup__ListColumn!]!\n}\n\ninput Setup__ListFilterInput {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n}\n\nextend type Setup__Setup {\n ListView(listViewType: String!, label: String, displayColumns: [String!], filters: [Setup__ListFilterInput!], filterLogic: String): Setup__ListView!\n ListViewObjectInfo(listViewType: String!): Setup__ListViewObjectInfo!\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup.graphqls\n# ============================================================\n# scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQueryAggregate {\n recordQueryAggregate(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupAggregateOrderBy, scope: String, groupBy: Setup__SetupGroupBy, upperBound: Int, includeDeleted: Boolean): Setup__SetupAggregateConnection @fieldCategory\n}\n\nunion Setup__SetupPolymorphicParentRelationship @generic = Setup__EntityRepresentation\n\ninput Setup__SetupPolymorphicParentRelationshipRecordOrderBy @generic {\n Setup__SetupOrderBy: Setup__SetupOrderBy @fieldCategory\n}\n\ninput Setup__IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: Setup__JoinInput\n ninq: Setup__JoinInput\n}\n\ninput Setup__JoinInput {\n Record: Setup__SetupFilter @fieldCategory\n ApiName: String\n}\n\ntype Setup__SetupAggregateConnection @generic {\n edges: [Setup__SetupAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ninput Setup__SetupAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ntype Setup__SetupConnection @generic {\n edges: [Setup__SetupEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype Setup__SetupAggregateEdge @generic {\n node: Setup__SetupRecordResult\n cursor: String!\n}\n\ninput Setup__SetupPolymorphicParentRelationshipRecordFilter @generic {\n Setup__SetupFilter: Setup__SetupFilter @fieldCategory\n}\n\ntype Setup__SetupRecordResult @generic {\n aggregate: Setup__SetupRecordAggregate\n}\n\ntype Setup__SetupRecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: Setup__SetupRecordAggregate @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicAggregateParentRelationship @fieldCategory\n}\n\ninput Setup__SetupOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput Setup__SetupPolymorphicParentRelationshipOrderBy @generic {\n Setup__SetupAggregateOrderBy: Setup__SetupAggregateOrderBy @fieldCategory\n}\n\ntype Setup__SetupEdge @generic {\n node: Setup__EntityRepresentation\n cursor: String!\n}\n\n # scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQuery {\n recordQuery(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, scope: String, upperBound: Int, includeDeleted: Boolean, updateMRU: Boolean): Setup__SetupConnection @fieldCategory\n}\n\ntype Setup__EntityRepresentation @generic {\n Id: ID!\n ApiName: String!\n Entity__fields(type: SObject__FieldType): [SObject__Field]! @ignoreRule(rules:[{ rule: \"FieldCamelOrPascalCaseRule\" teamName: \"UI Experience API\" justification: \"SObject__ prefix added to prevent name collisions.\" }])\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: Setup__EntityRepresentation @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, upperBound: Int): Setup__SetupConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput Setup__SetupFilter @generic {\n and: [Setup__SetupFilter]\n or: [Setup__SetupFilter]\n not: Setup__SetupFilter\n parentRelationshipRecordFilter: Setup__SetupFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: Setup__SetupPolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n Setup__IdOperator: Setup__IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ninput Setup__SetupGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: Setup__SetupGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\nunion Setup__SetupPolymorphicAggregateParentRelationship @generic = Setup__SetupRecordAggregate\n\ntype Setup__Setup {\n query: Setup__SetupQuery!\n aggregate: Setup__SetupQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n}\n\ninput Setup__SetupPolymorphicParentRelationshipGroupBy @generic {\n Setup__SetupGroupBy: Setup__SetupGroupBy @fieldCategory\n}\n\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n# ============================================================\nscalar BigDecimal\nscalar Byte\nscalar Char\nscalar BigInteger\nscalar Short\nscalar String\nscalar Currency\nscalar Longitude\nscalar Float\nscalar PhoneNumber\nscalar Email\nscalar TextArea\nscalar Latitude\nscalar RichTextArea\nscalar EncryptedString\nscalar Long\nscalar JSON\nscalar Time\nscalar Percent\nscalar LongTextArea\nscalar DateTime\nscalar ID\nscalar Boolean\nscalar MultiPicklist\nscalar Base64\nscalar Url\nscalar Picklist\nscalar Double\nscalar Int\nscalar IdOrRef\nscalar Date\n\ntype PercentAggregate implements FieldValue {\n value: Percent\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: PercentValue\n min: PercentValue\n sum: PercentValue\n}\n\ntype StringAggregate implements FieldValue {\n value: String\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: StringValue\n min: StringValue\n}\n\ntype Query {\n uiapi: UIAPI!\n setup: Setup__Setup! @fieldCategory\n analytics: Analytics__Analytics! @fieldCategory\n}\n\ninput EmailOperators {\n eq: Email\n ne: Email\n like: Email\n lt: Email\n gt: Email\n lte: Email\n gte: Email\n in: [Email]\n nin: [Email]\n}\n\ninput DoubleOperators {\n eq: Double\n ne: Double\n lt: Double\n gt: Double\n lte: Double\n gte: Double\n in: [Double]\n nin: [Double]\n}\n\ntype DateOnlyAggregation {\n value: Date\n format: String\n}\n\ntype DateAggregate implements FieldValue {\n value: Date\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n grouping: IntValue\n max: DateValue\n min: DateValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\nenum GroupByFunction {\n DAY_IN_WEEK\n DAY_IN_MONTH\n DAY_IN_YEAR\n WEEK_IN_MONTH\n WEEK_IN_YEAR\n CALENDAR_MONTH\n CALENDAR_QUARTER\n CALENDAR_YEAR\n FISCAL_MONTH\n FISCAL_QUARTER\n FISCAL_YEAR\n DAY_ONLY\n HOUR_IN_DAY\n}\n\ntype RecordTypeInfo {\n available: Boolean!\n defaultRecordTypeMapping: Boolean!\n master: Boolean!\n name: String\n recordTypeId: ID\n}\n\ninput UIAPIMutationsInput {\n \"Determines whether or not all the operations should be rolled back in the event one or more operations fail.\"\n allOrNone: Boolean = true\n}\n\ntype ReferenceToInfo {\n ApiName: String!\n nameFields: [String]!\n objectInfo: ObjectInfo\n}\n\ninterface FieldValue {\n displayValue: String\n}\n\ntype LongitudeValue implements FieldValue {\n value: Longitude\n displayValue: String\n}\n\ntype IntValue implements FieldValue {\n value: Int\n displayValue: String\n format: String\n}\n\ntype UrlValue implements FieldValue {\n value: Url\n displayValue: String\n}\n\ntype LongAggregate implements FieldValue {\n value: Long\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: LongValue\n min: LongValue\n sum: LongValue\n}\n\ninput TimeOperators {\n eq: Time\n ne: Time\n lt: Time\n gt: Time\n lte: Time\n gte: Time\n in: [Time]\n nin: [Time]\n}\n\ntype PicklistValue implements FieldValue {\n value: Picklist\n displayValue: String\n label: String\n}\n\ntype RelatedListInfo @team(name: \"Lists Platform\") {\n childApiName: String!\n relatedListName: String!\n label: String!\n displayColumns: [ListColumn!]!\n orderedByInfo: [ListOrder!]!\n parentApiName: String!\n fieldApiName: String!\n}\n\ninput StringOperators {\n eq: String\n ne: String\n like: String\n lt: String\n gt: String\n lte: String\n gte: String\n in: [String]\n nin: [String]\n}\n\ntype UIAPI {\n query: RecordQuery!\n aggregate: RecordQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n relatedListByName(parentApiName: String!, relatedListName: String!): RelatedListInfo\n}\n\n\"Input for ObjectInfo and PickValues\"\ninput ObjectInfoInput {\n apiName: String!\n recordTypeIDs: [ID!]\n fieldNames: [String!]\n}\n\ninput MultiPicklistOperators {\n eq: MultiPicklist\n ne: MultiPicklist\n includes: [MultiPicklist]\n excludes: [MultiPicklist]\n}\n\ntype DateTimeAggregate implements FieldValue {\n value: DateTime\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n dayOnly: DateOnlyAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n hourInDay: DateFunctionAggregation\n max: DateTimeValue\n min: DateTimeValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\ntype EmailAggregate implements FieldValue {\n value: Email\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: EmailValue\n min: EmailValue\n}\n\ninput GroupByDateFunction {\n function: GroupByFunction\n}\n\ntype RichTextAreaValue implements FieldValue {\n value: RichTextArea\n displayValue: String\n label: String\n}\n\ninput DatePrimitiveOperators {\n eq: Date\n ne: Date\n lt: Date\n gt: Date\n lte: Date\n gte: Date\n in: [Date]\n nin: [Date]\n}\n\ntype TimeAggregate implements FieldValue {\n value: Time\n displayValue: String\n format: String\n hourInDay: DateFunctionAggregation\n}\n\ninput DistanceInput {\n latitude: Latitude!\n longitude: Longitude!\n}\n\nunion PolymorphicParentRelationship @generic = RecordRepresentation\n\nenum AggregateOrderByNumberFunction {\n AVG\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n SUM\n}\n\ntype LongTextAreaValue implements FieldValue {\n value: LongTextArea\n displayValue: String\n label: String\n}\n\ninput OrderByClause {\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype SObject__Field {\n name: String!\n value: String\n}\n\ntype RecordAggregateConnection @generic {\n edges: [RecordAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype LongitudeAggregate implements FieldValue {\n value: Longitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LongitudeValue\n min: LongitudeValue\n sum: DoubleValue\n}\n\ntype DateValue implements FieldValue {\n value: Date\n displayValue: String\n format: String\n}\n\ninput URLOperators {\n eq: Url\n ne: Url\n like: Url\n lt: Url\n gt: Url\n lte: Url\n gte: Url\n in: [Url]\n nin: [Url]\n}\n\ninput LongOperators {\n eq: Long\n ne: Long\n lt: Long\n gt: Long\n lte: Long\n gte: Long\n in: [Long]\n nin: [Long]\n}\n\nenum DataType {\n STRING\n TEXTAREA\n PHONE\n EMAIL\n URL\n ENCRYPTEDSTRING\n BOOLEAN\n CURRENCY\n INT\n LONG\n DOUBLE\n PERCENT\n DATETIME\n TIME\n DATE\n REFERENCE\n PICKLIST\n MULTIPICKLIST\n ADDRESS\n LOCATION\n BASE64\n COMPLEXVALUE\n COMBOBOX\n JSON\n JUNCTIONIDLIST\n ANYTYPE\n}\n\ntype DoubleAggregate implements FieldValue {\n value: Double\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: DoubleValue\n min: DoubleValue\n sum: DoubleValue\n}\n\ninput DateOperators {\n eq: DateInput\n ne: DateInput\n lt: DateInput\n gt: DateInput\n lte: DateInput\n gte: DateInput\n in: [DateInput]\n nin: [DateInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n}\n\ninput GeolocationInput {\n latitude: Latitude!\n longitude: Longitude!\n radius: Float!\n unit: Unit!\n}\n\ninput JoinInput {\n Record: RecordFilter @fieldCategory\n ApiName: String\n}\n\ntype RecordUpdatePayload @generic {\n Record: RecordRepresentation\n success: Boolean @deprecated\n}\n\ninput PercentOperators {\n eq: Percent\n ne: Percent\n lt: Percent\n gt: Percent\n lte: Percent\n gte: Percent\n in: [Percent]\n nin: [Percent]\n}\n\ntype DoubleValue implements FieldValue {\n value: Double\n displayValue: String\n format: String\n}\n\ntype IDAggregate implements FieldValue {\n value: ID\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: IDValue\n min: IDValue\n}\n\ninput RecordCreateInput @generic {\n record: RecordCreateRepresentation! @fieldCategory\n}\n\ninput AggregateOrderByStringClause {\n function: AggregateOrderByStringFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\n\"The return value for the mutation to delete a Record\"\ntype RecordDeletePayload {\n \"The ID of the deleted Record\"\n Id: ID\n}\n\nenum DateLiteral {\n YESTERDAY\n TODAY\n TOMORROW\n LAST_WEEK\n THIS_WEEK\n NEXT_WEEK\n LAST_MONTH\n THIS_MONTH\n NEXT_MONTH\n LAST_90_DAYS\n NEXT_90_DAYS\n LAST_QUARTER\n THIS_QUARTER\n NEXT_QUARTER\n LAST_FISCAL_QUARTER\n THIS_FISCAL_QUARTER\n NEXT_FISCAL_QUARTER\n LAST_YEAR\n THIS_YEAR\n NEXT_YEAR\n LAST_FISCAL_YEAR\n THIS_FISCAL_YEAR\n NEXT_FISCAL_YEAR\n}\n\ntype RecordRepresentation implements Record @generic {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n SetupUserSpecialField: BooleanValue @fieldCategory\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: RecordRepresentation @fieldCategory\n polymorphicParentRelationship: PolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, upperBound: Int): RecordConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput OrderByGeolocationClause {\n distance: DistanceInput\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype TextAreaAggregate implements FieldValue {\n value: TextArea\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: TextAreaValue\n min: TextAreaValue\n}\n\nenum GroupByType {\n GROUP_BY\n ROLLUP\n CUBE\n}\n\nenum ResultsOrder {\n ASC\n DESC\n}\n\ntype PicklistAggregate implements FieldValue {\n value: Picklist\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: PicklistValue\n min: PicklistValue\n}\n\ninput RecordUpdateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\ntype DateTimeValue implements FieldValue {\n value: DateTime\n displayValue: String\n format: String\n}\n\n\"Input to the mutation to delete a Record\"\ninput RecordDeleteInput {\n \"The ID of the Record to delete\"\n Id: IdOrRef!\n}\n\ntype ListOrder @team(name: \"Lists Platform\") {\n fieldApiName: String!\n sortDirection: ResultOrder\n}\n\nenum AggregateOrderByStringFunction {\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n}\n\ntype LongValue implements FieldValue {\n value: Long\n displayValue: String\n format: String\n}\n\ntype DependentField {\n controllingField: String!\n dependentFields: [String]!\n}\n\ntype PercentValue implements FieldValue {\n value: Percent\n displayValue: String\n format: String\n}\n\ninput NoFunctionAggregateOrderByClause {\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype RecordConnection @generic {\n edges: [RecordEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype FilteredLookupInfo {\n controllingFields: [String]!\n dependent: Boolean!\n optionalFilter: Boolean!\n}\n\ninput PhoneNumberOperators {\n eq: PhoneNumber\n ne: PhoneNumber\n like: PhoneNumber\n lt: PhoneNumber\n gt: PhoneNumber\n lte: PhoneNumber\n gte: PhoneNumber\n in: [PhoneNumber]\n nin: [PhoneNumber]\n}\n\ntype ObjectInfo {\n ApiName: String!\n childRelationships: [ChildRelationship]!\n createable: Boolean!\n custom: Boolean!\n defaultRecordTypeId: ID\n deletable: Boolean!\n dependentFields: [DependentField]!\n feedEnabled: Boolean!\n fields: [Field]!\n keyPrefix: String\n label: String\n labelPlural: String\n layoutable: Boolean!\n mruEnabled: Boolean!\n nameFields: [String]!\n queryable: Boolean!\n recordTypeInfos: [RecordTypeInfo]!\n searchable: Boolean!\n themeInfo: ThemeInfo\n updateable: Boolean!\n locale: String\n}\n\ninput LongitudeOperators {\n eq: Longitude\n ne: Longitude\n lt: Longitude\n gt: Longitude\n lte: Longitude\n gte: Longitude\n in: [Longitude]\n nin: [Longitude]\n}\n\ninterface Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype StandardField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n picklistValuesByRecordTypeIDs: [PicklistValueByRecordTypeIDs]\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistValueByRecordTypeIDs {\n recordTypeID: String!\n controllerValues: [ControllerValues!]\n picklistValues: [PicklistValues!]\n defaultValue: PicklistValues\n}\n\ntype ControllerValues {\n value: String\n index: Int\n}\n\ntype PicklistValues {\n value: String\n label: String\n validFor: [Int]\n attributes: PicklistAttributes\n}\n\ntype PicklistAttributes {\n picklistAtrributesValueType: String\n connectDisplayName: String\n internalName: String\n}\n\ninput DateTimeFunctionInput {\n value: DatePrimitiveOperators\n convertTimezoneValue: DatePrimitiveOperators\n}\n\ntype Base64Value implements FieldValue {\n value: Base64\n displayValue: String\n}\n\ntype CompoundField @generic {\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n}\n\ninput RecordUpdateInput @generic {\n Id: IdOrRef!\n record: RecordUpdateRepresentation! @fieldCategory\n}\n\ninput DateTimeInput {\n value: DateTime\n literal: DateLiteral\n range: DateRange\n}\n\ntype ChildRelationship {\n childObjectApiName: String!\n fieldName: String\n junctionIdListNames: [String]!\n junctionReferenceTo: [String]!\n relationshipName: String\n objectInfo: ObjectInfo\n}\n\ntype RecordResult @generic {\n aggregate: RecordAggregate\n}\n\ntype PageInfo {\n hasNextPage: Boolean!\n hasPreviousPage: Boolean!\n startCursor: String\n endCursor: String\n}\n\ntype CurrencyValue implements FieldValue {\n value: Currency\n displayValue: String\n format: String\n convertCurrency: Currency\n}\n\ntype DateFunctionAggregation {\n value: Long\n format: String\n}\n\ninput PolymorphicParentRelationshipRecordOrderBy @generic {\n RecordOrderBy: RecordOrderBy @fieldCategory\n}\n\ntype RecordCreatePayload @generic {\n Record: RecordRepresentation\n}\n\ninput PolymorphicParentRelationshipGroupBy @generic {\n RecordGroupBy: RecordGroupBy @fieldCategory\n}\n\ntype BooleanValue implements FieldValue {\n value: Boolean\n displayValue: String\n}\n\ntype StringValue implements FieldValue {\n value: String\n displayValue: String\n label: String\n}\n\ninput IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: JoinInput\n ninq: JoinInput\n}\n\ntype PhoneNumberAggregate implements FieldValue {\n value: PhoneNumber\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: PhoneNumberValue\n min: PhoneNumberValue\n}\n\ntype CurrencyAggregate implements FieldValue {\n value: Currency\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: CurrencyValue\n min: CurrencyValue\n sum: CurrencyValue\n}\n\ninput BooleanOperators {\n eq: Boolean\n ne: Boolean\n}\n\ntype MultiPicklistValue implements FieldValue {\n value: MultiPicklist\n displayValue: String\n label: String\n}\n\ntype ListColumn @team(name: \"Lists Platform\") {\n fieldApiName: String!\n label: String!\n lookupId: String\n sortable: Boolean\n}\n\ntype LatitudeAggregate implements FieldValue {\n value: Latitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LatitudeValue\n min: LatitudeValue\n sum: DoubleValue\n}\n\ninput CurrencyOperators {\n eq: Currency\n ne: Currency\n lt: Currency\n gt: Currency\n lte: Currency\n gte: Currency\n in: [Currency]\n nin: [Currency]\n}\n\ntype LatitudeValue implements FieldValue {\n value: Latitude\n displayValue: String\n}\n\ninput GroupByClause {\n group: Boolean\n}\n\ntype RecordEdge @generic {\n node: RecordRepresentation\n cursor: String!\n}\n\nenum NullOrder {\n FIRST\n LAST\n}\n\ntype PhoneNumberValue implements FieldValue {\n value: PhoneNumber\n displayValue: String\n}\n\n# RecordScope is an empty enum\n# enum RecordScope @generic {\n# }\n\ninput TextAreaOperators {\n eq: TextArea\n ne: TextArea\n like: TextArea\n lt: TextArea\n gt: TextArea\n lte: TextArea\n gte: TextArea\n in: [TextArea]\n nin: [TextArea]\n}\n\ntype TextAreaValue implements FieldValue {\n value: TextArea\n displayValue: String\n label: String\n}\n\ntype RecordAggregateEdge @generic {\n node: RecordResult\n cursor: String!\n}\n\ntype ThemeInfo {\n color: String\n iconUrl: String\n}\n\ntype UrlAggregate implements FieldValue {\n value: Url\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: UrlValue\n min: UrlValue\n}\n\ntype IDValue implements FieldValue {\n value: ID\n displayValue: String\n}\n\nenum Unit {\n MI\n KM\n}\n\ninput PolymorphicParentRelationshipOrderBy @generic {\n RecordAggregateOrderBy: RecordAggregateOrderBy @fieldCategory\n}\n\nenum NullsOrder {\n FIRST\n LAST\n}\n\nenum ResultOrder {\n ASC\n DESC\n}\n\ninput RecordOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput PicklistOperators {\n eq: Picklist\n ne: Picklist\n in: [Picklist]\n nin: [Picklist]\n like: Picklist\n lt: Picklist\n gt: Picklist\n lte: Picklist\n gte: Picklist\n}\n\ninput RecordFilter @generic {\n and: [RecordFilter]\n or: [RecordFilter]\n not: RecordFilter\n parentRelationshipRecordFilter: RecordFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: PolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n IdOperator: IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ntype TimeValue implements FieldValue {\n value: Time\n displayValue: String\n format: String\n}\n\ninput GeolocationOperators {\n lt: GeolocationInput\n gt: GeolocationInput\n}\n\ninput LatitudeOperators {\n eq: Latitude\n ne: Latitude\n lt: Latitude\n gt: Latitude\n lte: Latitude\n gte: Latitude\n in: [Latitude]\n nin: [Latitude]\n}\n\ntype IntAggregate implements FieldValue {\n value: Int\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: IntValue\n min: IntValue\n sum: LongValue\n}\n\ntype RecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: RecordAggregate @fieldCategory\n polymorphicParentRelationship: PolymorphicAggregateParentRelationship @fieldCategory\n}\n\nenum SObject__FieldType {\n ALL\n STANDARD\n CUSTOM\n}\n\ntype JSONValue implements FieldValue {\n value: JSON\n displayValue: String\n}\n\ntype EmailValue implements FieldValue {\n value: Email\n displayValue: String\n}\n\ninput DateFunctionInput {\n value: LongOperators\n convertTimezoneValue: LongOperators\n}\n\n# Mutations are not supported by Luvio.\n# type Mutation {\n# uiapi(input: UIAPIMutationsInput): UIAPIMutations!\n# }\n\nunion PolymorphicAggregateParentRelationship @generic = RecordAggregate\n\ninput LongTextAreaOperators {\n eq: LongTextArea\n ne: LongTextArea\n like: LongTextArea\n lt: LongTextArea\n gt: LongTextArea\n lte: LongTextArea\n gte: LongTextArea\n in: [LongTextArea]\n nin: [LongTextArea]\n}\n\ninput DateTimeOperators {\n eq: DateTimeInput\n ne: DateTimeInput\n lt: DateTimeInput\n gt: DateTimeInput\n lte: DateTimeInput\n gte: DateTimeInput\n in: [DateTimeInput]\n nin: [DateTimeInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n DAY_ONLY: DateTimeFunctionInput\n HOUR_IN_DAY: DateFunctionInput\n}\n\ntype BooleanAggregate implements FieldValue {\n value: Boolean\n displayValue: String\n grouping: IntValue\n}\n\ntype RecordQueryAggregate {\n # scope should be RecordScope, but it is an empty enum\n recordQueryAggregate(first: Int, after: String, where: RecordFilter, orderBy: RecordAggregateOrderBy, scope: String, groupBy: RecordGroupBy, upperBound: Int): RecordAggregateConnection @fieldCategory\n}\n\ninput RecordCreateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\nenum FieldExtraTypeInfo {\n IMAGE_URL\n EXTERNAL_LOOKUP\n INDIRECT_LOOKUP\n PERSONNAME\n SWITCHABLE_PERSONNAME\n PLAINTEXTAREA\n RICHTEXTAREA\n}\n\ntype RateLimit {\n cost: Long\n limit: Long\n remaining: Long\n resetAt: DateTime\n}\n\ninput DateRange {\n last_n_days: Int\n next_n_days: Int\n last_n_weeks: Int\n next_n_weeks: Int\n last_n_months: Int\n next_n_months: Int\n last_n_quarters: Int\n next_n_quarters: Int\n last_n_fiscal_quarters: Int\n next_n_fiscal_quarters: Int\n last_n_years: Int\n next_n_years: Int\n last_n_fiscal_years: Int\n next_n_fiscal_years: Int\n n_days_ago: Int\n n_weeks_ago: Int\n n_months_ago: Int\n n_quarters_ago: Int\n n_years_ago: Int\n n_fiscal_quarters_ago: Int\n n_fiscal_years_ago: Int\n}\n\ntype UIAPIMutations {\n recordCreate(input: RecordCreateInput!): RecordCreatePayload @fieldCategory\n recordDelete(input: RecordDeleteInput!): RecordDeletePayload @fieldCategory\n recordUpdate(input: RecordUpdateInput!): RecordUpdatePayload @fieldCategory\n}\n\ninput IntegerOperators {\n eq: Int\n ne: Int\n lt: Int\n gt: Int\n lte: Int\n gte: Int\n in: [Int]\n nin: [Int]\n}\n\ntype EncryptedStringValue implements FieldValue {\n value: EncryptedString\n displayValue: String\n}\n\ninterface Record {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n}\n\ninput PolymorphicParentRelationshipRecordFilter @generic {\n RecordFilter: RecordFilter @fieldCategory\n}\n\n\"\"\"\nA type that can contain any of the following types: Boolean, Date, DateTime, Double, String.\nFormat and Label are not supported by AnyType and displayValue is an unformatted string representation of the value.\n\"\"\"\nunion AnyType = BooleanValue | DateValue | DateTimeValue | DoubleValue | StringValue\n\ninput AggregateOrderByNumberClause {\n function: AggregateOrderByNumberFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ninput DateInput {\n value: Date\n literal: DateLiteral\n range: DateRange\n}\n\ninput RecordGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: RecordGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: PolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\ntype RecordQuery {\n # scope should be RecordScope, but it is an empty enum\n recordQuery(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, scope: String, upperBound: Int, updateMRU: Boolean): RecordConnection @fieldCategory\n}\n\ninput RecordAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ninput IgnoreRule {\n rule: String!\n teamName: String!\n justification: String!\n}\n\ndirective @generic on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT\ndirective @fieldCategory on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | ENUM_VALUE\ndirective @category(name: String!) on FIELD\n\"Specifies the team name for a type\"\ndirective @team(name: String!) on OBJECT | INPUT_OBJECT | INTERFACE | ENUM | UNION | SCALAR\n\"Specifies the validation rules to ignore for this element.\"\ndirective @ignoreRule(rules: [IgnoreRule!]!) on OBJECT\n | INPUT_OBJECT\n | INTERFACE\n | ENUM\n | UNION\n | SCALAR\n | FIELD_DEFINITION\n | INPUT_FIELD_DEFINITION\n | ARGUMENT_DEFINITION\n | ENUM_VALUE\ndirective @optional on FIELD\n\ntype __Type {\n kind: __TypeKind!\n name: String\n description: String\n fields(includeDeprecated: Boolean = false): [__Field!]\n interfaces: [__Type!]\n possibleTypes: [__Type!]\n enumValues(includeDeprecated: Boolean = false): [__EnumValue!]\n inputFields: [__InputValue!]\n ofType: __Type\n}";
85518
85824
 
85519
85825
  // Define additional schema that is missing from uiapi that we use in local evaluation
85520
85826
  const additionalSchemaDefinitions = /* GraphQL */ `
@@ -89429,7 +89735,7 @@
89429
89735
  return operation()
89430
89736
  .catch((err) => {
89431
89737
  hasError = true;
89432
- const error = normalizeError$1(err);
89738
+ const error = normalizeError$2(err);
89433
89739
  tags['errorMessage'] = error.message;
89434
89740
  if (logError) {
89435
89741
  ldsMobileInstrumentation$2.error(error);
@@ -95118,14 +95424,27 @@
95118
95424
  constructor(services) {
95119
95425
  super(services);
95120
95426
  this.services = services;
95427
+ this.additionalNullResponses = [];
95121
95428
  }
95122
- fetch() {
95429
+ fetch(contextSeed) {
95123
95430
  try {
95124
- return this.convertFetchResponseToData(this.services.fetch(...this.fetchParams));
95431
+ const [input, init] = this.fetchParams;
95432
+ const initWithSeed = contextSeed === void 0 ? init : { ...init, __contextSeed: contextSeed };
95433
+ const fetchCall = initWithSeed === void 0 ? this.services.fetch(input) : this.services.fetch(input, initWithSeed);
95434
+ return this.convertFetchResponseToData(fetchCall);
95125
95435
  } catch (reason) {
95126
95436
  return resolvedPromiseLike$2(err$1(toError(reason)));
95127
95437
  }
95128
95438
  }
95439
+ isSemanticNullResponse(response) {
95440
+ return this.additionalNullResponses.includes(response.status);
95441
+ }
95442
+ isProtocolNoBodyStatus(status) {
95443
+ return status === 204 || status === 205;
95444
+ }
95445
+ isUndeclaredNoBodyResponse(response) {
95446
+ return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
95447
+ }
95129
95448
  async coerceError(errorResponse) {
95130
95449
  return toError(errorResponse.statusText);
95131
95450
  }
@@ -95133,10 +95452,24 @@
95133
95452
  return response.then(
95134
95453
  (response2) => {
95135
95454
  if (response2.ok) {
95136
- return response2.json().then(
95137
- (json) => ok$1(json),
95138
- (reason) => err$1(toError(reason))
95139
- ).finally(() => {
95455
+ let resultPromise;
95456
+ if (this.isSemanticNullResponse(response2)) {
95457
+ resultPromise = Promise.resolve(ok$1(null));
95458
+ } else if (this.isUndeclaredNoBodyResponse(response2)) {
95459
+ resultPromise = Promise.resolve(
95460
+ err$1(
95461
+ toError(
95462
+ `Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
95463
+ )
95464
+ )
95465
+ );
95466
+ } else {
95467
+ resultPromise = response2.json().then(
95468
+ (json) => ok$1(json),
95469
+ (reason) => err$1(toError(reason))
95470
+ );
95471
+ }
95472
+ return resultPromise.finally(() => {
95140
95473
  try {
95141
95474
  this.afterRequestHooks({ statusCode: response2.status });
95142
95475
  } catch {
@@ -95183,6 +95516,7 @@
95183
95516
  constructor(services) {
95184
95517
  super(services);
95185
95518
  this.services = services;
95519
+ this.additionalNullResponses = [];
95186
95520
  }
95187
95521
  requestFromNetwork() {
95188
95522
  return this.fetch();
@@ -95194,6 +95528,15 @@
95194
95528
  return resolvedPromiseLike$2(err$1(toError(reason)));
95195
95529
  }
95196
95530
  }
95531
+ isSemanticNullResponse(response) {
95532
+ return this.additionalNullResponses.includes(response.status);
95533
+ }
95534
+ isProtocolNoBodyStatus(status) {
95535
+ return status === 204 || status === 205;
95536
+ }
95537
+ isUndeclaredNoBodyResponse(response) {
95538
+ return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
95539
+ }
95197
95540
  async coerceError(errorResponse) {
95198
95541
  return toError(errorResponse.statusText);
95199
95542
  }
@@ -95204,12 +95547,26 @@
95204
95547
  return response.then(
95205
95548
  (response2) => {
95206
95549
  if (response2.ok) {
95207
- return response2.json().then(
95208
- (json) => {
95209
- return this.processFetchReturnValue(json);
95210
- },
95211
- (reason) => err$1(toError(reason))
95212
- ).finally(() => {
95550
+ let resultPromise;
95551
+ if (this.isSemanticNullResponse(response2)) {
95552
+ resultPromise = Promise.resolve(ok$1(null));
95553
+ } else if (this.isUndeclaredNoBodyResponse(response2)) {
95554
+ resultPromise = Promise.resolve(
95555
+ err$1(
95556
+ toError(
95557
+ `Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
95558
+ )
95559
+ )
95560
+ );
95561
+ } else {
95562
+ resultPromise = response2.json().then(
95563
+ (json) => {
95564
+ return this.processFetchReturnValue(json);
95565
+ },
95566
+ (reason) => err$1(toError(reason))
95567
+ );
95568
+ }
95569
+ return resultPromise.finally(() => {
95213
95570
  try {
95214
95571
  this.afterRequestHooks({ statusCode: response2.status });
95215
95572
  } catch {
@@ -96197,7 +96554,7 @@
96197
96554
  },
96198
96555
  };
96199
96556
  }
96200
- // version: 1.428.0-dev2-2d5e0a6e5f
96557
+ // version: 1.428.0-dev21-133a7da4f5
96201
96558
 
96202
96559
  /**
96203
96560
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -96223,7 +96580,7 @@
96223
96580
  },
96224
96581
  };
96225
96582
  }
96226
- // version: 1.428.0-dev2-2d5e0a6e5f
96583
+ // version: 1.428.0-dev21-133a7da4f5
96227
96584
 
96228
96585
  /*!
96229
96586
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -96708,6 +97065,9 @@
96708
97065
  return err$1([error]);
96709
97066
  }
96710
97067
  function validateJsonSchema$1(data, schema, path = "$", document = schema) {
97068
+ return validateJsonSchemaInternal$1(data, schema, path, document, /* @__PURE__ */ new Map());
97069
+ }
97070
+ function validateJsonSchemaInternal$1(data, schema, path, document, visited) {
96711
97071
  if (schema === true) return validSchemaResponse$1();
96712
97072
  if (schema === false)
96713
97073
  return invalidSchemaResponseWithError$1(
@@ -96716,22 +97076,22 @@
96716
97076
  const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
96717
97077
  const errorCollector = new JsonSchemaErrorCollector$1();
96718
97078
  if ("anyOf" in schema) {
96719
- errorCollector.append(validateAnyOf$1(data, schema, path, document));
97079
+ errorCollector.append(validateAnyOf$1(data, schema, path, document, visited));
96720
97080
  } else if ("oneOf" in schema) {
96721
- errorCollector.append(validateOneOf$1(data, schema, path, document));
97081
+ errorCollector.append(validateOneOf$1(data, schema, path, document, visited));
96722
97082
  } else if ("allOf" in schema) {
96723
- errorCollector.append(validateAllOf$1(data, schema, path, document));
97083
+ errorCollector.append(validateAllOf$1(data, schema, path, document, visited));
96724
97084
  } else if ("not" in schema) {
96725
- errorCollector.append(validateNot$1(data, schema, path, document));
97085
+ errorCollector.append(validateNot$1(data, schema, path, document, visited));
96726
97086
  } else if ("$ref" in schema) {
96727
- errorCollector.append(validateRef$1(data, schema, path, document));
97087
+ errorCollector.append(validateRef$1(data, schema, path, document, visited));
96728
97088
  } else if ("type" in schema) {
96729
97089
  if (schema.type === "object") {
96730
97090
  if (dataType !== "object") {
96731
97091
  errorCollector.add(incorrectTypeError$1("object", dataType, path));
96732
97092
  } else {
96733
97093
  errorCollector.append(
96734
- validateObject$1(data, schema, path, document)
97094
+ validateObject$1(data, schema, path, document, visited)
96735
97095
  );
96736
97096
  }
96737
97097
  } else if (schema.type === "array") {
@@ -96739,7 +97099,7 @@
96739
97099
  errorCollector.add(incorrectTypeError$1("array", dataType, path));
96740
97100
  } else {
96741
97101
  errorCollector.append(
96742
- validateArray$1(data, schema, path, document)
97102
+ validateArray$1(data, schema, path, document, visited)
96743
97103
  );
96744
97104
  }
96745
97105
  } else {
@@ -96756,16 +97116,17 @@
96756
97116
  }
96757
97117
  return errorCollector.toValidationResponse();
96758
97118
  }
96759
- function validateAnyOf$1(data, schema, path, document) {
97119
+ function validateAnyOf$1(data, schema, path, document, visited) {
96760
97120
  let isValid = false;
96761
97121
  const errorCollector = new JsonSchemaErrorCollector$1();
96762
97122
  for (let i = 0, { length } = schema.anyOf; i < length; i++) {
96763
97123
  const element = schema.anyOf[i];
96764
- const validationResponse = validateJsonSchema$1(
97124
+ const validationResponse = validateJsonSchemaInternal$1(
96765
97125
  data,
96766
97126
  element,
96767
97127
  `${path}.anyOf[${i}]`,
96768
- document
97128
+ document,
97129
+ visited
96769
97130
  );
96770
97131
  if (validationResponse.isOk()) {
96771
97132
  isValid = true;
@@ -96782,13 +97143,22 @@
96782
97143
  }
96783
97144
  return validSchemaResponse$1();
96784
97145
  }
96785
- function validateOneOf$1(data, schema, path, document) {
97146
+ function validateOneOf$1(data, schema, path, document, visited) {
97147
+ if (schema.discriminator !== void 0) {
97148
+ return validateDiscriminatedOneOf$1(data, schema.discriminator, path, document, visited);
97149
+ }
96786
97150
  let validSubShemaPaths = [];
96787
97151
  const errorCollector = new JsonSchemaErrorCollector$1();
96788
97152
  for (let i = 0, { length } = schema.oneOf; i < length; i++) {
96789
97153
  const element = schema.oneOf[i];
96790
97154
  const oneOfPath = `${path}.oneOf[${i}]`;
96791
- const validationResponse = validateJsonSchema$1(data, element, oneOfPath, document);
97155
+ const validationResponse = validateJsonSchemaInternal$1(
97156
+ data,
97157
+ element,
97158
+ oneOfPath,
97159
+ document,
97160
+ visited
97161
+ );
96792
97162
  if (validationResponse.isOk()) {
96793
97163
  validSubShemaPaths.push(oneOfPath);
96794
97164
  } else {
@@ -96810,16 +97180,45 @@
96810
97180
  }
96811
97181
  return validSchemaResponse$1();
96812
97182
  }
96813
- function validateAllOf$1(data, schema, path, document) {
97183
+ function validateDiscriminatedOneOf$1(data, discriminator, path, document, visited) {
97184
+ if (data === null || typeof data !== "object" || Array.isArray(data)) {
97185
+ return invalidSchemaResponseWithError$1(incorrectTypeError$1("object", typeof data, path));
97186
+ }
97187
+ const { propertyName, mapping } = discriminator;
97188
+ const discriminatorValue = data[propertyName];
97189
+ if (discriminatorValue === void 0) {
97190
+ return invalidSchemaResponseWithError$1(
97191
+ new MissingRequiredPropertyError$1(
97192
+ `Object at path '${path}' is missing required discriminator property '${propertyName}'.`
97193
+ )
97194
+ );
97195
+ }
97196
+ if (typeof discriminatorValue !== "string") {
97197
+ return invalidSchemaResponseWithError$1(
97198
+ incorrectTypeError$1("string", typeof discriminatorValue, `${path}.${propertyName}`)
97199
+ );
97200
+ }
97201
+ const targetRef = mapping[discriminatorValue];
97202
+ if (targetRef === void 0) {
97203
+ return invalidSchemaResponseWithError$1(
97204
+ new JsonSchemaViolationError$1(
97205
+ `Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
97206
+ )
97207
+ );
97208
+ }
97209
+ return validateJsonSchemaInternal$1(data, { $ref: targetRef }, path, document, visited);
97210
+ }
97211
+ function validateAllOf$1(data, schema, path, document, visited) {
96814
97212
  let isValid = true;
96815
97213
  const errorCollector = new JsonSchemaErrorCollector$1();
96816
97214
  for (let i = 0, { length } = schema.allOf; i < length; i++) {
96817
97215
  const element = schema.allOf[i];
96818
- const validationResponse = validateJsonSchema$1(
97216
+ const validationResponse = validateJsonSchemaInternal$1(
96819
97217
  data,
96820
97218
  element,
96821
97219
  `${path}.allOf[${i}]`,
96822
- document
97220
+ document,
97221
+ visited
96823
97222
  );
96824
97223
  if (!validationResponse.isOk()) {
96825
97224
  errorCollector.append(validationResponse);
@@ -96833,8 +97232,14 @@
96833
97232
  }
96834
97233
  return errorCollector.toValidationResponse();
96835
97234
  }
96836
- function validateNot$1(data, schema, path, document) {
96837
- const validationResponse = validateJsonSchema$1(data, schema.not, path, document);
97235
+ function validateNot$1(data, schema, path, document, visited) {
97236
+ const validationResponse = validateJsonSchemaInternal$1(
97237
+ data,
97238
+ schema.not,
97239
+ path,
97240
+ document,
97241
+ visited
97242
+ );
96838
97243
  if (validationResponse.isOk()) {
96839
97244
  return invalidSchemaResponseWithError$1(
96840
97245
  new JsonSchemaViolationError$1(
@@ -96844,7 +97249,7 @@
96844
97249
  }
96845
97250
  return validSchemaResponse$1();
96846
97251
  }
96847
- function validateObject$1(data, schema, path, document) {
97252
+ function validateObject$1(data, schema, path, document, visited) {
96848
97253
  const schemaKeys = Object.keys(schema.properties);
96849
97254
  const requiredKeys = new Set(schema.required);
96850
97255
  const schemaKeySet = new Set(schemaKeys);
@@ -96852,11 +97257,12 @@
96852
97257
  Object.keys(data).forEach((key) => {
96853
97258
  if (!schemaKeySet.has(key)) {
96854
97259
  errorCollector.append(
96855
- validateJsonSchema$1(
97260
+ validateJsonSchemaInternal$1(
96856
97261
  data[key],
96857
97262
  schema.additionalProperties,
96858
97263
  `${path}.additionalProperties[${key}]`,
96859
- document
97264
+ document,
97265
+ visited
96860
97266
  )
96861
97267
  );
96862
97268
  }
@@ -96873,18 +97279,19 @@
96873
97279
  }
96874
97280
  if (keyInData) {
96875
97281
  errorCollector.append(
96876
- validateJsonSchema$1(
97282
+ validateJsonSchemaInternal$1(
96877
97283
  data[key],
96878
97284
  schema.properties[key],
96879
97285
  `${path}.${key}`,
96880
- document
97286
+ document,
97287
+ visited
96881
97288
  )
96882
97289
  );
96883
97290
  }
96884
97291
  }
96885
97292
  return errorCollector.toValidationResponse();
96886
97293
  }
96887
- function validateArray$1(data, schema, path, document) {
97294
+ function validateArray$1(data, schema, path, document, visited) {
96888
97295
  if (schema.minItems !== void 0 && data.length < schema.minItems) {
96889
97296
  return invalidSchemaResponseWithError$1(
96890
97297
  new MinItemsViolationError$1(
@@ -96902,7 +97309,13 @@
96902
97309
  const errorCollector = new JsonSchemaErrorCollector$1();
96903
97310
  data.forEach(
96904
97311
  (element, index) => errorCollector.append(
96905
- validateJsonSchema$1(element, schema.items, `${path}[${index}]`, document)
97312
+ validateJsonSchemaInternal$1(
97313
+ element,
97314
+ schema.items,
97315
+ `${path}[${index}]`,
97316
+ document,
97317
+ visited
97318
+ )
96906
97319
  )
96907
97320
  );
96908
97321
  return errorCollector.toValidationResponse();
@@ -96937,7 +97350,7 @@
96937
97350
  }
96938
97351
  return validSchemaResponse$1();
96939
97352
  }
96940
- function validateRef$1(data, schema, path, document) {
97353
+ function validateRef$1(data, schema, path, document, visited) {
96941
97354
  if (!schema.$ref.startsWith("#")) {
96942
97355
  return invalidSchemaResponseWithError$1(
96943
97356
  new InvalidRefError$1(
@@ -96945,11 +97358,23 @@
96945
97358
  )
96946
97359
  );
96947
97360
  }
97361
+ let refsForData = visited.get(data);
97362
+ if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
97363
+ return validSchemaResponse$1();
97364
+ }
97365
+ if (refsForData === void 0) {
97366
+ refsForData = /* @__PURE__ */ new Set();
97367
+ visited.set(data, refsForData);
97368
+ }
97369
+ refsForData.add(schema.$ref);
96948
97370
  try {
96949
97371
  const schemaToValidate = findSchemaAtPath$1(document, schema.$ref);
96950
- return validateJsonSchema$1(data, schemaToValidate, path, document);
97372
+ return validateJsonSchemaInternal$1(data, schemaToValidate, path, document, visited);
96951
97373
  } catch (e) {
96952
97374
  return invalidSchemaResponseWithError$1(e);
97375
+ } finally {
97376
+ refsForData.delete(schema.$ref);
97377
+ if (refsForData.size === 0) visited.delete(data);
96953
97378
  }
96954
97379
  }
96955
97380
  function validateEnum$1(data, enumValue, path) {
@@ -97834,9 +98259,18 @@
97834
98259
  return {
97835
98260
  type: "fetch",
97836
98261
  version: "1.0",
97837
- service: function(...args) {
98262
+ service: function(input, init) {
97838
98263
  var _a;
97839
- const context = (_a = interceptors.createContext) == null ? void 0 : _a.call(interceptors);
98264
+ let contextSeed;
98265
+ let cleanInit = init;
98266
+ if (init !== void 0 && "__contextSeed" in init) {
98267
+ const { __contextSeed, ...initWithoutSeed } = init;
98268
+ contextSeed = __contextSeed;
98269
+ cleanInit = Object.keys(initWithoutSeed).length === 0 ? void 0 : initWithoutSeed;
98270
+ }
98271
+ const fetchArgs = cleanInit === void 0 ? [input] : [input, cleanInit];
98272
+ const baseContext = (_a = interceptors.createContext) == null ? void 0 : _a.call(interceptors);
98273
+ const context = contextSeed === void 0 ? baseContext : { ...baseContext, ...contextSeed };
97840
98274
  const {
97841
98275
  request: requestInterceptors = [],
97842
98276
  retry: retryInterceptor = void 0,
@@ -97844,17 +98278,17 @@
97844
98278
  finally: finallyInterceptors = []
97845
98279
  } = interceptors;
97846
98280
  const pending = requestInterceptors.reduce(
97847
- (previousPromise, interceptor) => previousPromise.then((args2) => interceptor(args2, context)),
97848
- resolvedPromiseLike$2(args)
98281
+ (previousPromise, interceptor) => previousPromise.then((args) => interceptor(args, context)),
98282
+ resolvedPromiseLike$2(fetchArgs)
97849
98283
  );
97850
- return Promise.resolve(pending).then((args2) => {
98284
+ return Promise.resolve(pending).then((args) => {
97851
98285
  if (retryInterceptor) {
97852
- return retryInterceptor(args2, retryService, context);
98286
+ return retryInterceptor(args, retryService, context);
97853
98287
  } else {
97854
98288
  if (retryService) {
97855
- return retryService.applyRetry(() => fetch(...args2));
98289
+ return retryService.applyRetry(() => fetch(...args));
97856
98290
  }
97857
- return fetch(...args2);
98291
+ return fetch(...args);
97858
98292
  }
97859
98293
  }).then((response) => {
97860
98294
  return responseInterceptors.reduce(
@@ -98880,7 +99314,7 @@
98880
99314
  id: '@salesforce/lds-network-adapter',
98881
99315
  instrument: instrument$2,
98882
99316
  });
98883
- // version: 1.428.0-dev2-ad2109c7a1
99317
+ // version: 1.428.0-dev21-c9faba50c9
98884
99318
 
98885
99319
  const { create: create$2, keys: keys$2 } = Object;
98886
99320
  const { stringify, parse } = JSON;
@@ -98971,6 +99405,9 @@
98971
99405
  return err$4([error]);
98972
99406
  }
98973
99407
  function validateJsonSchema(data, schema, path = "$", document = schema) {
99408
+ return validateJsonSchemaInternal(data, schema, path, document, /* @__PURE__ */ new Map());
99409
+ }
99410
+ function validateJsonSchemaInternal(data, schema, path, document, visited) {
98974
99411
  if (schema === true) return validSchemaResponse();
98975
99412
  if (schema === false)
98976
99413
  return invalidSchemaResponseWithError(
@@ -98979,22 +99416,22 @@
98979
99416
  const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
98980
99417
  const errorCollector = new JsonSchemaErrorCollector();
98981
99418
  if ("anyOf" in schema) {
98982
- errorCollector.append(validateAnyOf(data, schema, path, document));
99419
+ errorCollector.append(validateAnyOf(data, schema, path, document, visited));
98983
99420
  } else if ("oneOf" in schema) {
98984
- errorCollector.append(validateOneOf(data, schema, path, document));
99421
+ errorCollector.append(validateOneOf(data, schema, path, document, visited));
98985
99422
  } else if ("allOf" in schema) {
98986
- errorCollector.append(validateAllOf(data, schema, path, document));
99423
+ errorCollector.append(validateAllOf(data, schema, path, document, visited));
98987
99424
  } else if ("not" in schema) {
98988
- errorCollector.append(validateNot(data, schema, path, document));
99425
+ errorCollector.append(validateNot(data, schema, path, document, visited));
98989
99426
  } else if ("$ref" in schema) {
98990
- errorCollector.append(validateRef(data, schema, path, document));
99427
+ errorCollector.append(validateRef(data, schema, path, document, visited));
98991
99428
  } else if ("type" in schema) {
98992
99429
  if (schema.type === "object") {
98993
99430
  if (dataType !== "object") {
98994
99431
  errorCollector.add(incorrectTypeError("object", dataType, path));
98995
99432
  } else {
98996
99433
  errorCollector.append(
98997
- validateObject(data, schema, path, document)
99434
+ validateObject(data, schema, path, document, visited)
98998
99435
  );
98999
99436
  }
99000
99437
  } else if (schema.type === "array") {
@@ -99002,7 +99439,7 @@
99002
99439
  errorCollector.add(incorrectTypeError("array", dataType, path));
99003
99440
  } else {
99004
99441
  errorCollector.append(
99005
- validateArray(data, schema, path, document)
99442
+ validateArray(data, schema, path, document, visited)
99006
99443
  );
99007
99444
  }
99008
99445
  } else {
@@ -99019,16 +99456,17 @@
99019
99456
  }
99020
99457
  return errorCollector.toValidationResponse();
99021
99458
  }
99022
- function validateAnyOf(data, schema, path, document) {
99459
+ function validateAnyOf(data, schema, path, document, visited) {
99023
99460
  let isValid = false;
99024
99461
  const errorCollector = new JsonSchemaErrorCollector();
99025
99462
  for (let i = 0, { length } = schema.anyOf; i < length; i++) {
99026
99463
  const element = schema.anyOf[i];
99027
- const validationResponse = validateJsonSchema(
99464
+ const validationResponse = validateJsonSchemaInternal(
99028
99465
  data,
99029
99466
  element,
99030
99467
  `${path}.anyOf[${i}]`,
99031
- document
99468
+ document,
99469
+ visited
99032
99470
  );
99033
99471
  if (validationResponse.isOk()) {
99034
99472
  isValid = true;
@@ -99045,13 +99483,22 @@
99045
99483
  }
99046
99484
  return validSchemaResponse();
99047
99485
  }
99048
- function validateOneOf(data, schema, path, document) {
99486
+ function validateOneOf(data, schema, path, document, visited) {
99487
+ if (schema.discriminator !== void 0) {
99488
+ return validateDiscriminatedOneOf(data, schema.discriminator, path, document, visited);
99489
+ }
99049
99490
  let validSubShemaPaths = [];
99050
99491
  const errorCollector = new JsonSchemaErrorCollector();
99051
99492
  for (let i = 0, { length } = schema.oneOf; i < length; i++) {
99052
99493
  const element = schema.oneOf[i];
99053
99494
  const oneOfPath = `${path}.oneOf[${i}]`;
99054
- const validationResponse = validateJsonSchema(data, element, oneOfPath, document);
99495
+ const validationResponse = validateJsonSchemaInternal(
99496
+ data,
99497
+ element,
99498
+ oneOfPath,
99499
+ document,
99500
+ visited
99501
+ );
99055
99502
  if (validationResponse.isOk()) {
99056
99503
  validSubShemaPaths.push(oneOfPath);
99057
99504
  } else {
@@ -99073,16 +99520,45 @@
99073
99520
  }
99074
99521
  return validSchemaResponse();
99075
99522
  }
99076
- function validateAllOf(data, schema, path, document) {
99523
+ function validateDiscriminatedOneOf(data, discriminator, path, document, visited) {
99524
+ if (data === null || typeof data !== "object" || Array.isArray(data)) {
99525
+ return invalidSchemaResponseWithError(incorrectTypeError("object", typeof data, path));
99526
+ }
99527
+ const { propertyName, mapping } = discriminator;
99528
+ const discriminatorValue = data[propertyName];
99529
+ if (discriminatorValue === void 0) {
99530
+ return invalidSchemaResponseWithError(
99531
+ new MissingRequiredPropertyError(
99532
+ `Object at path '${path}' is missing required discriminator property '${propertyName}'.`
99533
+ )
99534
+ );
99535
+ }
99536
+ if (typeof discriminatorValue !== "string") {
99537
+ return invalidSchemaResponseWithError(
99538
+ incorrectTypeError("string", typeof discriminatorValue, `${path}.${propertyName}`)
99539
+ );
99540
+ }
99541
+ const targetRef = mapping[discriminatorValue];
99542
+ if (targetRef === void 0) {
99543
+ return invalidSchemaResponseWithError(
99544
+ new JsonSchemaViolationError(
99545
+ `Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
99546
+ )
99547
+ );
99548
+ }
99549
+ return validateJsonSchemaInternal(data, { $ref: targetRef }, path, document, visited);
99550
+ }
99551
+ function validateAllOf(data, schema, path, document, visited) {
99077
99552
  let isValid = true;
99078
99553
  const errorCollector = new JsonSchemaErrorCollector();
99079
99554
  for (let i = 0, { length } = schema.allOf; i < length; i++) {
99080
99555
  const element = schema.allOf[i];
99081
- const validationResponse = validateJsonSchema(
99556
+ const validationResponse = validateJsonSchemaInternal(
99082
99557
  data,
99083
99558
  element,
99084
99559
  `${path}.allOf[${i}]`,
99085
- document
99560
+ document,
99561
+ visited
99086
99562
  );
99087
99563
  if (!validationResponse.isOk()) {
99088
99564
  errorCollector.append(validationResponse);
@@ -99096,8 +99572,14 @@
99096
99572
  }
99097
99573
  return errorCollector.toValidationResponse();
99098
99574
  }
99099
- function validateNot(data, schema, path, document) {
99100
- const validationResponse = validateJsonSchema(data, schema.not, path, document);
99575
+ function validateNot(data, schema, path, document, visited) {
99576
+ const validationResponse = validateJsonSchemaInternal(
99577
+ data,
99578
+ schema.not,
99579
+ path,
99580
+ document,
99581
+ visited
99582
+ );
99101
99583
  if (validationResponse.isOk()) {
99102
99584
  return invalidSchemaResponseWithError(
99103
99585
  new JsonSchemaViolationError(
@@ -99107,7 +99589,7 @@
99107
99589
  }
99108
99590
  return validSchemaResponse();
99109
99591
  }
99110
- function validateObject(data, schema, path, document) {
99592
+ function validateObject(data, schema, path, document, visited) {
99111
99593
  const schemaKeys = Object.keys(schema.properties);
99112
99594
  const requiredKeys = new Set(schema.required);
99113
99595
  const schemaKeySet = new Set(schemaKeys);
@@ -99115,11 +99597,12 @@
99115
99597
  Object.keys(data).forEach((key) => {
99116
99598
  if (!schemaKeySet.has(key)) {
99117
99599
  errorCollector.append(
99118
- validateJsonSchema(
99600
+ validateJsonSchemaInternal(
99119
99601
  data[key],
99120
99602
  schema.additionalProperties,
99121
99603
  `${path}.additionalProperties[${key}]`,
99122
- document
99604
+ document,
99605
+ visited
99123
99606
  )
99124
99607
  );
99125
99608
  }
@@ -99136,18 +99619,19 @@
99136
99619
  }
99137
99620
  if (keyInData) {
99138
99621
  errorCollector.append(
99139
- validateJsonSchema(
99622
+ validateJsonSchemaInternal(
99140
99623
  data[key],
99141
99624
  schema.properties[key],
99142
99625
  `${path}.${key}`,
99143
- document
99626
+ document,
99627
+ visited
99144
99628
  )
99145
99629
  );
99146
99630
  }
99147
99631
  }
99148
99632
  return errorCollector.toValidationResponse();
99149
99633
  }
99150
- function validateArray(data, schema, path, document) {
99634
+ function validateArray(data, schema, path, document, visited) {
99151
99635
  if (schema.minItems !== void 0 && data.length < schema.minItems) {
99152
99636
  return invalidSchemaResponseWithError(
99153
99637
  new MinItemsViolationError(
@@ -99165,7 +99649,13 @@
99165
99649
  const errorCollector = new JsonSchemaErrorCollector();
99166
99650
  data.forEach(
99167
99651
  (element, index) => errorCollector.append(
99168
- validateJsonSchema(element, schema.items, `${path}[${index}]`, document)
99652
+ validateJsonSchemaInternal(
99653
+ element,
99654
+ schema.items,
99655
+ `${path}[${index}]`,
99656
+ document,
99657
+ visited
99658
+ )
99169
99659
  )
99170
99660
  );
99171
99661
  return errorCollector.toValidationResponse();
@@ -99200,7 +99690,7 @@
99200
99690
  }
99201
99691
  return validSchemaResponse();
99202
99692
  }
99203
- function validateRef(data, schema, path, document) {
99693
+ function validateRef(data, schema, path, document, visited) {
99204
99694
  if (!schema.$ref.startsWith("#")) {
99205
99695
  return invalidSchemaResponseWithError(
99206
99696
  new InvalidRefError(
@@ -99208,11 +99698,23 @@
99208
99698
  )
99209
99699
  );
99210
99700
  }
99701
+ let refsForData = visited.get(data);
99702
+ if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
99703
+ return validSchemaResponse();
99704
+ }
99705
+ if (refsForData === void 0) {
99706
+ refsForData = /* @__PURE__ */ new Set();
99707
+ visited.set(data, refsForData);
99708
+ }
99709
+ refsForData.add(schema.$ref);
99211
99710
  try {
99212
99711
  const schemaToValidate = findSchemaAtPath(document, schema.$ref);
99213
- return validateJsonSchema(data, schemaToValidate, path, document);
99712
+ return validateJsonSchemaInternal(data, schemaToValidate, path, document, visited);
99214
99713
  } catch (e) {
99215
99714
  return invalidSchemaResponseWithError(e);
99715
+ } finally {
99716
+ refsForData.delete(schema.$ref);
99717
+ if (refsForData.size === 0) visited.delete(data);
99216
99718
  }
99217
99719
  }
99218
99720
  function validateEnum(data, enumValue, path) {
@@ -101426,6 +101928,7 @@
101426
101928
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101427
101929
  AssetApiName: new BaseScalarFieldDef(true),
101428
101930
  DloActiveStatus: new BaseScalarFieldDef(true),
101931
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101429
101932
  };
101430
101933
  }
101431
101934
  get possibleTypes() {
@@ -101467,6 +101970,7 @@
101467
101970
  Dataspaces: new BaseArrayFieldDef(new BaseObjectFieldDef(this.typeRegistry.Analytics__DataspaceRepresentation, true), true),
101468
101971
  AssetApiName: new BaseScalarFieldDef(true),
101469
101972
  DloActiveStatus: new BaseScalarFieldDef(true),
101973
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101470
101974
  };
101471
101975
  }
101472
101976
  get cacheControl() {
@@ -101616,6 +102120,7 @@
101616
102120
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101617
102121
  AssetApiName: new BaseScalarFieldDef(true),
101618
102122
  DloActiveStatus: new BaseScalarFieldDef(true),
102123
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101619
102124
  };
101620
102125
  }
101621
102126
  get cacheControl() {
@@ -101652,6 +102157,7 @@
101652
102157
  DataConnectorType: new BaseObjectFieldDef(this.typeRegistry.StringValue, true),
101653
102158
  AssetApiName: new BaseScalarFieldDef(true),
101654
102159
  DloActiveStatus: new BaseScalarFieldDef(true),
102160
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101655
102161
  };
101656
102162
  }
101657
102163
  get cacheControl() {
@@ -101690,6 +102196,7 @@
101690
102196
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101691
102197
  AssetApiName: new BaseScalarFieldDef(true),
101692
102198
  DloActiveStatus: new BaseScalarFieldDef(true),
102199
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101693
102200
  };
101694
102201
  }
101695
102202
  get cacheControl() {
@@ -101788,6 +102295,7 @@
101788
102295
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101789
102296
  AssetApiName: new BaseScalarFieldDef(true),
101790
102297
  DloActiveStatus: new BaseScalarFieldDef(true),
102298
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101791
102299
  };
101792
102300
  }
101793
102301
  get cacheControl() {
@@ -106370,6 +106878,11 @@
106370
106878
  Object.entries(this.latestUsedRecordIdToWeakEtagMap).forEach(([recordId, oneStoreRecordWeakEtag]) => {
106371
106879
  const normalizedLuvioRecord = this.services.luvioUiapiRecords.getNormalizedLuvioRecord(recordId, reader);
106372
106880
  if (!normalizedLuvioRecord) {
106881
+ // A record that was present when this snapshot was read
106882
+ // is now absent from the Luvio store (e.g. evicted by a
106883
+ // uiRecordApi deleteRecord). Its disappearance changes the
106884
+ // result set, so treat it as a change and re-emit.
106885
+ dataChanged = true;
106373
106886
  return;
106374
106887
  }
106375
106888
  const luvioRecordWeakEtag = normalizedLuvioRecord.weakEtag;
@@ -106818,7 +107331,7 @@
106818
107331
  _(config, CONFIG_SCHEMA);
106819
107332
  const baseCommand = new graphql_imperative_ctor(config, documentRootType, services);
106820
107333
  return applyDecorators(baseCommand, [services.fetchNetworkCommandBaseClass.availableDecorators.abortable], options);
106821
- }, false);
107334
+ }, true);
106822
107335
  graphql_imperative_legacy = services.graphQLLegacyImperativeBindings.bind(({ config, assertIsValid }) => {
106823
107336
  const _ = assertIsValid;
106824
107337
  _(config, CONFIG_SCHEMA);
@@ -106871,7 +107384,7 @@
106871
107384
  cb(graphql_v1_import, graphql_imperative$1, graphql_imperative_legacy_v1_import, graphql_state_manager, useOneStoreGraphQL);
106872
107385
  }
106873
107386
  }
106874
- // version: 1.428.0-dev2-2d5e0a6e5f
107387
+ // version: 1.428.0-dev21-133a7da4f5
106875
107388
 
106876
107389
  function createFragmentMap(documentNode) {
106877
107390
  const fragments = {};
@@ -110933,7 +111446,7 @@
110933
111446
  }
110934
111447
 
110935
111448
  const name$1k = 'Analytics__SemanticModel';
110936
- const VERSION$1B = 'f1919b0768e93d3885cd5b983e61a194';
111449
+ const VERSION$1B = '0c41256ae05a32ed1af0deea45e4906e';
110937
111450
  function keyBuilder$1p(luvio, path, data) {
110938
111451
  return keyPrefix$1 + '::uiapi::' + name$1k + '::' + data.Id; // We're missing idNodeName in the actual key here...
110939
111452
  }
@@ -111249,6 +111762,12 @@
111249
111762
  typename: 'Boolean'
111250
111763
  };
111251
111764
  }
111765
+ case 'ReusedAssetStatus': {
111766
+ return {
111767
+ isArray: false,
111768
+ typename: 'String'
111769
+ };
111770
+ }
111252
111771
  default:
111253
111772
  return undefined;
111254
111773
  }
@@ -111315,7 +111834,7 @@
111315
111834
  }
111316
111835
 
111317
111836
  const name$1j = 'Analytics__SemanticDefinition';
111318
- const VERSION$1A = 'f2f3d7655e13edcb6330eee2b54a7c3e';
111837
+ const VERSION$1A = 'df1ed427fbc57558390ff0e3537f2290';
111319
111838
  function keyBuilder$1o(luvio, path, data) {
111320
111839
  return keyPrefix$1 + '::uiapi::' + name$1j + '::' + data.Id; // We're missing idNodeName in the actual key here...
111321
111840
  }
@@ -111657,6 +112176,12 @@
111657
112176
  typename: 'Boolean'
111658
112177
  };
111659
112178
  }
112179
+ case 'ReusedAssetStatus': {
112180
+ return {
112181
+ isArray: false,
112182
+ typename: 'String'
112183
+ };
112184
+ }
111660
112185
  default:
111661
112186
  return undefined;
111662
112187
  }
@@ -111728,7 +112253,7 @@
111728
112253
  }
111729
112254
 
111730
112255
  const name$1i = 'Analytics__DominoTemplate';
111731
- const VERSION$1z = 'c253660a6d3fad6b0556236ab107b5f6';
112256
+ const VERSION$1z = 'fda433601cadf10ecc8a0de3d54052ee';
111732
112257
  function keyBuilder$1n(luvio, path, data) {
111733
112258
  return keyPrefix$1 + '::uiapi::' + name$1i + '::' + data.Id; // We're missing idNodeName in the actual key here...
111734
112259
  }
@@ -112051,6 +112576,12 @@
112051
112576
  typename: 'Boolean'
112052
112577
  };
112053
112578
  }
112579
+ case 'ReusedAssetStatus': {
112580
+ return {
112581
+ isArray: false,
112582
+ typename: 'String'
112583
+ };
112584
+ }
112054
112585
  default:
112055
112586
  return undefined;
112056
112587
  }
@@ -112112,7 +112643,7 @@
112112
112643
  }
112113
112644
 
112114
112645
  const name$1h = 'Analytics__AnalyticsRepresentation';
112115
- const VERSION$1y = 'ac72d1c80cd40da609e0deb08f7aa498';
112646
+ const VERSION$1y = 'b299cf324d3e10f682533db156b3db05';
112116
112647
  function keyBuilder$1m(luvio, path, data) {
112117
112648
  return keyPrefix$1 + '::uiapi::' + name$1h + '::' + data.Id; // We're missing idNodeName in the actual key here...
112118
112649
  }
@@ -112413,6 +112944,12 @@
112413
112944
  typename: 'Boolean'
112414
112945
  };
112415
112946
  }
112947
+ case 'ReusedAssetStatus': {
112948
+ return {
112949
+ isArray: false,
112950
+ typename: 'String'
112951
+ };
112952
+ }
112416
112953
  default:
112417
112954
  return undefined;
112418
112955
  }
@@ -112474,7 +113011,7 @@
112474
113011
  }
112475
113012
 
112476
113013
  const name$1g = 'Analytics__MktDataConnector';
112477
- const VERSION$1x = 'a8c9731c67bcbcde83c6e5bacb3299b4';
113014
+ const VERSION$1x = 'b0f45c68439021ded5640b5e3920ee2f';
112478
113015
  function keyBuilder$1l(luvio, path, data) {
112479
113016
  return keyPrefix$1 + '::uiapi::' + name$1g + '::' + data.Id; // We're missing idNodeName in the actual key here...
112480
113017
  }
@@ -112786,6 +113323,12 @@
112786
113323
  typename: 'Boolean'
112787
113324
  };
112788
113325
  }
113326
+ case 'ReusedAssetStatus': {
113327
+ return {
113328
+ isArray: false,
113329
+ typename: 'String'
113330
+ };
113331
+ }
112789
113332
  default:
112790
113333
  return undefined;
112791
113334
  }
@@ -113023,6 +113566,12 @@
113023
113566
  typename: 'Boolean'
113024
113567
  };
113025
113568
  }
113569
+ case 'ReusedAssetStatus': {
113570
+ return {
113571
+ isArray: false,
113572
+ typename: 'String'
113573
+ };
113574
+ }
113026
113575
  default:
113027
113576
  return undefined;
113028
113577
  }
@@ -136108,7 +136657,7 @@
136108
136657
  configuration: { ...configurationForGraphQLAdapters$1 },
136109
136658
  instrument: instrument$1,
136110
136659
  });
136111
- // version: 1.428.0-dev2-2d5e0a6e5f
136660
+ // version: 1.428.0-dev21-133a7da4f5
136112
136661
 
136113
136662
  // On core the unstable adapters are re-exported with different names,
136114
136663
  // we want to match them here.
@@ -136260,7 +136809,7 @@
136260
136809
  unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
136261
136810
  graphQLImperative = ldsAdapter;
136262
136811
  });
136263
- // version: 1.428.0-dev2-2d5e0a6e5f
136812
+ // version: 1.428.0-dev21-133a7da4f5
136264
136813
 
136265
136814
  var gqlApi = /*#__PURE__*/Object.freeze({
136266
136815
  __proto__: null,
@@ -137059,7 +137608,7 @@
137059
137608
  function register(r) {
137060
137609
  callbacks$1.forEach((callback) => callback(r));
137061
137610
  }
137062
- // version: 1.428.0-dev2-ad2109c7a1
137611
+ // version: 1.428.0-dev21-c9faba50c9
137063
137612
 
137064
137613
  /**
137065
137614
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -138396,4 +138945,4 @@
138396
138945
  exports.subscribeToAdapter = subscribeToAdapter;
138397
138946
 
138398
138947
  }));
138399
- // version: 1.428.0-dev2-ad2109c7a1
138948
+ // version: 1.428.0-dev21-c9faba50c9