@salesforce/lds-worker-api 1.120.0 → 1.121.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.
@@ -3649,7 +3649,7 @@ class Luvio {
3649
3649
  return this.environment.buildStructuredKey(namespace, representationName, idValues);
3650
3650
  }
3651
3651
  }
3652
- // engine version: 0.137.4-ec6f5c6d
3652
+ // engine version: 0.137.6-aa20c775
3653
3653
 
3654
3654
  /**
3655
3655
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -3776,7 +3776,7 @@ function withDefaultLuvio(callback) {
3776
3776
  }
3777
3777
  callbacks.push(callback);
3778
3778
  }
3779
- // version: 1.120.0-7e4457c5c
3779
+ // version: 1.121.1-ac2ef2013
3780
3780
 
3781
3781
  // TODO [TD-0081508]: once that TD is fulfilled we can probably change this file
3782
3782
  function instrumentAdapter$1(createFunction, _metadata) {
@@ -15200,7 +15200,7 @@ function parseAndVisit(source) {
15200
15200
  updateReferenceMapWithKnownKey(ast, luvioDocumentNode);
15201
15201
  return luvioDocumentNode;
15202
15202
  }
15203
- // version: 1.120.0-7e4457c5c
15203
+ // version: 1.121.1-ac2ef2013
15204
15204
 
15205
15205
  function unwrap(data) {
15206
15206
  // The lwc-luvio bindings import a function from lwc called "unwrap".
@@ -16113,7 +16113,7 @@ function createGraphQLWireAdapterConstructor(luvio, adapter, metadata, astResolv
16113
16113
  const { apiFamily, name } = metadata;
16114
16114
  return createGraphQLWireAdapterConstructor$1(adapter, `${apiFamily}.${name}`, luvio, astResolver);
16115
16115
  }
16116
- // version: 1.120.0-7e4457c5c
16116
+ // version: 1.121.1-ac2ef2013
16117
16117
 
16118
16118
  /**
16119
16119
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -16196,7 +16196,7 @@ var FragmentReadResultState;
16196
16196
  ({
16197
16197
  state: FragmentReadResultState.Missing,
16198
16198
  });
16199
- // engine version: 0.137.4-ec6f5c6d
16199
+ // engine version: 0.137.6-aa20c775
16200
16200
 
16201
16201
  const { keys: ObjectKeys$3, freeze: ObjectFreeze$3, create: ObjectCreate$3 } = Object;
16202
16202
 
@@ -44347,7 +44347,7 @@ withDefaultLuvio((luvio) => {
44347
44347
  dropFunction: instrumentation$2.notifyRecordUpdateAvailableDropped,
44348
44348
  });
44349
44349
  });
44350
- // version: 1.120.0-d7f610c36
44350
+ // version: 1.121.1-7c3b8db1d
44351
44351
 
44352
44352
  var caseSensitiveUserId = '005B0000000GR4OIAW';
44353
44353
 
@@ -50726,7 +50726,7 @@ function recordLoaderFactory(query) {
50726
50726
  return new DataLoader(batchRecordQuery);
50727
50727
  }
50728
50728
 
50729
- function createContext(store, objectInfos, eventEmitter, settings, snapshot) {
50729
+ function createContext(store, objectInfos, eventEmitter, settings, snapshot, draftFunctions) {
50730
50730
  store.query.bind(store);
50731
50731
  const query = (sql, params) => {
50732
50732
  const now = Date.now();
@@ -50753,6 +50753,7 @@ function createContext(store, objectInfos, eventEmitter, settings, snapshot) {
50753
50753
  Record,
50754
50754
  snapshot,
50755
50755
  seenRecordIds: new Set(),
50756
+ draftFunctions,
50756
50757
  };
50757
50758
  }
50758
50759
 
@@ -51138,7 +51139,7 @@ function dateTimeRange(input, op, field, alias) {
51138
51139
  }
51139
51140
 
51140
51141
  const MultiPickListValueSeparator = ';';
51141
- function filterToPredicates(where, recordType, alias, objectInfoMap, joins) {
51142
+ function filterToPredicates(where, recordType, alias, objectInfoMap, joins, draftFunctions) {
51142
51143
  if (!where)
51143
51144
  return [];
51144
51145
  let predicates = [];
@@ -51220,38 +51221,52 @@ function filterToPredicates(where, recordType, alias, objectInfoMap, joins) {
51220
51221
  }
51221
51222
  }
51222
51223
  else {
51224
+ //`field` match the filedInfo's apiName
51223
51225
  for (const [op, value] of entries$2(where[field])) {
51224
51226
  const operator = operatorToSql(op);
51225
- const fieldInfo = objectInfoMap[recordType].fields[field];
51226
- const coerceIdNeeded = isCoerceIdNeeded(fieldInfo, field, op);
51227
+ /**
51228
+ Two types ID processing might be needed. Draft ID swapping is optional, which depends on DraftFunctions existence.
51229
+ 1. Coercing is needed when query is executed against local db if field is Id field of entity or a reference to an entity. It is OK to use 15 char ID to query agaist server,
51230
+ so there is no need to coerce the ID in injected AST which is used by luvio to do the network request when necessary.
51231
+ 2. Draft ID swapping is needed when adapter rebuild is triggered. Draft ID swapping also happens in field injection phase when adapter call is invoked. The injected AST node has
51232
+ the canonical ID and is passed to Luvio
51233
+ */
51234
+ const idProcessingNeeded = isIDValueField(fieldInfo);
51227
51235
  const makePredicate = fieldInfo.dataType === 'MultiPicklist'
51228
51236
  ? createMultiPicklistPredicate
51229
51237
  : createSinglePredicate;
51230
- predicates.push(makePredicate(coerceIdNeeded ? generateCoercedPredicateValue(value) : value, operator, fieldInfo, alias));
51238
+ predicates.push(makePredicate(idProcessingNeeded
51239
+ ? sanitizePredicateIDValue(value, draftFunctions)
51240
+ : value, operator, fieldInfo, alias));
51231
51241
  }
51232
51242
  }
51233
51243
  }
51234
51244
  return predicates;
51235
51245
  }
51236
51246
  /**
51237
- * Coercing is needed when query is executed against local db if field is Id field of entity or a reference to an entity. It is OK to use 15 char ID to query agaist server,
51238
- * so there is no need to coerce the ID in injected AST which is used by luvio to do the network request when necessary.
51247
+ *
51239
51248
  * @param fieldInfo
51240
- * @param fieldName
51241
- * @returns true if coerce is needed
51249
+ * @returns true if field is of IDValue type
51242
51250
  */
51243
- function isCoerceIdNeeded(fieldInfo, fieldName, op) {
51244
- return ((fieldName === 'Id' ||
51245
- (fieldInfo.apiName === fieldName && fieldInfo.referenceToInfos.length > 0)) &&
51246
- (op === 'eq' || op === 'ne' || op === 'in' || op === 'nin'));
51251
+ function isIDValueField(fieldInfo) {
51252
+ return fieldInfo.apiName === 'Id' || fieldInfo.referenceToInfos.length > 0;
51247
51253
  }
51248
- function generateCoercedPredicateValue(value) {
51254
+ /**
51255
+ * Coerces and swaps ID if it is a draft ID.
51256
+ * @param value Predicate value which might be a string value like 'John' or a List like ['Acme', 'John']
51257
+ * @param draftFunction optional. If undefined, draft ID swapping does not happen
51258
+ * @returns sanitized previdicate value
51259
+ */
51260
+ function sanitizePredicateIDValue(value, draftFunction) {
51249
51261
  if (isArray$2(value)) {
51250
- return value.map(generateCoercedPredicateValue);
51262
+ return value.map((singleValue) => sanitizePredicateIDValue(singleValue, draftFunction));
51251
51263
  }
51252
51264
  else {
51253
51265
  const coercedId = getRecordId18(value);
51254
51266
  if (coercedId !== undefined) {
51267
+ if (draftFunction !== undefined && draftFunction.isDraftId(coercedId)) {
51268
+ return draftFunction.getCanonicalId(coercedId);
51269
+ }
51255
51270
  return coercedId;
51256
51271
  }
51257
51272
  return value;
@@ -52667,7 +52682,7 @@ function addResolversToSchema(schema, polyFields) {
52667
52682
  }
52668
52683
  async function connectionEdgeResolver(obj, _args, context) {
52669
52684
  const { parentArgs = {}, parentRecord, currentFieldName } = obj;
52670
- const { query, objectInfos } = context;
52685
+ const { query, objectInfos, draftFunctions } = context;
52671
52686
  let joins = [];
52672
52687
  let alias = currentFieldName;
52673
52688
  let childRelationshipFieldName = undefined;
@@ -52684,7 +52699,7 @@ async function connectionEdgeResolver(obj, _args, context) {
52684
52699
  }
52685
52700
  // Alias starts as entity's ApiName
52686
52701
  const predicates = [
52687
- ...filterToPredicates(parentArgs.where, alias, alias, context.objectInfos, joins),
52702
+ ...filterToPredicates(parentArgs.where, alias, alias, context.objectInfos, joins, draftFunctions),
52688
52703
  ...scopeToPredicates(parentArgs.scope, context.settings),
52689
52704
  ...childRelationshipToPredicates(childRelationshipFieldName, parentRecord.id),
52690
52705
  ];
@@ -53246,7 +53261,7 @@ function createSchema(objectInfos) {
53246
53261
  return addResolversToSchema(schema, polyFieldTypeNames);
53247
53262
  }
53248
53263
 
53249
- async function evaluate(config, observers, settings, objectInfos, store, snapshot) {
53264
+ async function evaluate(config, observers, settings, objectInfos, store, snapshot, draftFunctions) {
53250
53265
  const eventEmitter = createCustomAdapterEventEmitter(GRAPHQL_EVAL_NAMESPACE, observers);
53251
53266
  // this is only wrapped in a try to execute the event after the result was returned
53252
53267
  try {
@@ -53279,7 +53294,7 @@ async function evaluate(config, observers, settings, objectInfos, store, snapsho
53279
53294
  eventEmitter({ type: 'graphql-preconditions-met' });
53280
53295
  // create the resolver request context, runtime values and functions for
53281
53296
  // resolvers to do their job.
53282
- const contextValue = createContext(store, objectInfos, eventEmitter, settings, snapshot);
53297
+ const contextValue = createContext(store, objectInfos, eventEmitter, settings, snapshot, draftFunctions);
53283
53298
  // We're building this from scratch from each request. If this becomes a
53284
53299
  // hotspot we can pull it up and memoize it later
53285
53300
  const schema = createSchema(objectInfos);
@@ -56605,11 +56620,11 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
56605
56620
  let internalRequestContext = {
56606
56621
  ...requestContext,
56607
56622
  };
56623
+ const draftFunctions = {
56624
+ isDraftId,
56625
+ getCanonicalId,
56626
+ };
56608
56627
  try {
56609
- const draftFunctions = {
56610
- isDraftId,
56611
- getCanonicalId,
56612
- };
56613
56628
  ({
56614
56629
  modifiedAST: injectedAST,
56615
56630
  objectInfos: objectInfoNeeded,
@@ -56692,7 +56707,7 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
56692
56707
  let { result: rebuildResult, seenRecordIds } = await evaluate({
56693
56708
  ...config,
56694
56709
  query: injectedAST,
56695
- }, observers, { userId }, objectInfoNeeded, store, originalSnapshot);
56710
+ }, observers, { userId }, objectInfoNeeded, store, originalSnapshot, draftFunctions);
56696
56711
  if (!rebuildResult.errors) {
56697
56712
  rebuildResult = removeSyntheticFields(rebuildResult, config.query);
56698
56713
  }
@@ -59862,7 +59877,7 @@ register({
59862
59877
  id: '@salesforce/lds-network-adapter',
59863
59878
  instrument: instrument$1,
59864
59879
  });
59865
- // version: 1.120.0-7e4457c5c
59880
+ // version: 1.121.1-ac2ef2013
59866
59881
 
59867
59882
  const { create: create$2, keys: keys$2 } = Object;
59868
59883
  const { stringify: stringify$1, parse: parse$1 } = JSON;
@@ -65209,7 +65224,6 @@ function ingest$i(astNode, state) {
65209
65224
  });
65210
65225
  }
65211
65226
  function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fragments) {
65212
- var _a, _b, _c, _d, _e;
65213
65227
  if (fieldData === null) {
65214
65228
  reader.assignScalar(key, sink, fieldData);
65215
65229
  return sink;
@@ -65228,673 +65242,111 @@ function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fr
65228
65242
  break;
65229
65243
  }
65230
65244
  case 'IDValue': {
65231
- const LastModifiedByIdResolvedLink = reader.read({
65232
- recordId: fieldData.__ref,
65233
- node: {
65234
- kind: 'Fragment',
65235
- private: [],
65236
- opaque: true,
65237
- version: VERSION$L
65238
- },
65239
- variables: {}
65240
- });
65241
- reader.markSeenId(fieldData.__ref);
65242
- if (LastModifiedByIdResolvedLink.data !== undefined) {
65243
- const result = select$L(sel, variables, fragments)(LastModifiedByIdResolvedLink.data, reader); // Should probably
65244
- reader.assignNonScalar(sink, key, result);
65245
- }
65246
- else {
65247
- reader.markMissingLink(fieldData.__ref);
65248
- reader.markMissing();
65249
- }
65245
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$L, select$L, false);
65250
65246
  break;
65251
65247
  }
65252
65248
  case 'DateTimeValue': {
65253
- const LastModifiedDateResolvedLink = reader.read({
65254
- recordId: fieldData.__ref,
65255
- node: {
65256
- kind: 'Fragment',
65257
- private: [],
65258
- opaque: true,
65259
- version: VERSION$K
65260
- },
65261
- variables: {}
65262
- });
65263
- reader.markSeenId(fieldData.__ref);
65264
- if (LastModifiedDateResolvedLink.data !== undefined) {
65265
- const result = select$K(sel, variables, fragments)(LastModifiedDateResolvedLink.data, reader); // Should probably
65266
- reader.assignNonScalar(sink, key, result);
65267
- }
65268
- else {
65269
- reader.markMissingLink(fieldData.__ref);
65270
- reader.markMissing();
65271
- }
65249
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$K, select$K, false);
65272
65250
  break;
65273
65251
  }
65274
65252
  case 'IntValue': {
65275
- const IntValueResolvedLink = reader.read({
65276
- recordId: fieldData.__ref,
65277
- node: {
65278
- kind: 'Fragment',
65279
- private: [],
65280
- opaque: true,
65281
- version: VERSION$N
65282
- },
65283
- variables: {}
65284
- });
65285
- reader.markSeenId(fieldData.__ref);
65286
- if (IntValueResolvedLink.data !== undefined) {
65287
- const result = select$N(sel, variables, fragments)(IntValueResolvedLink.data, reader); // Should probably
65288
- reader.assignNonScalar(sink, key, result);
65289
- }
65290
- else {
65291
- reader.markMissingLink(fieldData.__ref);
65292
- reader.markMissing();
65293
- }
65253
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$N, select$N, false);
65294
65254
  break;
65295
65255
  }
65296
65256
  case 'StringValue': {
65297
- const StringValueResolvedLink = reader.read({
65298
- recordId: fieldData.__ref,
65299
- node: {
65300
- kind: 'Fragment',
65301
- private: [],
65302
- opaque: true,
65303
- version: VERSION$M
65304
- },
65305
- variables: {}
65306
- });
65307
- reader.markSeenId(fieldData.__ref);
65308
- if (StringValueResolvedLink.data !== undefined) {
65309
- const result = select$M(sel, variables, fragments)(StringValueResolvedLink.data, reader); // Should probably
65310
- reader.assignNonScalar(sink, key, result);
65311
- }
65312
- else {
65313
- reader.markMissingLink(fieldData.__ref);
65314
- reader.markMissing();
65315
- }
65257
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$M, select$M, false);
65316
65258
  break;
65317
65259
  }
65318
65260
  case 'BooleanValue': {
65319
- const BooleanValueResolvedLink = reader.read({
65320
- recordId: fieldData.__ref,
65321
- node: {
65322
- kind: 'Fragment',
65323
- private: [],
65324
- opaque: true,
65325
- version: VERSION$J
65326
- },
65327
- variables: {}
65328
- });
65329
- reader.markSeenId(fieldData.__ref);
65330
- if (BooleanValueResolvedLink.data !== undefined) {
65331
- const result = select$J(sel, variables, fragments)(BooleanValueResolvedLink.data, reader); // Should probably
65332
- reader.assignNonScalar(sink, key, result);
65333
- }
65334
- else {
65335
- reader.markMissingLink(fieldData.__ref);
65336
- reader.markMissing();
65337
- }
65261
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$J, select$J, false);
65338
65262
  break;
65339
65263
  }
65340
65264
  case 'TimeValue': {
65341
- const TimeValueResolvedLink = reader.read({
65342
- recordId: fieldData.__ref,
65343
- node: {
65344
- kind: 'Fragment',
65345
- private: [],
65346
- opaque: true,
65347
- version: VERSION$I
65348
- },
65349
- variables: {}
65350
- });
65351
- reader.markSeenId(fieldData.__ref);
65352
- if (TimeValueResolvedLink.data !== undefined) {
65353
- const result = select$I(sel, variables, fragments)(TimeValueResolvedLink.data, reader); // Should probably
65354
- reader.assignNonScalar(sink, key, result);
65355
- }
65356
- else {
65357
- reader.markMissingLink(fieldData.__ref);
65358
- reader.markMissing();
65359
- }
65265
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$I, select$I, false);
65360
65266
  break;
65361
65267
  }
65362
65268
  case 'DateValue': {
65363
- const DateValueResolvedLink = reader.read({
65364
- recordId: fieldData.__ref,
65365
- node: {
65366
- kind: 'Fragment',
65367
- private: [],
65368
- opaque: true,
65369
- version: VERSION$H
65370
- },
65371
- variables: {}
65372
- });
65373
- reader.markSeenId(fieldData.__ref);
65374
- if (DateValueResolvedLink.data !== undefined) {
65375
- const result = select$H(sel, variables, fragments)(DateValueResolvedLink.data, reader); // Should probably
65376
- reader.assignNonScalar(sink, key, result);
65377
- }
65378
- else {
65379
- reader.markMissingLink(fieldData.__ref);
65380
- reader.markMissing();
65381
- }
65269
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$H, select$H, false);
65382
65270
  break;
65383
65271
  }
65384
65272
  case 'TextAreaValue': {
65385
- const TextAreaValueResolvedLink = reader.read({
65386
- recordId: fieldData.__ref,
65387
- node: {
65388
- kind: 'Fragment',
65389
- private: [],
65390
- opaque: true,
65391
- version: VERSION$G
65392
- },
65393
- variables: {}
65394
- });
65395
- reader.markSeenId(fieldData.__ref);
65396
- if (TextAreaValueResolvedLink.data !== undefined) {
65397
- const result = select$G(sel, variables, fragments)(TextAreaValueResolvedLink.data, reader); // Should probably
65398
- reader.assignNonScalar(sink, key, result);
65399
- }
65400
- else {
65401
- reader.markMissingLink(fieldData.__ref);
65402
- reader.markMissing();
65403
- }
65273
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$G, select$G, false);
65404
65274
  break;
65405
65275
  }
65406
65276
  case 'LongTextAreaValue': {
65407
- const LongTextAreaValueResolvedLink = reader.read({
65408
- recordId: fieldData.__ref,
65409
- node: {
65410
- kind: 'Fragment',
65411
- private: [],
65412
- opaque: true,
65413
- version: VERSION$F
65414
- },
65415
- variables: {}
65416
- });
65417
- reader.markSeenId(fieldData.__ref);
65418
- if (LongTextAreaValueResolvedLink.data !== undefined) {
65419
- const result = select$F(sel, variables, fragments)(LongTextAreaValueResolvedLink.data, reader); // Should probably
65420
- reader.assignNonScalar(sink, key, result);
65421
- }
65422
- else {
65423
- reader.markMissingLink(fieldData.__ref);
65424
- reader.markMissing();
65425
- }
65277
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$F, select$F, false);
65426
65278
  break;
65427
65279
  }
65428
65280
  case 'RichTextAreaValue': {
65429
- const RichTextAreaValueResolvedLink = reader.read({
65430
- recordId: fieldData.__ref,
65431
- node: {
65432
- kind: 'Fragment',
65433
- private: [],
65434
- opaque: true,
65435
- version: VERSION$E
65436
- },
65437
- variables: {}
65438
- });
65439
- reader.markSeenId(fieldData.__ref);
65440
- if (RichTextAreaValueResolvedLink.data !== undefined) {
65441
- const result = select$E(sel, variables, fragments)(RichTextAreaValueResolvedLink.data, reader); // Should probably
65442
- reader.assignNonScalar(sink, key, result);
65443
- }
65444
- else {
65445
- reader.markMissingLink(fieldData.__ref);
65446
- reader.markMissing();
65447
- }
65281
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$E, select$E, false);
65448
65282
  break;
65449
65283
  }
65450
65284
  case 'PhoneNumberValue': {
65451
- const PhoneNumberValueResolvedLink = reader.read({
65452
- recordId: fieldData.__ref,
65453
- node: {
65454
- kind: 'Fragment',
65455
- private: [],
65456
- opaque: true,
65457
- version: VERSION$D
65458
- },
65459
- variables: {}
65460
- });
65461
- reader.markSeenId(fieldData.__ref);
65462
- if (PhoneNumberValueResolvedLink.data !== undefined) {
65463
- const result = select$D(sel, variables, fragments)(PhoneNumberValueResolvedLink.data, reader); // Should probably
65464
- reader.assignNonScalar(sink, key, result);
65465
- }
65466
- else {
65467
- reader.markMissingLink(fieldData.__ref);
65468
- reader.markMissing();
65469
- }
65285
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$D, select$D, false);
65470
65286
  break;
65471
65287
  }
65472
65288
  case 'EmailValue': {
65473
- const EmailValueResolvedLink = reader.read({
65474
- recordId: fieldData.__ref,
65475
- node: {
65476
- kind: 'Fragment',
65477
- private: [],
65478
- opaque: true,
65479
- version: VERSION$C
65480
- },
65481
- variables: {}
65482
- });
65483
- reader.markSeenId(fieldData.__ref);
65484
- if (EmailValueResolvedLink.data !== undefined) {
65485
- const result = select$C(sel, variables, fragments)(EmailValueResolvedLink.data, reader); // Should probably
65486
- reader.assignNonScalar(sink, key, result);
65487
- }
65488
- else {
65489
- reader.markMissingLink(fieldData.__ref);
65490
- reader.markMissing();
65491
- }
65289
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$C, select$C, false);
65492
65290
  break;
65493
65291
  }
65494
65292
  case 'UrlValue': {
65495
- const UrlValueResolvedLink = reader.read({
65496
- recordId: fieldData.__ref,
65497
- node: {
65498
- kind: 'Fragment',
65499
- private: [],
65500
- opaque: true,
65501
- version: VERSION$B
65502
- },
65503
- variables: {}
65504
- });
65505
- reader.markSeenId(fieldData.__ref);
65506
- if (UrlValueResolvedLink.data !== undefined) {
65507
- const result = select$B(sel, variables, fragments)(UrlValueResolvedLink.data, reader); // Should probably
65508
- reader.assignNonScalar(sink, key, result);
65509
- }
65510
- else {
65511
- reader.markMissingLink(fieldData.__ref);
65512
- reader.markMissing();
65513
- }
65293
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$B, select$B, false);
65514
65294
  break;
65515
65295
  }
65516
65296
  case 'EncryptedStringValue': {
65517
- const EncryptedStringValueResolvedLink = reader.read({
65518
- recordId: fieldData.__ref,
65519
- node: {
65520
- kind: 'Fragment',
65521
- private: [],
65522
- opaque: true,
65523
- version: VERSION$A
65524
- },
65525
- variables: {}
65526
- });
65527
- reader.markSeenId(fieldData.__ref);
65528
- if (EncryptedStringValueResolvedLink.data !== undefined) {
65529
- const result = select$A(sel, variables, fragments)(EncryptedStringValueResolvedLink.data, reader); // Should probably
65530
- reader.assignNonScalar(sink, key, result);
65531
- }
65532
- else {
65533
- reader.markMissingLink(fieldData.__ref);
65534
- reader.markMissing();
65535
- }
65297
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$A, select$A, false);
65536
65298
  break;
65537
65299
  }
65538
65300
  case 'CurrencyValue': {
65539
- const CurrencyValueResolvedLink = reader.read({
65540
- recordId: fieldData.__ref,
65541
- node: {
65542
- kind: 'Fragment',
65543
- private: [],
65544
- opaque: true,
65545
- version: VERSION$z
65546
- },
65547
- variables: {}
65548
- });
65549
- reader.markSeenId(fieldData.__ref);
65550
- if (CurrencyValueResolvedLink.data !== undefined) {
65551
- const result = select$z(sel, variables, fragments)(CurrencyValueResolvedLink.data, reader); // Should probably
65552
- reader.assignNonScalar(sink, key, result);
65553
- }
65554
- else {
65555
- reader.markMissingLink(fieldData.__ref);
65556
- reader.markMissing();
65557
- }
65301
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$z, select$z, false);
65558
65302
  break;
65559
65303
  }
65560
65304
  case 'LongitudeValue': {
65561
- const LongitudeValueResolvedLink = reader.read({
65562
- recordId: fieldData.__ref,
65563
- node: {
65564
- kind: 'Fragment',
65565
- private: [],
65566
- opaque: true,
65567
- version: VERSION$y
65568
- },
65569
- variables: {}
65570
- });
65571
- reader.markSeenId(fieldData.__ref);
65572
- if (LongitudeValueResolvedLink.data !== undefined) {
65573
- const result = select$y(sel, variables, fragments)(LongitudeValueResolvedLink.data, reader); // Should probably
65574
- reader.assignNonScalar(sink, key, result);
65575
- }
65576
- else {
65577
- reader.markMissingLink(fieldData.__ref);
65578
- reader.markMissing();
65579
- }
65305
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$y, select$y, false);
65580
65306
  break;
65581
65307
  }
65582
65308
  case 'LatitudeValue': {
65583
- const LatitudeValueResolvedLink = reader.read({
65584
- recordId: fieldData.__ref,
65585
- node: {
65586
- kind: 'Fragment',
65587
- private: [],
65588
- opaque: true,
65589
- version: VERSION$x
65590
- },
65591
- variables: {}
65592
- });
65593
- reader.markSeenId(fieldData.__ref);
65594
- if (LatitudeValueResolvedLink.data !== undefined) {
65595
- const result = select$x(sel, variables, fragments)(LatitudeValueResolvedLink.data, reader); // Should probably
65596
- reader.assignNonScalar(sink, key, result);
65597
- }
65598
- else {
65599
- reader.markMissingLink(fieldData.__ref);
65600
- reader.markMissing();
65601
- }
65309
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$x, select$x, false);
65602
65310
  break;
65603
65311
  }
65604
65312
  case 'PicklistValue': {
65605
- const PicklistValueResolvedLink = reader.read({
65606
- recordId: fieldData.__ref,
65607
- node: {
65608
- kind: 'Fragment',
65609
- private: [],
65610
- opaque: true,
65611
- version: VERSION$w
65612
- },
65613
- variables: {}
65614
- });
65615
- reader.markSeenId(fieldData.__ref);
65616
- if (PicklistValueResolvedLink.data !== undefined) {
65617
- const result = select$w(sel, variables, fragments)(PicklistValueResolvedLink.data, reader); // Should probably
65618
- reader.assignNonScalar(sink, key, result);
65619
- }
65620
- else {
65621
- reader.markMissingLink(fieldData.__ref);
65622
- reader.markMissing();
65623
- }
65313
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$w, select$w, false);
65624
65314
  break;
65625
65315
  }
65626
65316
  case 'MultiPicklistValue': {
65627
- const MultiPicklistValueResolvedLink = reader.read({
65628
- recordId: fieldData.__ref,
65629
- node: {
65630
- kind: 'Fragment',
65631
- private: [],
65632
- opaque: true,
65633
- version: VERSION$v
65634
- },
65635
- variables: {}
65636
- });
65637
- reader.markSeenId(fieldData.__ref);
65638
- if (MultiPicklistValueResolvedLink.data !== undefined) {
65639
- const result = select$v(sel, variables, fragments)(MultiPicklistValueResolvedLink.data, reader); // Should probably
65640
- reader.assignNonScalar(sink, key, result);
65641
- }
65642
- else {
65643
- reader.markMissingLink(fieldData.__ref);
65644
- reader.markMissing();
65645
- }
65317
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$v, select$v, false);
65646
65318
  break;
65647
65319
  }
65648
65320
  case 'LongValue': {
65649
- const LongValueResolvedLink = reader.read({
65650
- recordId: fieldData.__ref,
65651
- node: {
65652
- kind: 'Fragment',
65653
- private: [],
65654
- opaque: true,
65655
- version: VERSION$P
65656
- },
65657
- variables: {}
65658
- });
65659
- reader.markSeenId(fieldData.__ref);
65660
- if (LongValueResolvedLink.data !== undefined) {
65661
- const result = select$P(sel, variables, fragments)(LongValueResolvedLink.data, reader); // Should probably
65662
- reader.assignNonScalar(sink, key, result);
65663
- }
65664
- else {
65665
- reader.markMissingLink(fieldData.__ref);
65666
- reader.markMissing();
65667
- }
65321
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$P, select$P, false);
65668
65322
  break;
65669
65323
  }
65670
65324
  case 'DoubleValue': {
65671
- const DoubleValueResolvedLink = reader.read({
65672
- recordId: fieldData.__ref,
65673
- node: {
65674
- kind: 'Fragment',
65675
- private: [],
65676
- opaque: true,
65677
- version: VERSION$Q
65678
- },
65679
- variables: {}
65680
- });
65681
- reader.markSeenId(fieldData.__ref);
65682
- if (DoubleValueResolvedLink.data !== undefined) {
65683
- const result = select$Q(sel, variables, fragments)(DoubleValueResolvedLink.data, reader); // Should probably
65684
- reader.assignNonScalar(sink, key, result);
65685
- }
65686
- else {
65687
- reader.markMissingLink(fieldData.__ref);
65688
- reader.markMissing();
65689
- }
65325
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$Q, select$Q, false);
65690
65326
  break;
65691
65327
  }
65692
65328
  case 'PercentValue': {
65693
- const PercentValueResolvedLink = reader.read({
65694
- recordId: fieldData.__ref,
65695
- node: {
65696
- kind: 'Fragment',
65697
- private: [],
65698
- opaque: true,
65699
- version: VERSION$O
65700
- },
65701
- variables: {}
65702
- });
65703
- reader.markSeenId(fieldData.__ref);
65704
- if (PercentValueResolvedLink.data !== undefined) {
65705
- const result = select$O(sel, variables, fragments)(PercentValueResolvedLink.data, reader); // Should probably
65706
- reader.assignNonScalar(sink, key, result);
65707
- }
65708
- else {
65709
- reader.markMissingLink(fieldData.__ref);
65710
- reader.markMissing();
65711
- }
65329
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$O, select$O, false);
65712
65330
  break;
65713
65331
  }
65714
65332
  case 'Base64Value': {
65715
- const Base64ValueResolvedLink = reader.read({
65716
- recordId: fieldData.__ref,
65717
- node: {
65718
- kind: 'Fragment',
65719
- private: [],
65720
- opaque: true,
65721
- version: VERSION$u
65722
- },
65723
- variables: {}
65724
- });
65725
- reader.markSeenId(fieldData.__ref);
65726
- if (Base64ValueResolvedLink.data !== undefined) {
65727
- const result = select$u(sel, variables, fragments)(Base64ValueResolvedLink.data, reader); // Should probably
65728
- reader.assignNonScalar(sink, key, result);
65729
- }
65730
- else {
65731
- reader.markMissingLink(fieldData.__ref);
65732
- reader.markMissing();
65733
- }
65333
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$u, select$u, false);
65734
65334
  break;
65735
65335
  }
65736
65336
  case 'JSONValue': {
65737
- const JSONValueResolvedLink = reader.read({
65738
- recordId: fieldData.__ref,
65739
- node: {
65740
- kind: 'Fragment',
65741
- private: [],
65742
- opaque: true,
65743
- version: VERSION$t
65744
- },
65745
- variables: {}
65746
- });
65747
- reader.markSeenId(fieldData.__ref);
65748
- if (JSONValueResolvedLink.data !== undefined) {
65749
- const result = select$t(sel, variables, fragments)(JSONValueResolvedLink.data, reader); // Should probably
65750
- reader.assignNonScalar(sink, key, result);
65751
- }
65752
- else {
65753
- reader.markMissingLink(fieldData.__ref);
65754
- reader.markMissing();
65755
- }
65337
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$t, select$t, false);
65756
65338
  break;
65757
65339
  }
65758
65340
  case 'RecordRepresentation': {
65759
- const parentRelationshipResolvedLink = reader.read({
65760
- recordId: fieldData.__ref,
65761
- node: {
65762
- kind: 'Fragment',
65763
- private: [],
65764
- opaque: true,
65765
- version: VERSION$o
65766
- },
65767
- variables: {}
65768
- });
65769
- reader.markSeenId(fieldData.__ref);
65770
- if (parentRelationshipResolvedLink.data !== undefined) {
65771
- const result = select$q(sel, variables, fragments)(parentRelationshipResolvedLink.data, reader); // Should probably
65772
- reader.assignNonScalar(sink, key, result);
65773
- }
65774
- else {
65775
- reader.markMissingLink(fieldData.__ref);
65776
- reader.markMissing();
65777
- }
65341
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$o, select$q, false);
65778
65342
  break;
65779
65343
  }
65780
65344
  case 'PolymorphicParentRelationship': {
65781
- const polymorphicParentRelationshipResolvedLink = reader.read({
65782
- recordId: fieldData.__ref,
65783
- node: {
65784
- kind: 'Fragment',
65785
- private: [],
65786
- opaque: true,
65787
- version: VERSION$s
65788
- },
65789
- variables: {}
65790
- });
65791
- reader.markSeenId(fieldData.__ref);
65792
- if (polymorphicParentRelationshipResolvedLink.data !== undefined) {
65793
- const result = select$s(sel, variables, fragments)(polymorphicParentRelationshipResolvedLink.data, reader); // Should probably
65794
- reader.assignNonScalar(sink, key, result);
65795
- }
65796
- else {
65797
- reader.markMissingLink(fieldData.__ref);
65798
- reader.markMissing();
65799
- }
65345
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$s, select$s, false);
65800
65346
  break;
65801
65347
  }
65802
65348
  case 'RecordConnection': {
65803
- const childRelationshipResolvedLink = reader.read({
65804
- recordId: fieldData.__ref,
65805
- node: {
65806
- kind: 'Fragment',
65807
- private: [],
65808
- opaque: true,
65809
- version: VERSION$m
65810
- },
65811
- variables: {}
65812
- });
65813
- reader.markSeenId(fieldData.__ref);
65814
- if (childRelationshipResolvedLink.data !== undefined) {
65815
- const source = childRelationshipResolvedLink.data.data;
65816
- const totalEdges = source.edges !== undefined ? source.edges.length : 0;
65817
- const metadata = reader.resolveMetadata(source, PAGINATION_VERSION);
65818
- const firstArg = (_a = sel.arguments) === null || _a === void 0 ? void 0 : _a.find(argument => { return argument.name.value === 'first'; });
65819
- const firstArgVal = evaluateArgumentValue(firstArg, 'IntValue', variables);
65820
- const pageSize = firstArgVal !== undefined ? firstArgVal : totalEdges;
65821
- const afterArg = (_b = sel.arguments) === null || _b === void 0 ? void 0 : _b.find(argument => { return argument.name.value === 'after'; });
65822
- const afterArgVal = evaluateArgumentValue(afterArg, 'StringValue', variables);
65823
- const paginationParams = {
65824
- pageSize: parseInt(pageSize, 10),
65825
- token: afterArgVal
65826
- };
65827
- let { startOffset, endOffset } = getPageMetadata(metadata, paginationParams);
65828
- const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
65829
- let trimmedEdges = [];
65830
- let maxOffset = undefined;
65831
- if (totalEdges === 0 && listIsComplete) {
65832
- // We have an empty edge list
65833
- // If after token was specified, it will never be a good cursor, so defer to a cache miss
65834
- if (afterArgVal !== undefined) {
65835
- reader.markMissingLink(fieldData.__ref);
65836
- reader.markMissing();
65837
- return;
65838
- }
65839
- }
65840
- else {
65841
- if (metadata === undefined || startOffset === undefined || endOffset === undefined) {
65842
- reader.markMissingLink(fieldData.__ref);
65843
- reader.markMissing();
65844
- return;
65845
- }
65846
- // gql paging semantics is "after" the requested cursor, so shift the offsets provided a valid cursor is provided
65847
- if (afterArgVal !== undefined) {
65848
- startOffset++;
65849
- // if the "first" argument was not provided then the endOffset
65850
- // is already set to the index of the last edge.
65851
- // if the "first" argument was provided then we need to increment the endOffset
65852
- // however we still need to make sure the endOffset doesn't go past totalEdges
65853
- // if the list is already complete and we can't fetch any more edges
65854
- if (firstArgVal !== undefined && (!listIsComplete || endOffset < totalEdges)) {
65855
- endOffset++;
65856
- }
65857
- }
65858
- if (startOffset >= totalEdges && listIsComplete) {
65859
- // Data after the last page was requested, return empty set
65860
- startOffset = undefined;
65861
- endOffset = undefined;
65862
- }
65863
- else {
65864
- trimmedEdges = trimEdges(source.edges, startOffset, endOffset);
65865
- maxOffset = findMaxOffset(metadata);
65866
- const listHasEnoughItems = (endOffset - 1 <= maxOffset);
65867
- if (trimmedEdges === undefined || !listHasEnoughItems) {
65868
- reader.markMissingLink(fieldData.__ref);
65869
- reader.markMissing();
65870
- // optimize pagination when "first" and "after" args are part of the variable
65871
- if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
65872
- optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
65873
- }
65874
- return;
65875
- }
65876
- }
65877
- }
65878
- const paginatedData = {
65879
- data: {
65880
- ...source,
65881
- edges: ObjectFreeze(trimmedEdges),
65882
- }
65883
- };
65884
- const result = select$o(sel, variables, fragments)(paginatedData, reader);
65885
- const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
65886
- if (pageInfo !== undefined) {
65887
- const selectedPageInfo = selectPageInfo$1((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
65888
- if (selectedPageInfo !== undefined) {
65889
- reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
65890
- }
65891
- }
65892
- reader.assignNonScalar(sink, key, result);
65893
- }
65894
- else {
65895
- reader.markMissingLink(fieldData.__ref);
65896
- reader.markMissing();
65897
- }
65349
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$m, select$o, true);
65898
65350
  break;
65899
65351
  }
65900
65352
  }
@@ -65931,38 +65383,6 @@ function select$q(field, variables, fragments) {
65931
65383
  return sink;
65932
65384
  };
65933
65385
  }
65934
- function selectPageInfo$1(selections, fragments, pageInfo) {
65935
- var _a;
65936
- const pageInfoSelection = getSelectionNode$1(selections, fragments, 'pageInfo');
65937
- if (pageInfo === undefined || pageInfoSelection === undefined || pageInfoSelection.kind !== 'Field')
65938
- return undefined;
65939
- const pageInfoSelections = (_a = pageInfoSelection.selectionSet) === null || _a === void 0 ? void 0 : _a.selections;
65940
- const selectedPageInfo = Object.assign({}, pageInfo);
65941
- Object.keys(pageInfo).forEach((fieldName) => {
65942
- if (getSelectionNode$1(pageInfoSelections, fragments, fieldName) === undefined) {
65943
- delete selectedPageInfo[fieldName];
65944
- }
65945
- });
65946
- return selectedPageInfo;
65947
- }
65948
- function getSelectionNode$1(selections, fragments, fieldName) {
65949
- if (selections === undefined)
65950
- return undefined;
65951
- for (let i = 0; i < selections.length; i++) {
65952
- const selection = selections[i];
65953
- if (selection.kind === 'Field' && selection.name.value === fieldName) {
65954
- return selection;
65955
- }
65956
- else if (selection.kind === 'FragmentSpread') {
65957
- const fragment = fragments[selection.name.value];
65958
- return getSelectionNode$1(fragment === null || fragment === void 0 ? void 0 : fragment.selectionSet.selections, fragments, fieldName);
65959
- }
65960
- else if (selection.kind === 'InlineFragment') {
65961
- return getSelectionNode$1(selection.selectionSet.selections, fragments, fieldName);
65962
- }
65963
- }
65964
- return undefined;
65965
- }
65966
65386
  function getTypeCacheKeys$h(astNode, state) {
65967
65387
  const { path, data, luvio } = state;
65968
65388
  const rootKey = keyBuilder$l(luvio, path, data);
@@ -66824,25 +66244,7 @@ function selectType$g(typename, sel, fieldData, reader, key, sink, variables, fr
66824
66244
  break;
66825
66245
  }
66826
66246
  case 'RecordRepresentation': {
66827
- const nodeResolvedLink = reader.read({
66828
- recordId: fieldData.__ref,
66829
- node: {
66830
- kind: 'Fragment',
66831
- private: [],
66832
- opaque: true,
66833
- version: VERSION$o
66834
- },
66835
- variables: {}
66836
- });
66837
- reader.markSeenId(fieldData.__ref);
66838
- if (nodeResolvedLink.data !== undefined) {
66839
- const result = select$q(sel, variables, fragments)(nodeResolvedLink.data, reader); // Should probably
66840
- reader.assignNonScalar(sink, key, result);
66841
- }
66842
- else {
66843
- reader.markMissingLink(fieldData.__ref);
66844
- reader.markMissing();
66845
- }
66247
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$o, select$q, false);
66846
66248
  break;
66847
66249
  }
66848
66250
  }
@@ -67090,47 +66492,11 @@ function selectType$f(typename, sel, fieldData, reader, key, sink, variables, fr
67090
66492
  break;
67091
66493
  }
67092
66494
  case 'RecordEdge': {
67093
- const edgesResolvedLink = reader.read({
67094
- recordId: fieldData.__ref,
67095
- node: {
67096
- kind: 'Fragment',
67097
- private: [],
67098
- opaque: true,
67099
- version: VERSION$n
67100
- },
67101
- variables: {}
67102
- });
67103
- reader.markSeenId(fieldData.__ref);
67104
- if (edgesResolvedLink.data !== undefined) {
67105
- const result = select$p(sel, variables, fragments)(edgesResolvedLink.data, reader); // Should probably
67106
- reader.assignNonScalar(sink, key, result);
67107
- }
67108
- else {
67109
- reader.markMissingLink(fieldData.__ref);
67110
- reader.markMissing();
67111
- }
66495
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$n, select$p, false);
67112
66496
  break;
67113
66497
  }
67114
66498
  case 'PageInfo': {
67115
- const pageInfoResolvedLink = reader.read({
67116
- recordId: fieldData.__ref,
67117
- node: {
67118
- kind: 'Fragment',
67119
- private: [],
67120
- opaque: true,
67121
- version: VERSION$p
67122
- },
67123
- variables: {}
67124
- });
67125
- reader.markSeenId(fieldData.__ref);
67126
- if (pageInfoResolvedLink.data !== undefined) {
67127
- const result = select$r(sel, variables, fragments)(pageInfoResolvedLink.data, reader); // Should probably
67128
- reader.assignNonScalar(sink, key, result);
67129
- }
67130
- else {
67131
- reader.markMissingLink(fieldData.__ref);
67132
- reader.markMissing();
67133
- }
66499
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$p, select$r, false);
67134
66500
  break;
67135
66501
  }
67136
66502
  case 'Int': {
@@ -67330,7 +66696,6 @@ function getFieldData$e(source, sel, variables) {
67330
66696
  }
67331
66697
  }
67332
66698
  function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fragments) {
67333
- var _a, _b, _c, _d, _e;
67334
66699
  if (fieldData === null) {
67335
66700
  reader.assignScalar(key, sink, fieldData);
67336
66701
  return sink;
@@ -67341,101 +66706,7 @@ function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fr
67341
66706
  break;
67342
66707
  }
67343
66708
  case 'RecordConnection': {
67344
- const recordQueryResolvedLink = reader.read({
67345
- recordId: fieldData.__ref,
67346
- node: {
67347
- kind: 'Fragment',
67348
- private: [],
67349
- opaque: true,
67350
- version: VERSION$m
67351
- },
67352
- variables: {}
67353
- });
67354
- reader.markSeenId(fieldData.__ref);
67355
- if (recordQueryResolvedLink.data !== undefined) {
67356
- const source = recordQueryResolvedLink.data.data;
67357
- const totalEdges = source.edges !== undefined ? source.edges.length : 0;
67358
- const metadata = reader.resolveMetadata(source, PAGINATION_VERSION);
67359
- const firstArg = (_a = sel.arguments) === null || _a === void 0 ? void 0 : _a.find(argument => { return argument.name.value === 'first'; });
67360
- const firstArgVal = evaluateArgumentValue(firstArg, 'IntValue', variables);
67361
- const pageSize = firstArgVal !== undefined ? firstArgVal : totalEdges;
67362
- const afterArg = (_b = sel.arguments) === null || _b === void 0 ? void 0 : _b.find(argument => { return argument.name.value === 'after'; });
67363
- const afterArgVal = evaluateArgumentValue(afterArg, 'StringValue', variables);
67364
- const paginationParams = {
67365
- pageSize: parseInt(pageSize, 10),
67366
- token: afterArgVal
67367
- };
67368
- let { startOffset, endOffset } = getPageMetadata(metadata, paginationParams);
67369
- const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
67370
- let trimmedEdges = [];
67371
- let maxOffset = undefined;
67372
- if (totalEdges === 0 && listIsComplete) {
67373
- // We have an empty edge list
67374
- // If after token was specified, it will never be a good cursor, so defer to a cache miss
67375
- if (afterArgVal !== undefined) {
67376
- reader.markMissingLink(fieldData.__ref);
67377
- reader.markMissing();
67378
- return;
67379
- }
67380
- }
67381
- else {
67382
- if (metadata === undefined || startOffset === undefined || endOffset === undefined) {
67383
- reader.markMissingLink(fieldData.__ref);
67384
- reader.markMissing();
67385
- return;
67386
- }
67387
- // gql paging semantics is "after" the requested cursor, so shift the offsets provided a valid cursor is provided
67388
- if (afterArgVal !== undefined) {
67389
- startOffset++;
67390
- // if the "first" argument was not provided then the endOffset
67391
- // is already set to the index of the last edge.
67392
- // if the "first" argument was provided then we need to increment the endOffset
67393
- // however we still need to make sure the endOffset doesn't go past totalEdges
67394
- // if the list is already complete and we can't fetch any more edges
67395
- if (firstArgVal !== undefined && (!listIsComplete || endOffset < totalEdges)) {
67396
- endOffset++;
67397
- }
67398
- }
67399
- if (startOffset >= totalEdges && listIsComplete) {
67400
- // Data after the last page was requested, return empty set
67401
- startOffset = undefined;
67402
- endOffset = undefined;
67403
- }
67404
- else {
67405
- trimmedEdges = trimEdges(source.edges, startOffset, endOffset);
67406
- maxOffset = findMaxOffset(metadata);
67407
- const listHasEnoughItems = (endOffset - 1 <= maxOffset);
67408
- if (trimmedEdges === undefined || !listHasEnoughItems) {
67409
- reader.markMissingLink(fieldData.__ref);
67410
- reader.markMissing();
67411
- // optimize pagination when "first" and "after" args are part of the variable
67412
- if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
67413
- optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
67414
- }
67415
- return;
67416
- }
67417
- }
67418
- }
67419
- const paginatedData = {
67420
- data: {
67421
- ...source,
67422
- edges: ObjectFreeze(trimmedEdges),
67423
- }
67424
- };
67425
- const result = select$o(sel, variables, fragments)(paginatedData, reader);
67426
- const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
67427
- if (pageInfo !== undefined) {
67428
- const selectedPageInfo = selectPageInfo((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
67429
- if (selectedPageInfo !== undefined) {
67430
- reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
67431
- }
67432
- }
67433
- reader.assignNonScalar(sink, key, result);
67434
- }
67435
- else {
67436
- reader.markMissingLink(fieldData.__ref);
67437
- reader.markMissing();
67438
- }
66709
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$m, select$o, true);
67439
66710
  break;
67440
66711
  }
67441
66712
  }
@@ -67471,38 +66742,6 @@ function select$n(field, variables, fragments) {
67471
66742
  return sink;
67472
66743
  };
67473
66744
  }
67474
- function selectPageInfo(selections, fragments, pageInfo) {
67475
- var _a;
67476
- const pageInfoSelection = getSelectionNode(selections, fragments, 'pageInfo');
67477
- if (pageInfo === undefined || pageInfoSelection === undefined || pageInfoSelection.kind !== 'Field')
67478
- return undefined;
67479
- const pageInfoSelections = (_a = pageInfoSelection.selectionSet) === null || _a === void 0 ? void 0 : _a.selections;
67480
- const selectedPageInfo = Object.assign({}, pageInfo);
67481
- Object.keys(pageInfo).forEach((fieldName) => {
67482
- if (getSelectionNode(pageInfoSelections, fragments, fieldName) === undefined) {
67483
- delete selectedPageInfo[fieldName];
67484
- }
67485
- });
67486
- return selectedPageInfo;
67487
- }
67488
- function getSelectionNode(selections, fragments, fieldName) {
67489
- if (selections === undefined)
67490
- return undefined;
67491
- for (let i = 0; i < selections.length; i++) {
67492
- const selection = selections[i];
67493
- if (selection.kind === 'Field' && selection.name.value === fieldName) {
67494
- return selection;
67495
- }
67496
- else if (selection.kind === 'FragmentSpread') {
67497
- const fragment = fragments[selection.name.value];
67498
- return getSelectionNode(fragment === null || fragment === void 0 ? void 0 : fragment.selectionSet.selections, fragments, fieldName);
67499
- }
67500
- else if (selection.kind === 'InlineFragment') {
67501
- return getSelectionNode(selection.selectionSet.selections, fragments, fieldName);
67502
- }
67503
- }
67504
- return undefined;
67505
- }
67506
66745
  function getMinimumSelections$A() {
67507
66746
  const minimumSelections = [
67508
66747
  {
@@ -67645,25 +66884,7 @@ function selectType$d(typename, sel, fieldData, reader, key, sink, variables, fr
67645
66884
  break;
67646
66885
  }
67647
66886
  case 'ObjectInfo': {
67648
- const objectInfoResolvedLink = reader.read({
67649
- recordId: fieldData.__ref,
67650
- node: {
67651
- kind: 'Fragment',
67652
- private: [],
67653
- opaque: true,
67654
- version: VERSION$d
67655
- },
67656
- variables: {}
67657
- });
67658
- reader.markSeenId(fieldData.__ref);
67659
- if (objectInfoResolvedLink.data !== undefined) {
67660
- const result = select$f(sel, variables, fragments)(objectInfoResolvedLink.data, reader); // Should probably
67661
- reader.assignNonScalar(sink, key, result);
67662
- }
67663
- else {
67664
- reader.markMissingLink(fieldData.__ref);
67665
- reader.markMissing();
67666
- }
66887
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$d, select$f, false);
67667
66888
  break;
67668
66889
  }
67669
66890
  }
@@ -68217,25 +67438,7 @@ function selectType$a(typename, sel, fieldData, reader, key, sink, variables, fr
68217
67438
  break;
68218
67439
  }
68219
67440
  case 'ObjectInfo': {
68220
- const objectInfoResolvedLink = reader.read({
68221
- recordId: fieldData.__ref,
68222
- node: {
68223
- kind: 'Fragment',
68224
- private: [],
68225
- opaque: true,
68226
- version: VERSION$d
68227
- },
68228
- variables: {}
68229
- });
68230
- reader.markSeenId(fieldData.__ref);
68231
- if (objectInfoResolvedLink.data !== undefined) {
68232
- const result = select$f(sel, variables, fragments)(objectInfoResolvedLink.data, reader); // Should probably
68233
- reader.assignNonScalar(sink, key, result);
68234
- }
68235
- else {
68236
- reader.markMissingLink(fieldData.__ref);
68237
- reader.markMissing();
68238
- }
67441
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$d, select$f, false);
68239
67442
  break;
68240
67443
  }
68241
67444
  }
@@ -68455,25 +67658,7 @@ function selectType$9(typename, sel, fieldData, reader, key, sink, variables, fr
68455
67658
  break;
68456
67659
  }
68457
67660
  case 'FilteredLookupInfo': {
68458
- const filteredLookupInfoResolvedLink = reader.read({
68459
- recordId: fieldData.__ref,
68460
- node: {
68461
- kind: 'Fragment',
68462
- private: [],
68463
- opaque: true,
68464
- version: VERSION$i
68465
- },
68466
- variables: {}
68467
- });
68468
- reader.markSeenId(fieldData.__ref);
68469
- if (filteredLookupInfoResolvedLink.data !== undefined) {
68470
- const result = select$k(sel, variables, fragments)(filteredLookupInfoResolvedLink.data, reader); // Should probably
68471
- reader.assignNonScalar(sink, key, result);
68472
- }
68473
- else {
68474
- reader.markMissingLink(fieldData.__ref);
68475
- reader.markMissing();
68476
- }
67661
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$i, select$k, false);
68477
67662
  break;
68478
67663
  }
68479
67664
  case 'Int': {
@@ -68481,25 +67666,7 @@ function selectType$9(typename, sel, fieldData, reader, key, sink, variables, fr
68481
67666
  break;
68482
67667
  }
68483
67668
  case 'ReferenceToInfo': {
68484
- const referenceToInfosResolvedLink = reader.read({
68485
- recordId: fieldData.__ref,
68486
- node: {
68487
- kind: 'Fragment',
68488
- private: [],
68489
- opaque: true,
68490
- version: VERSION$h
68491
- },
68492
- variables: {}
68493
- });
68494
- reader.markSeenId(fieldData.__ref);
68495
- if (referenceToInfosResolvedLink.data !== undefined) {
68496
- const result = select$j(sel, variables, fragments)(referenceToInfosResolvedLink.data, reader); // Should probably
68497
- reader.assignNonScalar(sink, key, result);
68498
- }
68499
- else {
68500
- reader.markMissingLink(fieldData.__ref);
68501
- reader.markMissing();
68502
- }
67669
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$h, select$j, false);
68503
67670
  break;
68504
67671
  }
68505
67672
  }
@@ -69258,25 +68425,7 @@ function selectType$6(typename, sel, fieldData, reader, key, sink, variables, fr
69258
68425
  break;
69259
68426
  }
69260
68427
  case 'ChildRelationship': {
69261
- const childRelationshipsResolvedLink = reader.read({
69262
- recordId: fieldData.__ref,
69263
- node: {
69264
- kind: 'Fragment',
69265
- private: [],
69266
- opaque: true,
69267
- version: VERSION$k
69268
- },
69269
- variables: {}
69270
- });
69271
- reader.markSeenId(fieldData.__ref);
69272
- if (childRelationshipsResolvedLink.data !== undefined) {
69273
- const result = select$m(sel, variables, fragments)(childRelationshipsResolvedLink.data, reader); // Should probably
69274
- reader.assignNonScalar(sink, key, result);
69275
- }
69276
- else {
69277
- reader.markMissingLink(fieldData.__ref);
69278
- reader.markMissing();
69279
- }
68428
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$k, select$m, false);
69280
68429
  break;
69281
68430
  }
69282
68431
  case 'Boolean': {
@@ -69288,91 +68437,19 @@ function selectType$6(typename, sel, fieldData, reader, key, sink, variables, fr
69288
68437
  break;
69289
68438
  }
69290
68439
  case 'DependentField': {
69291
- const dependentFieldsResolvedLink = reader.read({
69292
- recordId: fieldData.__ref,
69293
- node: {
69294
- kind: 'Fragment',
69295
- private: [],
69296
- opaque: true,
69297
- version: VERSION$j
69298
- },
69299
- variables: {}
69300
- });
69301
- reader.markSeenId(fieldData.__ref);
69302
- if (dependentFieldsResolvedLink.data !== undefined) {
69303
- const result = select$l(sel, variables, fragments)(dependentFieldsResolvedLink.data, reader); // Should probably
69304
- reader.assignNonScalar(sink, key, result);
69305
- }
69306
- else {
69307
- reader.markMissingLink(fieldData.__ref);
69308
- reader.markMissing();
69309
- }
68440
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$j, select$l, false);
69310
68441
  break;
69311
68442
  }
69312
68443
  case 'Field': {
69313
- const fieldsResolvedLink = reader.read({
69314
- recordId: fieldData.__ref,
69315
- node: {
69316
- kind: 'Fragment',
69317
- private: [],
69318
- opaque: true,
69319
- version: VERSION$g
69320
- },
69321
- variables: {}
69322
- });
69323
- reader.markSeenId(fieldData.__ref);
69324
- if (fieldsResolvedLink.data !== undefined) {
69325
- const result = select$i(sel, variables, fragments)(fieldsResolvedLink.data, reader); // Should probably
69326
- reader.assignNonScalar(sink, key, result);
69327
- }
69328
- else {
69329
- reader.markMissingLink(fieldData.__ref);
69330
- reader.markMissing();
69331
- }
68444
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$g, select$i, false);
69332
68445
  break;
69333
68446
  }
69334
68447
  case 'RecordTypeInfo': {
69335
- const recordTypeInfosResolvedLink = reader.read({
69336
- recordId: fieldData.__ref,
69337
- node: {
69338
- kind: 'Fragment',
69339
- private: [],
69340
- opaque: true,
69341
- version: VERSION$f
69342
- },
69343
- variables: {}
69344
- });
69345
- reader.markSeenId(fieldData.__ref);
69346
- if (recordTypeInfosResolvedLink.data !== undefined) {
69347
- const result = select$h(sel, variables, fragments)(recordTypeInfosResolvedLink.data, reader); // Should probably
69348
- reader.assignNonScalar(sink, key, result);
69349
- }
69350
- else {
69351
- reader.markMissingLink(fieldData.__ref);
69352
- reader.markMissing();
69353
- }
68448
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$f, select$h, false);
69354
68449
  break;
69355
68450
  }
69356
68451
  case 'ThemeInfo': {
69357
- const themeInfoResolvedLink = reader.read({
69358
- recordId: fieldData.__ref,
69359
- node: {
69360
- kind: 'Fragment',
69361
- private: [],
69362
- opaque: true,
69363
- version: VERSION$e
69364
- },
69365
- variables: {}
69366
- });
69367
- reader.markSeenId(fieldData.__ref);
69368
- if (themeInfoResolvedLink.data !== undefined) {
69369
- const result = select$g(sel, variables, fragments)(themeInfoResolvedLink.data, reader); // Should probably
69370
- reader.assignNonScalar(sink, key, result);
69371
- }
69372
- else {
69373
- reader.markMissingLink(fieldData.__ref);
69374
- reader.markMissing();
69375
- }
68452
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$e, select$g, false);
69376
68453
  break;
69377
68454
  }
69378
68455
  }
@@ -70153,47 +69230,11 @@ function selectType$3(typename, sel, fieldData, reader, key, sink, variables, fr
70153
69230
  break;
70154
69231
  }
70155
69232
  case 'ListColumn': {
70156
- const displayColumnsResolvedLink = reader.read({
70157
- recordId: fieldData.__ref,
70158
- node: {
70159
- kind: 'Fragment',
70160
- private: [],
70161
- opaque: true,
70162
- version: VERSION$c
70163
- },
70164
- variables: {}
70165
- });
70166
- reader.markSeenId(fieldData.__ref);
70167
- if (displayColumnsResolvedLink.data !== undefined) {
70168
- const result = select$e(sel, variables, fragments)(displayColumnsResolvedLink.data, reader); // Should probably
70169
- reader.assignNonScalar(sink, key, result);
70170
- }
70171
- else {
70172
- reader.markMissingLink(fieldData.__ref);
70173
- reader.markMissing();
70174
- }
69233
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$c, select$e, false);
70175
69234
  break;
70176
69235
  }
70177
69236
  case 'ListOrder': {
70178
- const orderedByInfoResolvedLink = reader.read({
70179
- recordId: fieldData.__ref,
70180
- node: {
70181
- kind: 'Fragment',
70182
- private: [],
70183
- opaque: true,
70184
- version: VERSION$b
70185
- },
70186
- variables: {}
70187
- });
70188
- reader.markSeenId(fieldData.__ref);
70189
- if (orderedByInfoResolvedLink.data !== undefined) {
70190
- const result = select$d(sel, variables, fragments)(orderedByInfoResolvedLink.data, reader); // Should probably
70191
- reader.assignNonScalar(sink, key, result);
70192
- }
70193
- else {
70194
- reader.markMissingLink(fieldData.__ref);
70195
- reader.markMissing();
70196
- }
69237
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$b, select$d, false);
70197
69238
  break;
70198
69239
  }
70199
69240
  }
@@ -70459,69 +69500,15 @@ function selectType$2(typename, sel, fieldData, reader, key, sink, variables, fr
70459
69500
  break;
70460
69501
  }
70461
69502
  case 'RecordQuery': {
70462
- const queryResolvedLink = reader.read({
70463
- recordId: fieldData.__ref,
70464
- node: {
70465
- kind: 'Fragment',
70466
- private: [],
70467
- opaque: true,
70468
- version: VERSION$l
70469
- },
70470
- variables: {}
70471
- });
70472
- reader.markSeenId(fieldData.__ref);
70473
- if (queryResolvedLink.data !== undefined) {
70474
- const result = select$n(sel, variables, fragments)(queryResolvedLink.data, reader); // Should probably
70475
- reader.assignNonScalar(sink, key, result);
70476
- }
70477
- else {
70478
- reader.markMissingLink(fieldData.__ref);
70479
- reader.markMissing();
70480
- }
69503
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$l, select$n, false);
70481
69504
  break;
70482
69505
  }
70483
69506
  case 'ObjectInfo': {
70484
- const objectInfosResolvedLink = reader.read({
70485
- recordId: fieldData.__ref,
70486
- node: {
70487
- kind: 'Fragment',
70488
- private: [],
70489
- opaque: true,
70490
- version: VERSION$d
70491
- },
70492
- variables: {}
70493
- });
70494
- reader.markSeenId(fieldData.__ref);
70495
- if (objectInfosResolvedLink.data !== undefined) {
70496
- const result = select$f(sel, variables, fragments)(objectInfosResolvedLink.data, reader); // Should probably
70497
- reader.assignNonScalar(sink, key, result);
70498
- }
70499
- else {
70500
- reader.markMissingLink(fieldData.__ref);
70501
- reader.markMissing();
70502
- }
69507
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$d, select$f, false);
70503
69508
  break;
70504
69509
  }
70505
69510
  case 'RelatedListInfo': {
70506
- const relatedListByNameResolvedLink = reader.read({
70507
- recordId: fieldData.__ref,
70508
- node: {
70509
- kind: 'Fragment',
70510
- private: [],
70511
- opaque: true,
70512
- version: VERSION$a
70513
- },
70514
- variables: {}
70515
- });
70516
- reader.markSeenId(fieldData.__ref);
70517
- if (relatedListByNameResolvedLink.data !== undefined) {
70518
- const result = select$c(sel, variables, fragments)(relatedListByNameResolvedLink.data, reader); // Should probably
70519
- reader.assignNonScalar(sink, key, result);
70520
- }
70521
- else {
70522
- reader.markMissingLink(fieldData.__ref);
70523
- reader.markMissing();
70524
- }
69511
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$a, select$c, false);
70525
69512
  break;
70526
69513
  }
70527
69514
  }
@@ -70970,47 +69957,11 @@ function selectType(typename, sel, fieldData, reader, key, sink, variables, frag
70970
69957
  break;
70971
69958
  }
70972
69959
  case 'UIAPI': {
70973
- const uiapiResolvedLink = reader.read({
70974
- recordId: fieldData.__ref,
70975
- node: {
70976
- kind: 'Fragment',
70977
- private: [],
70978
- opaque: true,
70979
- version: VERSION$9
70980
- },
70981
- variables: {}
70982
- });
70983
- reader.markSeenId(fieldData.__ref);
70984
- if (uiapiResolvedLink.data !== undefined) {
70985
- const result = select$b(sel, variables, fragments)(uiapiResolvedLink.data, reader); // Should probably
70986
- reader.assignNonScalar(sink, key, result);
70987
- }
70988
- else {
70989
- reader.markMissingLink(fieldData.__ref);
70990
- reader.markMissing();
70991
- }
69960
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$9, select$b, false);
70992
69961
  break;
70993
69962
  }
70994
69963
  case 'RateLimit': {
70995
- const rateLimitResolvedLink = reader.read({
70996
- recordId: fieldData.__ref,
70997
- node: {
70998
- kind: 'Fragment',
70999
- private: [],
71000
- opaque: true,
71001
- version: VERSION$8
71002
- },
71003
- variables: {}
71004
- });
71005
- reader.markSeenId(fieldData.__ref);
71006
- if (rateLimitResolvedLink.data !== undefined) {
71007
- const result = select$a(sel, variables, fragments)(rateLimitResolvedLink.data, reader); // Should probably
71008
- reader.assignNonScalar(sink, key, result);
71009
- }
71010
- else {
71011
- reader.markMissingLink(fieldData.__ref);
71012
- reader.markMissing();
71013
- }
69964
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$8, select$a, false);
71014
69965
  break;
71015
69966
  }
71016
69967
  }
@@ -73170,7 +72121,7 @@ function mergeFragmentWithExistingSelections(fragmentFieldSelection, existingSel
73170
72121
  }
73171
72122
  }
73172
72123
  }
73173
- function getRequestedFieldsForType(typename, selectionSet, namedFragmentsMap, isFragmentApplicable) {
72124
+ function calculateRequestedFieldsForType(typename, selectionSet, namedFragmentsMap, isFragmentApplicable) {
73174
72125
  const selections = [];
73175
72126
  selectionSet.selections.forEach(selection => {
73176
72127
  if (selection.kind === "Field") {
@@ -73190,6 +72141,21 @@ function getRequestedFieldsForType(typename, selectionSet, namedFragmentsMap, is
73190
72141
  });
73191
72142
  return selections;
73192
72143
  }
72144
+ let selectionSetRequestedFieldsWeakMap = new WeakMap();
72145
+ function getRequestedFieldsForType(typename, selectionSet, namedFragmentsMap, isFragmentApplicable) {
72146
+ let cachedRequestedFieldsConfigurations = selectionSetRequestedFieldsWeakMap.get(selectionSet);
72147
+ if (cachedRequestedFieldsConfigurations === undefined) {
72148
+ cachedRequestedFieldsConfigurations = new Map();
72149
+ selectionSetRequestedFieldsWeakMap.set(selectionSet, cachedRequestedFieldsConfigurations);
72150
+ }
72151
+ const cachedRequestedFieldsForType = cachedRequestedFieldsConfigurations.get(typename);
72152
+ if (cachedRequestedFieldsForType !== undefined) {
72153
+ return cachedRequestedFieldsForType;
72154
+ }
72155
+ const selections = calculateRequestedFieldsForType(typename, selectionSet, namedFragmentsMap, isFragmentApplicable);
72156
+ cachedRequestedFieldsConfigurations.set(typename, selections);
72157
+ return selections;
72158
+ }
73193
72159
  function getQueryTransformerForType(typename, fragmentMap) {
73194
72160
  switch (typename) {
73195
72161
  case "PercentAggregate": return {
@@ -73717,6 +72683,145 @@ function buildSelectionForField(source, reader, sel, variables, fragments, isCur
73717
72683
  }
73718
72684
  reader.exitPath();
73719
72685
  return sink;
72686
+ }
72687
+ function selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, version, selectFn, isCursorConnection) {
72688
+ const resolvedLink = reader.read({
72689
+ recordId: fieldData.__ref,
72690
+ node: {
72691
+ kind: 'Fragment',
72692
+ private: [],
72693
+ opaque: true,
72694
+ version,
72695
+ },
72696
+ variables: {}
72697
+ });
72698
+ reader.markSeenId(fieldData.__ref);
72699
+ if (resolvedLink.data !== undefined) {
72700
+ if (isCursorConnection) {
72701
+ selectTypeLinkWithPagination(resolvedLink, sel, fieldData, reader, key, sink, variables, fragments, selectFn);
72702
+ }
72703
+ else {
72704
+ const result = selectFn(sel, variables, fragments)(resolvedLink.data, reader);
72705
+ reader.assignNonScalar(sink, key, result);
72706
+ }
72707
+ }
72708
+ else {
72709
+ reader.markMissingLink(fieldData.__ref);
72710
+ reader.markMissing();
72711
+ }
72712
+ }
72713
+ function selectTypeLinkWithPagination(resolvedLink, sel, fieldData, reader, key, sink, variables, fragments, selectFn) {
72714
+ var _a, _b, _c, _d, _e;
72715
+ const source = resolvedLink.data.data;
72716
+ const totalEdges = source.edges !== undefined ? source.edges.length : 0;
72717
+ const metadata = reader.resolveMetadata(source, PAGINATION_VERSION);
72718
+ const firstArg = (_a = sel.arguments) === null || _a === void 0 ? void 0 : _a.find(argument => { return argument.name.value === 'first'; });
72719
+ const firstArgVal = evaluateArgumentValue(firstArg, 'IntValue', variables);
72720
+ const pageSize = firstArgVal !== undefined ? firstArgVal : totalEdges;
72721
+ const afterArg = (_b = sel.arguments) === null || _b === void 0 ? void 0 : _b.find(argument => { return argument.name.value === 'after'; });
72722
+ const afterArgVal = evaluateArgumentValue(afterArg, 'StringValue', variables);
72723
+ const paginationParams = {
72724
+ pageSize: parseInt(pageSize, 10),
72725
+ token: afterArgVal
72726
+ };
72727
+ let { startOffset, endOffset } = getPageMetadata(metadata, paginationParams);
72728
+ const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
72729
+ let trimmedEdges = [];
72730
+ let maxOffset = undefined;
72731
+ if (totalEdges === 0 && listIsComplete) {
72732
+ // We have an empty edge list
72733
+ // If after token was specified, it will never be a good cursor, so defer to a cache miss
72734
+ if (afterArgVal !== undefined) {
72735
+ reader.markMissingLink(fieldData.__ref);
72736
+ reader.markMissing();
72737
+ return;
72738
+ }
72739
+ }
72740
+ else {
72741
+ if (metadata === undefined || startOffset === undefined || endOffset === undefined) {
72742
+ reader.markMissingLink(fieldData.__ref);
72743
+ reader.markMissing();
72744
+ return;
72745
+ }
72746
+ // gql paging semantics is "after" the requested cursor, so shift the offsets provided a valid cursor is provided
72747
+ if (afterArgVal !== undefined) {
72748
+ startOffset++;
72749
+ // if the "first" argument was not provided then the endOffset
72750
+ // is already set to the index of the last edge.
72751
+ // if the "first" argument was provided then we need to increment the endOffset
72752
+ // however we still need to make sure the endOffset doesn't go past totalEdges
72753
+ // if the list is already complete and we can't fetch any more edges
72754
+ if (firstArgVal !== undefined && (!listIsComplete || endOffset < totalEdges)) {
72755
+ endOffset++;
72756
+ }
72757
+ }
72758
+ if (startOffset >= totalEdges && listIsComplete) {
72759
+ // Data after the last page was requested, return empty set
72760
+ startOffset = undefined;
72761
+ endOffset = undefined;
72762
+ }
72763
+ else {
72764
+ trimmedEdges = trimEdges(source.edges, startOffset, endOffset);
72765
+ maxOffset = findMaxOffset(metadata);
72766
+ const listHasEnoughItems = (endOffset - 1 <= maxOffset);
72767
+ if (trimmedEdges === undefined || !listHasEnoughItems) {
72768
+ reader.markMissingLink(fieldData.__ref);
72769
+ reader.markMissing();
72770
+ // optimize pagination when "first" and "after" args are part of the variable
72771
+ if (((_c = firstArg === null || firstArg === void 0 ? void 0 : firstArg.value) === null || _c === void 0 ? void 0 : _c.kind) === 'Variable' && ((_d = afterArg === null || afterArg === void 0 ? void 0 : afterArg.value) === null || _d === void 0 ? void 0 : _d.kind) === 'Variable') {
72772
+ optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
72773
+ }
72774
+ return;
72775
+ }
72776
+ }
72777
+ }
72778
+ const paginatedData = {
72779
+ data: {
72780
+ ...source,
72781
+ edges: ObjectFreeze(trimmedEdges),
72782
+ }
72783
+ };
72784
+ const result = selectFn(sel, variables, fragments)(paginatedData, reader);
72785
+ const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
72786
+ if (pageInfo !== undefined) {
72787
+ const selectedPageInfo = selectPageInfo((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
72788
+ if (selectedPageInfo !== undefined) {
72789
+ reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
72790
+ }
72791
+ }
72792
+ reader.assignNonScalar(sink, key, result);
72793
+ }
72794
+ function selectPageInfo(selections, fragments, pageInfo) {
72795
+ var _a;
72796
+ const pageInfoSelection = getSelectionNode(selections, fragments, 'pageInfo');
72797
+ if (pageInfo === undefined || pageInfoSelection === undefined || pageInfoSelection.kind !== 'Field')
72798
+ return undefined;
72799
+ const pageInfoSelections = (_a = pageInfoSelection.selectionSet) === null || _a === void 0 ? void 0 : _a.selections;
72800
+ const selectedPageInfo = Object.assign({}, pageInfo);
72801
+ Object.keys(pageInfo).forEach((fieldName) => {
72802
+ if (getSelectionNode(pageInfoSelections, fragments, fieldName) === undefined) {
72803
+ delete selectedPageInfo[fieldName];
72804
+ }
72805
+ });
72806
+ return selectedPageInfo;
72807
+ }
72808
+ function getSelectionNode(selections, fragments, fieldName) {
72809
+ if (selections === undefined)
72810
+ return undefined;
72811
+ for (let i = 0; i < selections.length; i++) {
72812
+ const selection = selections[i];
72813
+ if (selection.kind === 'Field' && selection.name.value === fieldName) {
72814
+ return selection;
72815
+ }
72816
+ else if (selection.kind === 'FragmentSpread') {
72817
+ const fragment = fragments[selection.name.value];
72818
+ return getSelectionNode(fragment === null || fragment === void 0 ? void 0 : fragment.selectionSet.selections, fragments, fieldName);
72819
+ }
72820
+ else if (selection.kind === 'InlineFragment') {
72821
+ return getSelectionNode(selection.selectionSet.selections, fragments, fieldName);
72822
+ }
72823
+ }
72824
+ return undefined;
73720
72825
  }
73721
72826
 
73722
72827
  const TTL = 900000;
@@ -75037,7 +74142,7 @@ register({
75037
74142
  configuration: { ...configurationForGraphQLAdapters },
75038
74143
  instrument,
75039
74144
  });
75040
- // version: 1.120.0-d7f610c36
74145
+ // version: 1.121.1-7c3b8db1d
75041
74146
 
75042
74147
  // On core the unstable adapters are re-exported with different names,
75043
74148
 
@@ -77166,7 +76271,7 @@ withDefaultLuvio((luvio) => {
77166
76271
  unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
77167
76272
  graphQLImperative = ldsAdapter;
77168
76273
  });
77169
- // version: 1.120.0-d7f610c36
76274
+ // version: 1.121.1-7c3b8db1d
77170
76275
 
77171
76276
  var gqlApi = /*#__PURE__*/Object.freeze({
77172
76277
  __proto__: null,
@@ -77848,4 +76953,4 @@ const { luvio } = getRuntime();
77848
76953
  setDefaultLuvio({ luvio });
77849
76954
 
77850
76955
  export { createPrimingSession, draftManager, draftQueue, executeAdapter, executeMutatingAdapter, getImperativeAdapterNames, invokeAdapter, invokeAdapterWithDraftToReplace, invokeAdapterWithMetadata, nimbusDraftQueue, registerReportObserver, setMetadataTTL, setUiApiRecordTTL, subscribeToAdapter };
77851
- // version: 1.120.0-7e4457c5c
76956
+ // version: 1.121.1-ac2ef2013