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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3283,7 +3283,7 @@ function resolveCachePolicy(cachePolicy, defaultCachePolicy) {
3283
3283
  }
3284
3284
  }
3285
3285
  }
3286
- function isFetchResponse(error) {
3286
+ function isFetchResponse$1(error) {
3287
3287
  return error !== null && typeof error === 'object' && 'status' in error;
3288
3288
  }
3289
3289
  /**
@@ -3362,7 +3362,7 @@ class Environment {
3362
3362
  // the new network adapter behavior
3363
3363
  return reject(
3364
3364
  // legacy network adapter check
3365
- isFetchResponse(error)
3365
+ isFetchResponse$1(error)
3366
3366
  ? {
3367
3367
  ...error,
3368
3368
  errorType: 'fetchResponse',
@@ -4146,7 +4146,7 @@ function createResourceParamsImpl(config, configMetadata) {
4146
4146
  }
4147
4147
  return resourceParams;
4148
4148
  }
4149
- // engine version: 0.160.3-354dc58b
4149
+ // engine version: 0.160.4-dev1-4b808818
4150
4150
 
4151
4151
  /**
4152
4152
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -4274,7 +4274,7 @@ function withDefaultLuvio(callback) {
4274
4274
  }
4275
4275
  callbacks.push(callback);
4276
4276
  }
4277
- // version: 1.428.0-dev2-ad2109c7a1
4277
+ // version: 1.428.0-dev20-1b319a0432
4278
4278
 
4279
4279
  // TODO [TD-0081508]: once that TD is fulfilled we can probably change this file
4280
4280
  function instrumentAdapter$1(createFunction, _metadata) {
@@ -5318,7 +5318,7 @@ function createGraphQLWireAdapterConstructor(luvio, adapter, metadata, astResolv
5318
5318
  const { apiFamily, name } = metadata;
5319
5319
  return createGraphQLWireAdapterConstructor$1(adapter, `${apiFamily}.${name}`, luvio, astResolver);
5320
5320
  }
5321
- // version: 1.428.0-dev2-ad2109c7a1
5321
+ // version: 1.428.0-dev20-1b319a0432
5322
5322
 
5323
5323
  function isSupportedEntity(_objectApiName) {
5324
5324
  return true;
@@ -5422,7 +5422,7 @@ var TypeCheckShapes;
5422
5422
  TypeCheckShapes[TypeCheckShapes["Integer"] = 3] = "Integer";
5423
5423
  TypeCheckShapes[TypeCheckShapes["Unsupported"] = 4] = "Unsupported";
5424
5424
  })(TypeCheckShapes || (TypeCheckShapes = {}));
5425
- // engine version: 0.160.3-354dc58b
5425
+ // engine version: 0.160.4-dev1-4b808818
5426
5426
 
5427
5427
  const { keys: ObjectKeys$4, create: ObjectCreate$4 } = Object;
5428
5428
 
@@ -32610,9 +32610,18 @@ withDefaultLuvio((luvio) => {
32610
32610
  throttle(60, 60000, setupNotifyAllListRecordUpdateAvailable(luvio));
32611
32611
  throttle(60, 60000, setupNotifyAllListInfoSummaryUpdateAvailable(luvio));
32612
32612
  });
32613
- // version: 1.428.0-dev2-2d5e0a6e5f
32613
+ // version: 1.428.0-dev20-d72ac06681
32614
32614
 
32615
- var allowUpdatesForNonCachedRecords = {
32615
+ var draftQueueMaxRetryAttemptsGate = {
32616
+ isOpen: function (e) {
32617
+ return e.fallback;
32618
+ },
32619
+ hasError: function () {
32620
+ return !0;
32621
+ },
32622
+ };
32623
+
32624
+ var preserveIdempotencyKeyOn400Gate = {
32616
32625
  isOpen: function (e) {
32617
32626
  return e.fallback;
32618
32627
  },
@@ -32664,6 +32673,15 @@ const getInstrumentation = () => {
32664
32673
  return mockInstrumentation;
32665
32674
  };
32666
32675
 
32676
+ var allowUpdatesForNonCachedRecords = {
32677
+ isOpen: function (e) {
32678
+ return e.fallback;
32679
+ },
32680
+ hasError: function () {
32681
+ return !0;
32682
+ },
32683
+ };
32684
+
32667
32685
  var caseSensitiveUserId = '005B0000000GR4OIAW';
32668
32686
 
32669
32687
  /**
@@ -47834,6 +47852,13 @@ function customActionHandler(executor, id, draftQueue) {
47834
47852
  }
47835
47853
 
47836
47854
  const DRAFT_SEGMENT = 'DRAFT';
47855
+ /**
47856
+ * Metadata key under which an action's upload retry-attempt count is persisted.
47857
+ * Lives in the action's durable `metadata` bag so the count survives app restarts
47858
+ * (the in-memory backoff interval resets on every startQueue()). Written by the
47859
+ * action handler on each retry and cleared when an action is manually retried.
47860
+ */
47861
+ const DRAFT_ACTION_RETRY_COUNT_METADATA_KEY = 'retryCount';
47837
47862
  class DurableDraftQueue {
47838
47863
  getHandler(id) {
47839
47864
  const handler = this.handlers[id];
@@ -48192,10 +48217,14 @@ class DurableDraftQueue {
48192
48217
  if (!isDraftError(target)) {
48193
48218
  throw Error(`Action ${actionId} is not in Error state`);
48194
48219
  }
48220
+ // A manual retry is a fresh start: clear the persisted upload retry-attempt
48221
+ // count so the action doesn't immediately re-cap after a single failure.
48222
+ const { [DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]: _retryCount, ...metadataWithoutRetryCount } = target.metadata || {};
48195
48223
  let pendingAction = {
48196
48224
  ...target,
48197
48225
  status: DraftActionStatus.Pending,
48198
48226
  error: undefined,
48227
+ metadata: metadataWithoutRetryCount,
48199
48228
  };
48200
48229
  await this.draftStore.writeAction(pendingAction);
48201
48230
  await this.notifyChangedListeners({
@@ -79603,6 +79632,322 @@ function makeEnvironmentUiApiRecordDraftAware(luvio, options, env) {
79603
79632
  return create$3(adapterSpecificEnvironments, {});
79604
79633
  }
79605
79634
 
79635
+ /**
79636
+ * This function takes an unknown error and normalizes it to an Error object
79637
+ */
79638
+ function normalizeError$1(error) {
79639
+ if (typeof error === 'object' && error instanceof Error) {
79640
+ return error;
79641
+ }
79642
+ else if (typeof error === 'string') {
79643
+ return new Error(error);
79644
+ }
79645
+ return new Error(stringify$5(error));
79646
+ }
79647
+ /**
79648
+ * Maximum number of times an action's upload will be retried before the action is
79649
+ * transitioned to Error and surfaced to the consumer. Caps the otherwise-unbounded
79650
+ * retry loop that can wedge the single-worker draft queue when an upload fails
79651
+ * deterministically on every dispatch. Only enforced when the
79652
+ * `lmr.draft-queue-max-retry-attempts` gate is open.
79653
+ */
79654
+ const MAX_RETRY_ATTEMPTS = 5;
79655
+ const MAX_RETRY_ERROR_CODE = 'MAX_RETRY_ATTEMPTS_EXCEEDED';
79656
+ function isFetchResponse(failure) {
79657
+ // The union is exactly FetchResponse | Error, so "not an Error" is the FetchResponse.
79658
+ // This is safer than duck-typing on status/ok: a custom Error subclass that happens to
79659
+ // carry those properties would be misclassified by a structural check.
79660
+ return !(failure instanceof Error);
79661
+ }
79662
+ /**
79663
+ * Builds the FetchResponse-shaped error attached to an action that has exhausted its
79664
+ * upload retries. Shaped like a real network error response (status/statusText/ok/
79665
+ * headers/body) so downstream consumers (DraftManager, queue instrumentation) that
79666
+ * read `action.error.status`/`.body`/etc. behave consistently with a server error.
79667
+ *
79668
+ * The failure that caused the final attempt — a non-ok response (HTTP path) or a thrown
79669
+ * error (catch path) — is folded into the body so the surfaced error says WHAT failed,
79670
+ * not merely that the attempt cap was reached.
79671
+ */
79672
+ function buildMaxRetryError(lastFailure) {
79673
+ const capMessage = `Draft action exceeded ${MAX_RETRY_ATTEMPTS} upload retry attempts`;
79674
+ if (isFetchResponse(lastFailure)) {
79675
+ // Preserve the server's own error detail (status + body) so the surfaced error
79676
+ // carries the last response that caused us to give up retrying.
79677
+ return {
79678
+ status: HttpStatusCode$2.ServerError,
79679
+ statusText: capMessage,
79680
+ ok: false,
79681
+ headers: {},
79682
+ body: {
79683
+ errorCode: MAX_RETRY_ERROR_CODE,
79684
+ message: `${capMessage}. Last response: status=${lastFailure.status} ${lastFailure.statusText}`,
79685
+ lastResponseStatus: lastFailure.status,
79686
+ lastResponseBody: lastFailure.body,
79687
+ },
79688
+ };
79689
+ }
79690
+ return {
79691
+ status: HttpStatusCode$2.ServerError,
79692
+ statusText: capMessage,
79693
+ ok: false,
79694
+ headers: {},
79695
+ body: {
79696
+ errorCode: MAX_RETRY_ERROR_CODE,
79697
+ message: `${capMessage}. Last error: ${lastFailure.name}: ${lastFailure.message}`,
79698
+ lastErrorName: lastFailure.name,
79699
+ lastErrorMessage: lastFailure.message,
79700
+ },
79701
+ };
79702
+ }
79703
+
79704
+ function attachObserversToAdapterRequestContext(observers, adapterRequestContext) {
79705
+ if (adapterRequestContext === undefined) {
79706
+ return { eventObservers: observers };
79707
+ }
79708
+ if (adapterRequestContext.eventObservers === undefined) {
79709
+ return { ...adapterRequestContext, eventObservers: observers };
79710
+ }
79711
+ return {
79712
+ ...adapterRequestContext,
79713
+ eventObservers: adapterRequestContext.eventObservers.concat(observers),
79714
+ };
79715
+ }
79716
+ /**
79717
+ * Use this method to sanitize the unknown error object when
79718
+ * we are unsure of the type of the error thrown
79719
+ *
79720
+ * @param err Unknown object to sanitize
79721
+ * @returns an instance of error
79722
+ */
79723
+ function normalizeError$2(err) {
79724
+ if (err instanceof Error) {
79725
+ return err;
79726
+ }
79727
+ else if (typeof err === 'string') {
79728
+ return new Error(err);
79729
+ }
79730
+ return new Error(stringify$5(err));
79731
+ }
79732
+ // metrics
79733
+ /** GraphQL */
79734
+ const GRAPHQL_EVAL_ERROR = 'gql-eval-error';
79735
+ const GRAPHQL_EVAL_DB_READ_DURATION = 'gql-eval-db-read-duration';
79736
+ const GRAPHQL_EVAL_ROOT_QUERY_COUNT = 'gql-eval-root-query-count';
79737
+ const GRAPHQL_EVAL_TOTAL_QUERY_COUNT = 'gql-eval-total-query-count';
79738
+ const GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT = 'gql-eval-max-child-count';
79739
+ const GRAPHQL_EVAL_QUERY_RECORD_COUNT = 'gql-eval-query-record-count';
79740
+ const GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED = 'gql-snapshot-refresh-undefined';
79741
+ /** Draft Queue */
79742
+ const DRAFT_QUEUE_STATE_STARTED = 'draft-queue-state-started';
79743
+ const DRAFT_QUEUE_STATE_ERROR = 'draft-queue-state-error';
79744
+ const DRAFT_QUEUE_STATE_WAITING = 'draft-queue-state-waiting';
79745
+ const DRAFT_QUEUE_STATE_STOPPED = 'draft-queue-state-stopped';
79746
+ const DRAFT_QUEUE_ACTION_ADDED = 'draft-queue-action-added';
79747
+ const DRAFT_QUEUE_ACTION_UPLOADING = 'draft-queue-action-uploading';
79748
+ const DRAFT_QUEUE_ACTION_COMPLETED = 'draft-queue-action-completed';
79749
+ const DRAFT_QUEUE_ACTION_DELETED = 'draft-queue-action-deleted';
79750
+ const DRAFT_QUEUE_ACTION_UPDATED = 'draft-queue-action-updated';
79751
+ const DRAFT_QUEUE_ACTION_FAILED = 'draft-queue-action-failed';
79752
+ const DRAFT_QUEUE_ACTION_UPLOAD_ERROR = 'draft-queue-action-upload-error';
79753
+ const DRAFT_QUEUE_TOTAL_MERGE_ACTIONS_CALLS = 'draft-queue-total-mergeActions-calls';
79754
+ /** Content Document */
79755
+ const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
79756
+ const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
79757
+ /** Priming */
79758
+ const PRIMING_TOTAL_SESSION_COUNT = 'priming-total-session-count';
79759
+ const PRIMING_TOTAL_ERROR_COUNT = 'priming-total-error-count';
79760
+ const PRIMING_TOTAL_PRIMED_COUNT = 'priming-total-primed-count';
79761
+ const PRIMING_TOTAL_CONFLICT_COUNT = 'priming-total-conflict-count';
79762
+ // logs
79763
+ const GRAPHQL_QUERY_PARSE_ERROR = 'gql-query-parse-error';
79764
+ const GRAPHQL_SQL_EVAL_PRECONDITION_ERROR = 'gql-sql-pre-eval-error';
79765
+ const GRAPHQL_CREATE_SNAPSHOT_ERROR = 'gql-create-snapshot-error';
79766
+ const DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR = 'draft-aware-create-content-document-and-version-error';
79767
+ /** Garbage Collection */
79768
+ const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT = 'garbage-collection-aggressive-trim-count';
79769
+ const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED = 'garbage-collection-aggressive-trim-records-trimmed';
79770
+ const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM = 'garbage-collection-aggressive-trim-total-records-before-trim';
79771
+ const ldsMobileInstrumentation$2 = getInstrumentation();
79772
+ const nimbusLogger = typeof __nimbus !== 'undefined' &&
79773
+ __nimbus.plugins !== undefined &&
79774
+ __nimbus.plugins.JSLoggerPlugin !== undefined
79775
+ ? __nimbus.plugins.JSLoggerPlugin
79776
+ : undefined;
79777
+ function reportGraphqlQueryParseError(err) {
79778
+ const error = normalizeError$2(err);
79779
+ const errorCode = GRAPHQL_QUERY_PARSE_ERROR;
79780
+ // Metric
79781
+ reportGraphqlAdapterError(errorCode);
79782
+ // Log
79783
+ ldsMobileInstrumentation$2.error(error, errorCode);
79784
+ }
79785
+ function reportGraphqlSqlEvalPreconditionError(err) {
79786
+ const error = normalizeError$2(err);
79787
+ const errorCode = GRAPHQL_SQL_EVAL_PRECONDITION_ERROR;
79788
+ // Metric
79789
+ reportGraphqlAdapterError(errorCode);
79790
+ // Log
79791
+ ldsMobileInstrumentation$2.error(error, errorCode);
79792
+ }
79793
+ function reportGraphqlCreateSnapshotError(err) {
79794
+ const error = normalizeError$2(err);
79795
+ const errorCode = GRAPHQL_CREATE_SNAPSHOT_ERROR;
79796
+ // Metric
79797
+ reportGraphqlAdapterError(errorCode);
79798
+ // Log
79799
+ ldsMobileInstrumentation$2.error(error, errorCode);
79800
+ }
79801
+ function reportGraphQlEvalDbReadDuration(duration) {
79802
+ ldsMobileInstrumentation$2.trackValue(GRAPHQL_EVAL_DB_READ_DURATION, duration);
79803
+ }
79804
+ function reportGraphqlAdapterError(errorCode) {
79805
+ // Increment overall count with errorCode as tag
79806
+ ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_EVAL_ERROR, 1, true, { errorCode });
79807
+ }
79808
+ function reportGraphqlQueryInstrumentation(data) {
79809
+ const queryBuckets = [1, 2, 3, 4, 5, 10, 20, 50, 100];
79810
+ const recordBuckets = [
79811
+ 1, 5, 10, 20, 50, 100, 1000, 2000, 5000, 10000, 50000, 100000, 1000000,
79812
+ ];
79813
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_ROOT_QUERY_COUNT, data.rootQueryCount, queryBuckets);
79814
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_TOTAL_QUERY_COUNT, data.totalQueryCount, queryBuckets);
79815
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
79816
+ ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
79817
+ }
79818
+ function incrementGraphQLRefreshUndfined() {
79819
+ ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
79820
+ }
79821
+ function reportDraftActionEvent(state, draftCount, message) {
79822
+ if (nimbusLogger) {
79823
+ nimbusLogger.logInfo(`Draft action event: ${state}, depth: ${draftCount}${message ? `, message: ${message}` : ''}`);
79824
+ }
79825
+ switch (state) {
79826
+ case 'added':
79827
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_ADDED);
79828
+ break;
79829
+ case 'uploading':
79830
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOADING);
79831
+ break;
79832
+ case 'completed':
79833
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_COMPLETED);
79834
+ break;
79835
+ case 'deleted':
79836
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_DELETED);
79837
+ break;
79838
+ case 'failed':
79839
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_FAILED, 1, true);
79840
+ break;
79841
+ case 'updated':
79842
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPDATED);
79843
+ break;
79844
+ }
79845
+ }
79846
+ /**
79847
+ * Reports an exception thrown while uploading a draft action. The thrown error is
79848
+ * otherwise swallowed by the upload handler's retry path, leaving the failure
79849
+ * invisible in telemetry; this surfaces it to o11y (log + counter) so a deterministic
79850
+ * upload failure can be diagnosed instead of silently retried forever.
79851
+ *
79852
+ * PII: the device log line carries only the handler id, retry attempt, and the error
79853
+ * NAME (e.g. "TypeError") — never the free-text error message, which can embed record
79854
+ * ids (URL path segments) or server field-validation strings. The full normalized error
79855
+ * (message + stack) is handed only to `ldsMobileInstrumentation.error`, the structured
79856
+ * o11y error pipeline responsible for scrubbing/handling that detail. Also does NOT log
79857
+ * the action's targetId/tag or any request body/field values.
79858
+ */
79859
+ function reportDraftActionUploadError(error, handlerId, attempt) {
79860
+ const normalized = normalizeError$2(error);
79861
+ if (nimbusLogger) {
79862
+ nimbusLogger.logError(`Draft action upload error: handler=${handlerId}, attempt=${attempt}, name=${normalized.name}`);
79863
+ }
79864
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOAD_ERROR, 1, true, {
79865
+ handlerId,
79866
+ });
79867
+ ldsMobileInstrumentation$2.error(normalized, DRAFT_QUEUE_ACTION_UPLOAD_ERROR);
79868
+ }
79869
+ function reportDraftQueueState(state, draftCount) {
79870
+ if (nimbusLogger) {
79871
+ nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
79872
+ }
79873
+ switch (state) {
79874
+ case 'started':
79875
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STARTED);
79876
+ break;
79877
+ case 'error':
79878
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_ERROR, 1, true);
79879
+ break;
79880
+ case 'waiting':
79881
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_WAITING);
79882
+ break;
79883
+ case 'stopped':
79884
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STOPPED);
79885
+ break;
79886
+ }
79887
+ }
79888
+ function reportDraftAwareContentDocumentVersionSynthesizeError(err) {
79889
+ let error;
79890
+ if (err.body !== undefined) {
79891
+ error = err.body;
79892
+ }
79893
+ else {
79894
+ error = normalizeError$2(err);
79895
+ }
79896
+ const errorCode = DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR;
79897
+ const errorType = error.errorType;
79898
+ const tags = {
79899
+ errorCode,
79900
+ };
79901
+ if (errorType !== undefined) {
79902
+ tags.errorType = errorType;
79903
+ }
79904
+ // Metric
79905
+ ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR, 1, true, tags);
79906
+ // Log
79907
+ ldsMobileInstrumentation$2.error(error, errorCode);
79908
+ }
79909
+ function reportDraftAwareContentVersionSynthesizeCalls(mimeType) {
79910
+ ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS, 1, undefined, { mimeType });
79911
+ }
79912
+ /** Priming */
79913
+ function reportPrimingSessionCreated() {
79914
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_SESSION_COUNT, 1, undefined, {});
79915
+ }
79916
+ function reportPrimingError(errorType, recordCount) {
79917
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_ERROR_COUNT, recordCount, undefined, {
79918
+ errorType,
79919
+ });
79920
+ }
79921
+ function reportPrimingSuccess(recordCount) {
79922
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_PRIMED_COUNT, recordCount, undefined);
79923
+ }
79924
+ function reportPrimingConflict(resolutionType, recordCount) {
79925
+ ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_CONFLICT_COUNT, recordCount, undefined, {
79926
+ resolutionType,
79927
+ });
79928
+ }
79929
+ /** Network */
79930
+ function reportChunkCandidateUrlLength(urlLength) {
79931
+ const buckets = [8000, 10000, 12000, 14000, 16000];
79932
+ ldsMobileInstrumentation$2.bucketValue('chunk-candidate-url-length-histogram', urlLength, buckets);
79933
+ }
79934
+ /** Garbage Collection */
79935
+ function reportAggressiveTrimTriggered(trimCount, beforeTrimRecordCount, totalRecordsTrimmed) {
79936
+ ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT, trimCount);
79937
+ ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM, beforeTrimRecordCount);
79938
+ ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED, totalRecordsTrimmed);
79939
+ }
79940
+ /** One Store Cache Purge */
79941
+ const ONESTORE_CACHE_PURGING_RECORDS_PURGED = 'onestore-cache-purging-records-purged';
79942
+ const ONESTORE_CACHE_PURGING_RECORDS_ERROR = 'onestore-cache-purging-records-error';
79943
+ function reportOneStoreRecordsPurgedFromCache(recordsPurged) {
79944
+ ldsMobileInstrumentation$2.trackValue(ONESTORE_CACHE_PURGING_RECORDS_PURGED, recordsPurged);
79945
+ }
79946
+ function reportOneStoreCachePurgingError(error) {
79947
+ const errorMessage = normalizeError$2(error);
79948
+ ldsMobileInstrumentation$2.error(errorMessage, ONESTORE_CACHE_PURGING_RECORDS_ERROR);
79949
+ }
79950
+
79606
79951
  const HTTP_HEADER_RETRY_AFTER = 'Retry-After';
79607
79952
  const HTTP_HEADER_IDEMPOTENCY_KEY = 'Idempotency-Key';
79608
79953
  const ERROR_CODE_IDEMPOTENCY_FEATURE_NOT_ENABLED = 'IDEMPOTENCY_FEATURE_NOT_ENABLED';
@@ -79691,6 +80036,14 @@ class AbstractResourceRequestActionHandler {
79691
80036
  if (request && request.headers && request.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
79692
80037
  const status = response.status;
79693
80038
  switch (status) {
80039
+ case 0 /* IdempotentWriteSpecificHttpStatusCode.NoResponse */:
80040
+ // statusCode 0 = the client sent the request but received no response
80041
+ // (connection dropped / app suspended in flight). The write may already
80042
+ // have committed at the origin, so we MUST retry with the SAME idempotency
80043
+ // key and let the server dedupe — rotating the key here would duplicate an
80044
+ // already-committed record.
80045
+ shouldRetry = true;
80046
+ break;
79694
80047
  case 408 /* IdempotentWriteSpecificHttpStatusCode.RequestTimeout */:
79695
80048
  case 503 /* IdempotentWriteSpecificHttpStatusCode.ServiceUnavailable */:
79696
80049
  retryDelayInMs = getRetryAfterInMs(response.headers);
@@ -79737,11 +80090,33 @@ class AbstractResourceRequestActionHandler {
79737
80090
  }
79738
80091
  }
79739
80092
  }
80093
+ // A generic 400 that none of the idempotency-specific branches above claimed
80094
+ // (shouldRetry still false) and that is not a backdating collision. @W-23445154
79740
80095
  if (response.status === HttpStatusCode$2.BadRequest &&
80096
+ !shouldRetry &&
79741
80097
  this.hasIdempotencySupport() &&
79742
- updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined) {
79743
- updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
79744
- actionDataChanged = true;
80098
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined &&
80099
+ !this.isBackdatingError(response.body, action)) {
80100
+ if (!preserveIdempotencyKeyOn400Gate.isOpen({ fallback: false })) {
80101
+ // Gate CLOSED (default) — legacy behavior: rotate the key and let the draft
80102
+ // error (shouldRetry stays false). Retained as the default until the fix is
80103
+ // enabled; this is the path that duplicated already-committed writes.
80104
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80105
+ actionDataChanged = true;
80106
+ }
80107
+ else if (!this.isServerGeneratedError(response.body)) {
80108
+ // Gate OPEN — the fix: only an edge/gateway-injected 400 (no recognizable
80109
+ // server error body) is retried with the SAME key, so the server can dedupe a
80110
+ // write that may already have committed at the origin. A real, server-generated
80111
+ // 400 (UiApiError[] or an enhancedErrorType body, e.g. a field-validation
80112
+ // failure) falls through to the error path below: retrying it unchanged would
80113
+ // only be rejected again, so the draft is errored for the user to fix or discard
80114
+ // — the same terminal outcome as the legacy path, minus the duplicating key
80115
+ // rotation. The key is only ever rotated by the recognized idempotency error
80116
+ // codes above, by a backdating collision (new body), or when the user edits an
80117
+ // errored draft (mergeActions/handleReplaceAction).
80118
+ shouldRetry = true;
80119
+ }
79745
80120
  }
79746
80121
  if (response.status === HttpStatusCode$2.BadRequest &&
79747
80122
  this.isBackdatingError(response.body, action)) {
@@ -79750,23 +80125,101 @@ class AbstractResourceRequestActionHandler {
79750
80125
  ...updatedAction.data.body.fields,
79751
80126
  LastModifiedDate: new Date(updatedAction.timestamp).toISOString(),
79752
80127
  };
80128
+ // The record content changed (LastModifiedDate is bumped), so this is a NEW
80129
+ // logical write. Rotate the idempotency key so the server treats it as such
80130
+ // rather than deduping it against the stale, pre-backdate request. This is a
80131
+ // legitimate rotation — the request body is modified — unlike the generic-400
80132
+ // fallback above which must preserve the key when the fix is enabled. @W-23445154
80133
+ if (this.hasIdempotencySupport() &&
80134
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined) {
80135
+ updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80136
+ }
79753
80137
  shouldRetry = true;
79754
80138
  actionDataChanged = true;
79755
80139
  }
79756
- await actionErrored(shouldRetry
79757
- ? updatedAction
79758
- : {
80140
+ if (shouldRetry) {
80141
+ // Funnel the retry through the cap: when the gate is open this persists
80142
+ // the attempt count and errors out once the cap is hit; when the gate is
80143
+ // closed it behaves exactly as before. The non-ok response is the failure
80144
+ // that would otherwise be retried.
80145
+ await this.retryOrCap(updatedAction, response, actionErrored, retryDelayInMs, actionDataChanged);
80146
+ }
80147
+ else {
80148
+ await actionErrored({
79759
80149
  ...updatedAction,
79760
80150
  error: response,
79761
80151
  status: DraftActionStatus.Error,
79762
- }, shouldRetry, retryDelayInMs, actionDataChanged);
80152
+ }, false, retryDelayInMs, actionDataChanged);
80153
+ }
79763
80154
  return ProcessActionResult.ACTION_ERRORED;
79764
80155
  }
79765
80156
  catch (e) {
79766
- await actionErrored(action, true);
80157
+ // #3 (ungated): the thrown exception is otherwise swallowed here, leaving a
80158
+ // deterministic upload failure invisible in telemetry. Surface it to o11y
80159
+ // before deciding whether to retry.
80160
+ const error = normalizeError$1(e);
80161
+ const attempt = this.getUploadRetryCount(action) + 1;
80162
+ reportDraftActionUploadError(error, this.handlerId, attempt);
80163
+ await this.retryOrCap(action, error, actionErrored);
79767
80164
  return ProcessActionResult.NETWORK_ERROR;
79768
80165
  }
79769
80166
  }
80167
+ /**
80168
+ * Reads the persisted upload retry-attempt count from the action's durable metadata
80169
+ * bag. The count lives in metadata (rather than in-memory) so it survives app
80170
+ * restarts and queue re-creation — the failure modes that let the unbounded retry
80171
+ * loop run for days.
80172
+ */
80173
+ getUploadRetryCount(action) {
80174
+ const parsed = Number(action.metadata?.[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]);
80175
+ // Guard against a missing/corrupt persisted value: a NaN, fractional, or negative
80176
+ // count must never weaken the cap. Floor to a non-negative integer, defaulting to 0.
80177
+ if (!Number.isFinite(parsed) || parsed < 0) {
80178
+ return 0;
80179
+ }
80180
+ return Math.floor(parsed);
80181
+ }
80182
+ /**
80183
+ * Enforces the upload retry-attempt cap around the queue's `actionErrored` callback.
80184
+ * Both retry paths — a retryable HTTP error and a thrown exception — funnel through
80185
+ * here.
80186
+ *
80187
+ * The entire cap behavior is gated behind `lmr.draft-queue-max-retry-attempts`. When
80188
+ * the gate is CLOSED this is a transparent passthrough: it issues the same
80189
+ * `actionErrored(action, true, ...)` retry the queue made before this change, and
80190
+ * writes no extra metadata. When the gate is OPEN it persists an incremented attempt
80191
+ * count to the action's durable metadata and, once the action has failed
80192
+ * {@link MAX_RETRY_ATTEMPTS} times, transitions it to Error (carrying a
80193
+ * FetchResponse-shaped error that names the failure that exhausted the retries)
80194
+ * instead of scheduling yet another retry.
80195
+ */
80196
+ async retryOrCap(action, lastFailure, actionErrored, retryDelayInMs, actionDataChanged) {
80197
+ if (!draftQueueMaxRetryAttemptsGate.isOpen({ fallback: false })) {
80198
+ // Gate closed: preserve the pre-existing unbounded-retry behavior exactly.
80199
+ await actionErrored(action, true, retryDelayInMs, actionDataChanged);
80200
+ return;
80201
+ }
80202
+ const attempt = this.getUploadRetryCount(action) + 1;
80203
+ if (attempt >= MAX_RETRY_ATTEMPTS) {
80204
+ await actionErrored({
80205
+ ...action,
80206
+ error: buildMaxRetryError(lastFailure),
80207
+ status: DraftActionStatus.Error,
80208
+ }, false);
80209
+ return;
80210
+ }
80211
+ // Persist the incremented attempt count so it survives restarts. Forcing
80212
+ // actionDataChanged ensures the queue writes the updated metadata before the
80213
+ // action is rescheduled for retry.
80214
+ const retryingAction = {
80215
+ ...action,
80216
+ metadata: {
80217
+ ...action.metadata,
80218
+ [DRAFT_ACTION_RETRY_COUNT_METADATA_KEY]: String(attempt),
80219
+ },
80220
+ };
80221
+ await actionErrored(retryingAction, true, retryDelayInMs, true);
80222
+ }
79770
80223
  async handleActionEnqueued(action) {
79771
80224
  const impactedKeys = await this.recordService.setSideEffectsForActions([action]);
79772
80225
  await this.recordService.reapplyRecordSideEffects(impactedKeys);
@@ -79930,6 +80383,13 @@ class AbstractResourceRequestActionHandler {
79930
80383
  this.isActionOfType(sourceAction)) {
79931
80384
  targetAction.status = DraftActionStatus.Pending;
79932
80385
  targetAction.data = sourceAction.data;
80386
+ // Replacing an action's data re-queues it as a fresh upload, so the persisted
80387
+ // upload retry-attempt count must not carry over — otherwise a previously-
80388
+ // throttled action could immediately re-hit the cap on its first new attempt.
80389
+ // (Mirrors the same clear in mergeActions.)
80390
+ if (targetAction.metadata !== undefined) {
80391
+ delete targetAction.metadata[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY];
80392
+ }
79933
80393
  return targetAction;
79934
80394
  }
79935
80395
  else {
@@ -79969,6 +80429,11 @@ class AbstractResourceRequestActionHandler {
79969
80429
  }
79970
80430
  // overlay metadata
79971
80431
  merged.metadata = { ...targetMetadata, ...sourceMetadata };
80432
+ // A merge folds new user data into the action and re-queues it as a fresh upload,
80433
+ // so the persisted upload retry-attempt count must not carry over — otherwise a
80434
+ // previously-throttled action could immediately re-hit the cap on its first new
80435
+ // attempt.
80436
+ delete merged.metadata[DRAFT_ACTION_RETRY_COUNT_METADATA_KEY];
79972
80437
  // put status back to pending to auto upload if queue is active and targed is at the head.
79973
80438
  merged.status = DraftActionStatus.Pending;
79974
80439
  return merged;
@@ -80003,8 +80468,36 @@ class AbstractResourceRequestActionHandler {
80003
80468
  isUiApiErrors(body) {
80004
80469
  return body !== undefined && isArray$3$1(body) && body.length > 0 && body[0].errorCode;
80005
80470
  }
80471
+ // Distinguishes a real, server-generated 400 from an edge/gateway-injected one.
80472
+ //
80473
+ // A 400 the origin (UiApi/APREST) actually produced carries a structured error body:
80474
+ // either a `UiApiError[]` (see isUiApiErrors) or an enhanced-error object tagged with
80475
+ // `enhancedErrorType` (e.g. 'RecordError' for field-validation failures). These describe
80476
+ // a request the server understood and deliberately rejected — retrying it unchanged would
80477
+ // just be rejected again, so the draft must be errored for the user to fix or discard.
80478
+ //
80479
+ // An edge/gateway-injected 400 (the duplicate-record incident, @W-23445154) has NO such
80480
+ // body — it's a tiny generic error page ({ message: 'Bad Request' }), a plain string, or
80481
+ // empty — and is returned on a request that may already have committed at the origin.
80482
+ // Only those should be retried with the same idempotency key so the server can dedupe.
80483
+ isServerGeneratedError(body) {
80484
+ if (this.isUiApiErrors(body)) {
80485
+ return true;
80486
+ }
80487
+ // enhancedErrorType is the origin's marker for a structured record error (field
80488
+ // validation, backdating collision, etc.). Guard the deref so a string/undefined
80489
+ // edge body doesn't throw.
80490
+ return (body !== null &&
80491
+ typeof body === 'object' &&
80492
+ body.enhancedErrorType !== undefined);
80493
+ }
80006
80494
  isBackdatingError(body, action) {
80007
- if (body.enhancedErrorType &&
80495
+ if (
80496
+ // An edge/gateway-injected 400 can carry an empty, string, or missing body; guard
80497
+ // the deref so classifying such a response never throws. @W-23445154
80498
+ body !== null &&
80499
+ typeof body === 'object' &&
80500
+ body.enhancedErrorType &&
80008
80501
  body.enhancedErrorType === 'RecordError' &&
80009
80502
  body.output &&
80010
80503
  body.output.errors &&
@@ -80579,229 +81072,6 @@ class AbstractQuickActionHandler extends AbstractResourceRequestActionHandler {
80579
81072
  }
80580
81073
  }
80581
81074
 
80582
- function attachObserversToAdapterRequestContext(observers, adapterRequestContext) {
80583
- if (adapterRequestContext === undefined) {
80584
- return { eventObservers: observers };
80585
- }
80586
- if (adapterRequestContext.eventObservers === undefined) {
80587
- return { ...adapterRequestContext, eventObservers: observers };
80588
- }
80589
- return {
80590
- ...adapterRequestContext,
80591
- eventObservers: adapterRequestContext.eventObservers.concat(observers),
80592
- };
80593
- }
80594
- /**
80595
- * Use this method to sanitize the unknown error object when
80596
- * we are unsure of the type of the error thrown
80597
- *
80598
- * @param err Unknown object to sanitize
80599
- * @returns an instance of error
80600
- */
80601
- function normalizeError$1(err) {
80602
- if (err instanceof Error) {
80603
- return err;
80604
- }
80605
- else if (typeof err === 'string') {
80606
- return new Error(err);
80607
- }
80608
- return new Error(stringify$5(err));
80609
- }
80610
- // metrics
80611
- /** GraphQL */
80612
- const GRAPHQL_EVAL_ERROR = 'gql-eval-error';
80613
- const GRAPHQL_EVAL_DB_READ_DURATION = 'gql-eval-db-read-duration';
80614
- const GRAPHQL_EVAL_ROOT_QUERY_COUNT = 'gql-eval-root-query-count';
80615
- const GRAPHQL_EVAL_TOTAL_QUERY_COUNT = 'gql-eval-total-query-count';
80616
- const GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT = 'gql-eval-max-child-count';
80617
- const GRAPHQL_EVAL_QUERY_RECORD_COUNT = 'gql-eval-query-record-count';
80618
- const GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED = 'gql-snapshot-refresh-undefined';
80619
- /** Draft Queue */
80620
- const DRAFT_QUEUE_STATE_STARTED = 'draft-queue-state-started';
80621
- const DRAFT_QUEUE_STATE_ERROR = 'draft-queue-state-error';
80622
- const DRAFT_QUEUE_STATE_WAITING = 'draft-queue-state-waiting';
80623
- const DRAFT_QUEUE_STATE_STOPPED = 'draft-queue-state-stopped';
80624
- const DRAFT_QUEUE_ACTION_ADDED = 'draft-queue-action-added';
80625
- const DRAFT_QUEUE_ACTION_UPLOADING = 'draft-queue-action-uploading';
80626
- const DRAFT_QUEUE_ACTION_COMPLETED = 'draft-queue-action-completed';
80627
- const DRAFT_QUEUE_ACTION_DELETED = 'draft-queue-action-deleted';
80628
- const DRAFT_QUEUE_ACTION_UPDATED = 'draft-queue-action-updated';
80629
- const DRAFT_QUEUE_ACTION_FAILED = 'draft-queue-action-failed';
80630
- const DRAFT_QUEUE_TOTAL_MERGE_ACTIONS_CALLS = 'draft-queue-total-mergeActions-calls';
80631
- /** Content Document */
80632
- const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
80633
- const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
80634
- /** Priming */
80635
- const PRIMING_TOTAL_SESSION_COUNT = 'priming-total-session-count';
80636
- const PRIMING_TOTAL_ERROR_COUNT = 'priming-total-error-count';
80637
- const PRIMING_TOTAL_PRIMED_COUNT = 'priming-total-primed-count';
80638
- const PRIMING_TOTAL_CONFLICT_COUNT = 'priming-total-conflict-count';
80639
- // logs
80640
- const GRAPHQL_QUERY_PARSE_ERROR = 'gql-query-parse-error';
80641
- const GRAPHQL_SQL_EVAL_PRECONDITION_ERROR = 'gql-sql-pre-eval-error';
80642
- const GRAPHQL_CREATE_SNAPSHOT_ERROR = 'gql-create-snapshot-error';
80643
- const DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR = 'draft-aware-create-content-document-and-version-error';
80644
- /** Garbage Collection */
80645
- const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT = 'garbage-collection-aggressive-trim-count';
80646
- const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED = 'garbage-collection-aggressive-trim-records-trimmed';
80647
- const GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM = 'garbage-collection-aggressive-trim-total-records-before-trim';
80648
- const ldsMobileInstrumentation$2 = getInstrumentation();
80649
- const nimbusLogger = typeof __nimbus !== 'undefined' &&
80650
- __nimbus.plugins !== undefined &&
80651
- __nimbus.plugins.JSLoggerPlugin !== undefined
80652
- ? __nimbus.plugins.JSLoggerPlugin
80653
- : undefined;
80654
- function reportGraphqlQueryParseError(err) {
80655
- const error = normalizeError$1(err);
80656
- const errorCode = GRAPHQL_QUERY_PARSE_ERROR;
80657
- // Metric
80658
- reportGraphqlAdapterError(errorCode);
80659
- // Log
80660
- ldsMobileInstrumentation$2.error(error, errorCode);
80661
- }
80662
- function reportGraphqlSqlEvalPreconditionError(err) {
80663
- const error = normalizeError$1(err);
80664
- const errorCode = GRAPHQL_SQL_EVAL_PRECONDITION_ERROR;
80665
- // Metric
80666
- reportGraphqlAdapterError(errorCode);
80667
- // Log
80668
- ldsMobileInstrumentation$2.error(error, errorCode);
80669
- }
80670
- function reportGraphqlCreateSnapshotError(err) {
80671
- const error = normalizeError$1(err);
80672
- const errorCode = GRAPHQL_CREATE_SNAPSHOT_ERROR;
80673
- // Metric
80674
- reportGraphqlAdapterError(errorCode);
80675
- // Log
80676
- ldsMobileInstrumentation$2.error(error, errorCode);
80677
- }
80678
- function reportGraphQlEvalDbReadDuration(duration) {
80679
- ldsMobileInstrumentation$2.trackValue(GRAPHQL_EVAL_DB_READ_DURATION, duration);
80680
- }
80681
- function reportGraphqlAdapterError(errorCode) {
80682
- // Increment overall count with errorCode as tag
80683
- ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_EVAL_ERROR, 1, true, { errorCode });
80684
- }
80685
- function reportGraphqlQueryInstrumentation(data) {
80686
- const queryBuckets = [1, 2, 3, 4, 5, 10, 20, 50, 100];
80687
- const recordBuckets = [
80688
- 1, 5, 10, 20, 50, 100, 1000, 2000, 5000, 10000, 50000, 100000, 1000000,
80689
- ];
80690
- ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_ROOT_QUERY_COUNT, data.rootQueryCount, queryBuckets);
80691
- ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_TOTAL_QUERY_COUNT, data.totalQueryCount, queryBuckets);
80692
- ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_MAX_CHILD_RELATIONSHIPS_COUNT, data.maxChildRelationships, queryBuckets);
80693
- ldsMobileInstrumentation$2.bucketValue(GRAPHQL_EVAL_QUERY_RECORD_COUNT, data.requestedRecordCount, recordBuckets);
80694
- }
80695
- function incrementGraphQLRefreshUndfined() {
80696
- ldsMobileInstrumentation$2.incrementCounter(GRAPHQL_SNAPSHOT_REFRESH_UNDEFINED);
80697
- }
80698
- function reportDraftActionEvent(state, draftCount, message) {
80699
- if (nimbusLogger) {
80700
- nimbusLogger.logInfo(`Draft action event: ${state}, depth: ${draftCount}${message ? `, message: ${message}` : ''}`);
80701
- }
80702
- switch (state) {
80703
- case 'added':
80704
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_ADDED);
80705
- break;
80706
- case 'uploading':
80707
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPLOADING);
80708
- break;
80709
- case 'completed':
80710
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_COMPLETED);
80711
- break;
80712
- case 'deleted':
80713
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_DELETED);
80714
- break;
80715
- case 'failed':
80716
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_FAILED, 1, true);
80717
- break;
80718
- case 'updated':
80719
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_ACTION_UPDATED);
80720
- break;
80721
- }
80722
- }
80723
- function reportDraftQueueState(state, draftCount) {
80724
- if (nimbusLogger) {
80725
- nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
80726
- }
80727
- switch (state) {
80728
- case 'started':
80729
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STARTED);
80730
- break;
80731
- case 'error':
80732
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_ERROR, 1, true);
80733
- break;
80734
- case 'waiting':
80735
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_WAITING);
80736
- break;
80737
- case 'stopped':
80738
- ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_STATE_STOPPED);
80739
- break;
80740
- }
80741
- }
80742
- function reportDraftAwareContentDocumentVersionSynthesizeError(err) {
80743
- let error;
80744
- if (err.body !== undefined) {
80745
- error = err.body;
80746
- }
80747
- else {
80748
- error = normalizeError$1(err);
80749
- }
80750
- const errorCode = DRAFT_AWARE_CREATE_CONTENT_DOCUMENT_AND_VERSION_ERROR;
80751
- const errorType = error.errorType;
80752
- const tags = {
80753
- errorCode,
80754
- };
80755
- if (errorType !== undefined) {
80756
- tags.errorType = errorType;
80757
- }
80758
- // Metric
80759
- ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR, 1, true, tags);
80760
- // Log
80761
- ldsMobileInstrumentation$2.error(error, errorCode);
80762
- }
80763
- function reportDraftAwareContentVersionSynthesizeCalls(mimeType) {
80764
- ldsMobileInstrumentation$2.incrementCounter(CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS, 1, undefined, { mimeType });
80765
- }
80766
- /** Priming */
80767
- function reportPrimingSessionCreated() {
80768
- ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_SESSION_COUNT, 1, undefined, {});
80769
- }
80770
- function reportPrimingError(errorType, recordCount) {
80771
- ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_ERROR_COUNT, recordCount, undefined, {
80772
- errorType,
80773
- });
80774
- }
80775
- function reportPrimingSuccess(recordCount) {
80776
- ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_PRIMED_COUNT, recordCount, undefined);
80777
- }
80778
- function reportPrimingConflict(resolutionType, recordCount) {
80779
- ldsMobileInstrumentation$2.incrementCounter(PRIMING_TOTAL_CONFLICT_COUNT, recordCount, undefined, {
80780
- resolutionType,
80781
- });
80782
- }
80783
- /** Network */
80784
- function reportChunkCandidateUrlLength(urlLength) {
80785
- const buckets = [8000, 10000, 12000, 14000, 16000];
80786
- ldsMobileInstrumentation$2.bucketValue('chunk-candidate-url-length-histogram', urlLength, buckets);
80787
- }
80788
- /** Garbage Collection */
80789
- function reportAggressiveTrimTriggered(trimCount, beforeTrimRecordCount, totalRecordsTrimmed) {
80790
- ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_COUNT, trimCount);
80791
- ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_TOTAL_RECORDS_BEFORE_TRIM, beforeTrimRecordCount);
80792
- ldsMobileInstrumentation$2.trackValue(GARBAGE_COLLECTION_AGGRESSIVE_TRIM_RECORDS_TRIMMED, totalRecordsTrimmed);
80793
- }
80794
- /** One Store Cache Purge */
80795
- const ONESTORE_CACHE_PURGING_RECORDS_PURGED = 'onestore-cache-purging-records-purged';
80796
- const ONESTORE_CACHE_PURGING_RECORDS_ERROR = 'onestore-cache-purging-records-error';
80797
- function reportOneStoreRecordsPurgedFromCache(recordsPurged) {
80798
- ldsMobileInstrumentation$2.trackValue(ONESTORE_CACHE_PURGING_RECORDS_PURGED, recordsPurged);
80799
- }
80800
- function reportOneStoreCachePurgingError(error) {
80801
- const errorMessage = normalizeError$1(error);
80802
- ldsMobileInstrumentation$2.error(errorMessage, ONESTORE_CACHE_PURGING_RECORDS_ERROR);
80803
- }
80804
-
80805
81075
  const QUICK_ACTION_HANDLER = 'QUICK_ACTION_HANDLER';
80806
81076
  class QuickActionExecutionRepresentationHandler extends AbstractQuickActionHandler {
80807
81077
  constructor(getLuvio, draftRecordService, draftQueue, networkAdapter, isDraftId, sideEffectService, objectInfoService, getRecord) {
@@ -85508,7 +85778,7 @@ function isRecordType(type) {
85508
85778
  return Boolean(interfaces.find((iface) => iface.name === 'Record'));
85509
85779
  }
85510
85780
 
85511
- var uiapiSchemaString = "# Auto-generated merged GraphQL schema\n# Generated at: 2025-10-14T15:00:19.876399281Z\n# Source files: ui-services-private/java/resources/graphql-schemas/analytics.graphqls, ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls, ui-services-private/java/resources/graphql-schemas/setup.graphqls, ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/analytics.graphqls\n# ============================================================\ninput Analytics__AnalyticsFilter @team(name: \"TUA-Admin-Home-Search\") {\n Id: Setup__IdOperators\n MasterLabel: StringOperators\n DeveloperName: StringOperators\n NamespacePrefix: StringOperators\n AssetApiName: StringOperators\n DataConnectorType: StringOperators\n CreatedById: Setup__IdOperators\n LastModifiedById: Setup__IdOperators\n SemanticMetricId: Setup__IdOperators\n SemanticModelId: Setup__IdOperators\n LastModifiedDate: DateTimeOperators\n CreatedDate: DateTimeOperators\n AssetUsageType: PicklistOperators\n ActivePromotionRequestId: Setup__IdOperators\n SemanticModel: Analytics__SemanticModelFilter\n and: [Analytics__AnalyticsFilter]\n or: [Analytics__AnalyticsFilter]\n not: Analytics__AnalyticsFilter\n}\n\ninput Analytics__SemanticModelFilter @team(name: \"TUA-Admin-Home-Search\") {\n DeveloperName: StringOperators\n MasterLabel: StringOperators\n}\n\nenum Analytics__SortEnumType @team(name: \"TUA-Admin-Home-Search\") {\n ASC\n DESC\n}\n\ntype Analytics__SemanticSubMetricDefinitionConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticSubMetricDefinitionEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticSubMetricDefinitionEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticSubMetricDefinitionRepresentation\n cursor: String!\n}\n\ntype Analytics__DataspaceRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n MasterLabel: String\n DeveloperName: String\n}\n\ninterface Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__AnalyticsBrowse @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\n# Empty enum is invalid GraphQL\n# enum AnalyticsAssetType @team(name: \"TUA-Admin-Home-Search\") @generic {\n# }\n\ntype Analytics__AnalyticsWorkspaceAssetConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsWorkspaceAssetEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticDefinition implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n SemanticModelId: IDValue\n SemanticModel: Analytics__SemanticModel\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n SubMetrics(first: Int, after: String): Analytics__SemanticSubMetricDefinitionConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__DominoTemplate implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA Intel MarketPlace\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n TemplateStatus: StringValue\n TemplateType: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__AnalyticsEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsRepresentationInterface\n cursor: String!\n}\n\ntype Analytics__AnalyticsWorkspace @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n}\n\ntype Analytics__SemanticSubMetricDefinitionRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n SemanticMetricId: IDValue\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n}\n\ntype Analytics__AnalyticsWorkspaceAssetEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsWorkspaceAsset\n cursor: String!\n}\n\ninput Analytics__OrderByInput @team(name: \"TUA-Admin-Home-Search\") {\n order: Analytics__SortEnumType\n}\n\ntype Analytics__AnalyticsRepresentation implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n RecordOperations: [String]\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\ntype Analytics__SemanticModelRelatedModelConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticModelRelatedModelEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticModelRelatedModelRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n RelatedSemanticModel: Analytics__SemanticModel\n}\n\ntype Analytics__SemanticModelRelatedModelEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticModelRelatedModelRepresentation\n cursor: String!\n}\n\ntype Analytics__SemanticModel implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n RelatedModel(first: Int, after: String): Analytics__SemanticModelRelatedModelConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\n# assetTypes: AnalyticsAssetType - empty enum is invalid GraphQL so replace with String\ntype Analytics__Analytics @team(name: \"TUA-Admin-Home-Search\") {\n browse(where: Analytics__AnalyticsFilter, assetTypes: [String], orderBy: Analytics__AnalyticsOrderBy, first: Int, orgId: ID, after: String): Analytics__AnalyticsBrowse! @fieldCategory\n}\n\ntype Analytics__AnalyticsWorkspaceAsset @team(name: \"TUA-Admin-Home-Search\") {\n AnalyticsWorkspace: Analytics__AnalyticsWorkspace\n AssetUsageType: PicklistValue\n ActivePromotionRequestId: IDValue\n MetadataSourceType: PicklistValue\n}\n\ninput Analytics__AnalyticsOrderBy @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: Analytics__OrderByInput\n Id: Analytics__OrderByInput\n ApiName: Analytics__OrderByInput\n LastModifiedById: Analytics__OrderByInput\n CreatedById: Analytics__OrderByInput\n LastModifiedDate: Analytics__OrderByInput\n CreatedDate: Analytics__OrderByInput\n}\n\ntype Analytics__MktDataConnector implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n DataConnectorType: StringValue\n AssetApiName: String\n DloActiveStatus: Boolean\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls\n# ============================================================\ninput Setup__ListOrderInput {\n apiName: String!\n order: ResultsOrder\n}\n\ntype Setup__ListOrder {\n apiName: String!\n order: ResultsOrder\n label: String\n}\n\ntype Setup__ListViewRowConnection {\n edges: [Setup__ListViewRowEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype Setup__ListView {\n listViewType: String!\n label: String\n displayColumns: [Setup__ListColumn!]!\n filters: [Setup__ListFilter!]\n filterLogic: String\n orderedByInfo: [Setup__ListOrder!]!\n searchable: Boolean!\n rows(first: Int, after: String, upperBound: Int, orderBy: Setup__ListOrderInput, searchTerm: String): Setup__ListViewRowConnection\n}\n\nenum Setup__ListFilterOperator {\n EQUALS\n NOT_EQUAL\n LESS_THAN\n GREATER_THAN\n LESS_OR_EQUAL\n GREATER_OR_EQUAL\n CONTAINS\n NOT_CONTAIN\n STARTS_WITH\n INCLUDES\n EXCLUDES\n WITHIN\n}\n\ntype Setup__ListFilter {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n label: String\n}\n\ntype Setup__ListColumn {\n apiName: String!\n label: String!\n type: DataType!\n displayable: Boolean!\n filterable: Boolean!\n defaultOperator: Setup__ListFilterOperator\n allowedOperators: [Setup__ListFilterOperator!]\n sortable: Boolean\n navigable: Boolean\n}\n\ntype Setup__ListScalarField {\n apiName: String!\n value: String\n dataType: DataType\n displayValue: String\n format: String\n label: String\n lookupRecordId: String\n lookupObjectApiName: String\n}\n\ntype Setup__ListViewRow {\n id: String\n columns(apiNames: [String!]): [Setup__ListScalarField]!\n}\n\ntype Setup__ListViewRowEdge {\n cursor: String!\n node: Setup__ListViewRow\n}\n\ntype Setup__ListViewObjectInfo {\n columns(apiNames: [String!], displayable: Boolean, filterable: Boolean) : [Setup__ListColumn!]!\n}\n\ninput Setup__ListFilterInput {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n}\n\nextend type Setup__Setup {\n ListView(listViewType: String!, label: String, displayColumns: [String!], filters: [Setup__ListFilterInput!], filterLogic: String): Setup__ListView!\n ListViewObjectInfo(listViewType: String!): Setup__ListViewObjectInfo!\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup.graphqls\n# ============================================================\n# scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQueryAggregate {\n recordQueryAggregate(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupAggregateOrderBy, scope: String, groupBy: Setup__SetupGroupBy, upperBound: Int, includeDeleted: Boolean): Setup__SetupAggregateConnection @fieldCategory\n}\n\nunion Setup__SetupPolymorphicParentRelationship @generic = Setup__EntityRepresentation\n\ninput Setup__SetupPolymorphicParentRelationshipRecordOrderBy @generic {\n Setup__SetupOrderBy: Setup__SetupOrderBy @fieldCategory\n}\n\ninput Setup__IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: Setup__JoinInput\n ninq: Setup__JoinInput\n}\n\ninput Setup__JoinInput {\n Record: Setup__SetupFilter @fieldCategory\n ApiName: String\n}\n\ntype Setup__SetupAggregateConnection @generic {\n edges: [Setup__SetupAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ninput Setup__SetupAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ntype Setup__SetupConnection @generic {\n edges: [Setup__SetupEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype Setup__SetupAggregateEdge @generic {\n node: Setup__SetupRecordResult\n cursor: String!\n}\n\ninput Setup__SetupPolymorphicParentRelationshipRecordFilter @generic {\n Setup__SetupFilter: Setup__SetupFilter @fieldCategory\n}\n\ntype Setup__SetupRecordResult @generic {\n aggregate: Setup__SetupRecordAggregate\n}\n\ntype Setup__SetupRecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: Setup__SetupRecordAggregate @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicAggregateParentRelationship @fieldCategory\n}\n\ninput Setup__SetupOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput Setup__SetupPolymorphicParentRelationshipOrderBy @generic {\n Setup__SetupAggregateOrderBy: Setup__SetupAggregateOrderBy @fieldCategory\n}\n\ntype Setup__SetupEdge @generic {\n node: Setup__EntityRepresentation\n cursor: String!\n}\n\n # scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQuery {\n recordQuery(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, scope: String, upperBound: Int, includeDeleted: Boolean, updateMRU: Boolean): Setup__SetupConnection @fieldCategory\n}\n\ntype Setup__EntityRepresentation @generic {\n Id: ID!\n ApiName: String!\n Entity__fields(type: SObject__FieldType): [SObject__Field]! @ignoreRule(rules:[{ rule: \"FieldCamelOrPascalCaseRule\" teamName: \"UI Experience API\" justification: \"SObject__ prefix added to prevent name collisions.\" }])\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: Setup__EntityRepresentation @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, upperBound: Int): Setup__SetupConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput Setup__SetupFilter @generic {\n and: [Setup__SetupFilter]\n or: [Setup__SetupFilter]\n not: Setup__SetupFilter\n parentRelationshipRecordFilter: Setup__SetupFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: Setup__SetupPolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n Setup__IdOperator: Setup__IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ninput Setup__SetupGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: Setup__SetupGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\nunion Setup__SetupPolymorphicAggregateParentRelationship @generic = Setup__SetupRecordAggregate\n\ntype Setup__Setup {\n query: Setup__SetupQuery!\n aggregate: Setup__SetupQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n}\n\ninput Setup__SetupPolymorphicParentRelationshipGroupBy @generic {\n Setup__SetupGroupBy: Setup__SetupGroupBy @fieldCategory\n}\n\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n# ============================================================\nscalar BigDecimal\nscalar Byte\nscalar Char\nscalar BigInteger\nscalar Short\nscalar String\nscalar Currency\nscalar Longitude\nscalar Float\nscalar PhoneNumber\nscalar Email\nscalar TextArea\nscalar Latitude\nscalar RichTextArea\nscalar EncryptedString\nscalar Long\nscalar JSON\nscalar Time\nscalar Percent\nscalar LongTextArea\nscalar DateTime\nscalar ID\nscalar Boolean\nscalar MultiPicklist\nscalar Base64\nscalar Url\nscalar Picklist\nscalar Double\nscalar Int\nscalar IdOrRef\nscalar Date\n\ntype PercentAggregate implements FieldValue {\n value: Percent\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: PercentValue\n min: PercentValue\n sum: PercentValue\n}\n\ntype StringAggregate implements FieldValue {\n value: String\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: StringValue\n min: StringValue\n}\n\ntype Query {\n uiapi: UIAPI!\n setup: Setup__Setup! @fieldCategory\n analytics: Analytics__Analytics! @fieldCategory\n}\n\ninput EmailOperators {\n eq: Email\n ne: Email\n like: Email\n lt: Email\n gt: Email\n lte: Email\n gte: Email\n in: [Email]\n nin: [Email]\n}\n\ninput DoubleOperators {\n eq: Double\n ne: Double\n lt: Double\n gt: Double\n lte: Double\n gte: Double\n in: [Double]\n nin: [Double]\n}\n\ntype DateOnlyAggregation {\n value: Date\n format: String\n}\n\ntype DateAggregate implements FieldValue {\n value: Date\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n grouping: IntValue\n max: DateValue\n min: DateValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\nenum GroupByFunction {\n DAY_IN_WEEK\n DAY_IN_MONTH\n DAY_IN_YEAR\n WEEK_IN_MONTH\n WEEK_IN_YEAR\n CALENDAR_MONTH\n CALENDAR_QUARTER\n CALENDAR_YEAR\n FISCAL_MONTH\n FISCAL_QUARTER\n FISCAL_YEAR\n DAY_ONLY\n HOUR_IN_DAY\n}\n\ntype RecordTypeInfo {\n available: Boolean!\n defaultRecordTypeMapping: Boolean!\n master: Boolean!\n name: String\n recordTypeId: ID\n}\n\ninput UIAPIMutationsInput {\n \"Determines whether or not all the operations should be rolled back in the event one or more operations fail.\"\n allOrNone: Boolean = true\n}\n\ntype ReferenceToInfo {\n ApiName: String!\n nameFields: [String]!\n objectInfo: ObjectInfo\n}\n\ninterface FieldValue {\n displayValue: String\n}\n\ntype LongitudeValue implements FieldValue {\n value: Longitude\n displayValue: String\n}\n\ntype IntValue implements FieldValue {\n value: Int\n displayValue: String\n format: String\n}\n\ntype UrlValue implements FieldValue {\n value: Url\n displayValue: String\n}\n\ntype LongAggregate implements FieldValue {\n value: Long\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: LongValue\n min: LongValue\n sum: LongValue\n}\n\ninput TimeOperators {\n eq: Time\n ne: Time\n lt: Time\n gt: Time\n lte: Time\n gte: Time\n in: [Time]\n nin: [Time]\n}\n\ntype PicklistValue implements FieldValue {\n value: Picklist\n displayValue: String\n label: String\n}\n\ntype RelatedListInfo @team(name: \"Lists Platform\") {\n childApiName: String!\n relatedListName: String!\n label: String!\n displayColumns: [ListColumn!]!\n orderedByInfo: [ListOrder!]!\n parentApiName: String!\n fieldApiName: String!\n}\n\ninput StringOperators {\n eq: String\n ne: String\n like: String\n lt: String\n gt: String\n lte: String\n gte: String\n in: [String]\n nin: [String]\n}\n\ntype UIAPI {\n query: RecordQuery!\n aggregate: RecordQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n relatedListByName(parentApiName: String!, relatedListName: String!): RelatedListInfo\n}\n\n\"Input for ObjectInfo and PickValues\"\ninput ObjectInfoInput {\n apiName: String!\n recordTypeIDs: [ID!]\n fieldNames: [String!]\n}\n\ninput MultiPicklistOperators {\n eq: MultiPicklist\n ne: MultiPicklist\n includes: [MultiPicklist]\n excludes: [MultiPicklist]\n}\n\ntype DateTimeAggregate implements FieldValue {\n value: DateTime\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n dayOnly: DateOnlyAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n hourInDay: DateFunctionAggregation\n max: DateTimeValue\n min: DateTimeValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\ntype EmailAggregate implements FieldValue {\n value: Email\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: EmailValue\n min: EmailValue\n}\n\ninput GroupByDateFunction {\n function: GroupByFunction\n}\n\ntype RichTextAreaValue implements FieldValue {\n value: RichTextArea\n displayValue: String\n label: String\n}\n\ninput DatePrimitiveOperators {\n eq: Date\n ne: Date\n lt: Date\n gt: Date\n lte: Date\n gte: Date\n in: [Date]\n nin: [Date]\n}\n\ntype TimeAggregate implements FieldValue {\n value: Time\n displayValue: String\n format: String\n hourInDay: DateFunctionAggregation\n}\n\ninput DistanceInput {\n latitude: Latitude!\n longitude: Longitude!\n}\n\nunion PolymorphicParentRelationship @generic = RecordRepresentation\n\nenum AggregateOrderByNumberFunction {\n AVG\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n SUM\n}\n\ntype LongTextAreaValue implements FieldValue {\n value: LongTextArea\n displayValue: String\n label: String\n}\n\ninput OrderByClause {\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype SObject__Field {\n name: String!\n value: String\n}\n\ntype RecordAggregateConnection @generic {\n edges: [RecordAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype LongitudeAggregate implements FieldValue {\n value: Longitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LongitudeValue\n min: LongitudeValue\n sum: DoubleValue\n}\n\ntype DateValue implements FieldValue {\n value: Date\n displayValue: String\n format: String\n}\n\ninput URLOperators {\n eq: Url\n ne: Url\n like: Url\n lt: Url\n gt: Url\n lte: Url\n gte: Url\n in: [Url]\n nin: [Url]\n}\n\ninput LongOperators {\n eq: Long\n ne: Long\n lt: Long\n gt: Long\n lte: Long\n gte: Long\n in: [Long]\n nin: [Long]\n}\n\nenum DataType {\n STRING\n TEXTAREA\n PHONE\n EMAIL\n URL\n ENCRYPTEDSTRING\n BOOLEAN\n CURRENCY\n INT\n LONG\n DOUBLE\n PERCENT\n DATETIME\n TIME\n DATE\n REFERENCE\n PICKLIST\n MULTIPICKLIST\n ADDRESS\n LOCATION\n BASE64\n COMPLEXVALUE\n COMBOBOX\n JSON\n JUNCTIONIDLIST\n ANYTYPE\n}\n\ntype DoubleAggregate implements FieldValue {\n value: Double\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: DoubleValue\n min: DoubleValue\n sum: DoubleValue\n}\n\ninput DateOperators {\n eq: DateInput\n ne: DateInput\n lt: DateInput\n gt: DateInput\n lte: DateInput\n gte: DateInput\n in: [DateInput]\n nin: [DateInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n}\n\ninput GeolocationInput {\n latitude: Latitude!\n longitude: Longitude!\n radius: Float!\n unit: Unit!\n}\n\ninput JoinInput {\n Record: RecordFilter @fieldCategory\n ApiName: String\n}\n\ntype RecordUpdatePayload @generic {\n Record: RecordRepresentation\n success: Boolean @deprecated\n}\n\ninput PercentOperators {\n eq: Percent\n ne: Percent\n lt: Percent\n gt: Percent\n lte: Percent\n gte: Percent\n in: [Percent]\n nin: [Percent]\n}\n\ntype DoubleValue implements FieldValue {\n value: Double\n displayValue: String\n format: String\n}\n\ntype IDAggregate implements FieldValue {\n value: ID\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: IDValue\n min: IDValue\n}\n\ninput RecordCreateInput @generic {\n record: RecordCreateRepresentation! @fieldCategory\n}\n\ninput AggregateOrderByStringClause {\n function: AggregateOrderByStringFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\n\"The return value for the mutation to delete a Record\"\ntype RecordDeletePayload {\n \"The ID of the deleted Record\"\n Id: ID\n}\n\nenum DateLiteral {\n YESTERDAY\n TODAY\n TOMORROW\n LAST_WEEK\n THIS_WEEK\n NEXT_WEEK\n LAST_MONTH\n THIS_MONTH\n NEXT_MONTH\n LAST_90_DAYS\n NEXT_90_DAYS\n LAST_QUARTER\n THIS_QUARTER\n NEXT_QUARTER\n LAST_FISCAL_QUARTER\n THIS_FISCAL_QUARTER\n NEXT_FISCAL_QUARTER\n LAST_YEAR\n THIS_YEAR\n NEXT_YEAR\n LAST_FISCAL_YEAR\n THIS_FISCAL_YEAR\n NEXT_FISCAL_YEAR\n}\n\ntype RecordRepresentation implements Record @generic {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n SetupUserSpecialField: BooleanValue @fieldCategory\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: RecordRepresentation @fieldCategory\n polymorphicParentRelationship: PolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, upperBound: Int): RecordConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput OrderByGeolocationClause {\n distance: DistanceInput\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype TextAreaAggregate implements FieldValue {\n value: TextArea\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: TextAreaValue\n min: TextAreaValue\n}\n\nenum GroupByType {\n GROUP_BY\n ROLLUP\n CUBE\n}\n\nenum ResultsOrder {\n ASC\n DESC\n}\n\ntype PicklistAggregate implements FieldValue {\n value: Picklist\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: PicklistValue\n min: PicklistValue\n}\n\ninput RecordUpdateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\ntype DateTimeValue implements FieldValue {\n value: DateTime\n displayValue: String\n format: String\n}\n\n\"Input to the mutation to delete a Record\"\ninput RecordDeleteInput {\n \"The ID of the Record to delete\"\n Id: IdOrRef!\n}\n\ntype ListOrder @team(name: \"Lists Platform\") {\n fieldApiName: String!\n sortDirection: ResultOrder\n}\n\nenum AggregateOrderByStringFunction {\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n}\n\ntype LongValue implements FieldValue {\n value: Long\n displayValue: String\n format: String\n}\n\ntype DependentField {\n controllingField: String!\n dependentFields: [String]!\n}\n\ntype PercentValue implements FieldValue {\n value: Percent\n displayValue: String\n format: String\n}\n\ninput NoFunctionAggregateOrderByClause {\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype RecordConnection @generic {\n edges: [RecordEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype FilteredLookupInfo {\n controllingFields: [String]!\n dependent: Boolean!\n optionalFilter: Boolean!\n}\n\ninput PhoneNumberOperators {\n eq: PhoneNumber\n ne: PhoneNumber\n like: PhoneNumber\n lt: PhoneNumber\n gt: PhoneNumber\n lte: PhoneNumber\n gte: PhoneNumber\n in: [PhoneNumber]\n nin: [PhoneNumber]\n}\n\ntype ObjectInfo {\n ApiName: String!\n childRelationships: [ChildRelationship]!\n createable: Boolean!\n custom: Boolean!\n defaultRecordTypeId: ID\n deletable: Boolean!\n dependentFields: [DependentField]!\n feedEnabled: Boolean!\n fields: [Field]!\n keyPrefix: String\n label: String\n labelPlural: String\n layoutable: Boolean!\n mruEnabled: Boolean!\n nameFields: [String]!\n queryable: Boolean!\n recordTypeInfos: [RecordTypeInfo]!\n searchable: Boolean!\n themeInfo: ThemeInfo\n updateable: Boolean!\n locale: String\n}\n\ninput LongitudeOperators {\n eq: Longitude\n ne: Longitude\n lt: Longitude\n gt: Longitude\n lte: Longitude\n gte: Longitude\n in: [Longitude]\n nin: [Longitude]\n}\n\ninterface Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype StandardField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n picklistValuesByRecordTypeIDs: [PicklistValueByRecordTypeIDs]\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistValueByRecordTypeIDs {\n recordTypeID: String!\n controllerValues: [ControllerValues!]\n picklistValues: [PicklistValues!]\n defaultValue: PicklistValues\n}\n\ntype ControllerValues {\n value: String\n index: Int\n}\n\ntype PicklistValues {\n value: String\n label: String\n validFor: [Int]\n attributes: PicklistAttributes\n}\n\ntype PicklistAttributes {\n picklistAtrributesValueType: String\n connectDisplayName: String\n internalName: String\n}\n\ninput DateTimeFunctionInput {\n value: DatePrimitiveOperators\n convertTimezoneValue: DatePrimitiveOperators\n}\n\ntype Base64Value implements FieldValue {\n value: Base64\n displayValue: String\n}\n\ntype CompoundField @generic {\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n}\n\ninput RecordUpdateInput @generic {\n Id: IdOrRef!\n record: RecordUpdateRepresentation! @fieldCategory\n}\n\ninput DateTimeInput {\n value: DateTime\n literal: DateLiteral\n range: DateRange\n}\n\ntype ChildRelationship {\n childObjectApiName: String!\n fieldName: String\n junctionIdListNames: [String]!\n junctionReferenceTo: [String]!\n relationshipName: String\n objectInfo: ObjectInfo\n}\n\ntype RecordResult @generic {\n aggregate: RecordAggregate\n}\n\ntype PageInfo {\n hasNextPage: Boolean!\n hasPreviousPage: Boolean!\n startCursor: String\n endCursor: String\n}\n\ntype CurrencyValue implements FieldValue {\n value: Currency\n displayValue: String\n format: String\n convertCurrency: Currency\n}\n\ntype DateFunctionAggregation {\n value: Long\n format: String\n}\n\ninput PolymorphicParentRelationshipRecordOrderBy @generic {\n RecordOrderBy: RecordOrderBy @fieldCategory\n}\n\ntype RecordCreatePayload @generic {\n Record: RecordRepresentation\n}\n\ninput PolymorphicParentRelationshipGroupBy @generic {\n RecordGroupBy: RecordGroupBy @fieldCategory\n}\n\ntype BooleanValue implements FieldValue {\n value: Boolean\n displayValue: String\n}\n\ntype StringValue implements FieldValue {\n value: String\n displayValue: String\n label: String\n}\n\ninput IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: JoinInput\n ninq: JoinInput\n}\n\ntype PhoneNumberAggregate implements FieldValue {\n value: PhoneNumber\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: PhoneNumberValue\n min: PhoneNumberValue\n}\n\ntype CurrencyAggregate implements FieldValue {\n value: Currency\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: CurrencyValue\n min: CurrencyValue\n sum: CurrencyValue\n}\n\ninput BooleanOperators {\n eq: Boolean\n ne: Boolean\n}\n\ntype MultiPicklistValue implements FieldValue {\n value: MultiPicklist\n displayValue: String\n label: String\n}\n\ntype ListColumn @team(name: \"Lists Platform\") {\n fieldApiName: String!\n label: String!\n lookupId: String\n sortable: Boolean\n}\n\ntype LatitudeAggregate implements FieldValue {\n value: Latitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LatitudeValue\n min: LatitudeValue\n sum: DoubleValue\n}\n\ninput CurrencyOperators {\n eq: Currency\n ne: Currency\n lt: Currency\n gt: Currency\n lte: Currency\n gte: Currency\n in: [Currency]\n nin: [Currency]\n}\n\ntype LatitudeValue implements FieldValue {\n value: Latitude\n displayValue: String\n}\n\ninput GroupByClause {\n group: Boolean\n}\n\ntype RecordEdge @generic {\n node: RecordRepresentation\n cursor: String!\n}\n\nenum NullOrder {\n FIRST\n LAST\n}\n\ntype PhoneNumberValue implements FieldValue {\n value: PhoneNumber\n displayValue: String\n}\n\n# RecordScope is an empty enum\n# enum RecordScope @generic {\n# }\n\ninput TextAreaOperators {\n eq: TextArea\n ne: TextArea\n like: TextArea\n lt: TextArea\n gt: TextArea\n lte: TextArea\n gte: TextArea\n in: [TextArea]\n nin: [TextArea]\n}\n\ntype TextAreaValue implements FieldValue {\n value: TextArea\n displayValue: String\n label: String\n}\n\ntype RecordAggregateEdge @generic {\n node: RecordResult\n cursor: String!\n}\n\ntype ThemeInfo {\n color: String\n iconUrl: String\n}\n\ntype UrlAggregate implements FieldValue {\n value: Url\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: UrlValue\n min: UrlValue\n}\n\ntype IDValue implements FieldValue {\n value: ID\n displayValue: String\n}\n\nenum Unit {\n MI\n KM\n}\n\ninput PolymorphicParentRelationshipOrderBy @generic {\n RecordAggregateOrderBy: RecordAggregateOrderBy @fieldCategory\n}\n\nenum NullsOrder {\n FIRST\n LAST\n}\n\nenum ResultOrder {\n ASC\n DESC\n}\n\ninput RecordOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput PicklistOperators {\n eq: Picklist\n ne: Picklist\n in: [Picklist]\n nin: [Picklist]\n like: Picklist\n lt: Picklist\n gt: Picklist\n lte: Picklist\n gte: Picklist\n}\n\ninput RecordFilter @generic {\n and: [RecordFilter]\n or: [RecordFilter]\n not: RecordFilter\n parentRelationshipRecordFilter: RecordFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: PolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n IdOperator: IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ntype TimeValue implements FieldValue {\n value: Time\n displayValue: String\n format: String\n}\n\ninput GeolocationOperators {\n lt: GeolocationInput\n gt: GeolocationInput\n}\n\ninput LatitudeOperators {\n eq: Latitude\n ne: Latitude\n lt: Latitude\n gt: Latitude\n lte: Latitude\n gte: Latitude\n in: [Latitude]\n nin: [Latitude]\n}\n\ntype IntAggregate implements FieldValue {\n value: Int\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: IntValue\n min: IntValue\n sum: LongValue\n}\n\ntype RecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: RecordAggregate @fieldCategory\n polymorphicParentRelationship: PolymorphicAggregateParentRelationship @fieldCategory\n}\n\nenum SObject__FieldType {\n ALL\n STANDARD\n CUSTOM\n}\n\ntype JSONValue implements FieldValue {\n value: JSON\n displayValue: String\n}\n\ntype EmailValue implements FieldValue {\n value: Email\n displayValue: String\n}\n\ninput DateFunctionInput {\n value: LongOperators\n convertTimezoneValue: LongOperators\n}\n\n# Mutations are not supported by Luvio.\n# type Mutation {\n# uiapi(input: UIAPIMutationsInput): UIAPIMutations!\n# }\n\nunion PolymorphicAggregateParentRelationship @generic = RecordAggregate\n\ninput LongTextAreaOperators {\n eq: LongTextArea\n ne: LongTextArea\n like: LongTextArea\n lt: LongTextArea\n gt: LongTextArea\n lte: LongTextArea\n gte: LongTextArea\n in: [LongTextArea]\n nin: [LongTextArea]\n}\n\ninput DateTimeOperators {\n eq: DateTimeInput\n ne: DateTimeInput\n lt: DateTimeInput\n gt: DateTimeInput\n lte: DateTimeInput\n gte: DateTimeInput\n in: [DateTimeInput]\n nin: [DateTimeInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n DAY_ONLY: DateTimeFunctionInput\n HOUR_IN_DAY: DateFunctionInput\n}\n\ntype BooleanAggregate implements FieldValue {\n value: Boolean\n displayValue: String\n grouping: IntValue\n}\n\ntype RecordQueryAggregate {\n # scope should be RecordScope, but it is an empty enum\n recordQueryAggregate(first: Int, after: String, where: RecordFilter, orderBy: RecordAggregateOrderBy, scope: String, groupBy: RecordGroupBy, upperBound: Int): RecordAggregateConnection @fieldCategory\n}\n\ninput RecordCreateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\nenum FieldExtraTypeInfo {\n IMAGE_URL\n EXTERNAL_LOOKUP\n INDIRECT_LOOKUP\n PERSONNAME\n SWITCHABLE_PERSONNAME\n PLAINTEXTAREA\n RICHTEXTAREA\n}\n\ntype RateLimit {\n cost: Long\n limit: Long\n remaining: Long\n resetAt: DateTime\n}\n\ninput DateRange {\n last_n_days: Int\n next_n_days: Int\n last_n_weeks: Int\n next_n_weeks: Int\n last_n_months: Int\n next_n_months: Int\n last_n_quarters: Int\n next_n_quarters: Int\n last_n_fiscal_quarters: Int\n next_n_fiscal_quarters: Int\n last_n_years: Int\n next_n_years: Int\n last_n_fiscal_years: Int\n next_n_fiscal_years: Int\n n_days_ago: Int\n n_weeks_ago: Int\n n_months_ago: Int\n n_quarters_ago: Int\n n_years_ago: Int\n n_fiscal_quarters_ago: Int\n n_fiscal_years_ago: Int\n}\n\ntype UIAPIMutations {\n recordCreate(input: RecordCreateInput!): RecordCreatePayload @fieldCategory\n recordDelete(input: RecordDeleteInput!): RecordDeletePayload @fieldCategory\n recordUpdate(input: RecordUpdateInput!): RecordUpdatePayload @fieldCategory\n}\n\ninput IntegerOperators {\n eq: Int\n ne: Int\n lt: Int\n gt: Int\n lte: Int\n gte: Int\n in: [Int]\n nin: [Int]\n}\n\ntype EncryptedStringValue implements FieldValue {\n value: EncryptedString\n displayValue: String\n}\n\ninterface Record {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n}\n\ninput PolymorphicParentRelationshipRecordFilter @generic {\n RecordFilter: RecordFilter @fieldCategory\n}\n\n\"\"\"\nA type that can contain any of the following types: Boolean, Date, DateTime, Double, String.\nFormat and Label are not supported by AnyType and displayValue is an unformatted string representation of the value.\n\"\"\"\nunion AnyType = BooleanValue | DateValue | DateTimeValue | DoubleValue | StringValue\n\ninput AggregateOrderByNumberClause {\n function: AggregateOrderByNumberFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ninput DateInput {\n value: Date\n literal: DateLiteral\n range: DateRange\n}\n\ninput RecordGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: RecordGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: PolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\ntype RecordQuery {\n # scope should be RecordScope, but it is an empty enum\n recordQuery(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, scope: String, upperBound: Int, updateMRU: Boolean): RecordConnection @fieldCategory\n}\n\ninput RecordAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ninput IgnoreRule {\n rule: String!\n teamName: String!\n justification: String!\n}\n\ndirective @generic on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT\ndirective @fieldCategory on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | ENUM_VALUE\ndirective @category(name: String!) on FIELD\n\"Specifies the team name for a type\"\ndirective @team(name: String!) on OBJECT | INPUT_OBJECT | INTERFACE | ENUM | UNION | SCALAR\n\"Specifies the validation rules to ignore for this element.\"\ndirective @ignoreRule(rules: [IgnoreRule!]!) on OBJECT\n | INPUT_OBJECT\n | INTERFACE\n | ENUM\n | UNION\n | SCALAR\n | FIELD_DEFINITION\n | INPUT_FIELD_DEFINITION\n | ARGUMENT_DEFINITION\n | ENUM_VALUE\ndirective @optional on FIELD\n\ntype __Type {\n kind: __TypeKind!\n name: String\n description: String\n fields(includeDeprecated: Boolean = false): [__Field!]\n interfaces: [__Type!]\n possibleTypes: [__Type!]\n enumValues(includeDeprecated: Boolean = false): [__EnumValue!]\n inputFields: [__InputValue!]\n ofType: __Type\n}";
85781
+ var uiapiSchemaString = "# Auto-generated merged GraphQL schema\n# Generated at: 2025-10-14T15:00:19.876399281Z\n# Source files: ui-services-private/java/resources/graphql-schemas/analytics.graphqls, ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls, ui-services-private/java/resources/graphql-schemas/setup.graphqls, ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/analytics.graphqls\n# ============================================================\ninput Analytics__AnalyticsFilter @team(name: \"TUA-Admin-Home-Search\") {\n Id: Setup__IdOperators\n MasterLabel: StringOperators\n DeveloperName: StringOperators\n NamespacePrefix: StringOperators\n AssetApiName: StringOperators\n DataConnectorType: StringOperators\n CreatedById: Setup__IdOperators\n LastModifiedById: Setup__IdOperators\n SemanticMetricId: Setup__IdOperators\n SemanticModelId: Setup__IdOperators\n LastModifiedDate: DateTimeOperators\n CreatedDate: DateTimeOperators\n AssetUsageType: PicklistOperators\n ActivePromotionRequestId: Setup__IdOperators\n SemanticModel: Analytics__SemanticModelFilter\n and: [Analytics__AnalyticsFilter]\n or: [Analytics__AnalyticsFilter]\n not: Analytics__AnalyticsFilter\n}\n\ninput Analytics__SemanticModelFilter @team(name: \"TUA-Admin-Home-Search\") {\n DeveloperName: StringOperators\n MasterLabel: StringOperators\n}\n\nenum Analytics__SortEnumType @team(name: \"TUA-Admin-Home-Search\") {\n ASC\n DESC\n}\n\ntype Analytics__SemanticSubMetricDefinitionConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticSubMetricDefinitionEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticSubMetricDefinitionEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticSubMetricDefinitionRepresentation\n cursor: String!\n}\n\ntype Analytics__DataspaceRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n MasterLabel: String\n DeveloperName: String\n}\n\ninterface Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__AnalyticsBrowse @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\n# Empty enum is invalid GraphQL\n# enum AnalyticsAssetType @team(name: \"TUA-Admin-Home-Search\") @generic {\n# }\n\ntype Analytics__AnalyticsWorkspaceAssetConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__AnalyticsWorkspaceAssetEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticDefinition implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n SemanticModelId: IDValue\n SemanticModel: Analytics__SemanticModel\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n SubMetrics(first: Int, after: String): Analytics__SemanticSubMetricDefinitionConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__DominoTemplate implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA Intel MarketPlace\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n TemplateStatus: StringValue\n TemplateType: StringValue\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__AnalyticsEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsRepresentationInterface\n cursor: String!\n}\n\ntype Analytics__AnalyticsWorkspace @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n}\n\ntype Analytics__SemanticSubMetricDefinitionRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n SemanticMetricId: IDValue\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n}\n\ntype Analytics__AnalyticsWorkspaceAssetEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__AnalyticsWorkspaceAsset\n cursor: String!\n}\n\ninput Analytics__OrderByInput @team(name: \"TUA-Admin-Home-Search\") {\n order: Analytics__SortEnumType\n}\n\ntype Analytics__AnalyticsRepresentation implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n RecordOperations: [String]\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\ntype Analytics__SemanticModelRelatedModelConnection @team(name: \"TUA-Admin-Home-Search\") {\n edges: [Analytics__SemanticModelRelatedModelEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticModelRelatedModelRepresentation @team(name: \"TUA-Admin-Home-Search\") {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n RelatedSemanticModel: Analytics__SemanticModel\n}\n\ntype Analytics__SemanticModelRelatedModelEdge @team(name: \"TUA-Admin-Home-Search\") {\n node: Analytics__SemanticModelRelatedModelRepresentation\n cursor: String!\n}\n\ntype Analytics__SemanticModel implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n RelatedModel(first: Int, after: String): Analytics__SemanticModelRelatedModelConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\n# assetTypes: AnalyticsAssetType - empty enum is invalid GraphQL so replace with String\ntype Analytics__Analytics @team(name: \"TUA-Admin-Home-Search\") {\n browse(where: Analytics__AnalyticsFilter, assetTypes: [String], orderBy: Analytics__AnalyticsOrderBy, first: Int, orgId: ID, after: String): Analytics__AnalyticsBrowse! @fieldCategory\n}\n\ntype Analytics__AnalyticsWorkspaceAsset @team(name: \"TUA-Admin-Home-Search\") {\n AnalyticsWorkspace: Analytics__AnalyticsWorkspace\n AssetUsageType: PicklistValue\n ActivePromotionRequestId: IDValue\n MetadataSourceType: PicklistValue\n}\n\ninput Analytics__AnalyticsOrderBy @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: Analytics__OrderByInput\n Id: Analytics__OrderByInput\n ApiName: Analytics__OrderByInput\n LastModifiedById: Analytics__OrderByInput\n CreatedById: Analytics__OrderByInput\n LastModifiedDate: Analytics__OrderByInput\n CreatedDate: Analytics__OrderByInput\n}\n\ntype Analytics__MktDataConnector implements Analytics__AnalyticsRepresentationInterface @team(name: \"TUA-Admin-Home-Search\") {\n MasterLabel: StringValue\n DeveloperName: StringValue\n Description: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces(first: Int, after: String): Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n DataConnectorType: StringValue\n AssetApiName: String\n DloActiveStatus: Boolean\n ReusedAssetStatus: String\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup-listview.graphqls\n# ============================================================\ninput Setup__ListOrderInput {\n apiName: String!\n order: ResultsOrder\n}\n\ntype Setup__ListOrder {\n apiName: String!\n order: ResultsOrder\n label: String\n}\n\ntype Setup__ListViewRowConnection {\n edges: [Setup__ListViewRowEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype Setup__ListView {\n listViewType: String!\n label: String\n displayColumns: [Setup__ListColumn!]!\n filters: [Setup__ListFilter!]\n filterLogic: String\n orderedByInfo: [Setup__ListOrder!]!\n searchable: Boolean!\n rows(first: Int, after: String, upperBound: Int, orderBy: Setup__ListOrderInput, searchTerm: String): Setup__ListViewRowConnection\n}\n\nenum Setup__ListFilterOperator {\n EQUALS\n NOT_EQUAL\n LESS_THAN\n GREATER_THAN\n LESS_OR_EQUAL\n GREATER_OR_EQUAL\n CONTAINS\n NOT_CONTAIN\n STARTS_WITH\n INCLUDES\n EXCLUDES\n WITHIN\n}\n\ntype Setup__ListFilter {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n label: String\n}\n\ntype Setup__ListColumn {\n apiName: String!\n label: String!\n type: DataType!\n displayable: Boolean!\n filterable: Boolean!\n defaultOperator: Setup__ListFilterOperator\n allowedOperators: [Setup__ListFilterOperator!]\n sortable: Boolean\n navigable: Boolean\n}\n\ntype Setup__ListScalarField {\n apiName: String!\n value: String\n dataType: DataType\n displayValue: String\n format: String\n label: String\n lookupRecordId: String\n lookupObjectApiName: String\n}\n\ntype Setup__ListViewRow {\n id: String\n columns(apiNames: [String!]): [Setup__ListScalarField]!\n}\n\ntype Setup__ListViewRowEdge {\n cursor: String!\n node: Setup__ListViewRow\n}\n\ntype Setup__ListViewObjectInfo {\n columns(apiNames: [String!], displayable: Boolean, filterable: Boolean) : [Setup__ListColumn!]!\n}\n\ninput Setup__ListFilterInput {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n}\n\nextend type Setup__Setup {\n ListView(listViewType: String!, label: String, displayColumns: [String!], filters: [Setup__ListFilterInput!], filterLogic: String): Setup__ListView!\n ListViewObjectInfo(listViewType: String!): Setup__ListViewObjectInfo!\n}\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/setup.graphqls\n# ============================================================\n# scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQueryAggregate {\n recordQueryAggregate(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupAggregateOrderBy, scope: String, groupBy: Setup__SetupGroupBy, upperBound: Int, includeDeleted: Boolean): Setup__SetupAggregateConnection @fieldCategory\n}\n\nunion Setup__SetupPolymorphicParentRelationship @generic = Setup__EntityRepresentation\n\ninput Setup__SetupPolymorphicParentRelationshipRecordOrderBy @generic {\n Setup__SetupOrderBy: Setup__SetupOrderBy @fieldCategory\n}\n\ninput Setup__IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: Setup__JoinInput\n ninq: Setup__JoinInput\n}\n\ninput Setup__JoinInput {\n Record: Setup__SetupFilter @fieldCategory\n ApiName: String\n}\n\ntype Setup__SetupAggregateConnection @generic {\n edges: [Setup__SetupAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ninput Setup__SetupAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ntype Setup__SetupConnection @generic {\n edges: [Setup__SetupEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype Setup__SetupAggregateEdge @generic {\n node: Setup__SetupRecordResult\n cursor: String!\n}\n\ninput Setup__SetupPolymorphicParentRelationshipRecordFilter @generic {\n Setup__SetupFilter: Setup__SetupFilter @fieldCategory\n}\n\ntype Setup__SetupRecordResult @generic {\n aggregate: Setup__SetupRecordAggregate\n}\n\ntype Setup__SetupRecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: Setup__SetupRecordAggregate @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicAggregateParentRelationship @fieldCategory\n}\n\ninput Setup__SetupOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput Setup__SetupPolymorphicParentRelationshipOrderBy @generic {\n Setup__SetupAggregateOrderBy: Setup__SetupAggregateOrderBy @fieldCategory\n}\n\ntype Setup__SetupEdge @generic {\n node: Setup__EntityRepresentation\n cursor: String!\n}\n\n # scope should be RecordScope, but it is an empty enum\ntype Setup__SetupQuery {\n recordQuery(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, scope: String, upperBound: Int, includeDeleted: Boolean, updateMRU: Boolean): Setup__SetupConnection @fieldCategory\n}\n\ntype Setup__EntityRepresentation @generic {\n Id: ID!\n ApiName: String!\n Entity__fields(type: SObject__FieldType): [SObject__Field]! @ignoreRule(rules:[{ rule: \"FieldCamelOrPascalCaseRule\" teamName: \"UI Experience API\" justification: \"SObject__ prefix added to prevent name collisions.\" }])\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: Setup__EntityRepresentation @fieldCategory\n polymorphicParentRelationship: Setup__SetupPolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: Setup__SetupFilter, orderBy: Setup__SetupOrderBy, upperBound: Int): Setup__SetupConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput Setup__SetupFilter @generic {\n and: [Setup__SetupFilter]\n or: [Setup__SetupFilter]\n not: Setup__SetupFilter\n parentRelationshipRecordFilter: Setup__SetupFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: Setup__SetupPolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n Setup__IdOperator: Setup__IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ninput Setup__SetupGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: Setup__SetupGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\nunion Setup__SetupPolymorphicAggregateParentRelationship @generic = Setup__SetupRecordAggregate\n\ntype Setup__Setup {\n query: Setup__SetupQuery!\n aggregate: Setup__SetupQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n}\n\ninput Setup__SetupPolymorphicParentRelationshipGroupBy @generic {\n Setup__SetupGroupBy: Setup__SetupGroupBy @fieldCategory\n}\n\n\n# ============================================================\n# Source: ui-services-private/java/resources/graphql-schemas/uiapi.graphqls\n# ============================================================\nscalar BigDecimal\nscalar Byte\nscalar Char\nscalar BigInteger\nscalar Short\nscalar String\nscalar Currency\nscalar Longitude\nscalar Float\nscalar PhoneNumber\nscalar Email\nscalar TextArea\nscalar Latitude\nscalar RichTextArea\nscalar EncryptedString\nscalar Long\nscalar JSON\nscalar Time\nscalar Percent\nscalar LongTextArea\nscalar DateTime\nscalar ID\nscalar Boolean\nscalar MultiPicklist\nscalar Base64\nscalar Url\nscalar Picklist\nscalar Double\nscalar Int\nscalar IdOrRef\nscalar Date\n\ntype PercentAggregate implements FieldValue {\n value: Percent\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: PercentValue\n min: PercentValue\n sum: PercentValue\n}\n\ntype StringAggregate implements FieldValue {\n value: String\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: StringValue\n min: StringValue\n}\n\ntype Query {\n uiapi: UIAPI!\n setup: Setup__Setup! @fieldCategory\n analytics: Analytics__Analytics! @fieldCategory\n}\n\ninput EmailOperators {\n eq: Email\n ne: Email\n like: Email\n lt: Email\n gt: Email\n lte: Email\n gte: Email\n in: [Email]\n nin: [Email]\n}\n\ninput DoubleOperators {\n eq: Double\n ne: Double\n lt: Double\n gt: Double\n lte: Double\n gte: Double\n in: [Double]\n nin: [Double]\n}\n\ntype DateOnlyAggregation {\n value: Date\n format: String\n}\n\ntype DateAggregate implements FieldValue {\n value: Date\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n grouping: IntValue\n max: DateValue\n min: DateValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\nenum GroupByFunction {\n DAY_IN_WEEK\n DAY_IN_MONTH\n DAY_IN_YEAR\n WEEK_IN_MONTH\n WEEK_IN_YEAR\n CALENDAR_MONTH\n CALENDAR_QUARTER\n CALENDAR_YEAR\n FISCAL_MONTH\n FISCAL_QUARTER\n FISCAL_YEAR\n DAY_ONLY\n HOUR_IN_DAY\n}\n\ntype RecordTypeInfo {\n available: Boolean!\n defaultRecordTypeMapping: Boolean!\n master: Boolean!\n name: String\n recordTypeId: ID\n}\n\ninput UIAPIMutationsInput {\n \"Determines whether or not all the operations should be rolled back in the event one or more operations fail.\"\n allOrNone: Boolean = true\n}\n\ntype ReferenceToInfo {\n ApiName: String!\n nameFields: [String]!\n objectInfo: ObjectInfo\n}\n\ninterface FieldValue {\n displayValue: String\n}\n\ntype LongitudeValue implements FieldValue {\n value: Longitude\n displayValue: String\n}\n\ntype IntValue implements FieldValue {\n value: Int\n displayValue: String\n format: String\n}\n\ntype UrlValue implements FieldValue {\n value: Url\n displayValue: String\n}\n\ntype LongAggregate implements FieldValue {\n value: Long\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: LongValue\n min: LongValue\n sum: LongValue\n}\n\ninput TimeOperators {\n eq: Time\n ne: Time\n lt: Time\n gt: Time\n lte: Time\n gte: Time\n in: [Time]\n nin: [Time]\n}\n\ntype PicklistValue implements FieldValue {\n value: Picklist\n displayValue: String\n label: String\n}\n\ntype RelatedListInfo @team(name: \"Lists Platform\") {\n childApiName: String!\n relatedListName: String!\n label: String!\n displayColumns: [ListColumn!]!\n orderedByInfo: [ListOrder!]!\n parentApiName: String!\n fieldApiName: String!\n}\n\ninput StringOperators {\n eq: String\n ne: String\n like: String\n lt: String\n gt: String\n lte: String\n gte: String\n in: [String]\n nin: [String]\n}\n\ntype UIAPI {\n query: RecordQuery!\n aggregate: RecordQueryAggregate!\n objectInfos(apiNames: [String!], locale: String, objectInfoInputs: [ObjectInfoInput!]): [ObjectInfo]\n relatedListByName(parentApiName: String!, relatedListName: String!): RelatedListInfo\n}\n\n\"Input for ObjectInfo and PickValues\"\ninput ObjectInfoInput {\n apiName: String!\n recordTypeIDs: [ID!]\n fieldNames: [String!]\n}\n\ninput MultiPicklistOperators {\n eq: MultiPicklist\n ne: MultiPicklist\n includes: [MultiPicklist]\n excludes: [MultiPicklist]\n}\n\ntype DateTimeAggregate implements FieldValue {\n value: DateTime\n displayValue: String\n calendarMonth: DateFunctionAggregation\n calendarQuarter: DateFunctionAggregation\n calendarYear: DateFunctionAggregation\n count: LongValue\n countDistinct: LongValue\n dayInMonth: DateFunctionAggregation\n dayInWeek: DateFunctionAggregation\n dayInYear: DateFunctionAggregation\n dayOnly: DateOnlyAggregation\n fiscalMonth: DateFunctionAggregation\n fiscalQuarter: DateFunctionAggregation\n fiscalYear: DateFunctionAggregation\n format: String\n hourInDay: DateFunctionAggregation\n max: DateTimeValue\n min: DateTimeValue\n weekInMonth: DateFunctionAggregation\n weekInYear: DateFunctionAggregation\n}\n\ntype EmailAggregate implements FieldValue {\n value: Email\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: EmailValue\n min: EmailValue\n}\n\ninput GroupByDateFunction {\n function: GroupByFunction\n}\n\ntype RichTextAreaValue implements FieldValue {\n value: RichTextArea\n displayValue: String\n label: String\n}\n\ninput DatePrimitiveOperators {\n eq: Date\n ne: Date\n lt: Date\n gt: Date\n lte: Date\n gte: Date\n in: [Date]\n nin: [Date]\n}\n\ntype TimeAggregate implements FieldValue {\n value: Time\n displayValue: String\n format: String\n hourInDay: DateFunctionAggregation\n}\n\ninput DistanceInput {\n latitude: Latitude!\n longitude: Longitude!\n}\n\nunion PolymorphicParentRelationship @generic = RecordRepresentation\n\nenum AggregateOrderByNumberFunction {\n AVG\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n SUM\n}\n\ntype LongTextAreaValue implements FieldValue {\n value: LongTextArea\n displayValue: String\n label: String\n}\n\ninput OrderByClause {\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype SObject__Field {\n name: String!\n value: String\n}\n\ntype RecordAggregateConnection @generic {\n edges: [RecordAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ntype LongitudeAggregate implements FieldValue {\n value: Longitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LongitudeValue\n min: LongitudeValue\n sum: DoubleValue\n}\n\ntype DateValue implements FieldValue {\n value: Date\n displayValue: String\n format: String\n}\n\ninput URLOperators {\n eq: Url\n ne: Url\n like: Url\n lt: Url\n gt: Url\n lte: Url\n gte: Url\n in: [Url]\n nin: [Url]\n}\n\ninput LongOperators {\n eq: Long\n ne: Long\n lt: Long\n gt: Long\n lte: Long\n gte: Long\n in: [Long]\n nin: [Long]\n}\n\nenum DataType {\n STRING\n TEXTAREA\n PHONE\n EMAIL\n URL\n ENCRYPTEDSTRING\n BOOLEAN\n CURRENCY\n INT\n LONG\n DOUBLE\n PERCENT\n DATETIME\n TIME\n DATE\n REFERENCE\n PICKLIST\n MULTIPICKLIST\n ADDRESS\n LOCATION\n BASE64\n COMPLEXVALUE\n COMBOBOX\n JSON\n JUNCTIONIDLIST\n ANYTYPE\n}\n\ntype DoubleAggregate implements FieldValue {\n value: Double\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: DoubleValue\n min: DoubleValue\n sum: DoubleValue\n}\n\ninput DateOperators {\n eq: DateInput\n ne: DateInput\n lt: DateInput\n gt: DateInput\n lte: DateInput\n gte: DateInput\n in: [DateInput]\n nin: [DateInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n}\n\ninput GeolocationInput {\n latitude: Latitude!\n longitude: Longitude!\n radius: Float!\n unit: Unit!\n}\n\ninput JoinInput {\n Record: RecordFilter @fieldCategory\n ApiName: String\n}\n\ntype RecordUpdatePayload @generic {\n Record: RecordRepresentation\n success: Boolean @deprecated\n}\n\ninput PercentOperators {\n eq: Percent\n ne: Percent\n lt: Percent\n gt: Percent\n lte: Percent\n gte: Percent\n in: [Percent]\n nin: [Percent]\n}\n\ntype DoubleValue implements FieldValue {\n value: Double\n displayValue: String\n format: String\n}\n\ntype IDAggregate implements FieldValue {\n value: ID\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: IDValue\n min: IDValue\n}\n\ninput RecordCreateInput @generic {\n record: RecordCreateRepresentation! @fieldCategory\n}\n\ninput AggregateOrderByStringClause {\n function: AggregateOrderByStringFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\n\"The return value for the mutation to delete a Record\"\ntype RecordDeletePayload {\n \"The ID of the deleted Record\"\n Id: ID\n}\n\nenum DateLiteral {\n YESTERDAY\n TODAY\n TOMORROW\n LAST_WEEK\n THIS_WEEK\n NEXT_WEEK\n LAST_MONTH\n THIS_MONTH\n NEXT_MONTH\n LAST_90_DAYS\n NEXT_90_DAYS\n LAST_QUARTER\n THIS_QUARTER\n NEXT_QUARTER\n LAST_FISCAL_QUARTER\n THIS_FISCAL_QUARTER\n NEXT_FISCAL_QUARTER\n LAST_YEAR\n THIS_YEAR\n NEXT_YEAR\n LAST_FISCAL_YEAR\n THIS_FISCAL_YEAR\n NEXT_FISCAL_YEAR\n}\n\ntype RecordRepresentation implements Record @generic {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n SetupUserSpecialField: BooleanValue @fieldCategory\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n AnyType: AnyType @fieldCategory\n parentRelationship: RecordRepresentation @fieldCategory\n polymorphicParentRelationship: PolymorphicParentRelationship @fieldCategory\n childRelationship(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, upperBound: Int): RecordConnection @fieldCategory\n CompoundField: CompoundField @fieldCategory\n}\n\ninput OrderByGeolocationClause {\n distance: DistanceInput\n order: ResultOrder\n nulls: NullOrder\n}\n\ntype TextAreaAggregate implements FieldValue {\n value: TextArea\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: TextAreaValue\n min: TextAreaValue\n}\n\nenum GroupByType {\n GROUP_BY\n ROLLUP\n CUBE\n}\n\nenum ResultsOrder {\n ASC\n DESC\n}\n\ntype PicklistAggregate implements FieldValue {\n value: Picklist\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n label: String\n max: PicklistValue\n min: PicklistValue\n}\n\ninput RecordUpdateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\ntype DateTimeValue implements FieldValue {\n value: DateTime\n displayValue: String\n format: String\n}\n\n\"Input to the mutation to delete a Record\"\ninput RecordDeleteInput {\n \"The ID of the Record to delete\"\n Id: IdOrRef!\n}\n\ntype ListOrder @team(name: \"Lists Platform\") {\n fieldApiName: String!\n sortDirection: ResultOrder\n}\n\nenum AggregateOrderByStringFunction {\n COUNT\n COUNT_DISTINCT\n MAX\n MIN\n}\n\ntype LongValue implements FieldValue {\n value: Long\n displayValue: String\n format: String\n}\n\ntype DependentField {\n controllingField: String!\n dependentFields: [String]!\n}\n\ntype PercentValue implements FieldValue {\n value: Percent\n displayValue: String\n format: String\n}\n\ninput NoFunctionAggregateOrderByClause {\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype RecordConnection @generic {\n edges: [RecordEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype FilteredLookupInfo {\n controllingFields: [String]!\n dependent: Boolean!\n optionalFilter: Boolean!\n}\n\ninput PhoneNumberOperators {\n eq: PhoneNumber\n ne: PhoneNumber\n like: PhoneNumber\n lt: PhoneNumber\n gt: PhoneNumber\n lte: PhoneNumber\n gte: PhoneNumber\n in: [PhoneNumber]\n nin: [PhoneNumber]\n}\n\ntype ObjectInfo {\n ApiName: String!\n childRelationships: [ChildRelationship]!\n createable: Boolean!\n custom: Boolean!\n defaultRecordTypeId: ID\n deletable: Boolean!\n dependentFields: [DependentField]!\n feedEnabled: Boolean!\n fields: [Field]!\n keyPrefix: String\n label: String\n labelPlural: String\n layoutable: Boolean!\n mruEnabled: Boolean!\n nameFields: [String]!\n queryable: Boolean!\n recordTypeInfos: [RecordTypeInfo]!\n searchable: Boolean!\n themeInfo: ThemeInfo\n updateable: Boolean!\n locale: String\n}\n\ninput LongitudeOperators {\n eq: Longitude\n ne: Longitude\n lt: Longitude\n gt: Longitude\n lte: Longitude\n gte: Longitude\n in: [Longitude]\n nin: [Longitude]\n}\n\ninterface Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype StandardField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistField implements Field {\n ApiName: String!\n calculated: Boolean!\n compound: Boolean!\n compoundComponentName: String\n compoundFieldName: String\n controllerName: String\n controllingFields: [String]!\n createable: Boolean!\n custom: Boolean!\n dataType: DataType\n extraTypeInfo: FieldExtraTypeInfo\n filterable: Boolean!\n filteredLookupInfo: FilteredLookupInfo\n highScaleNumber: Boolean!\n htmlFormatted: Boolean!\n inlineHelpText: String\n label: String\n nameField: Boolean!\n polymorphicForeignKey: Boolean!\n picklistValuesByRecordTypeIDs: [PicklistValueByRecordTypeIDs]\n precision: Int\n reference: Boolean!\n referenceTargetField: String\n referenceToInfos: [ReferenceToInfo]!\n relationshipName: String\n required: Boolean!\n scale: Int\n searchPrefilterable: Boolean\n sortable: Boolean!\n updateable: Boolean!\n}\n\ntype PicklistValueByRecordTypeIDs {\n recordTypeID: String!\n controllerValues: [ControllerValues!]\n picklistValues: [PicklistValues!]\n defaultValue: PicklistValues\n}\n\ntype ControllerValues {\n value: String\n index: Int\n}\n\ntype PicklistValues {\n value: String\n label: String\n validFor: [Int]\n attributes: PicklistAttributes\n}\n\ntype PicklistAttributes {\n picklistAtrributesValueType: String\n connectDisplayName: String\n internalName: String\n}\n\ninput DateTimeFunctionInput {\n value: DatePrimitiveOperators\n convertTimezoneValue: DatePrimitiveOperators\n}\n\ntype Base64Value implements FieldValue {\n value: Base64\n displayValue: String\n}\n\ntype CompoundField @generic {\n IntValue: IntValue @fieldCategory\n StringValue: StringValue @fieldCategory\n BooleanValue: BooleanValue @fieldCategory\n IDValue: IDValue @fieldCategory\n DateTimeValue: DateTimeValue @fieldCategory\n TimeValue: TimeValue @fieldCategory\n DateValue: DateValue @fieldCategory\n TextAreaValue: TextAreaValue @fieldCategory\n LongTextAreaValue: LongTextAreaValue @fieldCategory\n RichTextAreaValue: RichTextAreaValue @fieldCategory\n PhoneNumberValue: PhoneNumberValue @fieldCategory\n EmailValue: EmailValue @fieldCategory\n UrlValue: UrlValue @fieldCategory\n EncryptedStringValue: EncryptedStringValue @fieldCategory\n CurrencyValue: CurrencyValue @fieldCategory\n LongitudeValue: LongitudeValue @fieldCategory\n LatitudeValue: LatitudeValue @fieldCategory\n PicklistValue: PicklistValue @fieldCategory\n MultiPicklistValue: MultiPicklistValue @fieldCategory\n LongValue: LongValue @fieldCategory\n DoubleValue: DoubleValue @fieldCategory\n PercentValue: PercentValue @fieldCategory\n Base64Value: Base64Value @fieldCategory\n JSONValue: JSONValue @fieldCategory\n}\n\ninput RecordUpdateInput @generic {\n Id: IdOrRef!\n record: RecordUpdateRepresentation! @fieldCategory\n}\n\ninput DateTimeInput {\n value: DateTime\n literal: DateLiteral\n range: DateRange\n}\n\ntype ChildRelationship {\n childObjectApiName: String!\n fieldName: String\n junctionIdListNames: [String]!\n junctionReferenceTo: [String]!\n relationshipName: String\n objectInfo: ObjectInfo\n}\n\ntype RecordResult @generic {\n aggregate: RecordAggregate\n}\n\ntype PageInfo {\n hasNextPage: Boolean!\n hasPreviousPage: Boolean!\n startCursor: String\n endCursor: String\n}\n\ntype CurrencyValue implements FieldValue {\n value: Currency\n displayValue: String\n format: String\n convertCurrency: Currency\n}\n\ntype DateFunctionAggregation {\n value: Long\n format: String\n}\n\ninput PolymorphicParentRelationshipRecordOrderBy @generic {\n RecordOrderBy: RecordOrderBy @fieldCategory\n}\n\ntype RecordCreatePayload @generic {\n Record: RecordRepresentation\n}\n\ninput PolymorphicParentRelationshipGroupBy @generic {\n RecordGroupBy: RecordGroupBy @fieldCategory\n}\n\ntype BooleanValue implements FieldValue {\n value: Boolean\n displayValue: String\n}\n\ntype StringValue implements FieldValue {\n value: String\n displayValue: String\n label: String\n}\n\ninput IdOperators {\n eq: ID\n ne: ID\n lt: ID\n gt: ID\n lte: ID\n gte: ID\n in: [ID]\n nin: [ID]\n inq: JoinInput\n ninq: JoinInput\n}\n\ntype PhoneNumberAggregate implements FieldValue {\n value: PhoneNumber\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: PhoneNumberValue\n min: PhoneNumberValue\n}\n\ntype CurrencyAggregate implements FieldValue {\n value: Currency\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n max: CurrencyValue\n min: CurrencyValue\n sum: CurrencyValue\n}\n\ninput BooleanOperators {\n eq: Boolean\n ne: Boolean\n}\n\ntype MultiPicklistValue implements FieldValue {\n value: MultiPicklist\n displayValue: String\n label: String\n}\n\ntype ListColumn @team(name: \"Lists Platform\") {\n fieldApiName: String!\n label: String!\n lookupId: String\n sortable: Boolean\n}\n\ntype LatitudeAggregate implements FieldValue {\n value: Latitude\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n max: LatitudeValue\n min: LatitudeValue\n sum: DoubleValue\n}\n\ninput CurrencyOperators {\n eq: Currency\n ne: Currency\n lt: Currency\n gt: Currency\n lte: Currency\n gte: Currency\n in: [Currency]\n nin: [Currency]\n}\n\ntype LatitudeValue implements FieldValue {\n value: Latitude\n displayValue: String\n}\n\ninput GroupByClause {\n group: Boolean\n}\n\ntype RecordEdge @generic {\n node: RecordRepresentation\n cursor: String!\n}\n\nenum NullOrder {\n FIRST\n LAST\n}\n\ntype PhoneNumberValue implements FieldValue {\n value: PhoneNumber\n displayValue: String\n}\n\n# RecordScope is an empty enum\n# enum RecordScope @generic {\n# }\n\ninput TextAreaOperators {\n eq: TextArea\n ne: TextArea\n like: TextArea\n lt: TextArea\n gt: TextArea\n lte: TextArea\n gte: TextArea\n in: [TextArea]\n nin: [TextArea]\n}\n\ntype TextAreaValue implements FieldValue {\n value: TextArea\n displayValue: String\n label: String\n}\n\ntype RecordAggregateEdge @generic {\n node: RecordResult\n cursor: String!\n}\n\ntype ThemeInfo {\n color: String\n iconUrl: String\n}\n\ntype UrlAggregate implements FieldValue {\n value: Url\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: UrlValue\n min: UrlValue\n}\n\ntype IDValue implements FieldValue {\n value: ID\n displayValue: String\n}\n\nenum Unit {\n MI\n KM\n}\n\ninput PolymorphicParentRelationshipOrderBy @generic {\n RecordAggregateOrderBy: RecordAggregateOrderBy @fieldCategory\n}\n\nenum NullsOrder {\n FIRST\n LAST\n}\n\nenum ResultOrder {\n ASC\n DESC\n}\n\ninput RecordOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipRecordOrderBy @fieldCategory\n}\n\ninput PicklistOperators {\n eq: Picklist\n ne: Picklist\n in: [Picklist]\n nin: [Picklist]\n like: Picklist\n lt: Picklist\n gt: Picklist\n lte: Picklist\n gte: Picklist\n}\n\ninput RecordFilter @generic {\n and: [RecordFilter]\n or: [RecordFilter]\n not: RecordFilter\n parentRelationshipRecordFilter: RecordFilter @fieldCategory\n polymorphicParentRelationshipRecordFilter: PolymorphicParentRelationshipRecordFilter @fieldCategory\n IntegerOperator: IntegerOperators @fieldCategory\n LongOperator: LongOperators @fieldCategory\n StringOperator: StringOperators @fieldCategory\n DoubleOperator: DoubleOperators @fieldCategory\n PercentOperator: PercentOperators @fieldCategory\n LongitudeOperator: LongitudeOperators @fieldCategory\n LatitudeOperator: LatitudeOperators @fieldCategory\n EmailOperator: EmailOperators @fieldCategory\n TextAreaOperator: TextAreaOperators @fieldCategory\n LongTextAreaOperator: LongTextAreaOperators @fieldCategory\n URLOperator: URLOperators @fieldCategory\n PhoneNumberOperator: PhoneNumberOperators @fieldCategory\n BooleanOperator: BooleanOperators @fieldCategory\n IdOperator: IdOperators @fieldCategory\n CurrencyOperator: CurrencyOperators @fieldCategory\n TimeOperator: TimeOperators @fieldCategory\n DateOperator: DateOperators @fieldCategory\n DateTimeOperator: DateTimeOperators @fieldCategory\n PicklistOperator: PicklistOperators @fieldCategory\n MultiPicklistOperator: MultiPicklistOperators @fieldCategory\n GeolocationOperator: GeolocationOperators @fieldCategory\n}\n\ntype TimeValue implements FieldValue {\n value: Time\n displayValue: String\n format: String\n}\n\ninput GeolocationOperators {\n lt: GeolocationInput\n gt: GeolocationInput\n}\n\ninput LatitudeOperators {\n eq: Latitude\n ne: Latitude\n lt: Latitude\n gt: Latitude\n lte: Latitude\n gte: Latitude\n in: [Latitude]\n nin: [Latitude]\n}\n\ntype IntAggregate implements FieldValue {\n value: Int\n displayValue: String\n avg: DoubleValue\n count: LongValue\n countDistinct: LongValue\n format: String\n grouping: IntValue\n max: IntValue\n min: IntValue\n sum: LongValue\n}\n\ntype RecordAggregate @generic {\n ApiName: String!\n BooleanAggregate: BooleanAggregate @fieldCategory\n CurrencyAggregate: CurrencyAggregate @fieldCategory\n DateAggregate: DateAggregate @fieldCategory\n DoubleAggregate: DoubleAggregate @fieldCategory\n EmailAggregate: EmailAggregate @fieldCategory\n IDAggregate: IDAggregate @fieldCategory\n IntAggregate: IntAggregate @fieldCategory\n LatitudeAggregate: LatitudeAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @fieldCategory\n LongAggregate: LongAggregate @fieldCategory\n PercentAggregate: PercentAggregate @fieldCategory\n PhoneNumberAggregate: PhoneNumberAggregate @fieldCategory\n PicklistAggregate: PicklistAggregate @fieldCategory\n StringAggregate: StringAggregate @fieldCategory\n TextAreaAggregate: TextAreaAggregate @fieldCategory\n TimeAggregate: TimeAggregate @fieldCategory\n UrlAggregate: UrlAggregate @fieldCategory\n parentRelationship: RecordAggregate @fieldCategory\n polymorphicParentRelationship: PolymorphicAggregateParentRelationship @fieldCategory\n}\n\nenum SObject__FieldType {\n ALL\n STANDARD\n CUSTOM\n}\n\ntype JSONValue implements FieldValue {\n value: JSON\n displayValue: String\n}\n\ntype EmailValue implements FieldValue {\n value: Email\n displayValue: String\n}\n\ninput DateFunctionInput {\n value: LongOperators\n convertTimezoneValue: LongOperators\n}\n\n# Mutations are not supported by Luvio.\n# type Mutation {\n# uiapi(input: UIAPIMutationsInput): UIAPIMutations!\n# }\n\nunion PolymorphicAggregateParentRelationship @generic = RecordAggregate\n\ninput LongTextAreaOperators {\n eq: LongTextArea\n ne: LongTextArea\n like: LongTextArea\n lt: LongTextArea\n gt: LongTextArea\n lte: LongTextArea\n gte: LongTextArea\n in: [LongTextArea]\n nin: [LongTextArea]\n}\n\ninput DateTimeOperators {\n eq: DateTimeInput\n ne: DateTimeInput\n lt: DateTimeInput\n gt: DateTimeInput\n lte: DateTimeInput\n gte: DateTimeInput\n in: [DateTimeInput]\n nin: [DateTimeInput]\n DAY_IN_WEEK: DateFunctionInput\n DAY_IN_MONTH: DateFunctionInput\n DAY_IN_YEAR: DateFunctionInput\n WEEK_IN_MONTH: DateFunctionInput\n WEEK_IN_YEAR: DateFunctionInput\n CALENDAR_MONTH: DateFunctionInput\n CALENDAR_QUARTER: DateFunctionInput\n CALENDAR_YEAR: DateFunctionInput\n FISCAL_MONTH: DateFunctionInput\n FISCAL_QUARTER: DateFunctionInput\n FISCAL_YEAR: DateFunctionInput\n DAY_ONLY: DateTimeFunctionInput\n HOUR_IN_DAY: DateFunctionInput\n}\n\ntype BooleanAggregate implements FieldValue {\n value: Boolean\n displayValue: String\n grouping: IntValue\n}\n\ntype RecordQueryAggregate {\n # scope should be RecordScope, but it is an empty enum\n recordQueryAggregate(first: Int, after: String, where: RecordFilter, orderBy: RecordAggregateOrderBy, scope: String, groupBy: RecordGroupBy, upperBound: Int): RecordAggregateConnection @fieldCategory\n}\n\ninput RecordCreateRepresentation @generic {\n Int: Int @fieldCategory\n String: String @fieldCategory\n Boolean: Boolean @fieldCategory\n ID: IdOrRef @fieldCategory\n DateTime: DateTime @fieldCategory\n Time: Time @fieldCategory\n Date: Date @fieldCategory\n TextArea: TextArea @fieldCategory\n LongTextArea: LongTextArea @fieldCategory\n RichTextArea: RichTextArea @fieldCategory\n PhoneNumber: PhoneNumber @fieldCategory\n Email: Email @fieldCategory\n Url: Url @fieldCategory\n EncryptedString: EncryptedString @fieldCategory\n Currency: Currency @fieldCategory\n Longitude: Longitude @fieldCategory\n Latitude: Latitude @fieldCategory\n Picklist: Picklist @fieldCategory\n MultiPicklist: MultiPicklist @fieldCategory\n Long: Long @fieldCategory\n Double: Double @fieldCategory\n Percent: Percent @fieldCategory\n Base64: Base64 @fieldCategory\n JSON: JSON @fieldCategory\n}\n\nenum FieldExtraTypeInfo {\n IMAGE_URL\n EXTERNAL_LOOKUP\n INDIRECT_LOOKUP\n PERSONNAME\n SWITCHABLE_PERSONNAME\n PLAINTEXTAREA\n RICHTEXTAREA\n}\n\ntype RateLimit {\n cost: Long\n limit: Long\n remaining: Long\n resetAt: DateTime\n}\n\ninput DateRange {\n last_n_days: Int\n next_n_days: Int\n last_n_weeks: Int\n next_n_weeks: Int\n last_n_months: Int\n next_n_months: Int\n last_n_quarters: Int\n next_n_quarters: Int\n last_n_fiscal_quarters: Int\n next_n_fiscal_quarters: Int\n last_n_years: Int\n next_n_years: Int\n last_n_fiscal_years: Int\n next_n_fiscal_years: Int\n n_days_ago: Int\n n_weeks_ago: Int\n n_months_ago: Int\n n_quarters_ago: Int\n n_years_ago: Int\n n_fiscal_quarters_ago: Int\n n_fiscal_years_ago: Int\n}\n\ntype UIAPIMutations {\n recordCreate(input: RecordCreateInput!): RecordCreatePayload @fieldCategory\n recordDelete(input: RecordDeleteInput!): RecordDeletePayload @fieldCategory\n recordUpdate(input: RecordUpdateInput!): RecordUpdatePayload @fieldCategory\n}\n\ninput IntegerOperators {\n eq: Int\n ne: Int\n lt: Int\n gt: Int\n lte: Int\n gte: Int\n in: [Int]\n nin: [Int]\n}\n\ntype EncryptedStringValue implements FieldValue {\n value: EncryptedString\n displayValue: String\n}\n\ninterface Record {\n Id: ID!\n ApiName: String!\n WeakEtag: Long!\n DisplayValue: String\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n SystemModstamp: DateTimeValue\n RecordTypeId(fallback: Boolean): IDValue\n}\n\ninput PolymorphicParentRelationshipRecordFilter @generic {\n RecordFilter: RecordFilter @fieldCategory\n}\n\n\"\"\"\nA type that can contain any of the following types: Boolean, Date, DateTime, Double, String.\nFormat and Label are not supported by AnyType and displayValue is an unformatted string representation of the value.\n\"\"\"\nunion AnyType = BooleanValue | DateValue | DateTimeValue | DoubleValue | StringValue\n\ninput AggregateOrderByNumberClause {\n function: AggregateOrderByNumberFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ninput DateInput {\n value: Date\n literal: DateLiteral\n range: DateRange\n}\n\ninput RecordGroupBy @generic {\n groupableField: GroupByClause @fieldCategory\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableParentRelationship: RecordGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: PolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\ntype RecordQuery {\n # scope should be RecordScope, but it is an empty enum\n recordQuery(first: Int, after: String, where: RecordFilter, orderBy: RecordOrderBy, scope: String, upperBound: Int, updateMRU: Boolean): RecordConnection @fieldCategory\n}\n\ninput RecordAggregateOrderBy @generic {\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: RecordAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipOrderBy @fieldCategory\n}\n\ninput IgnoreRule {\n rule: String!\n teamName: String!\n justification: String!\n}\n\ndirective @generic on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT\ndirective @fieldCategory on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | ENUM_VALUE\ndirective @category(name: String!) on FIELD\n\"Specifies the team name for a type\"\ndirective @team(name: String!) on OBJECT | INPUT_OBJECT | INTERFACE | ENUM | UNION | SCALAR\n\"Specifies the validation rules to ignore for this element.\"\ndirective @ignoreRule(rules: [IgnoreRule!]!) on OBJECT\n | INPUT_OBJECT\n | INTERFACE\n | ENUM\n | UNION\n | SCALAR\n | FIELD_DEFINITION\n | INPUT_FIELD_DEFINITION\n | ARGUMENT_DEFINITION\n | ENUM_VALUE\ndirective @optional on FIELD\n\ntype __Type {\n kind: __TypeKind!\n name: String\n description: String\n fields(includeDeprecated: Boolean = false): [__Field!]\n interfaces: [__Type!]\n possibleTypes: [__Type!]\n enumValues(includeDeprecated: Boolean = false): [__EnumValue!]\n inputFields: [__InputValue!]\n ofType: __Type\n}";
85512
85782
 
85513
85783
  // Define additional schema that is missing from uiapi that we use in local evaluation
85514
85784
  const additionalSchemaDefinitions = /* GraphQL */ `
@@ -89423,7 +89693,7 @@ const withInstrumentation = (operation, config) => {
89423
89693
  return operation()
89424
89694
  .catch((err) => {
89425
89695
  hasError = true;
89426
- const error = normalizeError$1(err);
89696
+ const error = normalizeError$2(err);
89427
89697
  tags['errorMessage'] = error.message;
89428
89698
  if (logError) {
89429
89699
  ldsMobileInstrumentation$2.error(error);
@@ -95112,14 +95382,27 @@ const _FetchNetworkCommand = class _FetchNetworkCommand extends NetworkCommand {
95112
95382
  constructor(services) {
95113
95383
  super(services);
95114
95384
  this.services = services;
95385
+ this.additionalNullResponses = [];
95115
95386
  }
95116
- fetch() {
95387
+ fetch(contextSeed) {
95117
95388
  try {
95118
- return this.convertFetchResponseToData(this.services.fetch(...this.fetchParams));
95389
+ const [input, init] = this.fetchParams;
95390
+ const initWithSeed = contextSeed === void 0 ? init : { ...init, __contextSeed: contextSeed };
95391
+ const fetchCall = initWithSeed === void 0 ? this.services.fetch(input) : this.services.fetch(input, initWithSeed);
95392
+ return this.convertFetchResponseToData(fetchCall);
95119
95393
  } catch (reason) {
95120
95394
  return resolvedPromiseLike$2(err$1(toError(reason)));
95121
95395
  }
95122
95396
  }
95397
+ isSemanticNullResponse(response) {
95398
+ return this.additionalNullResponses.includes(response.status);
95399
+ }
95400
+ isProtocolNoBodyStatus(status) {
95401
+ return status === 204 || status === 205;
95402
+ }
95403
+ isUndeclaredNoBodyResponse(response) {
95404
+ return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
95405
+ }
95123
95406
  async coerceError(errorResponse) {
95124
95407
  return toError(errorResponse.statusText);
95125
95408
  }
@@ -95127,10 +95410,24 @@ const _FetchNetworkCommand = class _FetchNetworkCommand extends NetworkCommand {
95127
95410
  return response.then(
95128
95411
  (response2) => {
95129
95412
  if (response2.ok) {
95130
- return response2.json().then(
95131
- (json) => ok$1(json),
95132
- (reason) => err$1(toError(reason))
95133
- ).finally(() => {
95413
+ let resultPromise;
95414
+ if (this.isSemanticNullResponse(response2)) {
95415
+ resultPromise = Promise.resolve(ok$1(null));
95416
+ } else if (this.isUndeclaredNoBodyResponse(response2)) {
95417
+ resultPromise = Promise.resolve(
95418
+ err$1(
95419
+ toError(
95420
+ `Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
95421
+ )
95422
+ )
95423
+ );
95424
+ } else {
95425
+ resultPromise = response2.json().then(
95426
+ (json) => ok$1(json),
95427
+ (reason) => err$1(toError(reason))
95428
+ );
95429
+ }
95430
+ return resultPromise.finally(() => {
95134
95431
  try {
95135
95432
  this.afterRequestHooks({ statusCode: response2.status });
95136
95433
  } catch {
@@ -95177,6 +95474,7 @@ class HttpCacheControlCommand extends CacheControlCommand {
95177
95474
  constructor(services) {
95178
95475
  super(services);
95179
95476
  this.services = services;
95477
+ this.additionalNullResponses = [];
95180
95478
  }
95181
95479
  requestFromNetwork() {
95182
95480
  return this.fetch();
@@ -95188,6 +95486,15 @@ class HttpCacheControlCommand extends CacheControlCommand {
95188
95486
  return resolvedPromiseLike$2(err$1(toError(reason)));
95189
95487
  }
95190
95488
  }
95489
+ isSemanticNullResponse(response) {
95490
+ return this.additionalNullResponses.includes(response.status);
95491
+ }
95492
+ isProtocolNoBodyStatus(status) {
95493
+ return status === 204 || status === 205;
95494
+ }
95495
+ isUndeclaredNoBodyResponse(response) {
95496
+ return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
95497
+ }
95191
95498
  async coerceError(errorResponse) {
95192
95499
  return toError(errorResponse.statusText);
95193
95500
  }
@@ -95198,12 +95505,26 @@ class HttpCacheControlCommand extends CacheControlCommand {
95198
95505
  return response.then(
95199
95506
  (response2) => {
95200
95507
  if (response2.ok) {
95201
- return response2.json().then(
95202
- (json) => {
95203
- return this.processFetchReturnValue(json);
95204
- },
95205
- (reason) => err$1(toError(reason))
95206
- ).finally(() => {
95508
+ let resultPromise;
95509
+ if (this.isSemanticNullResponse(response2)) {
95510
+ resultPromise = Promise.resolve(ok$1(null));
95511
+ } else if (this.isUndeclaredNoBodyResponse(response2)) {
95512
+ resultPromise = Promise.resolve(
95513
+ err$1(
95514
+ toError(
95515
+ `Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
95516
+ )
95517
+ )
95518
+ );
95519
+ } else {
95520
+ resultPromise = response2.json().then(
95521
+ (json) => {
95522
+ return this.processFetchReturnValue(json);
95523
+ },
95524
+ (reason) => err$1(toError(reason))
95525
+ );
95526
+ }
95527
+ return resultPromise.finally(() => {
95207
95528
  try {
95208
95529
  this.afterRequestHooks({ statusCode: response2.status });
95209
95530
  } catch {
@@ -96191,7 +96512,7 @@ function buildServiceDescriptor$b(luvio) {
96191
96512
  },
96192
96513
  };
96193
96514
  }
96194
- // version: 1.428.0-dev2-2d5e0a6e5f
96515
+ // version: 1.428.0-dev20-d72ac06681
96195
96516
 
96196
96517
  /**
96197
96518
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -96217,7 +96538,7 @@ function buildServiceDescriptor$a(notifyRecordUpdateAvailable, getNormalizedLuvi
96217
96538
  },
96218
96539
  };
96219
96540
  }
96220
- // version: 1.428.0-dev2-2d5e0a6e5f
96541
+ // version: 1.428.0-dev20-d72ac06681
96221
96542
 
96222
96543
  /*!
96223
96544
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -96702,6 +97023,9 @@ function invalidSchemaResponseWithError$1(error) {
96702
97023
  return err$1([error]);
96703
97024
  }
96704
97025
  function validateJsonSchema$1(data, schema, path = "$", document = schema) {
97026
+ return validateJsonSchemaInternal$1(data, schema, path, document, /* @__PURE__ */ new Map());
97027
+ }
97028
+ function validateJsonSchemaInternal$1(data, schema, path, document, visited) {
96705
97029
  if (schema === true) return validSchemaResponse$1();
96706
97030
  if (schema === false)
96707
97031
  return invalidSchemaResponseWithError$1(
@@ -96710,22 +97034,22 @@ function validateJsonSchema$1(data, schema, path = "$", document = schema) {
96710
97034
  const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
96711
97035
  const errorCollector = new JsonSchemaErrorCollector$1();
96712
97036
  if ("anyOf" in schema) {
96713
- errorCollector.append(validateAnyOf$1(data, schema, path, document));
97037
+ errorCollector.append(validateAnyOf$1(data, schema, path, document, visited));
96714
97038
  } else if ("oneOf" in schema) {
96715
- errorCollector.append(validateOneOf$1(data, schema, path, document));
97039
+ errorCollector.append(validateOneOf$1(data, schema, path, document, visited));
96716
97040
  } else if ("allOf" in schema) {
96717
- errorCollector.append(validateAllOf$1(data, schema, path, document));
97041
+ errorCollector.append(validateAllOf$1(data, schema, path, document, visited));
96718
97042
  } else if ("not" in schema) {
96719
- errorCollector.append(validateNot$1(data, schema, path, document));
97043
+ errorCollector.append(validateNot$1(data, schema, path, document, visited));
96720
97044
  } else if ("$ref" in schema) {
96721
- errorCollector.append(validateRef$1(data, schema, path, document));
97045
+ errorCollector.append(validateRef$1(data, schema, path, document, visited));
96722
97046
  } else if ("type" in schema) {
96723
97047
  if (schema.type === "object") {
96724
97048
  if (dataType !== "object") {
96725
97049
  errorCollector.add(incorrectTypeError$1("object", dataType, path));
96726
97050
  } else {
96727
97051
  errorCollector.append(
96728
- validateObject$1(data, schema, path, document)
97052
+ validateObject$1(data, schema, path, document, visited)
96729
97053
  );
96730
97054
  }
96731
97055
  } else if (schema.type === "array") {
@@ -96733,7 +97057,7 @@ function validateJsonSchema$1(data, schema, path = "$", document = schema) {
96733
97057
  errorCollector.add(incorrectTypeError$1("array", dataType, path));
96734
97058
  } else {
96735
97059
  errorCollector.append(
96736
- validateArray$1(data, schema, path, document)
97060
+ validateArray$1(data, schema, path, document, visited)
96737
97061
  );
96738
97062
  }
96739
97063
  } else {
@@ -96750,16 +97074,17 @@ function validateJsonSchema$1(data, schema, path = "$", document = schema) {
96750
97074
  }
96751
97075
  return errorCollector.toValidationResponse();
96752
97076
  }
96753
- function validateAnyOf$1(data, schema, path, document) {
97077
+ function validateAnyOf$1(data, schema, path, document, visited) {
96754
97078
  let isValid = false;
96755
97079
  const errorCollector = new JsonSchemaErrorCollector$1();
96756
97080
  for (let i = 0, { length } = schema.anyOf; i < length; i++) {
96757
97081
  const element = schema.anyOf[i];
96758
- const validationResponse = validateJsonSchema$1(
97082
+ const validationResponse = validateJsonSchemaInternal$1(
96759
97083
  data,
96760
97084
  element,
96761
97085
  `${path}.anyOf[${i}]`,
96762
- document
97086
+ document,
97087
+ visited
96763
97088
  );
96764
97089
  if (validationResponse.isOk()) {
96765
97090
  isValid = true;
@@ -96776,13 +97101,22 @@ function validateAnyOf$1(data, schema, path, document) {
96776
97101
  }
96777
97102
  return validSchemaResponse$1();
96778
97103
  }
96779
- function validateOneOf$1(data, schema, path, document) {
97104
+ function validateOneOf$1(data, schema, path, document, visited) {
97105
+ if (schema.discriminator !== void 0) {
97106
+ return validateDiscriminatedOneOf$1(data, schema.discriminator, path, document, visited);
97107
+ }
96780
97108
  let validSubShemaPaths = [];
96781
97109
  const errorCollector = new JsonSchemaErrorCollector$1();
96782
97110
  for (let i = 0, { length } = schema.oneOf; i < length; i++) {
96783
97111
  const element = schema.oneOf[i];
96784
97112
  const oneOfPath = `${path}.oneOf[${i}]`;
96785
- const validationResponse = validateJsonSchema$1(data, element, oneOfPath, document);
97113
+ const validationResponse = validateJsonSchemaInternal$1(
97114
+ data,
97115
+ element,
97116
+ oneOfPath,
97117
+ document,
97118
+ visited
97119
+ );
96786
97120
  if (validationResponse.isOk()) {
96787
97121
  validSubShemaPaths.push(oneOfPath);
96788
97122
  } else {
@@ -96804,16 +97138,45 @@ function validateOneOf$1(data, schema, path, document) {
96804
97138
  }
96805
97139
  return validSchemaResponse$1();
96806
97140
  }
96807
- function validateAllOf$1(data, schema, path, document) {
97141
+ function validateDiscriminatedOneOf$1(data, discriminator, path, document, visited) {
97142
+ if (data === null || typeof data !== "object" || Array.isArray(data)) {
97143
+ return invalidSchemaResponseWithError$1(incorrectTypeError$1("object", typeof data, path));
97144
+ }
97145
+ const { propertyName, mapping } = discriminator;
97146
+ const discriminatorValue = data[propertyName];
97147
+ if (discriminatorValue === void 0) {
97148
+ return invalidSchemaResponseWithError$1(
97149
+ new MissingRequiredPropertyError$1(
97150
+ `Object at path '${path}' is missing required discriminator property '${propertyName}'.`
97151
+ )
97152
+ );
97153
+ }
97154
+ if (typeof discriminatorValue !== "string") {
97155
+ return invalidSchemaResponseWithError$1(
97156
+ incorrectTypeError$1("string", typeof discriminatorValue, `${path}.${propertyName}`)
97157
+ );
97158
+ }
97159
+ const targetRef = mapping[discriminatorValue];
97160
+ if (targetRef === void 0) {
97161
+ return invalidSchemaResponseWithError$1(
97162
+ new JsonSchemaViolationError$1(
97163
+ `Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
97164
+ )
97165
+ );
97166
+ }
97167
+ return validateJsonSchemaInternal$1(data, { $ref: targetRef }, path, document, visited);
97168
+ }
97169
+ function validateAllOf$1(data, schema, path, document, visited) {
96808
97170
  let isValid = true;
96809
97171
  const errorCollector = new JsonSchemaErrorCollector$1();
96810
97172
  for (let i = 0, { length } = schema.allOf; i < length; i++) {
96811
97173
  const element = schema.allOf[i];
96812
- const validationResponse = validateJsonSchema$1(
97174
+ const validationResponse = validateJsonSchemaInternal$1(
96813
97175
  data,
96814
97176
  element,
96815
97177
  `${path}.allOf[${i}]`,
96816
- document
97178
+ document,
97179
+ visited
96817
97180
  );
96818
97181
  if (!validationResponse.isOk()) {
96819
97182
  errorCollector.append(validationResponse);
@@ -96827,8 +97190,14 @@ function validateAllOf$1(data, schema, path, document) {
96827
97190
  }
96828
97191
  return errorCollector.toValidationResponse();
96829
97192
  }
96830
- function validateNot$1(data, schema, path, document) {
96831
- const validationResponse = validateJsonSchema$1(data, schema.not, path, document);
97193
+ function validateNot$1(data, schema, path, document, visited) {
97194
+ const validationResponse = validateJsonSchemaInternal$1(
97195
+ data,
97196
+ schema.not,
97197
+ path,
97198
+ document,
97199
+ visited
97200
+ );
96832
97201
  if (validationResponse.isOk()) {
96833
97202
  return invalidSchemaResponseWithError$1(
96834
97203
  new JsonSchemaViolationError$1(
@@ -96838,7 +97207,7 @@ function validateNot$1(data, schema, path, document) {
96838
97207
  }
96839
97208
  return validSchemaResponse$1();
96840
97209
  }
96841
- function validateObject$1(data, schema, path, document) {
97210
+ function validateObject$1(data, schema, path, document, visited) {
96842
97211
  const schemaKeys = Object.keys(schema.properties);
96843
97212
  const requiredKeys = new Set(schema.required);
96844
97213
  const schemaKeySet = new Set(schemaKeys);
@@ -96846,11 +97215,12 @@ function validateObject$1(data, schema, path, document) {
96846
97215
  Object.keys(data).forEach((key) => {
96847
97216
  if (!schemaKeySet.has(key)) {
96848
97217
  errorCollector.append(
96849
- validateJsonSchema$1(
97218
+ validateJsonSchemaInternal$1(
96850
97219
  data[key],
96851
97220
  schema.additionalProperties,
96852
97221
  `${path}.additionalProperties[${key}]`,
96853
- document
97222
+ document,
97223
+ visited
96854
97224
  )
96855
97225
  );
96856
97226
  }
@@ -96867,18 +97237,19 @@ function validateObject$1(data, schema, path, document) {
96867
97237
  }
96868
97238
  if (keyInData) {
96869
97239
  errorCollector.append(
96870
- validateJsonSchema$1(
97240
+ validateJsonSchemaInternal$1(
96871
97241
  data[key],
96872
97242
  schema.properties[key],
96873
97243
  `${path}.${key}`,
96874
- document
97244
+ document,
97245
+ visited
96875
97246
  )
96876
97247
  );
96877
97248
  }
96878
97249
  }
96879
97250
  return errorCollector.toValidationResponse();
96880
97251
  }
96881
- function validateArray$1(data, schema, path, document) {
97252
+ function validateArray$1(data, schema, path, document, visited) {
96882
97253
  if (schema.minItems !== void 0 && data.length < schema.minItems) {
96883
97254
  return invalidSchemaResponseWithError$1(
96884
97255
  new MinItemsViolationError$1(
@@ -96896,7 +97267,13 @@ function validateArray$1(data, schema, path, document) {
96896
97267
  const errorCollector = new JsonSchemaErrorCollector$1();
96897
97268
  data.forEach(
96898
97269
  (element, index) => errorCollector.append(
96899
- validateJsonSchema$1(element, schema.items, `${path}[${index}]`, document)
97270
+ validateJsonSchemaInternal$1(
97271
+ element,
97272
+ schema.items,
97273
+ `${path}[${index}]`,
97274
+ document,
97275
+ visited
97276
+ )
96900
97277
  )
96901
97278
  );
96902
97279
  return errorCollector.toValidationResponse();
@@ -96931,7 +97308,7 @@ function validateScalar$1(data, schema, path) {
96931
97308
  }
96932
97309
  return validSchemaResponse$1();
96933
97310
  }
96934
- function validateRef$1(data, schema, path, document) {
97311
+ function validateRef$1(data, schema, path, document, visited) {
96935
97312
  if (!schema.$ref.startsWith("#")) {
96936
97313
  return invalidSchemaResponseWithError$1(
96937
97314
  new InvalidRefError$1(
@@ -96939,11 +97316,23 @@ function validateRef$1(data, schema, path, document) {
96939
97316
  )
96940
97317
  );
96941
97318
  }
97319
+ let refsForData = visited.get(data);
97320
+ if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
97321
+ return validSchemaResponse$1();
97322
+ }
97323
+ if (refsForData === void 0) {
97324
+ refsForData = /* @__PURE__ */ new Set();
97325
+ visited.set(data, refsForData);
97326
+ }
97327
+ refsForData.add(schema.$ref);
96942
97328
  try {
96943
97329
  const schemaToValidate = findSchemaAtPath$1(document, schema.$ref);
96944
- return validateJsonSchema$1(data, schemaToValidate, path, document);
97330
+ return validateJsonSchemaInternal$1(data, schemaToValidate, path, document, visited);
96945
97331
  } catch (e) {
96946
97332
  return invalidSchemaResponseWithError$1(e);
97333
+ } finally {
97334
+ refsForData.delete(schema.$ref);
97335
+ if (refsForData.size === 0) visited.delete(data);
96947
97336
  }
96948
97337
  }
96949
97338
  function validateEnum$1(data, enumValue, path) {
@@ -97828,9 +98217,18 @@ function buildServiceDescriptor$1(interceptors = {
97828
98217
  return {
97829
98218
  type: "fetch",
97830
98219
  version: "1.0",
97831
- service: function(...args) {
98220
+ service: function(input, init) {
97832
98221
  var _a;
97833
- const context = (_a = interceptors.createContext) == null ? void 0 : _a.call(interceptors);
98222
+ let contextSeed;
98223
+ let cleanInit = init;
98224
+ if (init !== void 0 && "__contextSeed" in init) {
98225
+ const { __contextSeed, ...initWithoutSeed } = init;
98226
+ contextSeed = __contextSeed;
98227
+ cleanInit = Object.keys(initWithoutSeed).length === 0 ? void 0 : initWithoutSeed;
98228
+ }
98229
+ const fetchArgs = cleanInit === void 0 ? [input] : [input, cleanInit];
98230
+ const baseContext = (_a = interceptors.createContext) == null ? void 0 : _a.call(interceptors);
98231
+ const context = contextSeed === void 0 ? baseContext : { ...baseContext, ...contextSeed };
97834
98232
  const {
97835
98233
  request: requestInterceptors = [],
97836
98234
  retry: retryInterceptor = void 0,
@@ -97838,17 +98236,17 @@ function buildServiceDescriptor$1(interceptors = {
97838
98236
  finally: finallyInterceptors = []
97839
98237
  } = interceptors;
97840
98238
  const pending = requestInterceptors.reduce(
97841
- (previousPromise, interceptor) => previousPromise.then((args2) => interceptor(args2, context)),
97842
- resolvedPromiseLike$2(args)
98239
+ (previousPromise, interceptor) => previousPromise.then((args) => interceptor(args, context)),
98240
+ resolvedPromiseLike$2(fetchArgs)
97843
98241
  );
97844
- return Promise.resolve(pending).then((args2) => {
98242
+ return Promise.resolve(pending).then((args) => {
97845
98243
  if (retryInterceptor) {
97846
- return retryInterceptor(args2, retryService, context);
98244
+ return retryInterceptor(args, retryService, context);
97847
98245
  } else {
97848
98246
  if (retryService) {
97849
- return retryService.applyRetry(() => fetch(...args2));
98247
+ return retryService.applyRetry(() => fetch(...args));
97850
98248
  }
97851
- return fetch(...args2);
98249
+ return fetch(...args);
97852
98250
  }
97853
98251
  }).then((response) => {
97854
98252
  return responseInterceptors.reduce(
@@ -98874,7 +99272,7 @@ register$1({
98874
99272
  id: '@salesforce/lds-network-adapter',
98875
99273
  instrument: instrument$2,
98876
99274
  });
98877
- // version: 1.428.0-dev2-ad2109c7a1
99275
+ // version: 1.428.0-dev20-1b319a0432
98878
99276
 
98879
99277
  const { create: create$2, keys: keys$2 } = Object;
98880
99278
  const { stringify, parse } = JSON;
@@ -98965,6 +99363,9 @@ function invalidSchemaResponseWithError(error) {
98965
99363
  return err$4([error]);
98966
99364
  }
98967
99365
  function validateJsonSchema(data, schema, path = "$", document = schema) {
99366
+ return validateJsonSchemaInternal(data, schema, path, document, /* @__PURE__ */ new Map());
99367
+ }
99368
+ function validateJsonSchemaInternal(data, schema, path, document, visited) {
98968
99369
  if (schema === true) return validSchemaResponse();
98969
99370
  if (schema === false)
98970
99371
  return invalidSchemaResponseWithError(
@@ -98973,22 +99374,22 @@ function validateJsonSchema(data, schema, path = "$", document = schema) {
98973
99374
  const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
98974
99375
  const errorCollector = new JsonSchemaErrorCollector();
98975
99376
  if ("anyOf" in schema) {
98976
- errorCollector.append(validateAnyOf(data, schema, path, document));
99377
+ errorCollector.append(validateAnyOf(data, schema, path, document, visited));
98977
99378
  } else if ("oneOf" in schema) {
98978
- errorCollector.append(validateOneOf(data, schema, path, document));
99379
+ errorCollector.append(validateOneOf(data, schema, path, document, visited));
98979
99380
  } else if ("allOf" in schema) {
98980
- errorCollector.append(validateAllOf(data, schema, path, document));
99381
+ errorCollector.append(validateAllOf(data, schema, path, document, visited));
98981
99382
  } else if ("not" in schema) {
98982
- errorCollector.append(validateNot(data, schema, path, document));
99383
+ errorCollector.append(validateNot(data, schema, path, document, visited));
98983
99384
  } else if ("$ref" in schema) {
98984
- errorCollector.append(validateRef(data, schema, path, document));
99385
+ errorCollector.append(validateRef(data, schema, path, document, visited));
98985
99386
  } else if ("type" in schema) {
98986
99387
  if (schema.type === "object") {
98987
99388
  if (dataType !== "object") {
98988
99389
  errorCollector.add(incorrectTypeError("object", dataType, path));
98989
99390
  } else {
98990
99391
  errorCollector.append(
98991
- validateObject(data, schema, path, document)
99392
+ validateObject(data, schema, path, document, visited)
98992
99393
  );
98993
99394
  }
98994
99395
  } else if (schema.type === "array") {
@@ -98996,7 +99397,7 @@ function validateJsonSchema(data, schema, path = "$", document = schema) {
98996
99397
  errorCollector.add(incorrectTypeError("array", dataType, path));
98997
99398
  } else {
98998
99399
  errorCollector.append(
98999
- validateArray(data, schema, path, document)
99400
+ validateArray(data, schema, path, document, visited)
99000
99401
  );
99001
99402
  }
99002
99403
  } else {
@@ -99013,16 +99414,17 @@ function validateJsonSchema(data, schema, path = "$", document = schema) {
99013
99414
  }
99014
99415
  return errorCollector.toValidationResponse();
99015
99416
  }
99016
- function validateAnyOf(data, schema, path, document) {
99417
+ function validateAnyOf(data, schema, path, document, visited) {
99017
99418
  let isValid = false;
99018
99419
  const errorCollector = new JsonSchemaErrorCollector();
99019
99420
  for (let i = 0, { length } = schema.anyOf; i < length; i++) {
99020
99421
  const element = schema.anyOf[i];
99021
- const validationResponse = validateJsonSchema(
99422
+ const validationResponse = validateJsonSchemaInternal(
99022
99423
  data,
99023
99424
  element,
99024
99425
  `${path}.anyOf[${i}]`,
99025
- document
99426
+ document,
99427
+ visited
99026
99428
  );
99027
99429
  if (validationResponse.isOk()) {
99028
99430
  isValid = true;
@@ -99039,13 +99441,22 @@ function validateAnyOf(data, schema, path, document) {
99039
99441
  }
99040
99442
  return validSchemaResponse();
99041
99443
  }
99042
- function validateOneOf(data, schema, path, document) {
99444
+ function validateOneOf(data, schema, path, document, visited) {
99445
+ if (schema.discriminator !== void 0) {
99446
+ return validateDiscriminatedOneOf(data, schema.discriminator, path, document, visited);
99447
+ }
99043
99448
  let validSubShemaPaths = [];
99044
99449
  const errorCollector = new JsonSchemaErrorCollector();
99045
99450
  for (let i = 0, { length } = schema.oneOf; i < length; i++) {
99046
99451
  const element = schema.oneOf[i];
99047
99452
  const oneOfPath = `${path}.oneOf[${i}]`;
99048
- const validationResponse = validateJsonSchema(data, element, oneOfPath, document);
99453
+ const validationResponse = validateJsonSchemaInternal(
99454
+ data,
99455
+ element,
99456
+ oneOfPath,
99457
+ document,
99458
+ visited
99459
+ );
99049
99460
  if (validationResponse.isOk()) {
99050
99461
  validSubShemaPaths.push(oneOfPath);
99051
99462
  } else {
@@ -99067,16 +99478,45 @@ function validateOneOf(data, schema, path, document) {
99067
99478
  }
99068
99479
  return validSchemaResponse();
99069
99480
  }
99070
- function validateAllOf(data, schema, path, document) {
99481
+ function validateDiscriminatedOneOf(data, discriminator, path, document, visited) {
99482
+ if (data === null || typeof data !== "object" || Array.isArray(data)) {
99483
+ return invalidSchemaResponseWithError(incorrectTypeError("object", typeof data, path));
99484
+ }
99485
+ const { propertyName, mapping } = discriminator;
99486
+ const discriminatorValue = data[propertyName];
99487
+ if (discriminatorValue === void 0) {
99488
+ return invalidSchemaResponseWithError(
99489
+ new MissingRequiredPropertyError(
99490
+ `Object at path '${path}' is missing required discriminator property '${propertyName}'.`
99491
+ )
99492
+ );
99493
+ }
99494
+ if (typeof discriminatorValue !== "string") {
99495
+ return invalidSchemaResponseWithError(
99496
+ incorrectTypeError("string", typeof discriminatorValue, `${path}.${propertyName}`)
99497
+ );
99498
+ }
99499
+ const targetRef = mapping[discriminatorValue];
99500
+ if (targetRef === void 0) {
99501
+ return invalidSchemaResponseWithError(
99502
+ new JsonSchemaViolationError(
99503
+ `Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
99504
+ )
99505
+ );
99506
+ }
99507
+ return validateJsonSchemaInternal(data, { $ref: targetRef }, path, document, visited);
99508
+ }
99509
+ function validateAllOf(data, schema, path, document, visited) {
99071
99510
  let isValid = true;
99072
99511
  const errorCollector = new JsonSchemaErrorCollector();
99073
99512
  for (let i = 0, { length } = schema.allOf; i < length; i++) {
99074
99513
  const element = schema.allOf[i];
99075
- const validationResponse = validateJsonSchema(
99514
+ const validationResponse = validateJsonSchemaInternal(
99076
99515
  data,
99077
99516
  element,
99078
99517
  `${path}.allOf[${i}]`,
99079
- document
99518
+ document,
99519
+ visited
99080
99520
  );
99081
99521
  if (!validationResponse.isOk()) {
99082
99522
  errorCollector.append(validationResponse);
@@ -99090,8 +99530,14 @@ function validateAllOf(data, schema, path, document) {
99090
99530
  }
99091
99531
  return errorCollector.toValidationResponse();
99092
99532
  }
99093
- function validateNot(data, schema, path, document) {
99094
- const validationResponse = validateJsonSchema(data, schema.not, path, document);
99533
+ function validateNot(data, schema, path, document, visited) {
99534
+ const validationResponse = validateJsonSchemaInternal(
99535
+ data,
99536
+ schema.not,
99537
+ path,
99538
+ document,
99539
+ visited
99540
+ );
99095
99541
  if (validationResponse.isOk()) {
99096
99542
  return invalidSchemaResponseWithError(
99097
99543
  new JsonSchemaViolationError(
@@ -99101,7 +99547,7 @@ function validateNot(data, schema, path, document) {
99101
99547
  }
99102
99548
  return validSchemaResponse();
99103
99549
  }
99104
- function validateObject(data, schema, path, document) {
99550
+ function validateObject(data, schema, path, document, visited) {
99105
99551
  const schemaKeys = Object.keys(schema.properties);
99106
99552
  const requiredKeys = new Set(schema.required);
99107
99553
  const schemaKeySet = new Set(schemaKeys);
@@ -99109,11 +99555,12 @@ function validateObject(data, schema, path, document) {
99109
99555
  Object.keys(data).forEach((key) => {
99110
99556
  if (!schemaKeySet.has(key)) {
99111
99557
  errorCollector.append(
99112
- validateJsonSchema(
99558
+ validateJsonSchemaInternal(
99113
99559
  data[key],
99114
99560
  schema.additionalProperties,
99115
99561
  `${path}.additionalProperties[${key}]`,
99116
- document
99562
+ document,
99563
+ visited
99117
99564
  )
99118
99565
  );
99119
99566
  }
@@ -99130,18 +99577,19 @@ function validateObject(data, schema, path, document) {
99130
99577
  }
99131
99578
  if (keyInData) {
99132
99579
  errorCollector.append(
99133
- validateJsonSchema(
99580
+ validateJsonSchemaInternal(
99134
99581
  data[key],
99135
99582
  schema.properties[key],
99136
99583
  `${path}.${key}`,
99137
- document
99584
+ document,
99585
+ visited
99138
99586
  )
99139
99587
  );
99140
99588
  }
99141
99589
  }
99142
99590
  return errorCollector.toValidationResponse();
99143
99591
  }
99144
- function validateArray(data, schema, path, document) {
99592
+ function validateArray(data, schema, path, document, visited) {
99145
99593
  if (schema.minItems !== void 0 && data.length < schema.minItems) {
99146
99594
  return invalidSchemaResponseWithError(
99147
99595
  new MinItemsViolationError(
@@ -99159,7 +99607,13 @@ function validateArray(data, schema, path, document) {
99159
99607
  const errorCollector = new JsonSchemaErrorCollector();
99160
99608
  data.forEach(
99161
99609
  (element, index) => errorCollector.append(
99162
- validateJsonSchema(element, schema.items, `${path}[${index}]`, document)
99610
+ validateJsonSchemaInternal(
99611
+ element,
99612
+ schema.items,
99613
+ `${path}[${index}]`,
99614
+ document,
99615
+ visited
99616
+ )
99163
99617
  )
99164
99618
  );
99165
99619
  return errorCollector.toValidationResponse();
@@ -99194,7 +99648,7 @@ function validateScalar(data, schema, path) {
99194
99648
  }
99195
99649
  return validSchemaResponse();
99196
99650
  }
99197
- function validateRef(data, schema, path, document) {
99651
+ function validateRef(data, schema, path, document, visited) {
99198
99652
  if (!schema.$ref.startsWith("#")) {
99199
99653
  return invalidSchemaResponseWithError(
99200
99654
  new InvalidRefError(
@@ -99202,11 +99656,23 @@ function validateRef(data, schema, path, document) {
99202
99656
  )
99203
99657
  );
99204
99658
  }
99659
+ let refsForData = visited.get(data);
99660
+ if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
99661
+ return validSchemaResponse();
99662
+ }
99663
+ if (refsForData === void 0) {
99664
+ refsForData = /* @__PURE__ */ new Set();
99665
+ visited.set(data, refsForData);
99666
+ }
99667
+ refsForData.add(schema.$ref);
99205
99668
  try {
99206
99669
  const schemaToValidate = findSchemaAtPath(document, schema.$ref);
99207
- return validateJsonSchema(data, schemaToValidate, path, document);
99670
+ return validateJsonSchemaInternal(data, schemaToValidate, path, document, visited);
99208
99671
  } catch (e) {
99209
99672
  return invalidSchemaResponseWithError(e);
99673
+ } finally {
99674
+ refsForData.delete(schema.$ref);
99675
+ if (refsForData.size === 0) visited.delete(data);
99210
99676
  }
99211
99677
  }
99212
99678
  function validateEnum(data, enumValue, path) {
@@ -101420,6 +101886,7 @@ class Analytics__AnalyticsRepresentationInterfaceRepository extends BaseInterfac
101420
101886
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101421
101887
  AssetApiName: new BaseScalarFieldDef(true),
101422
101888
  DloActiveStatus: new BaseScalarFieldDef(true),
101889
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101423
101890
  };
101424
101891
  }
101425
101892
  get possibleTypes() {
@@ -101461,6 +101928,7 @@ class Analytics__AnalyticsRepresentationRepository extends IdentifiableGraphQLTy
101461
101928
  Dataspaces: new BaseArrayFieldDef(new BaseObjectFieldDef(this.typeRegistry.Analytics__DataspaceRepresentation, true), true),
101462
101929
  AssetApiName: new BaseScalarFieldDef(true),
101463
101930
  DloActiveStatus: new BaseScalarFieldDef(true),
101931
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101464
101932
  };
101465
101933
  }
101466
101934
  get cacheControl() {
@@ -101610,6 +102078,7 @@ class Analytics__DominoTemplateRepository extends IdentifiableGraphQLTypeReposit
101610
102078
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101611
102079
  AssetApiName: new BaseScalarFieldDef(true),
101612
102080
  DloActiveStatus: new BaseScalarFieldDef(true),
102081
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101613
102082
  };
101614
102083
  }
101615
102084
  get cacheControl() {
@@ -101646,6 +102115,7 @@ class Analytics__MktDataConnectorRepository extends IdentifiableGraphQLTypeRepos
101646
102115
  DataConnectorType: new BaseObjectFieldDef(this.typeRegistry.StringValue, true),
101647
102116
  AssetApiName: new BaseScalarFieldDef(true),
101648
102117
  DloActiveStatus: new BaseScalarFieldDef(true),
102118
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101649
102119
  };
101650
102120
  }
101651
102121
  get cacheControl() {
@@ -101684,6 +102154,7 @@ class Analytics__SemanticDefinitionRepository extends IdentifiableGraphQLTypeRep
101684
102154
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101685
102155
  AssetApiName: new BaseScalarFieldDef(true),
101686
102156
  DloActiveStatus: new BaseScalarFieldDef(true),
102157
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101687
102158
  };
101688
102159
  }
101689
102160
  get cacheControl() {
@@ -101782,6 +102253,7 @@ class Analytics__SemanticModelRepository extends IdentifiableGraphQLTypeReposito
101782
102253
  RecordOperations: new BaseArrayFieldDef(new BaseScalarFieldDef(true), true),
101783
102254
  AssetApiName: new BaseScalarFieldDef(true),
101784
102255
  DloActiveStatus: new BaseScalarFieldDef(true),
102256
+ ReusedAssetStatus: new BaseScalarFieldDef(true),
101785
102257
  };
101786
102258
  }
101787
102259
  get cacheControl() {
@@ -106364,6 +106836,11 @@ function buildCommandClass(baseClass) {
106364
106836
  Object.entries(this.latestUsedRecordIdToWeakEtagMap).forEach(([recordId, oneStoreRecordWeakEtag]) => {
106365
106837
  const normalizedLuvioRecord = this.services.luvioUiapiRecords.getNormalizedLuvioRecord(recordId, reader);
106366
106838
  if (!normalizedLuvioRecord) {
106839
+ // A record that was present when this snapshot was read
106840
+ // is now absent from the Luvio store (e.g. evicted by a
106841
+ // uiRecordApi deleteRecord). Its disappearance changes the
106842
+ // result set, so treat it as a change and re-emit.
106843
+ dataChanged = true;
106367
106844
  return;
106368
106845
  }
106369
106846
  const luvioRecordWeakEtag = normalizedLuvioRecord.weakEtag;
@@ -106812,7 +107289,7 @@ getServices(serviceRequirements).then((services) => {
106812
107289
  _(config, CONFIG_SCHEMA);
106813
107290
  const baseCommand = new graphql_imperative_ctor(config, documentRootType, services);
106814
107291
  return applyDecorators(baseCommand, [services.fetchNetworkCommandBaseClass.availableDecorators.abortable], options);
106815
- }, false);
107292
+ }, true);
106816
107293
  graphql_imperative_legacy = services.graphQLLegacyImperativeBindings.bind(({ config, assertIsValid }) => {
106817
107294
  const _ = assertIsValid;
106818
107295
  _(config, CONFIG_SCHEMA);
@@ -106865,7 +107342,7 @@ function registerCallback(cb) {
106865
107342
  cb(graphql_v1_import, graphql_imperative$1, graphql_imperative_legacy_v1_import, graphql_state_manager, useOneStoreGraphQL);
106866
107343
  }
106867
107344
  }
106868
- // version: 1.428.0-dev2-2d5e0a6e5f
107345
+ // version: 1.428.0-dev20-d72ac06681
106869
107346
 
106870
107347
  function createFragmentMap(documentNode) {
106871
107348
  const fragments = {};
@@ -110927,7 +111404,7 @@ function getInContextFragmentType$1K(fragment, fragmentMap) {
110927
111404
  }
110928
111405
 
110929
111406
  const name$1k = 'Analytics__SemanticModel';
110930
- const VERSION$1B = 'f1919b0768e93d3885cd5b983e61a194';
111407
+ const VERSION$1B = '0c41256ae05a32ed1af0deea45e4906e';
110931
111408
  function keyBuilder$1p(luvio, path, data) {
110932
111409
  return keyPrefix$1 + '::uiapi::' + name$1k + '::' + data.Id; // We're missing idNodeName in the actual key here...
110933
111410
  }
@@ -111243,6 +111720,12 @@ function getFieldType$1J(field) {
111243
111720
  typename: 'Boolean'
111244
111721
  };
111245
111722
  }
111723
+ case 'ReusedAssetStatus': {
111724
+ return {
111725
+ isArray: false,
111726
+ typename: 'String'
111727
+ };
111728
+ }
111246
111729
  default:
111247
111730
  return undefined;
111248
111731
  }
@@ -111309,7 +111792,7 @@ function getInContextFragmentType$1J(fragment, fragmentMap) {
111309
111792
  }
111310
111793
 
111311
111794
  const name$1j = 'Analytics__SemanticDefinition';
111312
- const VERSION$1A = 'f2f3d7655e13edcb6330eee2b54a7c3e';
111795
+ const VERSION$1A = 'df1ed427fbc57558390ff0e3537f2290';
111313
111796
  function keyBuilder$1o(luvio, path, data) {
111314
111797
  return keyPrefix$1 + '::uiapi::' + name$1j + '::' + data.Id; // We're missing idNodeName in the actual key here...
111315
111798
  }
@@ -111651,6 +112134,12 @@ function getFieldType$1I(field) {
111651
112134
  typename: 'Boolean'
111652
112135
  };
111653
112136
  }
112137
+ case 'ReusedAssetStatus': {
112138
+ return {
112139
+ isArray: false,
112140
+ typename: 'String'
112141
+ };
112142
+ }
111654
112143
  default:
111655
112144
  return undefined;
111656
112145
  }
@@ -111722,7 +112211,7 @@ function getInContextFragmentType$1I(fragment, fragmentMap) {
111722
112211
  }
111723
112212
 
111724
112213
  const name$1i = 'Analytics__DominoTemplate';
111725
- const VERSION$1z = 'c253660a6d3fad6b0556236ab107b5f6';
112214
+ const VERSION$1z = 'fda433601cadf10ecc8a0de3d54052ee';
111726
112215
  function keyBuilder$1n(luvio, path, data) {
111727
112216
  return keyPrefix$1 + '::uiapi::' + name$1i + '::' + data.Id; // We're missing idNodeName in the actual key here...
111728
112217
  }
@@ -112045,6 +112534,12 @@ function getFieldType$1H(field) {
112045
112534
  typename: 'Boolean'
112046
112535
  };
112047
112536
  }
112537
+ case 'ReusedAssetStatus': {
112538
+ return {
112539
+ isArray: false,
112540
+ typename: 'String'
112541
+ };
112542
+ }
112048
112543
  default:
112049
112544
  return undefined;
112050
112545
  }
@@ -112106,7 +112601,7 @@ function getInContextFragmentType$1H(fragment, fragmentMap) {
112106
112601
  }
112107
112602
 
112108
112603
  const name$1h = 'Analytics__AnalyticsRepresentation';
112109
- const VERSION$1y = 'ac72d1c80cd40da609e0deb08f7aa498';
112604
+ const VERSION$1y = 'b299cf324d3e10f682533db156b3db05';
112110
112605
  function keyBuilder$1m(luvio, path, data) {
112111
112606
  return keyPrefix$1 + '::uiapi::' + name$1h + '::' + data.Id; // We're missing idNodeName in the actual key here...
112112
112607
  }
@@ -112407,6 +112902,12 @@ function getFieldType$1G(field) {
112407
112902
  typename: 'Boolean'
112408
112903
  };
112409
112904
  }
112905
+ case 'ReusedAssetStatus': {
112906
+ return {
112907
+ isArray: false,
112908
+ typename: 'String'
112909
+ };
112910
+ }
112410
112911
  default:
112411
112912
  return undefined;
112412
112913
  }
@@ -112468,7 +112969,7 @@ function getInContextFragmentType$1G(fragment, fragmentMap) {
112468
112969
  }
112469
112970
 
112470
112971
  const name$1g = 'Analytics__MktDataConnector';
112471
- const VERSION$1x = 'a8c9731c67bcbcde83c6e5bacb3299b4';
112972
+ const VERSION$1x = 'b0f45c68439021ded5640b5e3920ee2f';
112472
112973
  function keyBuilder$1l(luvio, path, data) {
112473
112974
  return keyPrefix$1 + '::uiapi::' + name$1g + '::' + data.Id; // We're missing idNodeName in the actual key here...
112474
112975
  }
@@ -112780,6 +113281,12 @@ function getFieldType$1F(field) {
112780
113281
  typename: 'Boolean'
112781
113282
  };
112782
113283
  }
113284
+ case 'ReusedAssetStatus': {
113285
+ return {
113286
+ isArray: false,
113287
+ typename: 'String'
113288
+ };
113289
+ }
112783
113290
  default:
112784
113291
  return undefined;
112785
113292
  }
@@ -113017,6 +113524,12 @@ function getFieldType$1E(field) {
113017
113524
  typename: 'Boolean'
113018
113525
  };
113019
113526
  }
113527
+ case 'ReusedAssetStatus': {
113528
+ return {
113529
+ isArray: false,
113530
+ typename: 'String'
113531
+ };
113532
+ }
113020
113533
  default:
113021
113534
  return undefined;
113022
113535
  }
@@ -136102,7 +136615,7 @@ register$1({
136102
136615
  configuration: { ...configurationForGraphQLAdapters$1 },
136103
136616
  instrument: instrument$1,
136104
136617
  });
136105
- // version: 1.428.0-dev2-2d5e0a6e5f
136618
+ // version: 1.428.0-dev20-d72ac06681
136106
136619
 
136107
136620
  // On core the unstable adapters are re-exported with different names,
136108
136621
  // we want to match them here.
@@ -136254,7 +136767,7 @@ withDefaultLuvio((luvio) => {
136254
136767
  unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
136255
136768
  graphQLImperative = ldsAdapter;
136256
136769
  });
136257
- // version: 1.428.0-dev2-2d5e0a6e5f
136770
+ // version: 1.428.0-dev20-d72ac06681
136258
136771
 
136259
136772
  var gqlApi = /*#__PURE__*/Object.freeze({
136260
136773
  __proto__: null,
@@ -137053,7 +137566,7 @@ const callbacks$1 = [];
137053
137566
  function register(r) {
137054
137567
  callbacks$1.forEach((callback) => callback(r));
137055
137568
  }
137056
- // version: 1.428.0-dev2-ad2109c7a1
137569
+ // version: 1.428.0-dev20-1b319a0432
137057
137570
 
137058
137571
  /**
137059
137572
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -138369,4 +138882,4 @@ const { luvio } = getRuntime();
138369
138882
  setDefaultLuvio({ luvio });
138370
138883
 
138371
138884
  export { createPrimingSession, draftManager, draftQueue, evictCacheRecordsByIds, evictExpiredCacheEntries, executeAdapter, executeMutatingAdapter, getImperativeAdapterNames, importLuvioAdapterModule, importOneStoreAdapterModule, invokeAdapter, invokeAdapterWithDraftToMerge, invokeAdapterWithDraftToReplace, invokeAdapterWithMetadata, nimbusDraftQueue, registerReportObserver, setMetadataTTL, setUiApiRecordTTL, stopEviction, subscribeToAdapter };
138372
- // version: 1.428.0-dev2-ad2109c7a1
138885
+ // version: 1.428.0-dev20-1b319a0432