@salesforce/lds-runtime-mobile 1.376.0 → 1.377.1

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.
package/dist/main.js CHANGED
@@ -20,9 +20,10 @@ import { setupInstrumentation, instrumentAdapter as instrumentAdapter$1, instrum
20
20
  import { HttpStatusCode, setBypassDeepFreeze, StoreKeySet, serializeStructuredKey, StringKeyInMemoryStore, Reader, deepFreeze, emitAdapterEvent, ingestShape, coerceConfig as coerceConfig$1, typeCheckConfig as typeCheckConfig$h, createResourceParams as createResourceParams$h, StoreKeyMap, buildNetworkSnapshotCachePolicy as buildNetworkSnapshotCachePolicy$f, resolveLink, createCustomAdapterEventEmitter, isFileReference, Environment, Luvio, InMemoryStore } from '@luvio/engine';
21
21
  import { isSupportedEntity, configuration, getObjectInfoAdapterFactory, RECORD_ID_PREFIX, RECORD_FIELDS_KEY_JUNCTION, isStoreKeyRecordViewEntity, extractRecordIdFromStoreKey, buildRecordRepKeyFromId, keyBuilderRecord, RecordRepresentationTTL, keyBuilderQuickActionExecutionRepresentation, ingestQuickActionExecutionRepresentation, getRecordId18 as getRecordId18$1, getRecordsAdapterFactory as getRecordsAdapterFactory$1, RecordRepresentationRepresentationType, ObjectInfoRepresentationType, getObjectInfosAdapterFactory, getObjectInfoDirectoryAdapterFactory, UiApiNamespace, RecordRepresentationType, RecordRepresentationVersion } from '@salesforce/lds-adapters-uiapi';
22
22
  import { getInstrumentation, idleDetector } from 'o11y/client';
23
- import { Kind as Kind$1, visit as visit$1, isObjectType, defaultFieldResolver, buildSchema, parse as parse$8, extendSchema, isScalarType, execute, print } from '@luvio/graphql-parser';
23
+ import { Kind as Kind$2, visit as visit$2, isObjectType, defaultFieldResolver, buildSchema, parse as parse$8, extendSchema, isScalarType, execute, print as print$1 } from '@luvio/graphql-parser';
24
24
  import FIRST_DAY_OF_WEEK from '@salesforce/i18n/firstDayOfWeek';
25
25
  import graphqQueryFieldLimit from '@salesforce/gate/lmr.graphqQueryFieldLimit';
26
+ import graphqlPartialEmitParity from '@salesforce/gate/lmr.graphqlPartialEmitParity';
26
27
  import caseSensitiveUserId from '@salesforce/user/Id';
27
28
  import { instrument as instrument$1 } from '@salesforce/lds-bindings';
28
29
  import ldsAdapterO11yLoggingGate from '@salesforce/gate/lmr.ldsAdapterO11yLogging';
@@ -41,6 +42,7 @@ import graphqlL2AdapterGate from '@salesforce/gate/lmr.graphqlL2Adapter';
41
42
  import productConsumedSideEffects from '@salesforce/gate/com.salesforce.fieldservice.vanStockLDSBypass256';
42
43
  import useOneStore from '@salesforce/gate/lmr.useOneStore';
43
44
  import { setServices } from '@luvio/service-provisioner/v1';
45
+ import '@luvio/type-normalization/v1';
44
46
 
45
47
  /**
46
48
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -50,7 +52,7 @@ import { setServices } from '@luvio/service-provisioner/v1';
50
52
 
51
53
 
52
54
  const { parse: parse$7, stringify: stringify$7 } = JSON;
53
- const { join: join$1, push: push$2, unshift } = Array.prototype;
55
+ const { join: join$2, push: push$2, unshift } = Array.prototype;
54
56
  const { isArray: isArray$5 } = Array;
55
57
  const { entries: entries$4, keys: keys$6 } = Object;
56
58
 
@@ -184,14 +186,14 @@ function buildAggregateUiUrl$1(params, resourceRequest) {
184
186
  const { fields, optionalFields } = params;
185
187
  const queryString = [];
186
188
  if (fields !== undefined && fields.length > 0) {
187
- const fieldString = join$1.call(fields, ',');
189
+ const fieldString = join$2.call(fields, ',');
188
190
  push$2.call(queryString, `fields=${encodeURIComponent(fieldString)}`);
189
191
  }
190
192
  if (optionalFields !== undefined && optionalFields.length > 0) {
191
- const optionalFieldString = join$1.call(optionalFields, ',');
193
+ const optionalFieldString = join$2.call(optionalFields, ',');
192
194
  push$2.call(queryString, `optionalFields=${encodeURIComponent(optionalFieldString)}`);
193
195
  }
194
- return `${resourceRequest.baseUri}${resourceRequest.basePath}?${join$1.call(queryString, '&')}`;
196
+ return `${resourceRequest.baseUri}${resourceRequest.basePath}?${join$2.call(queryString, '&')}`;
195
197
  }
196
198
  function buildGetRecordByFieldsCompositeRequest(resourceRequest, recordsCompositeRequest) {
197
199
  const { fieldsArray, optionalFieldsArray, fieldsLength, optionalFieldsLength } = recordsCompositeRequest;
@@ -43943,6 +43945,7 @@ function createContext(store, objectInfos, eventEmitter, settings, snapshot, map
43943
43945
  possibleStaleRecordMap: new Map(),
43944
43946
  draftFunctions,
43945
43947
  mappedCursors,
43948
+ missingFieldsMap: new Map(),
43946
43949
  };
43947
43950
  }
43948
43951
 
@@ -45314,25 +45317,25 @@ function isObjectValueNode(node) {
45314
45317
  return node.kind === 'ObjectValue';
45315
45318
  }
45316
45319
  function isStringValueNode(node) {
45317
- return node.kind === Kind$1.STRING;
45320
+ return node.kind === Kind$2.STRING;
45318
45321
  }
45319
45322
  function isIntValueNode(node) {
45320
- return node.kind === Kind$1.INT;
45323
+ return node.kind === Kind$2.INT;
45321
45324
  }
45322
45325
  function isVariableNode(node) {
45323
- return node.kind === Kind$1.VARIABLE;
45326
+ return node.kind === Kind$2.VARIABLE;
45324
45327
  }
45325
45328
  function isFieldNode(node) {
45326
45329
  return node !== undefined && node.kind !== undefined ? node.kind === 'Field' : false;
45327
45330
  }
45328
45331
  function isFieldOrInlineFragmentNode(node) {
45329
45332
  return node !== undefined && node.kind !== undefined
45330
- ? node.kind === 'Field' || node.kind === Kind$1.INLINE_FRAGMENT
45333
+ ? node.kind === 'Field' || node.kind === Kind$2.INLINE_FRAGMENT
45331
45334
  : false;
45332
45335
  }
45333
45336
  function isInlineFragmentNode(node) {
45334
45337
  return node !== undefined && node.kind !== undefined
45335
- ? node.kind === Kind$1.INLINE_FRAGMENT
45338
+ ? node.kind === Kind$2.INLINE_FRAGMENT
45336
45339
  : false;
45337
45340
  }
45338
45341
  function isCompoundPredicate(predicate) {
@@ -45541,9 +45544,9 @@ function isCapableRelationship(node) {
45541
45544
  function isScopeArgumentNodeWithType(node, scopeType, variables) {
45542
45545
  if (node.name.value !== 'scope')
45543
45546
  return false;
45544
- if (node.value.kind !== Kind$1.ENUM && node.value.kind !== Kind$1.VARIABLE)
45547
+ if (node.value.kind !== Kind$2.ENUM && node.value.kind !== Kind$2.VARIABLE)
45545
45548
  return false;
45546
- if (node.value.kind === Kind$1.ENUM) {
45549
+ if (node.value.kind === Kind$2.ENUM) {
45547
45550
  if (node.value.value === scopeType) {
45548
45551
  return true;
45549
45552
  }
@@ -45650,7 +45653,7 @@ function isInlineFragmentFieldSpanning(node) {
45650
45653
  if (!node.selectionSet)
45651
45654
  return false;
45652
45655
  return node.selectionSet.selections.some((selection) => {
45653
- if (selection.kind !== Kind$1.INLINE_FRAGMENT)
45656
+ if (selection.kind !== Kind$2.INLINE_FRAGMENT)
45654
45657
  return false;
45655
45658
  return isFieldSpanning(selection, node);
45656
45659
  });
@@ -46190,7 +46193,7 @@ const base64decode = typeof atob === 'function' ? atob : atobPolyfill;
46190
46193
  /**
46191
46194
  * The set of allowed kind values for AST nodes.
46192
46195
  */
46193
- var Kind = Object.freeze({
46196
+ var Kind$1 = Object.freeze({
46194
46197
  // Name
46195
46198
  NAME: 'Name',
46196
46199
  // Document
@@ -46386,7 +46389,7 @@ defineInspect(Token);
46386
46389
  * @internal
46387
46390
  */
46388
46391
 
46389
- function isNode(maybeNode) {
46392
+ function isNode$1(maybeNode) {
46390
46393
  return maybeNode != null && typeof maybeNode.kind === 'string';
46391
46394
  }
46392
46395
  /**
@@ -46394,17 +46397,17 @@ function isNode(maybeNode) {
46394
46397
  */
46395
46398
 
46396
46399
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
46397
- var MAX_ARRAY_LENGTH = 10;
46398
- var MAX_RECURSIVE_DEPTH = 2;
46400
+ var MAX_ARRAY_LENGTH$1 = 10;
46401
+ var MAX_RECURSIVE_DEPTH$1 = 2;
46399
46402
  /**
46400
46403
  * Used to print values in error messages.
46401
46404
  */
46402
46405
 
46403
- function inspect(value) {
46404
- return formatValue(value, []);
46406
+ function inspect$1(value) {
46407
+ return formatValue$1(value, []);
46405
46408
  }
46406
46409
 
46407
- function formatValue(value, seenValues) {
46410
+ function formatValue$1(value, seenValues) {
46408
46411
  switch (_typeof(value)) {
46409
46412
  case 'string':
46410
46413
  return JSON.stringify(value);
@@ -46417,14 +46420,14 @@ function formatValue(value, seenValues) {
46417
46420
  return 'null';
46418
46421
  }
46419
46422
 
46420
- return formatObjectValue(value, seenValues);
46423
+ return formatObjectValue$1(value, seenValues);
46421
46424
 
46422
46425
  default:
46423
46426
  return String(value);
46424
46427
  }
46425
46428
  }
46426
46429
 
46427
- function formatObjectValue(value, previouslySeenValues) {
46430
+ function formatObjectValue$1(value, previouslySeenValues) {
46428
46431
  if (previouslySeenValues.indexOf(value) !== -1) {
46429
46432
  return '[Circular]';
46430
46433
  }
@@ -46436,48 +46439,48 @@ function formatObjectValue(value, previouslySeenValues) {
46436
46439
  var customValue = customInspectFn.call(value); // check for infinite recursion
46437
46440
 
46438
46441
  if (customValue !== value) {
46439
- return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);
46442
+ return typeof customValue === 'string' ? customValue : formatValue$1(customValue, seenValues);
46440
46443
  }
46441
46444
  } else if (Array.isArray(value)) {
46442
- return formatArray(value, seenValues);
46445
+ return formatArray$1(value, seenValues);
46443
46446
  }
46444
46447
 
46445
- return formatObject(value, seenValues);
46448
+ return formatObject$1(value, seenValues);
46446
46449
  }
46447
46450
 
46448
- function formatObject(object, seenValues) {
46451
+ function formatObject$1(object, seenValues) {
46449
46452
  var keys = Object.keys(object);
46450
46453
 
46451
46454
  if (keys.length === 0) {
46452
46455
  return '{}';
46453
46456
  }
46454
46457
 
46455
- if (seenValues.length > MAX_RECURSIVE_DEPTH) {
46456
- return '[' + getObjectTag(object) + ']';
46458
+ if (seenValues.length > MAX_RECURSIVE_DEPTH$1) {
46459
+ return '[' + getObjectTag$1(object) + ']';
46457
46460
  }
46458
46461
 
46459
46462
  var properties = keys.map(function (key) {
46460
- var value = formatValue(object[key], seenValues);
46463
+ var value = formatValue$1(object[key], seenValues);
46461
46464
  return key + ': ' + value;
46462
46465
  });
46463
46466
  return '{ ' + properties.join(', ') + ' }';
46464
46467
  }
46465
46468
 
46466
- function formatArray(array, seenValues) {
46469
+ function formatArray$1(array, seenValues) {
46467
46470
  if (array.length === 0) {
46468
46471
  return '[]';
46469
46472
  }
46470
46473
 
46471
- if (seenValues.length > MAX_RECURSIVE_DEPTH) {
46474
+ if (seenValues.length > MAX_RECURSIVE_DEPTH$1) {
46472
46475
  return '[Array]';
46473
46476
  }
46474
46477
 
46475
- var len = Math.min(MAX_ARRAY_LENGTH, array.length);
46478
+ var len = Math.min(MAX_ARRAY_LENGTH$1, array.length);
46476
46479
  var remaining = array.length - len;
46477
46480
  var items = [];
46478
46481
 
46479
46482
  for (var i = 0; i < len; ++i) {
46480
- items.push(formatValue(array[i], seenValues));
46483
+ items.push(formatValue$1(array[i], seenValues));
46481
46484
  }
46482
46485
 
46483
46486
  if (remaining === 1) {
@@ -46501,7 +46504,7 @@ function getCustomFn(object) {
46501
46504
  }
46502
46505
  }
46503
46506
 
46504
- function getObjectTag(object) {
46507
+ function getObjectTag$1(object) {
46505
46508
  var tag = Object.prototype.toString.call(object).replace(/^\[object /, '').replace(/]$/, '');
46506
46509
 
46507
46510
  if (tag === 'Object' && typeof object.constructor === 'function') {
@@ -46520,7 +46523,7 @@ function getObjectTag(object) {
46520
46523
  * relevant functions to be called during the visitor's traversal.
46521
46524
  */
46522
46525
 
46523
- var QueryDocumentKeys = {
46526
+ var QueryDocumentKeys$1 = {
46524
46527
  Name: [],
46525
46528
  Document: ['definitions'],
46526
46529
  OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],
@@ -46567,7 +46570,7 @@ var QueryDocumentKeys = {
46567
46570
  EnumTypeExtension: ['name', 'directives', 'values'],
46568
46571
  InputObjectTypeExtension: ['name', 'directives', 'fields']
46569
46572
  };
46570
- var BREAK = Object.freeze({});
46573
+ var BREAK$1 = Object.freeze({});
46571
46574
  /**
46572
46575
  * visit() will walk through an AST using a depth-first traversal, calling
46573
46576
  * the visitor's enter function at each node in the traversal, and calling the
@@ -46655,8 +46658,8 @@ var BREAK = Object.freeze({});
46655
46658
  * })
46656
46659
  */
46657
46660
 
46658
- function visit(root, visitor) {
46659
- var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;
46661
+ function visit$1(root, visitor) {
46662
+ var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys$1;
46660
46663
 
46661
46664
  /* eslint-disable no-undef-init */
46662
46665
  var stack = undefined;
@@ -46736,8 +46739,8 @@ function visit(root, visitor) {
46736
46739
  var result = void 0;
46737
46740
 
46738
46741
  if (!Array.isArray(node)) {
46739
- if (!isNode(node)) {
46740
- throw new Error("Invalid AST Node: ".concat(inspect(node), "."));
46742
+ if (!isNode$1(node)) {
46743
+ throw new Error("Invalid AST Node: ".concat(inspect$1(node), "."));
46741
46744
  }
46742
46745
 
46743
46746
  var visitFn = getVisitFn(visitor, node.kind, isLeaving);
@@ -46745,7 +46748,7 @@ function visit(root, visitor) {
46745
46748
  if (visitFn) {
46746
46749
  result = visitFn.call(visitor, node, key, parent, path, ancestors);
46747
46750
 
46748
- if (result === BREAK) {
46751
+ if (result === BREAK$1) {
46749
46752
  break;
46750
46753
  }
46751
46754
 
@@ -46758,7 +46761,7 @@ function visit(root, visitor) {
46758
46761
  edits.push([key, result]);
46759
46762
 
46760
46763
  if (!isLeaving) {
46761
- if (isNode(result)) {
46764
+ if (isNode$1(result)) {
46762
46765
  node = result;
46763
46766
  } else {
46764
46767
  path.pop();
@@ -46934,7 +46937,7 @@ function decodeV1Cursor(base64cursor) {
46934
46937
  function selectionIncludesHasNextPage(selections, fragments) {
46935
46938
  for (let selection of selections) {
46936
46939
  switch (selection.kind) {
46937
- case Kind.FIELD: {
46940
+ case Kind$1.FIELD: {
46938
46941
  if (selection.name.value === 'pageInfo') {
46939
46942
  if (!selection.selectionSet)
46940
46943
  continue;
@@ -46945,7 +46948,7 @@ function selectionIncludesHasNextPage(selections, fragments) {
46945
46948
  }
46946
46949
  break;
46947
46950
  }
46948
- case Kind.FRAGMENT_SPREAD: {
46951
+ case Kind$1.FRAGMENT_SPREAD: {
46949
46952
  let fragment = fragments[selection.name.value];
46950
46953
  if (!fragment)
46951
46954
  return false;
@@ -46954,7 +46957,7 @@ function selectionIncludesHasNextPage(selections, fragments) {
46954
46957
  }
46955
46958
  break;
46956
46959
  }
46957
- case Kind.INLINE_FRAGMENT:
46960
+ case Kind$1.INLINE_FRAGMENT:
46958
46961
  if (selectionIncludesHasNextPage(selection.selectionSet.selections, fragments)) {
46959
46962
  return true;
46960
46963
  }
@@ -47010,7 +47013,7 @@ function mapCursorValue(originalValue, paginationMetadata) {
47010
47013
  async function mapPaginationCursors(originalAST, variables, store) {
47011
47014
  // first pass, identify record query cache keys for reading pagination metadata
47012
47015
  let requiredPaginationMetadataKeys = [];
47013
- visit$1(originalAST, {
47016
+ visit$2(originalAST, {
47014
47017
  Field(node, _key, _parent, _path, ancestors) {
47015
47018
  // is it a record query?
47016
47019
  if (!isRecordQuery(node)) {
@@ -47038,7 +47041,7 @@ async function mapPaginationCursors(originalAST, variables, store) {
47038
47041
  // holds the original cursor values that were mapped back to server cursors
47039
47042
  let mappedCursors = new Map();
47040
47043
  // rewrite nodes/variables with mapped cursors now that we read the pagination metadata
47041
- let ast = visit$1(originalAST, {
47044
+ let ast = visit$2(originalAST, {
47042
47045
  Field(node, _key, _parent, _path, ancestors) {
47043
47046
  // is it a record query?
47044
47047
  if (!isRecordQuery(node)) {
@@ -47544,8 +47547,17 @@ function addResolversToSchema(schema, polyFields) {
47544
47547
  field.resolve = connectionResolver;
47545
47548
  }
47546
47549
  else {
47547
- field.resolve = function recordFieldResolver({ recordRepresentation: record, }) {
47548
- return record.fields[field.name] || null;
47550
+ field.resolve = function recordFieldResolver({ recordRepresentation: record }, _args, { missingFieldsMap }) {
47551
+ const { id, fields } = record;
47552
+ const recordField = fields[field.name];
47553
+ // If the field is not present, add it to the missing fields map
47554
+ if (!recordField) {
47555
+ let missingFieldsSet = missingFieldsMap.get(id) ?? new Set();
47556
+ missingFieldsSet.add(field.name);
47557
+ missingFieldsMap.set(id, missingFieldsSet);
47558
+ return null;
47559
+ }
47560
+ return recordField;
47549
47561
  };
47550
47562
  }
47551
47563
  }
@@ -47601,7 +47613,7 @@ function isRecordType(type) {
47601
47613
  return Boolean(interfaces.find((iface) => iface.name === 'Record'));
47602
47614
  }
47603
47615
 
47604
- var uiapiSchemaString = "scalar String\nscalar DateTime\nscalar Currency\nscalar ID\nscalar Boolean\nscalar Longitude\nscalar Float\nscalar MultiPicklist\nscalar Base64\nscalar Url\nscalar PhoneNumber\nscalar Email\nscalar TextArea\nscalar Latitude\nscalar Picklist\nscalar RichTextArea\nscalar EncryptedString\nscalar Double\nscalar Long\nscalar JSON\nscalar Time\nscalar Int\nscalar Percent\nscalar LongTextArea\nscalar IdOrRef\nscalar Date\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 analytics: Analytics__Analytics! @fieldCategory\n setup: Setup__Setup! @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 PolymorphicParentRelationshipRecordOrderBy @generic {\n RecordOrderBy: RecordOrderBy @fieldCategory\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 RecordCreatePayload @generic {\n Record: RecordRepresentation\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\ninput PolymorphicParentRelationshipGroupBy @generic {\n RecordGroupBy: RecordGroupBy @fieldCategory\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 allOrNone: Boolean = true\n}\n\ntype BooleanValue implements FieldValue {\n value: Boolean\n displayValue: String\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 StringValue implements FieldValue {\n value: String\n displayValue: String\n label: 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\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\ninput Setup__SetupOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipRecordOrderBy @fieldCategory\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\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\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 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\ntype RelatedListInfo {\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): [ObjectInfo]\n relatedListByName(parentApiName: String!, relatedListName: String!): RelatedListInfo\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\ninput BooleanOperators {\n eq: Boolean\n ne: Boolean\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\n#enum OrderByType {\n#}\n\ninput GroupByDateFunction {\n function: GroupByFunction\n}\n\ntype RichTextAreaValue implements FieldValue {\n value: RichTextArea\n displayValue: String\n}\n\ntype MultiPicklistValue implements FieldValue {\n value: MultiPicklist\n displayValue: String\n label: String\n}\n\ntype Setup__SetupEdge @generic {\n node: Setup__EntityRepresentation\n cursor: 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\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}\n\ntype ListColumn {\n fieldApiName: String!\n label: String!\n lookupId: String\n sortable: Boolean\n}\n\ntype Setup__SetupQuery {\n # scope should be RecordScope, but it is an empty enum\n recordQuery(after: String, first: Int, orderBy: Setup__SetupOrderBy, scope: String @fieldCategory, upperBound: Int, where: Setup__SetupFilter): Setup__SetupConnection @fieldCategory\n}\n\ntype Setup__SetupQueryAggregate {\n recordQueryAggregate(after: String, first: Int, groupBy: Setup__SetupGroupBy, orderBy: Setup__SetupAggregateOrderBy, scope: String @fieldCategory, upperBound: Int, where: Setup__SetupFilter): Setup__SetupAggregateConnection @fieldCategory\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 LongAggregate: LongAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @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\ntype Setup__SetupRecordResult @generic {\n aggregate: Setup__SetupRecordAggregate\n}\n\ntype SObject__Field {\n name: String!\n value: String\n}\n\nenum SObject__FieldType {\n ALL\n CUSTOM\n STANDARD\n}\n\ntype Setup__EntityRepresentation @generic {\n Id: ID!\n ApiName: String!\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 Entity__fields(type: SObject__FieldType): [SObject__Field]!\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 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 AnyType: AnyType @fieldCategory\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\ninput DistanceInput {\n latitude: Latitude!\n longitude: Longitude!\n}\n\nunion PolymorphicAggregateParentRelationship @generic = RecordAggregate\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}\n\ntype LatitudeValue implements FieldValue {\n value: Latitude\n displayValue: String\n}\n\ninput OrderByClause {\n order: ResultOrder\n nulls: NullOrder\n}\n\ninput GroupByClause {\n group: Boolean\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 RecordEdge @generic {\n node: RecordRepresentation\n cursor: String!\n}\n\nunion Setup__SetupPolymorphicParentRelationship @generic = Setup__EntityRepresentation\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\nenum NullOrder {\n FIRST\n LAST\n}\n\ntype PhoneNumberValue implements FieldValue {\n value: PhoneNumber\n displayValue: String\n}\n\n# Cannot have empty enum\n# enum RecordScope @generic {\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\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\ntype __Field {\n name: String!\n description: String\n args: [__InputValue!]!\n type: __Type!\n isDeprecated: Boolean!\n deprecationReason: String\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\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}\n\ntype RecordUpdatePayload @generic {\n success: Boolean\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\ninput Setup__SetupPolymorphicParentRelationshipRecordOrderBy @generic {\n Setup__SetupOrderBy: Setup__SetupOrderBy @fieldCategory\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\ntype __InputValue {\n name: String!\n description: String\n type: __Type!\n defaultValue: String\n}\n\ntype RecordAggregateEdge @generic {\n node: RecordResult\n cursor: String!\n}\n\ntype __Directive {\n name: String\n description: String\n locations: [__DirectiveLocation!]\n args: [__InputValue!]!\n}\n\ninput RecordCreateInput @generic {\n record: RecordCreateRepresentation! @fieldCategory\n}\n\ntype ThemeInfo {\n color: String\n iconUrl: String\n}\n\ninput AggregateOrderByStringClause {\n function: AggregateOrderByStringFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype RecordDeletePayload {\n Id: ID\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\nenum DateLiteral {\n LAST_YEAR\n LAST_WEEK\n THIS_QUARTER\n NEXT_FISCAL_YEAR\n LAST_QUARTER\n TOMORROW\n NEXT_FISCAL_QUARTER\n YESTERDAY\n NEXT_QUARTER\n THIS_FISCAL_QUARTER\n THIS_WEEK\n LAST_MONTH\n LAST_90_DAYS\n NEXT_90_DAYS\n THIS_FISCAL_YEAR\n NEXT_WEEK\n TODAY\n NEXT_YEAR\n NEXT_MONTH\n LAST_FISCAL_QUARTER\n THIS_MONTH\n LAST_FISCAL_YEAR\n THIS_YEAR\n}\n\ntype __EnumValue {\n name: String!\n description: String\n isDeprecated: Boolean!\n deprecationReason: String\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 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 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 AnyType: AnyType @fieldCategory\n}\n\nunion AnyType = BooleanValue | DateValue | DateTimeValue | DoubleValue | StringValue\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\ninput OrderByGeolocationClause {\n distance: DistanceInput\n order: ResultOrder\n nulls: NullOrder\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\nenum NullsOrder {\n FIRST\n LAST\n}\n\ntype TextAreaAggregate implements FieldValue {\n value: TextArea\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: TextAreaValue\n min: TextAreaValue\n}\n\nenum GroupByType {\n GROUP_BY\n ROLLUP\n CUBE\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 Setup__JoinInput {\n Record: Setup__SetupFilter @fieldCategory\n ApiName: String\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\nenum ResultsOrder {\n ASC\n DESC\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\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 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\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\ninput RecordDeleteInput {\n Id: IdOrRef!\n}\n\nenum __DirectiveLocation {\n QUERY\n MUTATION\n FIELD\n FRAGMENT_DEFINITION\n FRAGMENT_SPREAD\n INLINE_FRAGMENT\n SCHEMA\n SCALAR\n OBJECT\n FIELD_DEFINITION\n ARGUMENT_DEFINITION\n INTERFACE\n UNION\n ENUM\n ENUM_VALUE\n INPUT_OBJECT\n INPUT_FIELD_DEFINITION\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 ListOrder {\n fieldApiName: String!\n sortDirection: ResultOrder\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\ntype JSONValue implements FieldValue {\n value: JSON\n displayValue: String\n}\n\ntype EmailValue implements FieldValue {\n value: Email\n displayValue: String\n}\n\ntype Setup__Setup {\n query: Setup__SetupQuery!\n aggregate: Setup__SetupQueryAggregate!\n ListView(\n listViewType: String!,\n label: String,\n displayColumns: [String!],\n filters: [Setup__ListFilterInput!],\n filterLogic: String,\n orderedByInfo: [Setup__ListOrderInput!]!\n ): Setup__ListView!\n ListViewObjectInfo(listViewType: String!): Setup__ListViewObjectInfo!\n}\n\ntype Setup__SetupAggregateConnection @generic {\n edges: [Setup__SetupAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ninput Setup__SetupGroupBy @generic {\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableField: GroupByClause @fieldCategory\n groupableParentRelationship: Setup__SetupGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\ntype Setup__SetupAggregateEdge @generic {\n cursor: String!\n node: Setup__SetupRecordResult\n}\n\ninput Setup__SetupAggregateOrderBy @generic {\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableParentRelationship: Setup__SetupAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipOrderBy @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n type: String\n}\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\ninput DateFunctionInput {\n value: LongOperators\n convertTimezoneValue: LongOperators\n}\n\n# Mutations aren't supported yet.\n#type Mutation {\n# uiapi(input: UIAPIMutationsInput): UIAPIMutations!\n#}\n\ntype DependentField {\n controllingField: String!\n dependentFields: [String]!\n}\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\nenum __TypeKind {\n SCALAR\n OBJECT\n INTERFACE\n UNION\n ENUM\n INPUT_OBJECT\n LIST\n NON_NULL\n}\n\ntype Setup__SetupConnection @generic {\n edges: [Setup__SetupEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype PercentValue implements FieldValue {\n value: Percent\n displayValue: String\n format: String\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\ninput NoFunctionAggregateOrderByClause {\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype BooleanAggregate implements FieldValue {\n value: Boolean\n displayValue: String\n grouping: IntValue\n}\n\ntype RecordQueryAggregate {\n # RecordScope is replaced with String\n recordQueryAggregate(after: String, first: Int, groupBy: RecordGroupBy, orderBy: RecordAggregateOrderBy, scope: String @fieldCategory, upperBound: Int, where: RecordFilter): RecordAggregateConnection @fieldCategory\n}\n\ninput RecordAggregateOrderBy @generic {\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableParentRelationship: RecordAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipOrderBy @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n type: String\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\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\ntype 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\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 DateTimeFunctionInput {\n value: DatePrimitiveOperators\n convertTimezoneValue: DatePrimitiveOperators\n}\n\ntype Base64Value implements FieldValue {\n value: Base64\n displayValue: String\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\ninput AggregateOrderByNumberClause {\n function: AggregateOrderByNumberFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype __Schema {\n types: [__Type!]!\n queryType: __Type!\n mutationType: __Type\n directives: [__Directive!]!\n subscriptionType: __Type\n}\n\ninput Setup__SetupPolymorphicParentRelationshipRecordFilter @generic {\n Setup__SetupFilter: Setup__SetupFilter @fieldCategory\n}\n\nunion Setup__SetupPolymorphicAggregateParentRelationship @generic = Setup__SetupRecordAggregate\n\ninput Setup__SetupPolymorphicParentRelationshipGroupBy @generic {\n Setup__SetupGroupBy: Setup__SetupGroupBy @fieldCategory\n}\n\ninput Setup__SetupPolymorphicParentRelationshipOrderBy @generic {\n Setup__SetupAggregateOrderBy: Setup__SetupAggregateOrderBy @fieldCategory\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}\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 DateFunctionAggregation {\n value: Long\n format: String\n}\n\ntype RecordQuery {\n recordQuery(after: String, first: Int, orderBy: RecordOrderBy, scope: String @fieldCategory, upperBound: Int, where: RecordFilter): RecordConnection @fieldCategory\n}\n\n# add browse family schema\ntype Analytics__Analytics {\n # assetTypes: [AnalyticsAssetType], but AnalyticsAssetType is an empty enum\n browse(after: String, assetTypes: [String], first: Int, orderBy: Analytics__AnalyticsOrderBy, where: Analytics__AnalyticsFilter): Analytics__AnalyticsBrowse!\n # Add other fields here if needed\n}\n\n# enum AnalyticsAssetType @generic {\n# }\n\ntype Analytics__AnalyticsBrowse {\n edges: [Analytics__AnalyticsEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__AnalyticsEdge {\n node: Analytics__AnalyticsRepresentation\n cursor: String!\n}\n\ninterface Analytics__AnalyticsRepresentationInterface {\n MasterLabel: StringValue\n DeveloperName: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n AnalyticsWorkspaces: Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n}\n\ntype Analytics__DataspaceRepresentation {\n Id: ID!\n ApiName: String!\n MasterLabel: String\n DeveloperName: String\n}\n\ntype Analytics__AnalyticsRepresentation implements Analytics__AnalyticsRepresentationInterface {\n MasterLabel: StringValue\n DeveloperName: 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: Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n}\n\ntype Analytics__SemanticDefinition implements Analytics__AnalyticsRepresentationInterface {\n MasterLabel: StringValue\n DeveloperName: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n AnalyticsWorkspaces: Analytics__AnalyticsWorkspaceAssetConnection\n SubMetrics: Analytics__SemanticSubMetricDefinitionConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n}\n\ninput Analytics__AnalyticsOrderBy {\n MasterLabel: Analytics__OrderByInput\n Id: Analytics__OrderByInput\n ApiName: Analytics__OrderByInput\n CreatedById: Analytics__OrderByInput\n CreatedDate: Analytics__OrderByInput\n LastModifiedDate: Analytics__OrderByInput\n LastModifiedById: Analytics__OrderByInput\n}\n\ninput Analytics__OrderByInput {\n order: Analytics__SortEnumType\n}\n\nenum Analytics__SortEnumType {\n ASC\n DESC\n}\n\ninput Analytics__AnalyticsFilter {\n Id: Setup__IdOperators\n MasterLabel: StringOperators\n DeveloperName: StringOperators\n NamespacePrefix: StringOperators\n CreatedById: Setup__IdOperators\n CreatedDate: DateTimeOperators\n LastModifiedById: Setup__IdOperators\n LastModifiedDate: DateTimeOperators\n and: [Analytics__AnalyticsFilter]\n or: [Analytics__AnalyticsFilter]\n not: Analytics__AnalyticsFilter\n}\n\ntype Analytics__AnalyticsWorkspaceAssetConnection {\n edges: [Analytics__AnalyticsWorkspaceAssetEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__AnalyticsWorkspaceAssetEdge {\n node: Analytics__AnalyticsWorkspaceAsset\n cursor: String!\n}\n\ntype Analytics__AnalyticsWorkspaceAsset {\n AnalyticsWorkspace: Analytics__AnalyticsWorkspace\n AssetUsageType: PicklistValue\n ActivePromotionRequestId: IDValue\n}\n\ntype Analytics__AnalyticsWorkspace {\n MasterLabel: StringValue\n DeveloperName: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n}\n\ntype Analytics__SemanticSubMetricDefinitionConnection {\n edges: [Analytics__SemanticSubMetricDefinitionEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticSubMetricDefinitionEdge {\n node: Analytics__SemanticSubMetricDefinitionRepresentation\n cursor: String!\n}\n\ntype Analytics__SemanticSubMetricDefinitionRepresentation {\n Id: ID!\n ApiName: String!\n}\n\ntype Analytics__SemanticModel {\n MasterLabel: StringValue\n DeveloperName: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: StringValue!\n AnalyticsWorkspaces: Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n RelatedModel: Analytics__SemanticModelRelatedModelConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: StringValue\n}\n\ntype Analytics__SemanticModelRelatedModelConnection {\n edges: [Analytics__SemanticModelRelatedModelEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticModelRelatedModelEdge {\n node: Analytics__SemanticModelRelatedModelRepresentation\n cursor: StringValue!\n}\n\ntype Analytics__SemanticModelRelatedModelRepresentation {\n Id: ID!\n ApiName: StringValue!\n SemanticModelId: IDValue\n RelatedSemanticModel: Analytics__SemanticModel\n}\n\ninput Setup__ListOrderInput {\n apiName: String!\n order: ResultsOrder\n}\n\ntype Setup__ListViewRow {\n id: ID!\n columns(apiNames: [String!]): [Setup__ListScalarField]!\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 rows(first: Int, after: String, upperBound: Int, orderBy: Setup__ListOrderInput): Setup__ListViewRowConnection\n}\n\ntype Setup__ListFilter {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\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__ListViewRowConnection {\n edges: [Setup__ListViewRowEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ninput Setup__ListFilterInput {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n}\n\ntype Setup__ListOrder {\n apiName: String!\n order: ResultsOrder\n}\n\ntype Setup__ListScalarField {\n apiName: String!\n value: String\n dataType: DataType\n displayValue: String\n format: String\n label: String\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\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 lookupIdColumn: 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";
47616
+ var uiapiSchemaString = "scalar String\nscalar DateTime\nscalar Currency\nscalar ID\nscalar Boolean\nscalar Longitude\nscalar Float\nscalar MultiPicklist\nscalar Base64\nscalar Url\nscalar PhoneNumber\nscalar Email\nscalar TextArea\nscalar Latitude\nscalar Picklist\nscalar RichTextArea\nscalar EncryptedString\nscalar Double\nscalar Long\nscalar JSON\nscalar Time\nscalar Int\nscalar Percent\nscalar LongTextArea\nscalar IdOrRef\nscalar Date\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 analytics: Analytics__Analytics! @fieldCategory\n setup: Setup__Setup! @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 PolymorphicParentRelationshipRecordOrderBy @generic {\n RecordOrderBy: RecordOrderBy @fieldCategory\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 RecordCreatePayload @generic {\n Record: RecordRepresentation\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\ninput PolymorphicParentRelationshipGroupBy @generic {\n RecordGroupBy: RecordGroupBy @fieldCategory\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 allOrNone: Boolean = true\n}\n\ntype BooleanValue implements FieldValue {\n value: Boolean\n displayValue: String\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 StringValue implements FieldValue {\n value: String\n displayValue: String\n label: 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\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\ninput Setup__SetupOrderBy @generic {\n orderableField: OrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableParentRelationship: Setup__SetupOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipRecordOrderBy @fieldCategory\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\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\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 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\ntype RelatedListInfo {\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): [ObjectInfo]\n relatedListByName(parentApiName: String!, relatedListName: String!): RelatedListInfo\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\ninput BooleanOperators {\n eq: Boolean\n ne: Boolean\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\n#enum OrderByType {\n#}\n\ninput GroupByDateFunction {\n function: GroupByFunction\n}\n\ntype RichTextAreaValue implements FieldValue {\n value: RichTextArea\n displayValue: String\n}\n\ntype MultiPicklistValue implements FieldValue {\n value: MultiPicklist\n displayValue: String\n label: String\n}\n\ntype Setup__SetupEdge @generic {\n node: Setup__EntityRepresentation\n cursor: 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\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}\n\ntype ListColumn {\n fieldApiName: String!\n label: String!\n lookupId: String\n sortable: Boolean\n}\n\ntype Setup__SetupQuery {\n # scope should be RecordScope, but it is an empty enum\n recordQuery(after: String, first: Int, orderBy: Setup__SetupOrderBy, scope: String @fieldCategory, upperBound: Int, where: Setup__SetupFilter): Setup__SetupConnection @fieldCategory\n}\n\ntype Setup__SetupQueryAggregate {\n recordQueryAggregate(after: String, first: Int, groupBy: Setup__SetupGroupBy, orderBy: Setup__SetupAggregateOrderBy, scope: String @fieldCategory, upperBound: Int, where: Setup__SetupFilter): Setup__SetupAggregateConnection @fieldCategory\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 LongAggregate: LongAggregate @fieldCategory\n LongitudeAggregate: LongitudeAggregate @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\ntype Setup__SetupRecordResult @generic {\n aggregate: Setup__SetupRecordAggregate\n}\n\ntype SObject__Field {\n name: String!\n value: String\n}\n\nenum SObject__FieldType {\n ALL\n CUSTOM\n STANDARD\n}\n\ntype Setup__EntityRepresentation @generic {\n Id: ID!\n ApiName: String!\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 Entity__fields(type: SObject__FieldType): [SObject__Field]!\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 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 AnyType: AnyType @fieldCategory\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\ninput DistanceInput {\n latitude: Latitude!\n longitude: Longitude!\n}\n\nunion PolymorphicAggregateParentRelationship @generic = RecordAggregate\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}\n\ntype LatitudeValue implements FieldValue {\n value: Latitude\n displayValue: String\n}\n\ninput OrderByClause {\n order: ResultOrder\n nulls: NullOrder\n}\n\ninput GroupByClause {\n group: Boolean\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 RecordEdge @generic {\n node: RecordRepresentation\n cursor: String!\n}\n\nunion Setup__SetupPolymorphicParentRelationship @generic = Setup__EntityRepresentation\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\nenum NullOrder {\n FIRST\n LAST\n}\n\ntype PhoneNumberValue implements FieldValue {\n value: PhoneNumber\n displayValue: String\n}\n\n# Cannot have empty enum\n# enum RecordScope @generic {\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\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\ntype __Field {\n name: String!\n description: String\n args: [__InputValue!]!\n type: __Type!\n isDeprecated: Boolean!\n deprecationReason: String\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\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}\n\ntype RecordUpdatePayload @generic {\n success: Boolean\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\ninput Setup__SetupPolymorphicParentRelationshipRecordOrderBy @generic {\n Setup__SetupOrderBy: Setup__SetupOrderBy @fieldCategory\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\ntype __InputValue {\n name: String!\n description: String\n type: __Type!\n defaultValue: String\n}\n\ntype RecordAggregateEdge @generic {\n node: RecordResult\n cursor: String!\n}\n\ntype __Directive {\n name: String\n description: String\n locations: [__DirectiveLocation!]\n args: [__InputValue!]!\n}\n\ninput RecordCreateInput @generic {\n record: RecordCreateRepresentation! @fieldCategory\n}\n\ntype ThemeInfo {\n color: String\n iconUrl: String\n}\n\ninput AggregateOrderByStringClause {\n function: AggregateOrderByStringFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype RecordDeletePayload {\n Id: ID\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\nenum DateLiteral {\n LAST_YEAR\n LAST_WEEK\n THIS_QUARTER\n NEXT_FISCAL_YEAR\n LAST_QUARTER\n TOMORROW\n NEXT_FISCAL_QUARTER\n YESTERDAY\n NEXT_QUARTER\n THIS_FISCAL_QUARTER\n THIS_WEEK\n LAST_MONTH\n LAST_90_DAYS\n NEXT_90_DAYS\n THIS_FISCAL_YEAR\n NEXT_WEEK\n TODAY\n NEXT_YEAR\n NEXT_MONTH\n LAST_FISCAL_QUARTER\n THIS_MONTH\n LAST_FISCAL_YEAR\n THIS_YEAR\n}\n\ntype __EnumValue {\n name: String!\n description: String\n isDeprecated: Boolean!\n deprecationReason: String\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 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 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 AnyType: AnyType @fieldCategory\n}\n\nunion AnyType = BooleanValue | DateValue | DateTimeValue | DoubleValue | StringValue\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\ninput OrderByGeolocationClause {\n distance: DistanceInput\n order: ResultOrder\n nulls: NullOrder\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\nenum NullsOrder {\n FIRST\n LAST\n}\n\ntype TextAreaAggregate implements FieldValue {\n value: TextArea\n displayValue: String\n count: LongValue\n countDistinct: LongValue\n grouping: IntValue\n max: TextAreaValue\n min: TextAreaValue\n}\n\nenum GroupByType {\n GROUP_BY\n ROLLUP\n CUBE\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 Setup__JoinInput {\n Record: Setup__SetupFilter @fieldCategory\n ApiName: String\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\nenum ResultsOrder {\n ASC\n DESC\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\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 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\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\ninput RecordDeleteInput {\n Id: IdOrRef!\n}\n\nenum __DirectiveLocation {\n QUERY\n MUTATION\n FIELD\n FRAGMENT_DEFINITION\n FRAGMENT_SPREAD\n INLINE_FRAGMENT\n SCHEMA\n SCALAR\n OBJECT\n FIELD_DEFINITION\n ARGUMENT_DEFINITION\n INTERFACE\n UNION\n ENUM\n ENUM_VALUE\n INPUT_OBJECT\n INPUT_FIELD_DEFINITION\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 ListOrder {\n fieldApiName: String!\n sortDirection: ResultOrder\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\ntype JSONValue implements FieldValue {\n value: JSON\n displayValue: String\n}\n\ntype EmailValue implements FieldValue {\n value: Email\n displayValue: String\n}\n\ntype Setup__Setup {\n query: Setup__SetupQuery!\n aggregate: Setup__SetupQueryAggregate!\n ListView(\n listViewType: String!,\n label: String,\n displayColumns: [String!],\n filters: [Setup__ListFilterInput!],\n filterLogic: String,\n orderedByInfo: [Setup__ListOrderInput!]!\n ): Setup__ListView!\n ListViewObjectInfo(listViewType: String!): Setup__ListViewObjectInfo!\n}\n\ntype Setup__SetupAggregateConnection @generic {\n edges: [Setup__SetupAggregateEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ninput Setup__SetupGroupBy @generic {\n groupableDateField: GroupByDateFunction @fieldCategory\n groupableField: GroupByClause @fieldCategory\n groupableParentRelationship: Setup__SetupGroupBy @fieldCategory\n groupablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipGroupBy @fieldCategory\n type: GroupByType = GROUP_BY\n}\n\ntype Setup__SetupAggregateEdge @generic {\n cursor: String!\n node: Setup__SetupRecordResult\n}\n\ninput Setup__SetupAggregateOrderBy @generic {\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableParentRelationship: Setup__SetupAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: Setup__SetupPolymorphicParentRelationshipOrderBy @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n type: String\n}\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\ninput DateFunctionInput {\n value: LongOperators\n convertTimezoneValue: LongOperators\n}\n\n# Mutations aren't supported yet.\n#type Mutation {\n# uiapi(input: UIAPIMutationsInput): UIAPIMutations!\n#}\n\ntype DependentField {\n controllingField: String!\n dependentFields: [String]!\n}\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\nenum __TypeKind {\n SCALAR\n OBJECT\n INTERFACE\n UNION\n ENUM\n INPUT_OBJECT\n LIST\n NON_NULL\n}\n\ntype Setup__SetupConnection @generic {\n edges: [Setup__SetupEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n pageResultCount: Int!\n}\n\ntype PercentValue implements FieldValue {\n value: Percent\n displayValue: String\n format: String\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\ninput NoFunctionAggregateOrderByClause {\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype BooleanAggregate implements FieldValue {\n value: Boolean\n displayValue: String\n grouping: IntValue\n}\n\ntype RecordQueryAggregate {\n # RecordScope is replaced with String\n recordQueryAggregate(after: String, first: Int, groupBy: RecordGroupBy, orderBy: RecordAggregateOrderBy, scope: String @fieldCategory, upperBound: Int, where: RecordFilter): RecordAggregateConnection @fieldCategory\n}\n\ninput RecordAggregateOrderBy @generic {\n orderableField: NoFunctionAggregateOrderByClause @fieldCategory\n orderableGeolocationField: OrderByGeolocationClause @fieldCategory\n orderableNumberField: AggregateOrderByNumberClause @fieldCategory\n orderableParentRelationship: RecordAggregateOrderBy @fieldCategory\n orderablePolymorphicParentRelationship: PolymorphicParentRelationshipOrderBy @fieldCategory\n orderableStringField: AggregateOrderByStringClause @fieldCategory\n type: String\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\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\ntype 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\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 DateTimeFunctionInput {\n value: DatePrimitiveOperators\n convertTimezoneValue: DatePrimitiveOperators\n}\n\ntype Base64Value implements FieldValue {\n value: Base64\n displayValue: String\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\ninput AggregateOrderByNumberClause {\n function: AggregateOrderByNumberFunction\n order: ResultsOrder\n nulls: NullsOrder\n}\n\ntype __Schema {\n types: [__Type!]!\n queryType: __Type!\n mutationType: __Type\n directives: [__Directive!]!\n subscriptionType: __Type\n}\n\ninput Setup__SetupPolymorphicParentRelationshipRecordFilter @generic {\n Setup__SetupFilter: Setup__SetupFilter @fieldCategory\n}\n\nunion Setup__SetupPolymorphicAggregateParentRelationship @generic = Setup__SetupRecordAggregate\n\ninput Setup__SetupPolymorphicParentRelationshipGroupBy @generic {\n Setup__SetupGroupBy: Setup__SetupGroupBy @fieldCategory\n}\n\ninput Setup__SetupPolymorphicParentRelationshipOrderBy @generic {\n Setup__SetupAggregateOrderBy: Setup__SetupAggregateOrderBy @fieldCategory\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}\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 DateFunctionAggregation {\n value: Long\n format: String\n}\n\ntype RecordQuery {\n recordQuery(after: String, first: Int, orderBy: RecordOrderBy, scope: String @fieldCategory, upperBound: Int, where: RecordFilter): RecordConnection @fieldCategory\n}\n\n# add browse family schema\ntype Analytics__Analytics {\n # assetTypes: [AnalyticsAssetType], but AnalyticsAssetType is an empty enum\n browse(after: String, assetTypes: [String], first: Int, orderBy: Analytics__AnalyticsOrderBy, where: Analytics__AnalyticsFilter): Analytics__AnalyticsBrowse!\n # Add other fields here if needed\n}\n\n# enum AnalyticsAssetType @generic {\n# }\n\ntype Analytics__AnalyticsBrowse {\n edges: [Analytics__AnalyticsEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__AnalyticsEdge {\n node: Analytics__AnalyticsRepresentation\n cursor: String!\n}\n\ninterface Analytics__AnalyticsRepresentationInterface {\n MasterLabel: StringValue\n DeveloperName: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n AnalyticsWorkspaces: Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n}\n\ntype Analytics__DataspaceRepresentation {\n Id: ID!\n ApiName: String!\n MasterLabel: String\n DeveloperName: String\n}\n\ntype Analytics__AnalyticsRepresentation implements Analytics__AnalyticsRepresentationInterface {\n MasterLabel: StringValue\n DeveloperName: 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: Analytics__AnalyticsWorkspaceAssetConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n}\n\ntype Analytics__SemanticDefinition implements Analytics__AnalyticsRepresentationInterface {\n MasterLabel: StringValue\n DeveloperName: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n NamespacePrefix: StringValue\n AnalyticsWorkspaces: Analytics__AnalyticsWorkspaceAssetConnection\n SubMetrics: Analytics__SemanticSubMetricDefinitionConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n}\n\ninput Analytics__AnalyticsOrderBy {\n MasterLabel: Analytics__OrderByInput\n Id: Analytics__OrderByInput\n ApiName: Analytics__OrderByInput\n CreatedById: Analytics__OrderByInput\n CreatedDate: Analytics__OrderByInput\n LastModifiedDate: Analytics__OrderByInput\n LastModifiedById: Analytics__OrderByInput\n}\n\ninput Analytics__OrderByInput {\n order: Analytics__SortEnumType\n}\n\nenum Analytics__SortEnumType {\n ASC\n DESC\n}\n\ninput Analytics__AnalyticsFilter {\n Id: Setup__IdOperators\n MasterLabel: StringOperators\n DeveloperName: StringOperators\n NamespacePrefix: StringOperators\n CreatedById: Setup__IdOperators\n CreatedDate: DateTimeOperators\n LastModifiedById: Setup__IdOperators\n LastModifiedDate: DateTimeOperators\n and: [Analytics__AnalyticsFilter]\n or: [Analytics__AnalyticsFilter]\n not: Analytics__AnalyticsFilter\n}\n\ntype Analytics__AnalyticsWorkspaceAssetConnection {\n edges: [Analytics__AnalyticsWorkspaceAssetEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__AnalyticsWorkspaceAssetEdge {\n node: Analytics__AnalyticsWorkspaceAsset\n cursor: String!\n}\n\ntype Analytics__AnalyticsWorkspaceAsset {\n AnalyticsWorkspace: Analytics__AnalyticsWorkspace\n AssetUsageType: PicklistValue\n ActivePromotionRequestId: IDValue\n}\n\ntype Analytics__AnalyticsWorkspace {\n MasterLabel: StringValue\n DeveloperName: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n}\n\ntype Analytics__SemanticSubMetricDefinitionConnection {\n edges: [Analytics__SemanticSubMetricDefinitionEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticSubMetricDefinitionEdge {\n node: Analytics__SemanticSubMetricDefinitionRepresentation\n cursor: String!\n}\n\ntype Analytics__SemanticSubMetricDefinitionRepresentation {\n Id: ID!\n ApiName: String!\n}\n\ntype Analytics__SemanticModel {\n MasterLabel: StringValue\n DeveloperName: StringValue\n CreatedById: IDValue\n LastModifiedById: IDValue\n LastModifiedDate: DateTimeValue\n CreatedDate: DateTimeValue\n Id: ID!\n ApiName: String!\n AnalyticsWorkspaces: Analytics__AnalyticsWorkspaceAssetConnection\n NamespacePrefix: StringValue\n RelatedModel: Analytics__SemanticModelRelatedModelConnection\n Dataspaces: [Analytics__DataspaceRepresentation]\n RecordOperations: [String]\n}\n\ntype Analytics__SemanticModelRelatedModelConnection {\n edges: [Analytics__SemanticModelRelatedModelEdge]\n totalCount: Int!\n pageResultCount: Int!\n pageInfo: PageInfo!\n}\n\ntype Analytics__SemanticModelRelatedModelEdge {\n node: Analytics__SemanticModelRelatedModelRepresentation\n cursor: String!\n}\n\ntype Analytics__SemanticModelRelatedModelRepresentation {\n Id: ID!\n ApiName: String!\n SemanticModelId: IDValue\n RelatedSemanticModel: Analytics__SemanticModel\n}\n\ninput Setup__ListOrderInput {\n apiName: String!\n order: ResultsOrder\n}\n\ntype Setup__ListViewRow {\n id: ID!\n columns(apiNames: [String!]): [Setup__ListScalarField]!\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 rows(first: Int, after: String, upperBound: Int, orderBy: Setup__ListOrderInput): Setup__ListViewRowConnection\n}\n\ntype Setup__ListFilter {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\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__ListViewRowConnection {\n edges: [Setup__ListViewRowEdge]\n pageInfo: PageInfo!\n totalCount: Int!\n}\n\ninput Setup__ListFilterInput {\n apiName: String!\n operator: Setup__ListFilterOperator!\n operand: [String!]!\n}\n\ntype Setup__ListOrder {\n apiName: String!\n order: ResultsOrder\n}\n\ntype Setup__ListScalarField {\n apiName: String!\n value: String\n dataType: DataType\n displayValue: String\n format: String\n label: String\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\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 lookupIdColumn: 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";
47605
47617
 
47606
47618
  // Define additional schema that is missing from uiapi that we use in local evaluation
47607
47619
  const additionalSchemaDefinitions = /* GraphQL */ `
@@ -48056,7 +48068,7 @@ async function evaluate(config, observers, settings, objectInfos, store, snapsho
48056
48068
  const operationNode = getOperationFromDocument(config.query);
48057
48069
  let topLevelQueries = [];
48058
48070
  // assume that 'config.query' has required injected fields.
48059
- const modifiedAST = visit$1(config.query, {
48071
+ const modifiedAST = visit$2(config.query, {
48060
48072
  Field: {
48061
48073
  leave(node) {
48062
48074
  if (node.name.value !== `node`)
@@ -48136,6 +48148,7 @@ async function evaluate(config, observers, settings, objectInfos, store, snapsho
48136
48148
  result,
48137
48149
  seenRecordIds,
48138
48150
  possibleStaleRecordMap: contextValue.possibleStaleRecordMap,
48151
+ missingFieldsMap: contextValue.missingFieldsMap,
48139
48152
  };
48140
48153
  }
48141
48154
  finally {
@@ -48144,20 +48157,20 @@ async function evaluate(config, observers, settings, objectInfos, store, snapsho
48144
48157
  }
48145
48158
 
48146
48159
  const parentRelationshipDirective = {
48147
- kind: Kind$1.DIRECTIVE,
48160
+ kind: Kind$2.DIRECTIVE,
48148
48161
  name: {
48149
- kind: Kind$1.NAME,
48162
+ kind: Kind$2.NAME,
48150
48163
  value: 'category',
48151
48164
  },
48152
48165
  arguments: [
48153
48166
  {
48154
- kind: Kind$1.ARGUMENT,
48167
+ kind: Kind$2.ARGUMENT,
48155
48168
  name: {
48156
- kind: Kind$1.NAME,
48169
+ kind: Kind$2.NAME,
48157
48170
  value: 'name',
48158
48171
  },
48159
48172
  value: {
48160
- kind: Kind$1.STRING,
48173
+ kind: Kind$2.STRING,
48161
48174
  value: PARENT_RELATIONSHIP,
48162
48175
  block: false,
48163
48176
  },
@@ -48165,12 +48178,12 @@ const parentRelationshipDirective = {
48165
48178
  ],
48166
48179
  };
48167
48180
  const FieldValueNodeSelectionSet = {
48168
- kind: Kind$1.SELECTION_SET,
48181
+ kind: Kind$2.SELECTION_SET,
48169
48182
  selections: [
48170
48183
  {
48171
- kind: Kind$1.FIELD,
48184
+ kind: Kind$2.FIELD,
48172
48185
  name: {
48173
- kind: Kind$1.NAME,
48186
+ kind: Kind$2.NAME,
48174
48187
  value: 'value',
48175
48188
  },
48176
48189
  },
@@ -48196,7 +48209,7 @@ async function injectSyntheticFields(originalAST, objectInfoService, draftFuncti
48196
48209
  unmappedDraftIDs: new Set(),
48197
48210
  };
48198
48211
  let assignedtomeQueryFieldNode = undefined;
48199
- visit$1(originalAST, {
48212
+ visit$2(originalAST, {
48200
48213
  Argument: {
48201
48214
  enter(node, key, parent, path, ancestors) {
48202
48215
  const { connection: recordConnectionNode, path: ancesterPath } = findNearestConnectionWithPath(ancestors);
@@ -48268,7 +48281,7 @@ async function injectSyntheticFields(originalAST, objectInfoService, draftFuncti
48268
48281
  objectInfos = await resolveObjectInfos(objectNodeInfoTree, pathToObjectApiNamesMap, startNodes, objectInfoService);
48269
48282
  }
48270
48283
  // read pass; gather whats needed
48271
- visit$1(originalAST, {
48284
+ visit$2(originalAST, {
48272
48285
  Argument: {
48273
48286
  leave(node, key, parent, path, ancestors) {
48274
48287
  const recordQueryField = findNearestConnection(ancestors);
@@ -48355,7 +48368,7 @@ async function injectSyntheticFields(originalAST, objectInfoService, draftFuncti
48355
48368
  },
48356
48369
  });
48357
48370
  // write pass; inject whats needed
48358
- const modifiedAST = visit$1(originalAST, {
48371
+ const modifiedAST = visit$2(originalAST, {
48359
48372
  Field: {
48360
48373
  leave(node, key, parent, path, ancestors) {
48361
48374
  // removes 'ServicesResources' query field node if 'assignedtome' scope shows up
@@ -48433,7 +48446,7 @@ async function injectSyntheticFields(originalAST, objectInfoService, draftFuncti
48433
48446
  }
48434
48447
  function swapIdField(filterFields, objectInfo, swapped, idState, draftFunctions) {
48435
48448
  switch (filterFields.kind) {
48436
- case Kind$1.OBJECT: {
48449
+ case Kind$2.OBJECT: {
48437
48450
  const fieldNodes = filterFields.fields.map((fieldNode) => {
48438
48451
  // check at the object value node level if the node's name is an Id/Reference
48439
48452
  // if not then just pass the current swapped state
@@ -48451,7 +48464,7 @@ function swapIdField(filterFields, objectInfo, swapped, idState, draftFunctions)
48451
48464
  fields: fieldNodes,
48452
48465
  };
48453
48466
  }
48454
- case Kind$1.STRING: {
48467
+ case Kind$2.STRING: {
48455
48468
  if (!swapped) {
48456
48469
  return filterFields;
48457
48470
  }
@@ -48470,7 +48483,7 @@ function swapIdField(filterFields, objectInfo, swapped, idState, draftFunctions)
48470
48483
  block: false,
48471
48484
  };
48472
48485
  }
48473
- case Kind$1.LIST: {
48486
+ case Kind$2.LIST: {
48474
48487
  const values = filterFields.values.map((valueNode) => swapIdField(valueNode, objectInfo, swapped, idState, draftFunctions));
48475
48488
  return {
48476
48489
  kind: 'ListValue',
@@ -48556,14 +48569,14 @@ function mergeSelectionNodes(group1, group2) {
48556
48569
  function growObjectFieldTree(tree, parentNode, entryNode, totalNodes, startNodes) {
48557
48570
  entryNode.fields.forEach((objectFieldNode) => {
48558
48571
  // objectFieldNode: {Account: { Name : { eq: "xxyyzz"}}}; objectFieldNode.value: { Name : { eq: "xxyyzz"}}
48559
- if (objectFieldNode.value.kind === Kind$1.OBJECT) {
48572
+ if (objectFieldNode.value.kind === Kind$2.OBJECT) {
48560
48573
  if (objectFieldNode.name.value === 'not') {
48561
48574
  // recursively go to deeper level of filter.
48562
48575
  growObjectFieldTree(tree, parentNode, objectFieldNode.value, totalNodes, startNodes);
48563
48576
  }
48564
48577
  else {
48565
48578
  // Spanning Field 'Account'
48566
- if (objectFieldNode.value.fields.some((childObjectFieldNode) => childObjectFieldNode.value.kind === Kind$1.OBJECT)) {
48579
+ if (objectFieldNode.value.fields.some((childObjectFieldNode) => childObjectFieldNode.value.kind === Kind$2.OBJECT)) {
48567
48580
  if (!totalNodes.has(parentNode)) {
48568
48581
  totalNodes.add(parentNode);
48569
48582
  startNodes.add(parentNode);
@@ -48586,7 +48599,7 @@ function growObjectFieldTree(tree, parentNode, entryNode, totalNodes, startNodes
48586
48599
  }
48587
48600
  }
48588
48601
  }
48589
- else if (objectFieldNode.value.kind === Kind$1.LIST) {
48602
+ else if (objectFieldNode.value.kind === Kind$2.LIST) {
48590
48603
  objectFieldNode.value.values.filter(isObjectValueNode).forEach((childNode) => {
48591
48604
  growObjectFieldTree(tree, parentNode, childNode, totalNodes, startNodes);
48592
48605
  });
@@ -48864,7 +48877,7 @@ function injectFilter(filterNode, idState, parentPath, isParentPolymorphic, obje
48864
48877
  const injectedSelections = [];
48865
48878
  let isPolymorphicField = false;
48866
48879
  switch (filterNode.kind) {
48867
- case Kind$1.ARGUMENT:
48880
+ case Kind$2.ARGUMENT:
48868
48881
  if (filterNode.value.kind !== 'ObjectValue')
48869
48882
  return [];
48870
48883
  filterNode.value.fields.forEach((objectFieldNode) => {
@@ -48878,9 +48891,9 @@ function injectFilter(filterNode, idState, parentPath, isParentPolymorphic, obje
48878
48891
  }
48879
48892
  });
48880
48893
  return injectedSelections;
48881
- case Kind$1.OBJECT_FIELD:
48894
+ case Kind$2.OBJECT_FIELD:
48882
48895
  switch (filterNode.value.kind) {
48883
- case Kind$1.LIST: {
48896
+ case Kind$2.LIST: {
48884
48897
  filterNode.value.values.filter(isObjectValueNode).forEach((objectValueNode) => {
48885
48898
  objectValueNode.fields.forEach((objectFieldNode) => {
48886
48899
  const subResults = injectFilter(objectFieldNode, idState, parentPath, isParentPolymorphic, objectInfos, pathToObjectApiNamesMap, draftFunctions, queryNode);
@@ -48891,7 +48904,7 @@ function injectFilter(filterNode, idState, parentPath, isParentPolymorphic, obje
48891
48904
  });
48892
48905
  return injectedSelections;
48893
48906
  }
48894
- case Kind$1.OBJECT: {
48907
+ case Kind$2.OBJECT: {
48895
48908
  if (filterNode.name.value === 'not') {
48896
48909
  filterNode.value.fields.forEach((objectFieldNode) => {
48897
48910
  const subResults = injectFilter(objectFieldNode, idState, parentPath, isParentPolymorphic, objectInfos, pathToObjectApiNamesMap, draftFunctions, queryNode);
@@ -49021,9 +49034,9 @@ function injectFilter(filterNode, idState, parentPath, isParentPolymorphic, obje
49021
49034
  (isInlineFragment && !isTypeNameExisting)) {
49022
49035
  if (isInlineFragment) {
49023
49036
  sel = {
49024
- kind: Kind$1.INLINE_FRAGMENT,
49037
+ kind: Kind$2.INLINE_FRAGMENT,
49025
49038
  typeCondition: {
49026
- kind: Kind$1.NAMED_TYPE,
49039
+ kind: Kind$2.NAMED_TYPE,
49027
49040
  name: {
49028
49041
  kind: 'Name',
49029
49042
  value: filterNode.name.value,
@@ -49042,14 +49055,14 @@ function injectFilter(filterNode, idState, parentPath, isParentPolymorphic, obje
49042
49055
  ...sel,
49043
49056
  directives,
49044
49057
  selectionSet: {
49045
- kind: Kind$1.SELECTION_SET,
49058
+ kind: Kind$2.SELECTION_SET,
49046
49059
  selections: idField.concat(...subSelectionNodes),
49047
49060
  },
49048
49061
  }
49049
49062
  : {
49050
49063
  ...sel,
49051
49064
  selectionSet: {
49052
- kind: Kind$1.SELECTION_SET,
49065
+ kind: Kind$2.SELECTION_SET,
49053
49066
  selections: idField.concat(...subSelectionNodes),
49054
49067
  },
49055
49068
  };
@@ -49178,12 +49191,12 @@ function updateIDInfo(fieldNode, idState, draftFunctions) {
49178
49191
  if (isObjectValueNode(fieldNode.value)) {
49179
49192
  const idOpValueNode = fieldNode.value.fields[0];
49180
49193
  switch (idOpValueNode.value.kind) {
49181
- case Kind$1.STRING: {
49194
+ case Kind$2.STRING: {
49182
49195
  const id = idOpValueNode.value.value;
49183
49196
  idState.swapNeeded = draftFunctions.isDraftId(id);
49184
49197
  break;
49185
49198
  }
49186
- case Kind$1.LIST: {
49199
+ case Kind$2.LIST: {
49187
49200
  const listValues = idOpValueNode.value.values;
49188
49201
  idState.swapNeeded = listValues
49189
49202
  .filter(isStringValueNode)
@@ -49270,7 +49283,7 @@ function injectParentRelationships(selections, parentNode, parentPath, ancestors
49270
49283
  parentInjectedNodes.push({
49271
49284
  ...selection,
49272
49285
  selectionSet: {
49273
- kind: Kind$1.SELECTION_SET,
49286
+ kind: Kind$2.SELECTION_SET,
49274
49287
  selections: [...idSelection, ...subInjectedSelections],
49275
49288
  },
49276
49289
  });
@@ -49820,9 +49833,9 @@ function referenceIdFieldForRelationship(relationshipName) {
49820
49833
  */
49821
49834
  function createFieldNode(nameValue, selectionSet) {
49822
49835
  return {
49823
- kind: Kind$1.FIELD,
49836
+ kind: Kind$2.FIELD,
49824
49837
  name: {
49825
- kind: Kind$1.NAME,
49838
+ kind: Kind$2.NAME,
49826
49839
  value: nameValue,
49827
49840
  },
49828
49841
  selectionSet,
@@ -49958,7 +49971,7 @@ function instrumentLimits(ast, variables) {
49958
49971
  let currentChildRelationships = 0;
49959
49972
  let currentRootRecordCount = 0;
49960
49973
  let currentTotalRecordCount = 0;
49961
- visit$1(ast, {
49974
+ visit$2(ast, {
49962
49975
  Field: {
49963
49976
  enter(node) {
49964
49977
  if (isRecordQuery(node)) {
@@ -50022,7 +50035,7 @@ function enforceFieldLimitOnAST(ast, variables, objectInfos, enforcedLimits = {
50022
50035
  }) {
50023
50036
  const { maxFieldCount, maxRecordLimit, singleRecordField, maxFieldSize } = enforcedLimits;
50024
50037
  const fieldsWithDataType = findFieldTypeInObjectInfo(objectInfos, singleRecordField);
50025
- const documentNode = visit(ast, {
50038
+ const documentNode = visit$1(ast, {
50026
50039
  Field(node) {
50027
50040
  // is it a record query?
50028
50041
  if (!isRecordQuery(node)) {
@@ -50072,7 +50085,7 @@ function enforceFieldLimitOnAST(ast, variables, objectInfos, enforcedLimits = {
50072
50085
  return {
50073
50086
  ...argument,
50074
50087
  value: {
50075
- kind: Kind.INT,
50088
+ kind: Kind$1.INT,
50076
50089
  value: recordLimit,
50077
50090
  },
50078
50091
  };
@@ -50302,11 +50315,13 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
50302
50315
  let gqlResult;
50303
50316
  let seenRecordIds;
50304
50317
  let possibleStaleRecordMap;
50318
+ let missingFieldsMap;
50305
50319
  try {
50306
50320
  ({
50307
50321
  result: gqlResult,
50308
50322
  seenRecordIds,
50309
50323
  possibleStaleRecordMap,
50324
+ missingFieldsMap,
50310
50325
  } = await evaluate({
50311
50326
  ...config,
50312
50327
  //need to create another copy of the ast for future writes
@@ -50336,13 +50351,23 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
50336
50351
  const seenRecords = createSeenRecords(seenRecordIds, nonEvaluatedSnapshot);
50337
50352
  const recordId = generateUniqueRecordId();
50338
50353
  const rebuildWithLocalEval = async (originalSnapshot) => {
50339
- let { result: rebuildResult, seenRecordIds, possibleStaleRecordMap, } = await evaluate({
50354
+ let { result: rebuildResult, seenRecordIds, possibleStaleRecordMap, missingFieldsMap: rebuildMissingFieldsMap, } = await evaluate({
50340
50355
  ...config,
50341
50356
  query: injectedAST,
50342
50357
  }, observers, { userId }, objectInfoNeeded, store, originalSnapshot, graphqlSchemaCache, draftFunctions, mappedCursors);
50343
50358
  if (!rebuildResult.errors) {
50344
50359
  rebuildResult = removeSyntheticFields(rebuildResult, config.query);
50345
50360
  }
50361
+ // If the query includes any missing fields, we return an ErrorSnapshot
50362
+ // with a message that contains the missing fields for each record.
50363
+ if (graphqlPartialEmitParity.isOpen({ fallback: false }) &&
50364
+ rebuildMissingFieldsMap.size > 0) {
50365
+ const missingFieldsErrorSnapshot = createMissingFieldsErrorSnapshot(originalSnapshot, rebuildMissingFieldsMap);
50366
+ return {
50367
+ ...missingFieldsErrorSnapshot,
50368
+ rebuildWithLocalEval,
50369
+ };
50370
+ }
50346
50371
  let snapshotState = 'Fulfilled';
50347
50372
  if (possibleStaleRecordMap.size > 0) {
50348
50373
  initiateStaleRecordRefresh(luvio, possibleStaleRecordMap);
@@ -50377,6 +50402,10 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
50377
50402
  },
50378
50403
  };
50379
50404
  }
50405
+ // If the query includes any missing fields, we return an ErrorSnapshot
50406
+ if (graphqlPartialEmitParity.isOpen({ fallback: false }) && missingFieldsMap.size > 0) {
50407
+ return createMissingFieldsErrorSnapshot(nonEvaluatedSnapshot, missingFieldsMap);
50408
+ }
50380
50409
  // if the non-eval'ed snapshot was an error then we return a synthetic
50381
50410
  // Fulfilled snapshot (this only happens in this code path if
50382
50411
  // the error is network error or 504), otherwise we spread over
@@ -50433,6 +50462,30 @@ function makeGetRecordsConfig(keyMap) {
50433
50462
  records,
50434
50463
  };
50435
50464
  }
50465
+ /**
50466
+ * Creates an ErrorSnapshot with a message that contains the missing fields for each record.
50467
+ * @param originalSnapshot The original snapshot that is being rebuilt.
50468
+ * @param missingFieldsMap A map of record ids to the fields that are missing.
50469
+ * @returns An ErrorSnapshot with a message that contains the missing fields for each record.
50470
+ */
50471
+ function createMissingFieldsErrorSnapshot(originalSnapshot, missingFieldsMap) {
50472
+ const message = Array.from(missingFieldsMap)
50473
+ .map(([id, fields]) => `Missing fields for record ${id}: ${Array.from(fields).join(', ')}`)
50474
+ .join('; ');
50475
+ return {
50476
+ ...originalSnapshot,
50477
+ data: undefined,
50478
+ state: 'Error',
50479
+ error: {
50480
+ errorType: 'adapterError',
50481
+ error: [
50482
+ {
50483
+ message,
50484
+ },
50485
+ ],
50486
+ },
50487
+ };
50488
+ }
50436
50489
 
50437
50490
  function environmentAwareGraphQLBatchAdapterFactory(objectInfoService, luvio, isDraftId, buildCachedSnapshotCachePolicy, buildNetworkSnapshotCachePolicy) {
50438
50491
  return async function environmentAwareGraphQLBatchAdapter(config, requestContext = {}) {
@@ -50662,7 +50715,7 @@ const recordIdGenerator = (id) => {
50662
50715
 
50663
50716
  const { keys: keys$2, create: create$2, assign: assign$1, entries: entries$2 } = Object;
50664
50717
  const { stringify: stringify$4, parse: parse$4 } = JSON;
50665
- const { push, join, slice } = Array.prototype;
50718
+ const { push, join: join$1, slice } = Array.prototype;
50666
50719
  const { isArray: isArray$2, from } = Array;
50667
50720
 
50668
50721
  function ldsParamsToString(params) {
@@ -50844,10 +50897,10 @@ class ScopedFields {
50844
50897
  fields.forEach(this.addField, this);
50845
50898
  }
50846
50899
  toQueryParameterValue() {
50847
- const joinedFields = join.call(Object.keys(this.fields), SEPARATOR_BETWEEN_FIELDS);
50900
+ const joinedFields = join$1.call(Object.keys(this.fields), SEPARATOR_BETWEEN_FIELDS);
50848
50901
  return this.isUnScoped()
50849
50902
  ? joinedFields
50850
- : join.call([this.scope, joinedFields], SEPARATOR_BETWEEN_SCOPE_AND_FIELDS);
50903
+ : join$1.call([this.scope, joinedFields], SEPARATOR_BETWEEN_SCOPE_AND_FIELDS);
50851
50904
  }
50852
50905
  toQueryParams() {
50853
50906
  return this.isUnScoped() ? Object.keys(this.fields) : this.toQueryParameterValue();
@@ -50915,7 +50968,7 @@ class ScopedFieldsCollection {
50915
50968
  if (chunk !== undefined)
50916
50969
  result.push(chunk);
50917
50970
  }
50918
- return join.call(result, SEPARATOR_BETWEEN_SCOPES);
50971
+ return join$1.call(result, SEPARATOR_BETWEEN_SCOPES);
50919
50972
  }
50920
50973
  /**
50921
50974
  * split the ScopedFields into multiple ScopedFields
@@ -51092,7 +51145,7 @@ function buildAggregateUiUrl(params, resourceRequest) {
51092
51145
  queryString.push(`${key}=${isArray$2(value) ? value.join(',') : value}`);
51093
51146
  }
51094
51147
  }
51095
- return `${resourceRequest.baseUri}${resourceRequest.basePath}?${join.call(queryString, '&')}`;
51148
+ return `${resourceRequest.baseUri}${resourceRequest.basePath}?${join$1.call(queryString, '&')}`;
51096
51149
  }
51097
51150
  function shouldUseAggregateUiForFields(fieldsArray, optionalFieldsArray, maxLengthPerChunk) {
51098
51151
  return fieldsArray.length + optionalFieldsArray.length >= maxLengthPerChunk;
@@ -54313,7 +54366,7 @@ function createResourceRequest$2(config) {
54313
54366
  baseUri: '/services/data/v65.0',
54314
54367
  basePath: '/graphql',
54315
54368
  method: 'post',
54316
- body: { ...config.body, query: print(config.body.query) },
54369
+ body: { ...config.body, query: print$1(config.body.query) },
54317
54370
  urlParams: {},
54318
54371
  queryParams: {},
54319
54372
  headers,
@@ -54337,7 +54390,7 @@ function stripMetaschemaFromFieldNode(fieldNode) {
54337
54390
  return fieldNode;
54338
54391
  }
54339
54392
  function stripDocumentOfMetaschema(documentNode) {
54340
- return visit$1(documentNode, {
54393
+ return visit$2(documentNode, {
54341
54394
  Field(node) {
54342
54395
  return stripMetaschemaFromFieldNode(node);
54343
54396
  },
@@ -54369,7 +54422,7 @@ function transformConfiguration$1(config) {
54369
54422
  // Make a copy of the config before running transform to avoid mutating the original config
54370
54423
  const adapterConfigCopy = {
54371
54424
  ...config,
54372
- query: parse$8(print(config.query))
54425
+ query: parse$8(print$1(config.query))
54373
54426
  };
54374
54427
  return {
54375
54428
  ...adapterConfigCopy,
@@ -54451,7 +54504,7 @@ function stripDocumentsOfMetaschema(config) {
54451
54504
  const batchQueryTransformed = config.body.batchQuery.map((singleConfig) => {
54452
54505
  return {
54453
54506
  ...singleConfig,
54454
- query: print(stripDocumentOfMetaschema(singleConfig.query)),
54507
+ query: print$1(stripDocumentOfMetaschema(singleConfig.query)),
54455
54508
  };
54456
54509
  });
54457
54510
  return {
@@ -54747,7 +54800,7 @@ function transformConfiguration(config) {
54747
54800
  const batchQueryTransformed = config.batchQuery.map((singleConfig) => {
54748
54801
  return {
54749
54802
  ...singleConfig,
54750
- query: applyMinimumFieldsToQuery(parse$8(print(singleConfig.query))), // Stringifies and parses again to avoid mutating original. Should we just JSON.stringify to avoid the dependency on the parser?
54803
+ query: applyMinimumFieldsToQuery(parse$8(print$1(singleConfig.query))), // Stringifies and parses again to avoid mutating original. Should we just JSON.stringify to avoid the dependency on the parser?
54751
54804
  };
54752
54805
  });
54753
54806
  return {
@@ -55870,6 +55923,20 @@ function toError(x) {
55870
55923
  }
55871
55924
  return new Error(typeof x === "string" ? x : JSON.stringify(x));
55872
55925
  }
55926
+ class InternalError extends Error {
55927
+ constructor(data) {
55928
+ super();
55929
+ this.data = data;
55930
+ this.type = "internal";
55931
+ }
55932
+ }
55933
+ class UserVisibleError extends Error {
55934
+ constructor(data) {
55935
+ super();
55936
+ this.data = data;
55937
+ this.type = "user-visible";
55938
+ }
55939
+ }
55873
55940
 
55874
55941
  /*!
55875
55942
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -55934,7 +56001,7 @@ let NetworkCommand$1 = class NetworkCommand extends BaseCommand {
55934
56001
  async afterRequestHooks(_options) {
55935
56002
  }
55936
56003
  };
55937
- function buildServiceDescriptor$c() {
56004
+ function buildServiceDescriptor$h() {
55938
56005
  return {
55939
56006
  type: "networkCommandBaseClass",
55940
56007
  version: "1.0",
@@ -56036,7 +56103,7 @@ class AuraNetworkCommand extends NetworkCommand$1 {
56036
56103
  return resolvedPromiseLike$3(err$1(toError("Aura/Fetch network services not found")));
56037
56104
  }
56038
56105
  }
56039
- function buildServiceDescriptor$b() {
56106
+ function buildServiceDescriptor$g() {
56040
56107
  return {
56041
56108
  type: "auraNetworkCommandBaseClass",
56042
56109
  version: "1.0",
@@ -56536,7 +56603,7 @@ class AuraNormalizedCacheControlCommand extends AuraCacheControlCommand$1 {
56536
56603
  return resolvedPromiseLike$3(void 0);
56537
56604
  }
56538
56605
  }
56539
- function buildServiceDescriptor$a() {
56606
+ function buildServiceDescriptor$f() {
56540
56607
  return {
56541
56608
  type: "auraNormalizedCacheControlCommand",
56542
56609
  version: "1.0",
@@ -56682,7 +56749,7 @@ class AuraResourceCacheControlCommand extends AuraCacheControlCommand {
56682
56749
  return `{"endpoint":${this.endpoint},"params":${stableJSONStringify(this.auraParams)}}`;
56683
56750
  }
56684
56751
  }
56685
- function buildServiceDescriptor$9() {
56752
+ function buildServiceDescriptor$e() {
56686
56753
  return {
56687
56754
  type: "auraResourceCacheControlCommand",
56688
56755
  version: "1.0",
@@ -56789,7 +56856,7 @@ class FetchNetworkCommand extends NetworkCommand {
56789
56856
  );
56790
56857
  }
56791
56858
  }
56792
- function buildServiceDescriptor$8() {
56859
+ function buildServiceDescriptor$d() {
56793
56860
  return {
56794
56861
  type: "fetchNetworkCommandBaseClass",
56795
56862
  version: "1.0",
@@ -56878,7 +56945,7 @@ class HttpNormalizedCacheControlCommand extends HttpCacheControlCommand {
56878
56945
  return resolvedPromiseLike$3(void 0);
56879
56946
  }
56880
56947
  }
56881
- function buildServiceDescriptor$7() {
56948
+ function buildServiceDescriptor$c() {
56882
56949
  return {
56883
56950
  type: "httpNormalizedCacheControlCommand",
56884
56951
  version: "1.0",
@@ -57131,7 +57198,7 @@ let DefaultCache$1 = class DefaultCache {
57131
57198
  return new FixedTimeWritableCache$1(this, generatedTime);
57132
57199
  }
57133
57200
  };
57134
- function buildServiceDescriptor$6() {
57201
+ function buildServiceDescriptor$b() {
57135
57202
  return {
57136
57203
  type: "cache",
57137
57204
  version: "1.0",
@@ -57299,7 +57366,7 @@ class CacheController {
57299
57366
  yield* this.services.cacheInclusionPolicy.findAndModify(query, cacheUpdate);
57300
57367
  }
57301
57368
  }
57302
- function buildServiceDescriptor$5(cache, cacheInclusionPolicy) {
57369
+ function buildServiceDescriptor$a(cache, cacheInclusionPolicy) {
57303
57370
  return {
57304
57371
  type: "cacheController",
57305
57372
  version: "1.0",
@@ -57345,7 +57412,7 @@ function buildInstrumentCommand(services) {
57345
57412
  };
57346
57413
  };
57347
57414
  }
57348
- function buildServiceDescriptor$4(instrumentation) {
57415
+ function buildServiceDescriptor$9(instrumentation) {
57349
57416
  return {
57350
57417
  type: "instrumentCommand",
57351
57418
  version: "1.0",
@@ -57615,7 +57682,7 @@ class O11yInstrumentation {
57615
57682
  this.metrics = new O11yOTelMetricsAPI(this.services);
57616
57683
  }
57617
57684
  }
57618
- function buildServiceDescriptor$3(logger) {
57685
+ function buildServiceDescriptor$8(logger) {
57619
57686
  return {
57620
57687
  type: "instrumentation",
57621
57688
  version: "1.0",
@@ -57725,7 +57792,7 @@ class DefaultPubSubService {
57725
57792
  return matchingSubscriptions;
57726
57793
  }
57727
57794
  }
57728
- function buildServiceDescriptor$2() {
57795
+ function buildServiceDescriptor$7() {
57729
57796
  return {
57730
57797
  type: "pubSub",
57731
57798
  version: "1.0",
@@ -57733,6 +57800,1263 @@ function buildServiceDescriptor$2() {
57733
57800
  };
57734
57801
  }
57735
57802
 
57803
+ /*!
57804
+ * Copyright (c) 2022, Salesforce, Inc.,
57805
+ * All rights reserved.
57806
+ * For full license text, see the LICENSE.txt file
57807
+ */
57808
+ class FeatureFlagsService {
57809
+ constructor() {
57810
+ this.flags = /* @__PURE__ */ new Map();
57811
+ }
57812
+ set(flagName, value) {
57813
+ this.flags.set(flagName, value);
57814
+ }
57815
+ get(flagName, defaultValue = false) {
57816
+ return this.flags.get(flagName) || defaultValue;
57817
+ }
57818
+ }
57819
+ function buildServiceDescriptor$6() {
57820
+ return {
57821
+ version: "1.0",
57822
+ service: new FeatureFlagsService(),
57823
+ type: "featureFlags"
57824
+ };
57825
+ }
57826
+
57827
+ /**
57828
+ * Copyright (c) 2022, Salesforce, Inc.,
57829
+ * All rights reserved.
57830
+ * For full license text, see the LICENSE.txt file
57831
+ */
57832
+
57833
+ /*
57834
+ * ATTENTION!
57835
+ * THIS IS A GENERATED FILE FROM https://github.com/salesforce-experience-platform-emu/lds-lightning-platform
57836
+ * If you would like to contribute to LDS, please follow the steps outlined in the git repo.
57837
+ * Any changes made to this file in p4 will be automatically overwritten.
57838
+ * *******************************************************************************************
57839
+ */
57840
+ /* proxy-compat-disable */
57841
+ /**
57842
+ * Creates a LuvioService descriptor with the provided Luvio instance.
57843
+ * This function follows the standard service builder pattern used
57844
+ * throughout the Luvio service ecosystem.
57845
+ *
57846
+ * @param luvio The Luvio engine instance to wrap in the service
57847
+ * @returns A service descriptor that can be used in dependency injection
57848
+ *
57849
+ * @example
57850
+ * ```typescript
57851
+ * const luvioService = buildLuvioService(myLuvioInstance);
57852
+ *
57853
+ * // Use in a services object
57854
+ * const services = {
57855
+ * ...otherServices,
57856
+ * luvio: luvioService.service,
57857
+ * };
57858
+ * ```
57859
+ */
57860
+ function buildServiceDescriptor$5(luvio) {
57861
+ return {
57862
+ type: 'luvio',
57863
+ version: '1.0',
57864
+ service: {
57865
+ luvio,
57866
+ },
57867
+ };
57868
+ }
57869
+ // version: 1.377.1-db77d3f339
57870
+
57871
+ /**
57872
+ * Copyright (c) 2022, Salesforce, Inc.,
57873
+ * All rights reserved.
57874
+ * For full license text, see the LICENSE.txt file
57875
+ */
57876
+
57877
+ /*
57878
+ * ATTENTION!
57879
+ * THIS IS A GENERATED FILE FROM https://github.com/salesforce-experience-platform-emu/lds-lightning-platform
57880
+ * If you would like to contribute to LDS, please follow the steps outlined in the git repo.
57881
+ * Any changes made to this file in p4 will be automatically overwritten.
57882
+ * *******************************************************************************************
57883
+ */
57884
+ /* proxy-compat-disable */
57885
+ function buildServiceDescriptor$4(notifyRecordUpdateAvailable, getNormalizedLuvioRecord) {
57886
+ return {
57887
+ type: 'luvioUiapiRecords',
57888
+ version: '1.0',
57889
+ service: {
57890
+ notifyRecordUpdateAvailable,
57891
+ getNormalizedLuvioRecord,
57892
+ },
57893
+ };
57894
+ }
57895
+ // version: 1.377.1-db77d3f339
57896
+
57897
+ /*!
57898
+ * Copyright (c) 2022, Salesforce, Inc.,
57899
+ * All rights reserved.
57900
+ * For full license text, see the LICENSE.txt file
57901
+ */
57902
+ function devAssert(condition, message) {
57903
+ const booleanCondition = Boolean(condition);
57904
+ if (!booleanCondition) {
57905
+ throw new Error(message);
57906
+ }
57907
+ }
57908
+ const MAX_ARRAY_LENGTH = 10;
57909
+ const MAX_RECURSIVE_DEPTH = 2;
57910
+ function inspect(value) {
57911
+ return formatValue(value, []);
57912
+ }
57913
+ function formatValue(value, seenValues) {
57914
+ switch (typeof value) {
57915
+ case "string":
57916
+ return JSON.stringify(value);
57917
+ case "function":
57918
+ return value.name ? `[function ${value.name}]` : "[function]";
57919
+ case "object":
57920
+ return formatObjectValue(value, seenValues);
57921
+ default:
57922
+ return String(value);
57923
+ }
57924
+ }
57925
+ function formatObjectValue(value, previouslySeenValues) {
57926
+ if (value === null) {
57927
+ return "null";
57928
+ }
57929
+ if (previouslySeenValues.includes(value)) {
57930
+ return "[Circular]";
57931
+ }
57932
+ const seenValues = [...previouslySeenValues, value];
57933
+ if (isJSONable(value)) {
57934
+ const jsonValue = value.toJSON();
57935
+ if (jsonValue !== value) {
57936
+ return typeof jsonValue === "string" ? jsonValue : formatValue(jsonValue, seenValues);
57937
+ }
57938
+ } else if (Array.isArray(value)) {
57939
+ return formatArray(value, seenValues);
57940
+ }
57941
+ return formatObject(value, seenValues);
57942
+ }
57943
+ function isJSONable(value) {
57944
+ return typeof value.toJSON === "function";
57945
+ }
57946
+ function formatObject(object, seenValues) {
57947
+ const entries = Object.entries(object);
57948
+ if (entries.length === 0) {
57949
+ return "{}";
57950
+ }
57951
+ if (seenValues.length > MAX_RECURSIVE_DEPTH) {
57952
+ return "[" + getObjectTag(object) + "]";
57953
+ }
57954
+ const properties = entries.map(
57955
+ ([key, value]) => key + ": " + formatValue(value, seenValues)
57956
+ );
57957
+ return "{ " + properties.join(", ") + " }";
57958
+ }
57959
+ function formatArray(array, seenValues) {
57960
+ if (array.length === 0) {
57961
+ return "[]";
57962
+ }
57963
+ if (seenValues.length > MAX_RECURSIVE_DEPTH) {
57964
+ return "[Array]";
57965
+ }
57966
+ const len = Math.min(MAX_ARRAY_LENGTH, array.length);
57967
+ const remaining = array.length - len;
57968
+ const items = [];
57969
+ for (let i = 0; i < len; ++i) {
57970
+ items.push(formatValue(array[i], seenValues));
57971
+ }
57972
+ if (remaining === 1) {
57973
+ items.push("... 1 more item");
57974
+ } else if (remaining > 1) {
57975
+ items.push(`... ${remaining} more items`);
57976
+ }
57977
+ return "[" + items.join(", ") + "]";
57978
+ }
57979
+ function getObjectTag(object) {
57980
+ const tag = Object.prototype.toString.call(object).replace(/^\[object /, "").replace(/]$/, "");
57981
+ if (tag === "Object" && typeof object.constructor === "function") {
57982
+ const name = object.constructor.name;
57983
+ if (typeof name === "string" && name !== "") {
57984
+ return name;
57985
+ }
57986
+ }
57987
+ return tag;
57988
+ }
57989
+ globalThis.process && // eslint-disable-next-line no-undef
57990
+ process.env.NODE_ENV === "production";
57991
+ var Kind;
57992
+ (function(Kind2) {
57993
+ Kind2["NAME"] = "Name";
57994
+ Kind2["DOCUMENT"] = "Document";
57995
+ Kind2["OPERATION_DEFINITION"] = "OperationDefinition";
57996
+ Kind2["VARIABLE_DEFINITION"] = "VariableDefinition";
57997
+ Kind2["SELECTION_SET"] = "SelectionSet";
57998
+ Kind2["FIELD"] = "Field";
57999
+ Kind2["ARGUMENT"] = "Argument";
58000
+ Kind2["FRAGMENT_SPREAD"] = "FragmentSpread";
58001
+ Kind2["INLINE_FRAGMENT"] = "InlineFragment";
58002
+ Kind2["FRAGMENT_DEFINITION"] = "FragmentDefinition";
58003
+ Kind2["VARIABLE"] = "Variable";
58004
+ Kind2["INT"] = "IntValue";
58005
+ Kind2["FLOAT"] = "FloatValue";
58006
+ Kind2["STRING"] = "StringValue";
58007
+ Kind2["BOOLEAN"] = "BooleanValue";
58008
+ Kind2["NULL"] = "NullValue";
58009
+ Kind2["ENUM"] = "EnumValue";
58010
+ Kind2["LIST"] = "ListValue";
58011
+ Kind2["OBJECT"] = "ObjectValue";
58012
+ Kind2["OBJECT_FIELD"] = "ObjectField";
58013
+ Kind2["DIRECTIVE"] = "Directive";
58014
+ Kind2["NAMED_TYPE"] = "NamedType";
58015
+ Kind2["LIST_TYPE"] = "ListType";
58016
+ Kind2["NON_NULL_TYPE"] = "NonNullType";
58017
+ Kind2["SCHEMA_DEFINITION"] = "SchemaDefinition";
58018
+ Kind2["OPERATION_TYPE_DEFINITION"] = "OperationTypeDefinition";
58019
+ Kind2["SCALAR_TYPE_DEFINITION"] = "ScalarTypeDefinition";
58020
+ Kind2["OBJECT_TYPE_DEFINITION"] = "ObjectTypeDefinition";
58021
+ Kind2["FIELD_DEFINITION"] = "FieldDefinition";
58022
+ Kind2["INPUT_VALUE_DEFINITION"] = "InputValueDefinition";
58023
+ Kind2["INTERFACE_TYPE_DEFINITION"] = "InterfaceTypeDefinition";
58024
+ Kind2["UNION_TYPE_DEFINITION"] = "UnionTypeDefinition";
58025
+ Kind2["ENUM_TYPE_DEFINITION"] = "EnumTypeDefinition";
58026
+ Kind2["ENUM_VALUE_DEFINITION"] = "EnumValueDefinition";
58027
+ Kind2["INPUT_OBJECT_TYPE_DEFINITION"] = "InputObjectTypeDefinition";
58028
+ Kind2["DIRECTIVE_DEFINITION"] = "DirectiveDefinition";
58029
+ Kind2["SCHEMA_EXTENSION"] = "SchemaExtension";
58030
+ Kind2["SCALAR_TYPE_EXTENSION"] = "ScalarTypeExtension";
58031
+ Kind2["OBJECT_TYPE_EXTENSION"] = "ObjectTypeExtension";
58032
+ Kind2["INTERFACE_TYPE_EXTENSION"] = "InterfaceTypeExtension";
58033
+ Kind2["UNION_TYPE_EXTENSION"] = "UnionTypeExtension";
58034
+ Kind2["ENUM_TYPE_EXTENSION"] = "EnumTypeExtension";
58035
+ Kind2["INPUT_OBJECT_TYPE_EXTENSION"] = "InputObjectTypeExtension";
58036
+ })(Kind || (Kind = {}));
58037
+ var TokenKind;
58038
+ (function(TokenKind2) {
58039
+ TokenKind2["SOF"] = "<SOF>";
58040
+ TokenKind2["EOF"] = "<EOF>";
58041
+ TokenKind2["BANG"] = "!";
58042
+ TokenKind2["DOLLAR"] = "$";
58043
+ TokenKind2["AMP"] = "&";
58044
+ TokenKind2["PAREN_L"] = "(";
58045
+ TokenKind2["PAREN_R"] = ")";
58046
+ TokenKind2["SPREAD"] = "...";
58047
+ TokenKind2["COLON"] = ":";
58048
+ TokenKind2["EQUALS"] = "=";
58049
+ TokenKind2["AT"] = "@";
58050
+ TokenKind2["BRACKET_L"] = "[";
58051
+ TokenKind2["BRACKET_R"] = "]";
58052
+ TokenKind2["BRACE_L"] = "{";
58053
+ TokenKind2["PIPE"] = "|";
58054
+ TokenKind2["BRACE_R"] = "}";
58055
+ TokenKind2["NAME"] = "Name";
58056
+ TokenKind2["INT"] = "Int";
58057
+ TokenKind2["FLOAT"] = "Float";
58058
+ TokenKind2["STRING"] = "String";
58059
+ TokenKind2["BLOCK_STRING"] = "BlockString";
58060
+ TokenKind2["COMMENT"] = "Comment";
58061
+ })(TokenKind || (TokenKind = {}));
58062
+ const QueryDocumentKeys = {
58063
+ Name: [],
58064
+ Document: ["definitions"],
58065
+ OperationDefinition: [
58066
+ "name",
58067
+ "variableDefinitions",
58068
+ "directives",
58069
+ "selectionSet"
58070
+ ],
58071
+ VariableDefinition: ["variable", "type", "defaultValue", "directives"],
58072
+ Variable: ["name"],
58073
+ SelectionSet: ["selections"],
58074
+ Field: ["alias", "name", "arguments", "directives", "selectionSet"],
58075
+ Argument: ["name", "value"],
58076
+ FragmentSpread: ["name", "directives"],
58077
+ InlineFragment: ["typeCondition", "directives", "selectionSet"],
58078
+ FragmentDefinition: [
58079
+ "name",
58080
+ // Note: fragment variable definitions are deprecated and will removed in v17.0.0
58081
+ "variableDefinitions",
58082
+ "typeCondition",
58083
+ "directives",
58084
+ "selectionSet"
58085
+ ],
58086
+ IntValue: [],
58087
+ FloatValue: [],
58088
+ StringValue: [],
58089
+ BooleanValue: [],
58090
+ NullValue: [],
58091
+ EnumValue: [],
58092
+ ListValue: ["values"],
58093
+ ObjectValue: ["fields"],
58094
+ ObjectField: ["name", "value"],
58095
+ Directive: ["name", "arguments"],
58096
+ NamedType: ["name"],
58097
+ ListType: ["type"],
58098
+ NonNullType: ["type"],
58099
+ SchemaDefinition: ["description", "directives", "operationTypes"],
58100
+ OperationTypeDefinition: ["type"],
58101
+ ScalarTypeDefinition: ["description", "name", "directives"],
58102
+ ObjectTypeDefinition: [
58103
+ "description",
58104
+ "name",
58105
+ "interfaces",
58106
+ "directives",
58107
+ "fields"
58108
+ ],
58109
+ FieldDefinition: ["description", "name", "arguments", "type", "directives"],
58110
+ InputValueDefinition: [
58111
+ "description",
58112
+ "name",
58113
+ "type",
58114
+ "defaultValue",
58115
+ "directives"
58116
+ ],
58117
+ InterfaceTypeDefinition: [
58118
+ "description",
58119
+ "name",
58120
+ "interfaces",
58121
+ "directives",
58122
+ "fields"
58123
+ ],
58124
+ UnionTypeDefinition: ["description", "name", "directives", "types"],
58125
+ EnumTypeDefinition: ["description", "name", "directives", "values"],
58126
+ EnumValueDefinition: ["description", "name", "directives"],
58127
+ InputObjectTypeDefinition: ["description", "name", "directives", "fields"],
58128
+ DirectiveDefinition: ["description", "name", "arguments", "locations"],
58129
+ SchemaExtension: ["directives", "operationTypes"],
58130
+ ScalarTypeExtension: ["name", "directives"],
58131
+ ObjectTypeExtension: ["name", "interfaces", "directives", "fields"],
58132
+ InterfaceTypeExtension: ["name", "interfaces", "directives", "fields"],
58133
+ UnionTypeExtension: ["name", "directives", "types"],
58134
+ EnumTypeExtension: ["name", "directives", "values"],
58135
+ InputObjectTypeExtension: ["name", "directives", "fields"]
58136
+ };
58137
+ const kindValues = new Set(Object.keys(QueryDocumentKeys));
58138
+ function isNode(maybeNode) {
58139
+ const maybeKind = maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;
58140
+ return typeof maybeKind === "string" && kindValues.has(maybeKind);
58141
+ }
58142
+ var OperationTypeNode;
58143
+ (function(OperationTypeNode2) {
58144
+ OperationTypeNode2["QUERY"] = "query";
58145
+ OperationTypeNode2["MUTATION"] = "mutation";
58146
+ OperationTypeNode2["SUBSCRIPTION"] = "subscription";
58147
+ })(OperationTypeNode || (OperationTypeNode = {}));
58148
+ function isWhiteSpace(code) {
58149
+ return code === 9 || code === 32;
58150
+ }
58151
+ function printBlockString(value, options) {
58152
+ const escapedValue = value.replace(/"""/g, '\\"""');
58153
+ const lines = escapedValue.split(/\r\n|[\n\r]/g);
58154
+ const isSingleLine = lines.length === 1;
58155
+ const forceLeadingNewLine = lines.length > 1 && lines.slice(1).every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0)));
58156
+ const hasTrailingTripleQuotes = escapedValue.endsWith('\\"""');
58157
+ const hasTrailingQuote = value.endsWith('"') && !hasTrailingTripleQuotes;
58158
+ const hasTrailingSlash = value.endsWith("\\");
58159
+ const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;
58160
+ const printAsMultipleLines = !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability
58161
+ (!isSingleLine || value.length > 70 || forceTrailingNewline || forceLeadingNewLine || hasTrailingTripleQuotes);
58162
+ let result = "";
58163
+ const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));
58164
+ if (printAsMultipleLines && !skipLeadingNewLine || forceLeadingNewLine) {
58165
+ result += "\n";
58166
+ }
58167
+ result += escapedValue;
58168
+ if (printAsMultipleLines || forceTrailingNewline) {
58169
+ result += "\n";
58170
+ }
58171
+ return '"""' + result + '"""';
58172
+ }
58173
+ var DirectiveLocation;
58174
+ (function(DirectiveLocation2) {
58175
+ DirectiveLocation2["QUERY"] = "QUERY";
58176
+ DirectiveLocation2["MUTATION"] = "MUTATION";
58177
+ DirectiveLocation2["SUBSCRIPTION"] = "SUBSCRIPTION";
58178
+ DirectiveLocation2["FIELD"] = "FIELD";
58179
+ DirectiveLocation2["FRAGMENT_DEFINITION"] = "FRAGMENT_DEFINITION";
58180
+ DirectiveLocation2["FRAGMENT_SPREAD"] = "FRAGMENT_SPREAD";
58181
+ DirectiveLocation2["INLINE_FRAGMENT"] = "INLINE_FRAGMENT";
58182
+ DirectiveLocation2["VARIABLE_DEFINITION"] = "VARIABLE_DEFINITION";
58183
+ DirectiveLocation2["SCHEMA"] = "SCHEMA";
58184
+ DirectiveLocation2["SCALAR"] = "SCALAR";
58185
+ DirectiveLocation2["OBJECT"] = "OBJECT";
58186
+ DirectiveLocation2["FIELD_DEFINITION"] = "FIELD_DEFINITION";
58187
+ DirectiveLocation2["ARGUMENT_DEFINITION"] = "ARGUMENT_DEFINITION";
58188
+ DirectiveLocation2["INTERFACE"] = "INTERFACE";
58189
+ DirectiveLocation2["UNION"] = "UNION";
58190
+ DirectiveLocation2["ENUM"] = "ENUM";
58191
+ DirectiveLocation2["ENUM_VALUE"] = "ENUM_VALUE";
58192
+ DirectiveLocation2["INPUT_OBJECT"] = "INPUT_OBJECT";
58193
+ DirectiveLocation2["INPUT_FIELD_DEFINITION"] = "INPUT_FIELD_DEFINITION";
58194
+ })(DirectiveLocation || (DirectiveLocation = {}));
58195
+ function printString(str) {
58196
+ return `"${str.replace(escapedRegExp, escapedReplacer)}"`;
58197
+ }
58198
+ const escapedRegExp = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g;
58199
+ function escapedReplacer(str) {
58200
+ return escapeSequences[str.charCodeAt(0)];
58201
+ }
58202
+ const escapeSequences = [
58203
+ "\\u0000",
58204
+ "\\u0001",
58205
+ "\\u0002",
58206
+ "\\u0003",
58207
+ "\\u0004",
58208
+ "\\u0005",
58209
+ "\\u0006",
58210
+ "\\u0007",
58211
+ "\\b",
58212
+ "\\t",
58213
+ "\\n",
58214
+ "\\u000B",
58215
+ "\\f",
58216
+ "\\r",
58217
+ "\\u000E",
58218
+ "\\u000F",
58219
+ "\\u0010",
58220
+ "\\u0011",
58221
+ "\\u0012",
58222
+ "\\u0013",
58223
+ "\\u0014",
58224
+ "\\u0015",
58225
+ "\\u0016",
58226
+ "\\u0017",
58227
+ "\\u0018",
58228
+ "\\u0019",
58229
+ "\\u001A",
58230
+ "\\u001B",
58231
+ "\\u001C",
58232
+ "\\u001D",
58233
+ "\\u001E",
58234
+ "\\u001F",
58235
+ "",
58236
+ "",
58237
+ '\\"',
58238
+ "",
58239
+ "",
58240
+ "",
58241
+ "",
58242
+ "",
58243
+ "",
58244
+ "",
58245
+ "",
58246
+ "",
58247
+ "",
58248
+ "",
58249
+ "",
58250
+ "",
58251
+ // 2F
58252
+ "",
58253
+ "",
58254
+ "",
58255
+ "",
58256
+ "",
58257
+ "",
58258
+ "",
58259
+ "",
58260
+ "",
58261
+ "",
58262
+ "",
58263
+ "",
58264
+ "",
58265
+ "",
58266
+ "",
58267
+ "",
58268
+ // 3F
58269
+ "",
58270
+ "",
58271
+ "",
58272
+ "",
58273
+ "",
58274
+ "",
58275
+ "",
58276
+ "",
58277
+ "",
58278
+ "",
58279
+ "",
58280
+ "",
58281
+ "",
58282
+ "",
58283
+ "",
58284
+ "",
58285
+ // 4F
58286
+ "",
58287
+ "",
58288
+ "",
58289
+ "",
58290
+ "",
58291
+ "",
58292
+ "",
58293
+ "",
58294
+ "",
58295
+ "",
58296
+ "",
58297
+ "",
58298
+ "\\\\",
58299
+ "",
58300
+ "",
58301
+ "",
58302
+ // 5F
58303
+ "",
58304
+ "",
58305
+ "",
58306
+ "",
58307
+ "",
58308
+ "",
58309
+ "",
58310
+ "",
58311
+ "",
58312
+ "",
58313
+ "",
58314
+ "",
58315
+ "",
58316
+ "",
58317
+ "",
58318
+ "",
58319
+ // 6F
58320
+ "",
58321
+ "",
58322
+ "",
58323
+ "",
58324
+ "",
58325
+ "",
58326
+ "",
58327
+ "",
58328
+ "",
58329
+ "",
58330
+ "",
58331
+ "",
58332
+ "",
58333
+ "",
58334
+ "",
58335
+ "\\u007F",
58336
+ "\\u0080",
58337
+ "\\u0081",
58338
+ "\\u0082",
58339
+ "\\u0083",
58340
+ "\\u0084",
58341
+ "\\u0085",
58342
+ "\\u0086",
58343
+ "\\u0087",
58344
+ "\\u0088",
58345
+ "\\u0089",
58346
+ "\\u008A",
58347
+ "\\u008B",
58348
+ "\\u008C",
58349
+ "\\u008D",
58350
+ "\\u008E",
58351
+ "\\u008F",
58352
+ "\\u0090",
58353
+ "\\u0091",
58354
+ "\\u0092",
58355
+ "\\u0093",
58356
+ "\\u0094",
58357
+ "\\u0095",
58358
+ "\\u0096",
58359
+ "\\u0097",
58360
+ "\\u0098",
58361
+ "\\u0099",
58362
+ "\\u009A",
58363
+ "\\u009B",
58364
+ "\\u009C",
58365
+ "\\u009D",
58366
+ "\\u009E",
58367
+ "\\u009F"
58368
+ ];
58369
+ const BREAK = Object.freeze({});
58370
+ function visit(root, visitor, visitorKeys = QueryDocumentKeys) {
58371
+ const enterLeaveMap = /* @__PURE__ */ new Map();
58372
+ for (const kind of Object.values(Kind)) {
58373
+ enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));
58374
+ }
58375
+ let stack = void 0;
58376
+ let inArray = Array.isArray(root);
58377
+ let keys = [root];
58378
+ let index = -1;
58379
+ let edits = [];
58380
+ let node = root;
58381
+ let key = void 0;
58382
+ let parent = void 0;
58383
+ const path = [];
58384
+ const ancestors = [];
58385
+ do {
58386
+ index++;
58387
+ const isLeaving = index === keys.length;
58388
+ const isEdited = isLeaving && edits.length !== 0;
58389
+ if (isLeaving) {
58390
+ key = ancestors.length === 0 ? void 0 : path[path.length - 1];
58391
+ node = parent;
58392
+ parent = ancestors.pop();
58393
+ if (isEdited) {
58394
+ if (inArray) {
58395
+ node = node.slice();
58396
+ let editOffset = 0;
58397
+ for (const [editKey, editValue] of edits) {
58398
+ const arrayKey = editKey - editOffset;
58399
+ if (editValue === null) {
58400
+ node.splice(arrayKey, 1);
58401
+ editOffset++;
58402
+ } else {
58403
+ node[arrayKey] = editValue;
58404
+ }
58405
+ }
58406
+ } else {
58407
+ node = { ...node };
58408
+ for (const [editKey, editValue] of edits) {
58409
+ node[editKey] = editValue;
58410
+ }
58411
+ }
58412
+ }
58413
+ index = stack.index;
58414
+ keys = stack.keys;
58415
+ edits = stack.edits;
58416
+ inArray = stack.inArray;
58417
+ stack = stack.prev;
58418
+ } else if (parent) {
58419
+ key = inArray ? index : keys[index];
58420
+ node = parent[key];
58421
+ if (node === null || node === void 0) {
58422
+ continue;
58423
+ }
58424
+ path.push(key);
58425
+ }
58426
+ let result;
58427
+ if (!Array.isArray(node)) {
58428
+ var _enterLeaveMap$get, _enterLeaveMap$get2;
58429
+ isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);
58430
+ const visitFn = isLeaving ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null || _enterLeaveMap$get === void 0 ? void 0 : _enterLeaveMap$get.leave : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null || _enterLeaveMap$get2 === void 0 ? void 0 : _enterLeaveMap$get2.enter;
58431
+ result = visitFn === null || visitFn === void 0 ? void 0 : visitFn.call(visitor, node, key, parent, path, ancestors);
58432
+ if (result === BREAK) {
58433
+ break;
58434
+ }
58435
+ if (result === false) {
58436
+ if (!isLeaving) {
58437
+ path.pop();
58438
+ continue;
58439
+ }
58440
+ } else if (result !== void 0) {
58441
+ edits.push([key, result]);
58442
+ if (!isLeaving) {
58443
+ if (isNode(result)) {
58444
+ node = result;
58445
+ } else {
58446
+ path.pop();
58447
+ continue;
58448
+ }
58449
+ }
58450
+ }
58451
+ }
58452
+ if (result === void 0 && isEdited) {
58453
+ edits.push([key, node]);
58454
+ }
58455
+ if (isLeaving) {
58456
+ path.pop();
58457
+ } else {
58458
+ var _node$kind;
58459
+ stack = {
58460
+ inArray,
58461
+ index,
58462
+ keys,
58463
+ edits,
58464
+ prev: stack
58465
+ };
58466
+ inArray = Array.isArray(node);
58467
+ keys = inArray ? node : (_node$kind = visitorKeys[node.kind]) !== null && _node$kind !== void 0 ? _node$kind : [];
58468
+ index = -1;
58469
+ edits = [];
58470
+ if (parent) {
58471
+ ancestors.push(parent);
58472
+ }
58473
+ parent = node;
58474
+ }
58475
+ } while (stack !== void 0);
58476
+ if (edits.length !== 0) {
58477
+ return edits[edits.length - 1][1];
58478
+ }
58479
+ return root;
58480
+ }
58481
+ function getEnterLeaveForKind(visitor, kind) {
58482
+ const kindVisitor = visitor[kind];
58483
+ if (typeof kindVisitor === "object") {
58484
+ return kindVisitor;
58485
+ } else if (typeof kindVisitor === "function") {
58486
+ return {
58487
+ enter: kindVisitor,
58488
+ leave: void 0
58489
+ };
58490
+ }
58491
+ return {
58492
+ enter: visitor.enter,
58493
+ leave: visitor.leave
58494
+ };
58495
+ }
58496
+ function print(ast) {
58497
+ return visit(ast, printDocASTReducer);
58498
+ }
58499
+ const MAX_LINE_LENGTH = 80;
58500
+ const printDocASTReducer = {
58501
+ Name: {
58502
+ leave: (node) => node.value
58503
+ },
58504
+ Variable: {
58505
+ leave: (node) => "$" + node.name
58506
+ },
58507
+ // Document
58508
+ Document: {
58509
+ leave: (node) => join(node.definitions, "\n\n")
58510
+ },
58511
+ OperationDefinition: {
58512
+ leave(node) {
58513
+ const varDefs = wrap("(", join(node.variableDefinitions, ", "), ")");
58514
+ const prefix = join(
58515
+ [
58516
+ node.operation,
58517
+ join([node.name, varDefs]),
58518
+ join(node.directives, " ")
58519
+ ],
58520
+ " "
58521
+ );
58522
+ return (prefix === "query" ? "" : prefix + " ") + node.selectionSet;
58523
+ }
58524
+ },
58525
+ VariableDefinition: {
58526
+ leave: ({ variable, type, defaultValue, directives }) => variable + ": " + type + wrap(" = ", defaultValue) + wrap(" ", join(directives, " "))
58527
+ },
58528
+ SelectionSet: {
58529
+ leave: ({ selections }) => block(selections)
58530
+ },
58531
+ Field: {
58532
+ leave({ alias, name, arguments: args, directives, selectionSet }) {
58533
+ const prefix = wrap("", alias, ": ") + name;
58534
+ let argsLine = prefix + wrap("(", join(args, ", "), ")");
58535
+ if (argsLine.length > MAX_LINE_LENGTH) {
58536
+ argsLine = prefix + wrap("(\n", indent(join(args, "\n")), "\n)");
58537
+ }
58538
+ return join([argsLine, join(directives, " "), selectionSet], " ");
58539
+ }
58540
+ },
58541
+ Argument: {
58542
+ leave: ({ name, value }) => name + ": " + value
58543
+ },
58544
+ // Fragments
58545
+ FragmentSpread: {
58546
+ leave: ({ name, directives }) => "..." + name + wrap(" ", join(directives, " "))
58547
+ },
58548
+ InlineFragment: {
58549
+ leave: ({ typeCondition, directives, selectionSet }) => join(
58550
+ [
58551
+ "...",
58552
+ wrap("on ", typeCondition),
58553
+ join(directives, " "),
58554
+ selectionSet
58555
+ ],
58556
+ " "
58557
+ )
58558
+ },
58559
+ FragmentDefinition: {
58560
+ leave: ({ name, typeCondition, variableDefinitions, directives, selectionSet }) => (
58561
+ // or removed in the future.
58562
+ `fragment ${name}${wrap("(", join(variableDefinitions, ", "), ")")} on ${typeCondition} ${wrap("", join(directives, " "), " ")}` + selectionSet
58563
+ )
58564
+ },
58565
+ // Value
58566
+ IntValue: {
58567
+ leave: ({ value }) => value
58568
+ },
58569
+ FloatValue: {
58570
+ leave: ({ value }) => value
58571
+ },
58572
+ StringValue: {
58573
+ leave: ({ value, block: isBlockString }) => isBlockString ? printBlockString(value) : printString(value)
58574
+ },
58575
+ BooleanValue: {
58576
+ leave: ({ value }) => value ? "true" : "false"
58577
+ },
58578
+ NullValue: {
58579
+ leave: () => "null"
58580
+ },
58581
+ EnumValue: {
58582
+ leave: ({ value }) => value
58583
+ },
58584
+ ListValue: {
58585
+ leave: ({ values }) => "[" + join(values, ", ") + "]"
58586
+ },
58587
+ ObjectValue: {
58588
+ leave: ({ fields }) => "{" + join(fields, ", ") + "}"
58589
+ },
58590
+ ObjectField: {
58591
+ leave: ({ name, value }) => name + ": " + value
58592
+ },
58593
+ // Directive
58594
+ Directive: {
58595
+ leave: ({ name, arguments: args }) => "@" + name + wrap("(", join(args, ", "), ")")
58596
+ },
58597
+ // Type
58598
+ NamedType: {
58599
+ leave: ({ name }) => name
58600
+ },
58601
+ ListType: {
58602
+ leave: ({ type }) => "[" + type + "]"
58603
+ },
58604
+ NonNullType: {
58605
+ leave: ({ type }) => type + "!"
58606
+ },
58607
+ // Type System Definitions
58608
+ SchemaDefinition: {
58609
+ leave: ({ description, directives, operationTypes }) => wrap("", description, "\n") + join(["schema", join(directives, " "), block(operationTypes)], " ")
58610
+ },
58611
+ OperationTypeDefinition: {
58612
+ leave: ({ operation, type }) => operation + ": " + type
58613
+ },
58614
+ ScalarTypeDefinition: {
58615
+ leave: ({ description, name, directives }) => wrap("", description, "\n") + join(["scalar", name, join(directives, " ")], " ")
58616
+ },
58617
+ ObjectTypeDefinition: {
58618
+ leave: ({ description, name, interfaces, directives, fields }) => wrap("", description, "\n") + join(
58619
+ [
58620
+ "type",
58621
+ name,
58622
+ wrap("implements ", join(interfaces, " & ")),
58623
+ join(directives, " "),
58624
+ block(fields)
58625
+ ],
58626
+ " "
58627
+ )
58628
+ },
58629
+ FieldDefinition: {
58630
+ leave: ({ description, name, arguments: args, type, directives }) => wrap("", description, "\n") + name + (hasMultilineItems(args) ? wrap("(\n", indent(join(args, "\n")), "\n)") : wrap("(", join(args, ", "), ")")) + ": " + type + wrap(" ", join(directives, " "))
58631
+ },
58632
+ InputValueDefinition: {
58633
+ leave: ({ description, name, type, defaultValue, directives }) => wrap("", description, "\n") + join(
58634
+ [name + ": " + type, wrap("= ", defaultValue), join(directives, " ")],
58635
+ " "
58636
+ )
58637
+ },
58638
+ InterfaceTypeDefinition: {
58639
+ leave: ({ description, name, interfaces, directives, fields }) => wrap("", description, "\n") + join(
58640
+ [
58641
+ "interface",
58642
+ name,
58643
+ wrap("implements ", join(interfaces, " & ")),
58644
+ join(directives, " "),
58645
+ block(fields)
58646
+ ],
58647
+ " "
58648
+ )
58649
+ },
58650
+ UnionTypeDefinition: {
58651
+ leave: ({ description, name, directives, types }) => wrap("", description, "\n") + join(
58652
+ ["union", name, join(directives, " "), wrap("= ", join(types, " | "))],
58653
+ " "
58654
+ )
58655
+ },
58656
+ EnumTypeDefinition: {
58657
+ leave: ({ description, name, directives, values }) => wrap("", description, "\n") + join(["enum", name, join(directives, " "), block(values)], " ")
58658
+ },
58659
+ EnumValueDefinition: {
58660
+ leave: ({ description, name, directives }) => wrap("", description, "\n") + join([name, join(directives, " ")], " ")
58661
+ },
58662
+ InputObjectTypeDefinition: {
58663
+ leave: ({ description, name, directives, fields }) => wrap("", description, "\n") + join(["input", name, join(directives, " "), block(fields)], " ")
58664
+ },
58665
+ DirectiveDefinition: {
58666
+ leave: ({ description, name, arguments: args, repeatable, locations }) => wrap("", description, "\n") + "directive @" + name + (hasMultilineItems(args) ? wrap("(\n", indent(join(args, "\n")), "\n)") : wrap("(", join(args, ", "), ")")) + (repeatable ? " repeatable" : "") + " on " + join(locations, " | ")
58667
+ },
58668
+ SchemaExtension: {
58669
+ leave: ({ directives, operationTypes }) => join(
58670
+ ["extend schema", join(directives, " "), block(operationTypes)],
58671
+ " "
58672
+ )
58673
+ },
58674
+ ScalarTypeExtension: {
58675
+ leave: ({ name, directives }) => join(["extend scalar", name, join(directives, " ")], " ")
58676
+ },
58677
+ ObjectTypeExtension: {
58678
+ leave: ({ name, interfaces, directives, fields }) => join(
58679
+ [
58680
+ "extend type",
58681
+ name,
58682
+ wrap("implements ", join(interfaces, " & ")),
58683
+ join(directives, " "),
58684
+ block(fields)
58685
+ ],
58686
+ " "
58687
+ )
58688
+ },
58689
+ InterfaceTypeExtension: {
58690
+ leave: ({ name, interfaces, directives, fields }) => join(
58691
+ [
58692
+ "extend interface",
58693
+ name,
58694
+ wrap("implements ", join(interfaces, " & ")),
58695
+ join(directives, " "),
58696
+ block(fields)
58697
+ ],
58698
+ " "
58699
+ )
58700
+ },
58701
+ UnionTypeExtension: {
58702
+ leave: ({ name, directives, types }) => join(
58703
+ [
58704
+ "extend union",
58705
+ name,
58706
+ join(directives, " "),
58707
+ wrap("= ", join(types, " | "))
58708
+ ],
58709
+ " "
58710
+ )
58711
+ },
58712
+ EnumTypeExtension: {
58713
+ leave: ({ name, directives, values }) => join(["extend enum", name, join(directives, " "), block(values)], " ")
58714
+ },
58715
+ InputObjectTypeExtension: {
58716
+ leave: ({ name, directives, fields }) => join(["extend input", name, join(directives, " "), block(fields)], " ")
58717
+ }
58718
+ };
58719
+ function join(maybeArray, separator = "") {
58720
+ var _maybeArray$filter$jo;
58721
+ return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter((x) => x).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : "";
58722
+ }
58723
+ function block(array) {
58724
+ return wrap("{\n", indent(join(array, "\n")), "\n}");
58725
+ }
58726
+ function wrap(start, maybeString, end = "") {
58727
+ return maybeString != null && maybeString !== "" ? start + maybeString + end : "";
58728
+ }
58729
+ function indent(str) {
58730
+ return wrap(" ", str.replace(/\n/g, "\n "));
58731
+ }
58732
+ function hasMultilineItems(maybeArray) {
58733
+ var _maybeArray$some;
58734
+ return (_maybeArray$some = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.some((str) => str.includes("\n"))) !== null && _maybeArray$some !== void 0 ? _maybeArray$some : false;
58735
+ }
58736
+
58737
+ /*!
58738
+ * Copyright (c) 2022, Salesforce, Inc.,
58739
+ * All rights reserved.
58740
+ * For full license text, see the LICENSE.txt file
58741
+ */
58742
+ function findExecutableOperation(input) {
58743
+ const operations = input.query.definitions.filter(
58744
+ (def) => def.kind === Kind.OPERATION_DEFINITION
58745
+ );
58746
+ if (operations.length === 0) {
58747
+ return err$1(new Error("No operations found in query"));
58748
+ }
58749
+ if (operations.length === 1 && !input.operationName) {
58750
+ return ok$1(operations[0]);
58751
+ }
58752
+ if (input.operationName) {
58753
+ const specifiedOperation = operations.find((op) => {
58754
+ var _a;
58755
+ return ((_a = op.name) == null ? void 0 : _a.value) === input.operationName;
58756
+ });
58757
+ if (specifiedOperation) {
58758
+ return ok$1(specifiedOperation);
58759
+ }
58760
+ return err$1(new Error(`Operation "${input.operationName}" not found in query`));
58761
+ }
58762
+ return err$1(new Error("Multiple operations found in query, and no operation name provided"));
58763
+ }
58764
+ function buildGraphQLInputExtension(input) {
58765
+ const operationResult = findExecutableOperation(input);
58766
+ if (operationResult.isErr()) {
58767
+ return err$1(operationResult.error);
58768
+ }
58769
+ const operation = operationResult.value;
58770
+ const selections = operation.selectionSet.selections;
58771
+ const variableDefinitions = operation.variableDefinitions;
58772
+ const variables = (variableDefinitions == null ? void 0 : variableDefinitions.reduce((prev, def) => {
58773
+ var _a;
58774
+ prev[def.variable.name.value] = {
58775
+ definition: def,
58776
+ value: (_a = input.variables) == null ? void 0 : _a[def.variable.name.value]
58777
+ };
58778
+ return prev;
58779
+ }, {})) || {};
58780
+ const fragments = input.query.definitions.filter((def) => def.kind === "FragmentDefinition").reduce((prev, fragment) => {
58781
+ prev[fragment.name.value] = fragment;
58782
+ return prev;
58783
+ }, {});
58784
+ return ok$1({
58785
+ selections,
58786
+ request: { definitions: { variables, fragments } },
58787
+ parentFieldSelection: void 0
58788
+ });
58789
+ }
58790
+
58791
+ /*!
58792
+ * Copyright (c) 2022, Salesforce, Inc.,
58793
+ * All rights reserved.
58794
+ * For full license text, see the LICENSE.txt file
58795
+ */
58796
+ class AuraGraphQLNormalizedCacheControlCommand extends AuraNormalizedCacheControlCommand {
58797
+ constructor(config, documentRootType, services) {
58798
+ super(services);
58799
+ this.config = config;
58800
+ this.documentRootType = documentRootType;
58801
+ this.services = services;
58802
+ }
58803
+ buildResultType() {
58804
+ return this.documentRootType;
58805
+ }
58806
+ buildQuery() {
58807
+ const extensionResult = buildGraphQLInputExtension(this.config);
58808
+ if (extensionResult.isErr()) {
58809
+ throw extensionResult.error;
58810
+ }
58811
+ return {
58812
+ type: "keyParams",
58813
+ keyParams: null,
58814
+ ...extensionResult.value
58815
+ };
58816
+ }
58817
+ responseHasErrors(data) {
58818
+ return data.hasOwnProperty("errors") && data.errors && data.errors.length > 0;
58819
+ }
58820
+ processAuraReturnValue(auraReturnValue) {
58821
+ if (this.responseHasErrors(auraReturnValue)) {
58822
+ return err$1(new UserVisibleError(auraReturnValue));
58823
+ }
58824
+ return ok$1(auraReturnValue);
58825
+ }
58826
+ processFetchReturnValue(json) {
58827
+ if (this.responseHasErrors(json)) {
58828
+ return err$1(new UserVisibleError(json));
58829
+ }
58830
+ return ok$1(json);
58831
+ }
58832
+ /**
58833
+ * Optional body wrapper name for aura requests.
58834
+ * If defined, the aura params will be wrapped in an object with this property name.
58835
+ * Override this method in subclasses if a body wrapper is needed.
58836
+ */
58837
+ get auraBodyWrapperName() {
58838
+ return void 0;
58839
+ }
58840
+ get auraParams() {
58841
+ const params = { ...this.config, query: print(this.buildRequestQuery()) };
58842
+ if (this.auraBodyWrapperName) {
58843
+ return { [this.auraBodyWrapperName]: params };
58844
+ }
58845
+ return params;
58846
+ }
58847
+ get fetchParams() {
58848
+ const body = { ...this.config, query: print(this.buildRequestQuery()) };
58849
+ const headers = {
58850
+ "Content-Type": "application/json"
58851
+ };
58852
+ const params = {
58853
+ method: "POST",
58854
+ cache: "no-cache",
58855
+ headers,
58856
+ body: JSON.stringify(body)
58857
+ };
58858
+ return [this.url, params];
58859
+ }
58860
+ get originalAuraParams() {
58861
+ const params = { ...this.config, query: print(this.config.query) };
58862
+ if (this.auraBodyWrapperName) {
58863
+ return { [this.auraBodyWrapperName]: params };
58864
+ }
58865
+ return params;
58866
+ }
58867
+ get originalFetchParams() {
58868
+ const body = { ...this.config, query: print(this.config.query) };
58869
+ const headers = {
58870
+ "Content-Type": "application/json"
58871
+ };
58872
+ const params = {
58873
+ method: "POST",
58874
+ cache: "no-cache",
58875
+ headers,
58876
+ body: JSON.stringify(body)
58877
+ };
58878
+ return [this.url, params];
58879
+ }
58880
+ // TODO: We should respect the cache control strategy in this method. We don't support only-if-cached strategies at the moment, but if we did add support, we would technically violate that cache control strategy if the data wasn't in the cache here.
58881
+ runOriginalRequest() {
58882
+ if (this.shouldUseAuraNetwork()) {
58883
+ return this.convertAuraResponseToData(
58884
+ this.services.auraNetwork(
58885
+ this.endpoint,
58886
+ this.originalAuraParams,
58887
+ this.actionConfig
58888
+ ),
58889
+ (errs) => this.coerceError(errs)
58890
+ ).then((result) => {
58891
+ if (result.isOk()) {
58892
+ return this.constructSubscribableResult(result.value);
58893
+ }
58894
+ return result;
58895
+ });
58896
+ } else if (this.shouldUseFetch()) {
58897
+ return this.convertFetchResponseToData(
58898
+ this.services.fetch(...this.originalFetchParams)
58899
+ ).then((result) => {
58900
+ if (result.isOk()) {
58901
+ return this.constructSubscribableResult(result.value);
58902
+ }
58903
+ return result;
58904
+ });
58905
+ }
58906
+ return resolvedPromiseLike$3(err$1(toError("Aura/Fetch network services not found")));
58907
+ }
58908
+ buildRequestQuery() {
58909
+ const augmentedQueryResult = this.documentRootType.buildAugmentedQuery(this.config);
58910
+ if (augmentedQueryResult.isErr()) {
58911
+ throw augmentedQueryResult.error;
58912
+ }
58913
+ return augmentedQueryResult.value;
58914
+ }
58915
+ buildWriteInput(data) {
58916
+ const extensionResult = buildGraphQLInputExtension({
58917
+ ...this.config,
58918
+ query: this.buildRequestQuery()
58919
+ });
58920
+ if (extensionResult.isErr()) {
58921
+ throw new InternalError(extensionResult.error);
58922
+ }
58923
+ return { data: data.data, ...extensionResult.value };
58924
+ }
58925
+ // Any changes to this method should most likely be duplicated in the https command as well
58926
+ handleCacheControllerResult(result, requestRunner) {
58927
+ const { networkError, returnData } = requestRunner;
58928
+ return this.publishUpdatedKeys().then(() => {
58929
+ if (networkError || returnData === void 0 || returnData.isErr() || result.isErr()) {
58930
+ return this.runOriginalRequest();
58931
+ }
58932
+ if (this.subscriptions.length > 0) {
58933
+ this.subscribeToKeysUsed();
58934
+ }
58935
+ if (this.lastEmittedData === void 0) {
58936
+ this.lastEmittedData = returnData.value.data;
58937
+ }
58938
+ return returnData;
58939
+ });
58940
+ }
58941
+ }
58942
+ function buildServiceDescriptor$3() {
58943
+ return {
58944
+ type: "auraGraphQLNormalizedCacheControlCommand",
58945
+ version: "1.0",
58946
+ service: AuraGraphQLNormalizedCacheControlCommand
58947
+ };
58948
+ }
58949
+
58950
+ /*!
58951
+ * Copyright (c) 2022, Salesforce, Inc.,
58952
+ * All rights reserved.
58953
+ * For full license text, see the LICENSE.txt file
58954
+ */
58955
+ class HttpGraphQLNormalizedCacheControlCommand extends HttpNormalizedCacheControlCommand {
58956
+ constructor(config, documentRootType, services) {
58957
+ super(services);
58958
+ this.config = config;
58959
+ this.documentRootType = documentRootType;
58960
+ this.services = services;
58961
+ }
58962
+ buildResultType() {
58963
+ return this.documentRootType;
58964
+ }
58965
+ buildQuery() {
58966
+ const extensionResult = buildGraphQLInputExtension(this.config);
58967
+ if (extensionResult.isErr()) {
58968
+ throw extensionResult.error;
58969
+ }
58970
+ return {
58971
+ type: "keyParams",
58972
+ keyParams: null,
58973
+ ...extensionResult.value
58974
+ };
58975
+ }
58976
+ get fetchParams() {
58977
+ const body = { ...this.config, query: print(this.buildRequestQuery()) };
58978
+ const headers = {
58979
+ "Content-Type": "application/json"
58980
+ };
58981
+ const params = {
58982
+ method: "POST",
58983
+ cache: "no-cache",
58984
+ headers,
58985
+ body: JSON.stringify(body)
58986
+ };
58987
+ return [this.url, params];
58988
+ }
58989
+ get originalFetchParams() {
58990
+ const body = { ...this.config, query: print(this.config.query) };
58991
+ const headers = {
58992
+ "Content-Type": "application/json"
58993
+ };
58994
+ const params = {
58995
+ method: "POST",
58996
+ cache: "no-cache",
58997
+ headers,
58998
+ body: JSON.stringify(body)
58999
+ };
59000
+ return [this.url, params];
59001
+ }
59002
+ buildRequestQuery() {
59003
+ const augmentedQueryResult = this.documentRootType.buildAugmentedQuery(this.config);
59004
+ if (augmentedQueryResult.isErr()) {
59005
+ throw augmentedQueryResult.error;
59006
+ }
59007
+ return augmentedQueryResult.value;
59008
+ }
59009
+ buildWriteInput(data) {
59010
+ const extensionResult = buildGraphQLInputExtension({
59011
+ ...this.config,
59012
+ query: this.buildRequestQuery()
59013
+ });
59014
+ if (extensionResult.isErr()) {
59015
+ throw new InternalError(extensionResult.error);
59016
+ }
59017
+ return { data: data.data, ...extensionResult.value };
59018
+ }
59019
+ processFetchReturnValue(json) {
59020
+ if (json.hasOwnProperty("errors") && json.errors && json.errors.length > 0) {
59021
+ return err$1(new UserVisibleError(json));
59022
+ }
59023
+ return ok$1(json);
59024
+ }
59025
+ runOriginalRequest() {
59026
+ return this.convertFetchResponseToData(
59027
+ this.services.fetch(...this.originalFetchParams)
59028
+ ).then((result) => {
59029
+ if (result.isOk()) {
59030
+ return this.constructSubscribableResult(result.value);
59031
+ }
59032
+ return result;
59033
+ });
59034
+ }
59035
+ // Any changes to this method should most likely be duplicated in the aura command as well
59036
+ handleCacheControllerResult(result, requestRunner) {
59037
+ const { networkError, returnData } = requestRunner;
59038
+ return this.publishUpdatedKeys().then(() => {
59039
+ if (networkError || returnData === void 0 || returnData.isErr() || result.isErr()) {
59040
+ return this.runOriginalRequest();
59041
+ }
59042
+ if (this.subscriptions.length > 0) {
59043
+ this.subscribeToKeysUsed();
59044
+ }
59045
+ if (this.lastEmittedData === void 0) {
59046
+ this.lastEmittedData = returnData.value.data;
59047
+ }
59048
+ return returnData;
59049
+ });
59050
+ }
59051
+ }
59052
+ function buildServiceDescriptor$2() {
59053
+ return {
59054
+ type: "httpGraphQLNormalizedCacheControlCommand",
59055
+ version: "1.0",
59056
+ service: HttpGraphQLNormalizedCacheControlCommand
59057
+ };
59058
+ }
59059
+
57736
59060
  /*!
57737
59061
  * Copyright (c) 2022, Salesforce, Inc.,
57738
59062
  * All rights reserved.
@@ -58447,22 +59771,35 @@ function initializeOneStore(sqliteStore) {
58447
59771
  globalThis.performance = { now: () => Date.now() };
58448
59772
  }
58449
59773
  const loggerService = new ConsoleLogger('ERROR');
58450
- const cacheServiceDescriptor = buildServiceDescriptor$6();
58451
- const instrumentationServiceDescriptor = buildServiceDescriptor$3(loggerService);
59774
+ const cacheServiceDescriptor = buildServiceDescriptor$b();
59775
+ const instrumentationServiceDescriptor = buildServiceDescriptor$8(loggerService);
58452
59776
  const nimbusSqliteOneStoreCacheServiceDescriptor = buildNimbusDurableCacheInclusionPolicyService(cacheServiceDescriptor.service, new NimbusSqliteOneStoreCache(sqliteStore));
59777
+ const featureFlagsServiceDescriptor = buildServiceDescriptor$6();
59778
+ const featureFlagsService = featureFlagsServiceDescriptor.service;
59779
+ // This disables the OneStore GraphQL in this runtime
59780
+ // We made the decision to continue using the Luvio based version in Mobile
59781
+ // due to the fact that offline support depends on Luvio, and mobile
59782
+ // does not want to migrate right now
59783
+ featureFlagsService.set('useOneStoreGraphQL', false);
58453
59784
  const services = [
58454
59785
  instrumentationServiceDescriptor,
58455
59786
  buildNimbusFetchServiceDescriptor(),
58456
- buildServiceDescriptor$4(instrumentationServiceDescriptor.service),
59787
+ buildServiceDescriptor$9(instrumentationServiceDescriptor.service),
58457
59788
  // NOTE: These do not directly depend on Aura, and are necessary for HTTP fallback support.
58458
- buildServiceDescriptor$b(),
58459
- buildServiceDescriptor$a(),
58460
- buildServiceDescriptor$9(),
58461
- buildServiceDescriptor$5(cacheServiceDescriptor.service, nimbusSqliteOneStoreCacheServiceDescriptor.service),
58462
- buildServiceDescriptor$8(),
59789
+ buildServiceDescriptor$g(),
59790
+ buildServiceDescriptor$f(),
59791
+ buildServiceDescriptor$e(),
59792
+ buildServiceDescriptor$a(cacheServiceDescriptor.service, nimbusSqliteOneStoreCacheServiceDescriptor.service),
59793
+ buildServiceDescriptor$d(),
59794
+ buildServiceDescriptor$h(),
58463
59795
  buildServiceDescriptor$c(),
58464
59796
  buildServiceDescriptor$7(),
59797
+ buildServiceDescriptor$3(),
58465
59798
  buildServiceDescriptor$2(),
59799
+ featureFlagsServiceDescriptor,
59800
+ // Luvio service won't be used since we set the useOneStoreGraphQL flag to false
59801
+ buildServiceDescriptor$5({}),
59802
+ buildServiceDescriptor$4({}, {}),
58466
59803
  // TODO[@W-18753648]: See note above.
58467
59804
  // buildStreamingCommandServiceDescriptor(),
58468
59805
  // buildNdJsonServiceDescriptor(),
@@ -58676,4 +60013,4 @@ register({
58676
60013
  });
58677
60014
 
58678
60015
  export { O11Y_NAMESPACE_LDS_MOBILE, getRuntime, ingest$1o as ingestDenormalizedRecordRepresentation, registerReportObserver, reportGraphqlQueryParseError };
58679
- // version: 1.376.0-cb776a38bb
60016
+ // version: 1.377.1-dadb6358f3