@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.
@@ -3655,7 +3655,7 @@
3655
3655
  return this.environment.buildStructuredKey(namespace, representationName, idValues);
3656
3656
  }
3657
3657
  }
3658
- // engine version: 0.137.4-ec6f5c6d
3658
+ // engine version: 0.137.6-aa20c775
3659
3659
 
3660
3660
  /**
3661
3661
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -3782,7 +3782,7 @@
3782
3782
  }
3783
3783
  callbacks.push(callback);
3784
3784
  }
3785
- // version: 1.120.0-7e4457c5c
3785
+ // version: 1.121.1-ac2ef2013
3786
3786
 
3787
3787
  // TODO [TD-0081508]: once that TD is fulfilled we can probably change this file
3788
3788
  function instrumentAdapter$1(createFunction, _metadata) {
@@ -15206,7 +15206,7 @@
15206
15206
  updateReferenceMapWithKnownKey(ast, luvioDocumentNode);
15207
15207
  return luvioDocumentNode;
15208
15208
  }
15209
- // version: 1.120.0-7e4457c5c
15209
+ // version: 1.121.1-ac2ef2013
15210
15210
 
15211
15211
  function unwrap(data) {
15212
15212
  // The lwc-luvio bindings import a function from lwc called "unwrap".
@@ -16119,7 +16119,7 @@
16119
16119
  const { apiFamily, name } = metadata;
16120
16120
  return createGraphQLWireAdapterConstructor$1(adapter, `${apiFamily}.${name}`, luvio, astResolver);
16121
16121
  }
16122
- // version: 1.120.0-7e4457c5c
16122
+ // version: 1.121.1-ac2ef2013
16123
16123
 
16124
16124
  /**
16125
16125
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -16202,7 +16202,7 @@
16202
16202
  ({
16203
16203
  state: FragmentReadResultState.Missing,
16204
16204
  });
16205
- // engine version: 0.137.4-ec6f5c6d
16205
+ // engine version: 0.137.6-aa20c775
16206
16206
 
16207
16207
  const { keys: ObjectKeys$3, freeze: ObjectFreeze$3, create: ObjectCreate$3 } = Object;
16208
16208
 
@@ -44353,7 +44353,7 @@
44353
44353
  dropFunction: instrumentation$2.notifyRecordUpdateAvailableDropped,
44354
44354
  });
44355
44355
  });
44356
- // version: 1.120.0-d7f610c36
44356
+ // version: 1.121.1-7c3b8db1d
44357
44357
 
44358
44358
  var caseSensitiveUserId = '005B0000000GR4OIAW';
44359
44359
 
@@ -50732,7 +50732,7 @@
50732
50732
  return new DataLoader(batchRecordQuery);
50733
50733
  }
50734
50734
 
50735
- function createContext(store, objectInfos, eventEmitter, settings, snapshot) {
50735
+ function createContext(store, objectInfos, eventEmitter, settings, snapshot, draftFunctions) {
50736
50736
  store.query.bind(store);
50737
50737
  const query = (sql, params) => {
50738
50738
  const now = Date.now();
@@ -50759,6 +50759,7 @@
50759
50759
  Record,
50760
50760
  snapshot,
50761
50761
  seenRecordIds: new Set(),
50762
+ draftFunctions,
50762
50763
  };
50763
50764
  }
50764
50765
 
@@ -51144,7 +51145,7 @@
51144
51145
  }
51145
51146
 
51146
51147
  const MultiPickListValueSeparator = ';';
51147
- function filterToPredicates(where, recordType, alias, objectInfoMap, joins) {
51148
+ function filterToPredicates(where, recordType, alias, objectInfoMap, joins, draftFunctions) {
51148
51149
  if (!where)
51149
51150
  return [];
51150
51151
  let predicates = [];
@@ -51226,38 +51227,52 @@
51226
51227
  }
51227
51228
  }
51228
51229
  else {
51230
+ //`field` match the filedInfo's apiName
51229
51231
  for (const [op, value] of entries$2(where[field])) {
51230
51232
  const operator = operatorToSql(op);
51231
- const fieldInfo = objectInfoMap[recordType].fields[field];
51232
- const coerceIdNeeded = isCoerceIdNeeded(fieldInfo, field, op);
51233
+ /**
51234
+ Two types ID processing might be needed. Draft ID swapping is optional, which depends on DraftFunctions existence.
51235
+ 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,
51236
+ so there is no need to coerce the ID in injected AST which is used by luvio to do the network request when necessary.
51237
+ 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
51238
+ the canonical ID and is passed to Luvio
51239
+ */
51240
+ const idProcessingNeeded = isIDValueField(fieldInfo);
51233
51241
  const makePredicate = fieldInfo.dataType === 'MultiPicklist'
51234
51242
  ? createMultiPicklistPredicate
51235
51243
  : createSinglePredicate;
51236
- predicates.push(makePredicate(coerceIdNeeded ? generateCoercedPredicateValue(value) : value, operator, fieldInfo, alias));
51244
+ predicates.push(makePredicate(idProcessingNeeded
51245
+ ? sanitizePredicateIDValue(value, draftFunctions)
51246
+ : value, operator, fieldInfo, alias));
51237
51247
  }
51238
51248
  }
51239
51249
  }
51240
51250
  return predicates;
51241
51251
  }
51242
51252
  /**
51243
- * 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,
51244
- * so there is no need to coerce the ID in injected AST which is used by luvio to do the network request when necessary.
51253
+ *
51245
51254
  * @param fieldInfo
51246
- * @param fieldName
51247
- * @returns true if coerce is needed
51255
+ * @returns true if field is of IDValue type
51248
51256
  */
51249
- function isCoerceIdNeeded(fieldInfo, fieldName, op) {
51250
- return ((fieldName === 'Id' ||
51251
- (fieldInfo.apiName === fieldName && fieldInfo.referenceToInfos.length > 0)) &&
51252
- (op === 'eq' || op === 'ne' || op === 'in' || op === 'nin'));
51257
+ function isIDValueField(fieldInfo) {
51258
+ return fieldInfo.apiName === 'Id' || fieldInfo.referenceToInfos.length > 0;
51253
51259
  }
51254
- function generateCoercedPredicateValue(value) {
51260
+ /**
51261
+ * Coerces and swaps ID if it is a draft ID.
51262
+ * @param value Predicate value which might be a string value like 'John' or a List like ['Acme', 'John']
51263
+ * @param draftFunction optional. If undefined, draft ID swapping does not happen
51264
+ * @returns sanitized previdicate value
51265
+ */
51266
+ function sanitizePredicateIDValue(value, draftFunction) {
51255
51267
  if (isArray$2(value)) {
51256
- return value.map(generateCoercedPredicateValue);
51268
+ return value.map((singleValue) => sanitizePredicateIDValue(singleValue, draftFunction));
51257
51269
  }
51258
51270
  else {
51259
51271
  const coercedId = getRecordId18(value);
51260
51272
  if (coercedId !== undefined) {
51273
+ if (draftFunction !== undefined && draftFunction.isDraftId(coercedId)) {
51274
+ return draftFunction.getCanonicalId(coercedId);
51275
+ }
51261
51276
  return coercedId;
51262
51277
  }
51263
51278
  return value;
@@ -52673,7 +52688,7 @@
52673
52688
  }
52674
52689
  async function connectionEdgeResolver(obj, _args, context) {
52675
52690
  const { parentArgs = {}, parentRecord, currentFieldName } = obj;
52676
- const { query, objectInfos } = context;
52691
+ const { query, objectInfos, draftFunctions } = context;
52677
52692
  let joins = [];
52678
52693
  let alias = currentFieldName;
52679
52694
  let childRelationshipFieldName = undefined;
@@ -52690,7 +52705,7 @@
52690
52705
  }
52691
52706
  // Alias starts as entity's ApiName
52692
52707
  const predicates = [
52693
- ...filterToPredicates(parentArgs.where, alias, alias, context.objectInfos, joins),
52708
+ ...filterToPredicates(parentArgs.where, alias, alias, context.objectInfos, joins, draftFunctions),
52694
52709
  ...scopeToPredicates(parentArgs.scope, context.settings),
52695
52710
  ...childRelationshipToPredicates(childRelationshipFieldName, parentRecord.id),
52696
52711
  ];
@@ -53252,7 +53267,7 @@
53252
53267
  return addResolversToSchema(schema, polyFieldTypeNames);
53253
53268
  }
53254
53269
 
53255
- async function evaluate(config, observers, settings, objectInfos, store, snapshot) {
53270
+ async function evaluate(config, observers, settings, objectInfos, store, snapshot, draftFunctions) {
53256
53271
  const eventEmitter = createCustomAdapterEventEmitter(GRAPHQL_EVAL_NAMESPACE, observers);
53257
53272
  // this is only wrapped in a try to execute the event after the result was returned
53258
53273
  try {
@@ -53285,7 +53300,7 @@
53285
53300
  eventEmitter({ type: 'graphql-preconditions-met' });
53286
53301
  // create the resolver request context, runtime values and functions for
53287
53302
  // resolvers to do their job.
53288
- const contextValue = createContext(store, objectInfos, eventEmitter, settings, snapshot);
53303
+ const contextValue = createContext(store, objectInfos, eventEmitter, settings, snapshot, draftFunctions);
53289
53304
  // We're building this from scratch from each request. If this becomes a
53290
53305
  // hotspot we can pull it up and memoize it later
53291
53306
  const schema = createSchema(objectInfos);
@@ -56611,11 +56626,11 @@
56611
56626
  let internalRequestContext = {
56612
56627
  ...requestContext,
56613
56628
  };
56629
+ const draftFunctions = {
56630
+ isDraftId,
56631
+ getCanonicalId,
56632
+ };
56614
56633
  try {
56615
- const draftFunctions = {
56616
- isDraftId,
56617
- getCanonicalId,
56618
- };
56619
56634
  ({
56620
56635
  modifiedAST: injectedAST,
56621
56636
  objectInfos: objectInfoNeeded,
@@ -56698,7 +56713,7 @@
56698
56713
  let { result: rebuildResult, seenRecordIds } = await evaluate({
56699
56714
  ...config,
56700
56715
  query: injectedAST,
56701
- }, observers, { userId }, objectInfoNeeded, store, originalSnapshot);
56716
+ }, observers, { userId }, objectInfoNeeded, store, originalSnapshot, draftFunctions);
56702
56717
  if (!rebuildResult.errors) {
56703
56718
  rebuildResult = removeSyntheticFields(rebuildResult, config.query);
56704
56719
  }
@@ -59868,7 +59883,7 @@
59868
59883
  id: '@salesforce/lds-network-adapter',
59869
59884
  instrument: instrument$1,
59870
59885
  });
59871
- // version: 1.120.0-7e4457c5c
59886
+ // version: 1.121.1-ac2ef2013
59872
59887
 
59873
59888
  const { create: create$2, keys: keys$2 } = Object;
59874
59889
  const { stringify: stringify$1, parse: parse$1 } = JSON;
@@ -65215,7 +65230,6 @@
65215
65230
  });
65216
65231
  }
65217
65232
  function selectType$h(typename, sel, fieldData, reader, key, sink, variables, fragments) {
65218
- var _a, _b, _c, _d, _e;
65219
65233
  if (fieldData === null) {
65220
65234
  reader.assignScalar(key, sink, fieldData);
65221
65235
  return sink;
@@ -65234,673 +65248,111 @@
65234
65248
  break;
65235
65249
  }
65236
65250
  case 'IDValue': {
65237
- const LastModifiedByIdResolvedLink = reader.read({
65238
- recordId: fieldData.__ref,
65239
- node: {
65240
- kind: 'Fragment',
65241
- private: [],
65242
- opaque: true,
65243
- version: VERSION$L
65244
- },
65245
- variables: {}
65246
- });
65247
- reader.markSeenId(fieldData.__ref);
65248
- if (LastModifiedByIdResolvedLink.data !== undefined) {
65249
- const result = select$L(sel, variables, fragments)(LastModifiedByIdResolvedLink.data, reader); // Should probably
65250
- reader.assignNonScalar(sink, key, result);
65251
- }
65252
- else {
65253
- reader.markMissingLink(fieldData.__ref);
65254
- reader.markMissing();
65255
- }
65251
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$L, select$L, false);
65256
65252
  break;
65257
65253
  }
65258
65254
  case 'DateTimeValue': {
65259
- const LastModifiedDateResolvedLink = reader.read({
65260
- recordId: fieldData.__ref,
65261
- node: {
65262
- kind: 'Fragment',
65263
- private: [],
65264
- opaque: true,
65265
- version: VERSION$K
65266
- },
65267
- variables: {}
65268
- });
65269
- reader.markSeenId(fieldData.__ref);
65270
- if (LastModifiedDateResolvedLink.data !== undefined) {
65271
- const result = select$K(sel, variables, fragments)(LastModifiedDateResolvedLink.data, reader); // Should probably
65272
- reader.assignNonScalar(sink, key, result);
65273
- }
65274
- else {
65275
- reader.markMissingLink(fieldData.__ref);
65276
- reader.markMissing();
65277
- }
65255
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$K, select$K, false);
65278
65256
  break;
65279
65257
  }
65280
65258
  case 'IntValue': {
65281
- const IntValueResolvedLink = reader.read({
65282
- recordId: fieldData.__ref,
65283
- node: {
65284
- kind: 'Fragment',
65285
- private: [],
65286
- opaque: true,
65287
- version: VERSION$N
65288
- },
65289
- variables: {}
65290
- });
65291
- reader.markSeenId(fieldData.__ref);
65292
- if (IntValueResolvedLink.data !== undefined) {
65293
- const result = select$N(sel, variables, fragments)(IntValueResolvedLink.data, reader); // Should probably
65294
- reader.assignNonScalar(sink, key, result);
65295
- }
65296
- else {
65297
- reader.markMissingLink(fieldData.__ref);
65298
- reader.markMissing();
65299
- }
65259
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$N, select$N, false);
65300
65260
  break;
65301
65261
  }
65302
65262
  case 'StringValue': {
65303
- const StringValueResolvedLink = reader.read({
65304
- recordId: fieldData.__ref,
65305
- node: {
65306
- kind: 'Fragment',
65307
- private: [],
65308
- opaque: true,
65309
- version: VERSION$M
65310
- },
65311
- variables: {}
65312
- });
65313
- reader.markSeenId(fieldData.__ref);
65314
- if (StringValueResolvedLink.data !== undefined) {
65315
- const result = select$M(sel, variables, fragments)(StringValueResolvedLink.data, reader); // Should probably
65316
- reader.assignNonScalar(sink, key, result);
65317
- }
65318
- else {
65319
- reader.markMissingLink(fieldData.__ref);
65320
- reader.markMissing();
65321
- }
65263
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$M, select$M, false);
65322
65264
  break;
65323
65265
  }
65324
65266
  case 'BooleanValue': {
65325
- const BooleanValueResolvedLink = reader.read({
65326
- recordId: fieldData.__ref,
65327
- node: {
65328
- kind: 'Fragment',
65329
- private: [],
65330
- opaque: true,
65331
- version: VERSION$J
65332
- },
65333
- variables: {}
65334
- });
65335
- reader.markSeenId(fieldData.__ref);
65336
- if (BooleanValueResolvedLink.data !== undefined) {
65337
- const result = select$J(sel, variables, fragments)(BooleanValueResolvedLink.data, reader); // Should probably
65338
- reader.assignNonScalar(sink, key, result);
65339
- }
65340
- else {
65341
- reader.markMissingLink(fieldData.__ref);
65342
- reader.markMissing();
65343
- }
65267
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$J, select$J, false);
65344
65268
  break;
65345
65269
  }
65346
65270
  case 'TimeValue': {
65347
- const TimeValueResolvedLink = reader.read({
65348
- recordId: fieldData.__ref,
65349
- node: {
65350
- kind: 'Fragment',
65351
- private: [],
65352
- opaque: true,
65353
- version: VERSION$I
65354
- },
65355
- variables: {}
65356
- });
65357
- reader.markSeenId(fieldData.__ref);
65358
- if (TimeValueResolvedLink.data !== undefined) {
65359
- const result = select$I(sel, variables, fragments)(TimeValueResolvedLink.data, reader); // Should probably
65360
- reader.assignNonScalar(sink, key, result);
65361
- }
65362
- else {
65363
- reader.markMissingLink(fieldData.__ref);
65364
- reader.markMissing();
65365
- }
65271
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$I, select$I, false);
65366
65272
  break;
65367
65273
  }
65368
65274
  case 'DateValue': {
65369
- const DateValueResolvedLink = reader.read({
65370
- recordId: fieldData.__ref,
65371
- node: {
65372
- kind: 'Fragment',
65373
- private: [],
65374
- opaque: true,
65375
- version: VERSION$H
65376
- },
65377
- variables: {}
65378
- });
65379
- reader.markSeenId(fieldData.__ref);
65380
- if (DateValueResolvedLink.data !== undefined) {
65381
- const result = select$H(sel, variables, fragments)(DateValueResolvedLink.data, reader); // Should probably
65382
- reader.assignNonScalar(sink, key, result);
65383
- }
65384
- else {
65385
- reader.markMissingLink(fieldData.__ref);
65386
- reader.markMissing();
65387
- }
65275
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$H, select$H, false);
65388
65276
  break;
65389
65277
  }
65390
65278
  case 'TextAreaValue': {
65391
- const TextAreaValueResolvedLink = reader.read({
65392
- recordId: fieldData.__ref,
65393
- node: {
65394
- kind: 'Fragment',
65395
- private: [],
65396
- opaque: true,
65397
- version: VERSION$G
65398
- },
65399
- variables: {}
65400
- });
65401
- reader.markSeenId(fieldData.__ref);
65402
- if (TextAreaValueResolvedLink.data !== undefined) {
65403
- const result = select$G(sel, variables, fragments)(TextAreaValueResolvedLink.data, reader); // Should probably
65404
- reader.assignNonScalar(sink, key, result);
65405
- }
65406
- else {
65407
- reader.markMissingLink(fieldData.__ref);
65408
- reader.markMissing();
65409
- }
65279
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$G, select$G, false);
65410
65280
  break;
65411
65281
  }
65412
65282
  case 'LongTextAreaValue': {
65413
- const LongTextAreaValueResolvedLink = reader.read({
65414
- recordId: fieldData.__ref,
65415
- node: {
65416
- kind: 'Fragment',
65417
- private: [],
65418
- opaque: true,
65419
- version: VERSION$F
65420
- },
65421
- variables: {}
65422
- });
65423
- reader.markSeenId(fieldData.__ref);
65424
- if (LongTextAreaValueResolvedLink.data !== undefined) {
65425
- const result = select$F(sel, variables, fragments)(LongTextAreaValueResolvedLink.data, reader); // Should probably
65426
- reader.assignNonScalar(sink, key, result);
65427
- }
65428
- else {
65429
- reader.markMissingLink(fieldData.__ref);
65430
- reader.markMissing();
65431
- }
65283
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$F, select$F, false);
65432
65284
  break;
65433
65285
  }
65434
65286
  case 'RichTextAreaValue': {
65435
- const RichTextAreaValueResolvedLink = reader.read({
65436
- recordId: fieldData.__ref,
65437
- node: {
65438
- kind: 'Fragment',
65439
- private: [],
65440
- opaque: true,
65441
- version: VERSION$E
65442
- },
65443
- variables: {}
65444
- });
65445
- reader.markSeenId(fieldData.__ref);
65446
- if (RichTextAreaValueResolvedLink.data !== undefined) {
65447
- const result = select$E(sel, variables, fragments)(RichTextAreaValueResolvedLink.data, reader); // Should probably
65448
- reader.assignNonScalar(sink, key, result);
65449
- }
65450
- else {
65451
- reader.markMissingLink(fieldData.__ref);
65452
- reader.markMissing();
65453
- }
65287
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$E, select$E, false);
65454
65288
  break;
65455
65289
  }
65456
65290
  case 'PhoneNumberValue': {
65457
- const PhoneNumberValueResolvedLink = reader.read({
65458
- recordId: fieldData.__ref,
65459
- node: {
65460
- kind: 'Fragment',
65461
- private: [],
65462
- opaque: true,
65463
- version: VERSION$D
65464
- },
65465
- variables: {}
65466
- });
65467
- reader.markSeenId(fieldData.__ref);
65468
- if (PhoneNumberValueResolvedLink.data !== undefined) {
65469
- const result = select$D(sel, variables, fragments)(PhoneNumberValueResolvedLink.data, reader); // Should probably
65470
- reader.assignNonScalar(sink, key, result);
65471
- }
65472
- else {
65473
- reader.markMissingLink(fieldData.__ref);
65474
- reader.markMissing();
65475
- }
65291
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$D, select$D, false);
65476
65292
  break;
65477
65293
  }
65478
65294
  case 'EmailValue': {
65479
- const EmailValueResolvedLink = reader.read({
65480
- recordId: fieldData.__ref,
65481
- node: {
65482
- kind: 'Fragment',
65483
- private: [],
65484
- opaque: true,
65485
- version: VERSION$C
65486
- },
65487
- variables: {}
65488
- });
65489
- reader.markSeenId(fieldData.__ref);
65490
- if (EmailValueResolvedLink.data !== undefined) {
65491
- const result = select$C(sel, variables, fragments)(EmailValueResolvedLink.data, reader); // Should probably
65492
- reader.assignNonScalar(sink, key, result);
65493
- }
65494
- else {
65495
- reader.markMissingLink(fieldData.__ref);
65496
- reader.markMissing();
65497
- }
65295
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$C, select$C, false);
65498
65296
  break;
65499
65297
  }
65500
65298
  case 'UrlValue': {
65501
- const UrlValueResolvedLink = reader.read({
65502
- recordId: fieldData.__ref,
65503
- node: {
65504
- kind: 'Fragment',
65505
- private: [],
65506
- opaque: true,
65507
- version: VERSION$B
65508
- },
65509
- variables: {}
65510
- });
65511
- reader.markSeenId(fieldData.__ref);
65512
- if (UrlValueResolvedLink.data !== undefined) {
65513
- const result = select$B(sel, variables, fragments)(UrlValueResolvedLink.data, reader); // Should probably
65514
- reader.assignNonScalar(sink, key, result);
65515
- }
65516
- else {
65517
- reader.markMissingLink(fieldData.__ref);
65518
- reader.markMissing();
65519
- }
65299
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$B, select$B, false);
65520
65300
  break;
65521
65301
  }
65522
65302
  case 'EncryptedStringValue': {
65523
- const EncryptedStringValueResolvedLink = reader.read({
65524
- recordId: fieldData.__ref,
65525
- node: {
65526
- kind: 'Fragment',
65527
- private: [],
65528
- opaque: true,
65529
- version: VERSION$A
65530
- },
65531
- variables: {}
65532
- });
65533
- reader.markSeenId(fieldData.__ref);
65534
- if (EncryptedStringValueResolvedLink.data !== undefined) {
65535
- const result = select$A(sel, variables, fragments)(EncryptedStringValueResolvedLink.data, reader); // Should probably
65536
- reader.assignNonScalar(sink, key, result);
65537
- }
65538
- else {
65539
- reader.markMissingLink(fieldData.__ref);
65540
- reader.markMissing();
65541
- }
65303
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$A, select$A, false);
65542
65304
  break;
65543
65305
  }
65544
65306
  case 'CurrencyValue': {
65545
- const CurrencyValueResolvedLink = reader.read({
65546
- recordId: fieldData.__ref,
65547
- node: {
65548
- kind: 'Fragment',
65549
- private: [],
65550
- opaque: true,
65551
- version: VERSION$z
65552
- },
65553
- variables: {}
65554
- });
65555
- reader.markSeenId(fieldData.__ref);
65556
- if (CurrencyValueResolvedLink.data !== undefined) {
65557
- const result = select$z(sel, variables, fragments)(CurrencyValueResolvedLink.data, reader); // Should probably
65558
- reader.assignNonScalar(sink, key, result);
65559
- }
65560
- else {
65561
- reader.markMissingLink(fieldData.__ref);
65562
- reader.markMissing();
65563
- }
65307
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$z, select$z, false);
65564
65308
  break;
65565
65309
  }
65566
65310
  case 'LongitudeValue': {
65567
- const LongitudeValueResolvedLink = reader.read({
65568
- recordId: fieldData.__ref,
65569
- node: {
65570
- kind: 'Fragment',
65571
- private: [],
65572
- opaque: true,
65573
- version: VERSION$y
65574
- },
65575
- variables: {}
65576
- });
65577
- reader.markSeenId(fieldData.__ref);
65578
- if (LongitudeValueResolvedLink.data !== undefined) {
65579
- const result = select$y(sel, variables, fragments)(LongitudeValueResolvedLink.data, reader); // Should probably
65580
- reader.assignNonScalar(sink, key, result);
65581
- }
65582
- else {
65583
- reader.markMissingLink(fieldData.__ref);
65584
- reader.markMissing();
65585
- }
65311
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$y, select$y, false);
65586
65312
  break;
65587
65313
  }
65588
65314
  case 'LatitudeValue': {
65589
- const LatitudeValueResolvedLink = reader.read({
65590
- recordId: fieldData.__ref,
65591
- node: {
65592
- kind: 'Fragment',
65593
- private: [],
65594
- opaque: true,
65595
- version: VERSION$x
65596
- },
65597
- variables: {}
65598
- });
65599
- reader.markSeenId(fieldData.__ref);
65600
- if (LatitudeValueResolvedLink.data !== undefined) {
65601
- const result = select$x(sel, variables, fragments)(LatitudeValueResolvedLink.data, reader); // Should probably
65602
- reader.assignNonScalar(sink, key, result);
65603
- }
65604
- else {
65605
- reader.markMissingLink(fieldData.__ref);
65606
- reader.markMissing();
65607
- }
65315
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$x, select$x, false);
65608
65316
  break;
65609
65317
  }
65610
65318
  case 'PicklistValue': {
65611
- const PicklistValueResolvedLink = reader.read({
65612
- recordId: fieldData.__ref,
65613
- node: {
65614
- kind: 'Fragment',
65615
- private: [],
65616
- opaque: true,
65617
- version: VERSION$w
65618
- },
65619
- variables: {}
65620
- });
65621
- reader.markSeenId(fieldData.__ref);
65622
- if (PicklistValueResolvedLink.data !== undefined) {
65623
- const result = select$w(sel, variables, fragments)(PicklistValueResolvedLink.data, reader); // Should probably
65624
- reader.assignNonScalar(sink, key, result);
65625
- }
65626
- else {
65627
- reader.markMissingLink(fieldData.__ref);
65628
- reader.markMissing();
65629
- }
65319
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$w, select$w, false);
65630
65320
  break;
65631
65321
  }
65632
65322
  case 'MultiPicklistValue': {
65633
- const MultiPicklistValueResolvedLink = reader.read({
65634
- recordId: fieldData.__ref,
65635
- node: {
65636
- kind: 'Fragment',
65637
- private: [],
65638
- opaque: true,
65639
- version: VERSION$v
65640
- },
65641
- variables: {}
65642
- });
65643
- reader.markSeenId(fieldData.__ref);
65644
- if (MultiPicklistValueResolvedLink.data !== undefined) {
65645
- const result = select$v(sel, variables, fragments)(MultiPicklistValueResolvedLink.data, reader); // Should probably
65646
- reader.assignNonScalar(sink, key, result);
65647
- }
65648
- else {
65649
- reader.markMissingLink(fieldData.__ref);
65650
- reader.markMissing();
65651
- }
65323
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$v, select$v, false);
65652
65324
  break;
65653
65325
  }
65654
65326
  case 'LongValue': {
65655
- const LongValueResolvedLink = reader.read({
65656
- recordId: fieldData.__ref,
65657
- node: {
65658
- kind: 'Fragment',
65659
- private: [],
65660
- opaque: true,
65661
- version: VERSION$P
65662
- },
65663
- variables: {}
65664
- });
65665
- reader.markSeenId(fieldData.__ref);
65666
- if (LongValueResolvedLink.data !== undefined) {
65667
- const result = select$P(sel, variables, fragments)(LongValueResolvedLink.data, reader); // Should probably
65668
- reader.assignNonScalar(sink, key, result);
65669
- }
65670
- else {
65671
- reader.markMissingLink(fieldData.__ref);
65672
- reader.markMissing();
65673
- }
65327
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$P, select$P, false);
65674
65328
  break;
65675
65329
  }
65676
65330
  case 'DoubleValue': {
65677
- const DoubleValueResolvedLink = reader.read({
65678
- recordId: fieldData.__ref,
65679
- node: {
65680
- kind: 'Fragment',
65681
- private: [],
65682
- opaque: true,
65683
- version: VERSION$Q
65684
- },
65685
- variables: {}
65686
- });
65687
- reader.markSeenId(fieldData.__ref);
65688
- if (DoubleValueResolvedLink.data !== undefined) {
65689
- const result = select$Q(sel, variables, fragments)(DoubleValueResolvedLink.data, reader); // Should probably
65690
- reader.assignNonScalar(sink, key, result);
65691
- }
65692
- else {
65693
- reader.markMissingLink(fieldData.__ref);
65694
- reader.markMissing();
65695
- }
65331
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$Q, select$Q, false);
65696
65332
  break;
65697
65333
  }
65698
65334
  case 'PercentValue': {
65699
- const PercentValueResolvedLink = reader.read({
65700
- recordId: fieldData.__ref,
65701
- node: {
65702
- kind: 'Fragment',
65703
- private: [],
65704
- opaque: true,
65705
- version: VERSION$O
65706
- },
65707
- variables: {}
65708
- });
65709
- reader.markSeenId(fieldData.__ref);
65710
- if (PercentValueResolvedLink.data !== undefined) {
65711
- const result = select$O(sel, variables, fragments)(PercentValueResolvedLink.data, reader); // Should probably
65712
- reader.assignNonScalar(sink, key, result);
65713
- }
65714
- else {
65715
- reader.markMissingLink(fieldData.__ref);
65716
- reader.markMissing();
65717
- }
65335
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$O, select$O, false);
65718
65336
  break;
65719
65337
  }
65720
65338
  case 'Base64Value': {
65721
- const Base64ValueResolvedLink = reader.read({
65722
- recordId: fieldData.__ref,
65723
- node: {
65724
- kind: 'Fragment',
65725
- private: [],
65726
- opaque: true,
65727
- version: VERSION$u
65728
- },
65729
- variables: {}
65730
- });
65731
- reader.markSeenId(fieldData.__ref);
65732
- if (Base64ValueResolvedLink.data !== undefined) {
65733
- const result = select$u(sel, variables, fragments)(Base64ValueResolvedLink.data, reader); // Should probably
65734
- reader.assignNonScalar(sink, key, result);
65735
- }
65736
- else {
65737
- reader.markMissingLink(fieldData.__ref);
65738
- reader.markMissing();
65739
- }
65339
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$u, select$u, false);
65740
65340
  break;
65741
65341
  }
65742
65342
  case 'JSONValue': {
65743
- const JSONValueResolvedLink = reader.read({
65744
- recordId: fieldData.__ref,
65745
- node: {
65746
- kind: 'Fragment',
65747
- private: [],
65748
- opaque: true,
65749
- version: VERSION$t
65750
- },
65751
- variables: {}
65752
- });
65753
- reader.markSeenId(fieldData.__ref);
65754
- if (JSONValueResolvedLink.data !== undefined) {
65755
- const result = select$t(sel, variables, fragments)(JSONValueResolvedLink.data, reader); // Should probably
65756
- reader.assignNonScalar(sink, key, result);
65757
- }
65758
- else {
65759
- reader.markMissingLink(fieldData.__ref);
65760
- reader.markMissing();
65761
- }
65343
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$t, select$t, false);
65762
65344
  break;
65763
65345
  }
65764
65346
  case 'RecordRepresentation': {
65765
- const parentRelationshipResolvedLink = reader.read({
65766
- recordId: fieldData.__ref,
65767
- node: {
65768
- kind: 'Fragment',
65769
- private: [],
65770
- opaque: true,
65771
- version: VERSION$o
65772
- },
65773
- variables: {}
65774
- });
65775
- reader.markSeenId(fieldData.__ref);
65776
- if (parentRelationshipResolvedLink.data !== undefined) {
65777
- const result = select$q(sel, variables, fragments)(parentRelationshipResolvedLink.data, reader); // Should probably
65778
- reader.assignNonScalar(sink, key, result);
65779
- }
65780
- else {
65781
- reader.markMissingLink(fieldData.__ref);
65782
- reader.markMissing();
65783
- }
65347
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$o, select$q, false);
65784
65348
  break;
65785
65349
  }
65786
65350
  case 'PolymorphicParentRelationship': {
65787
- const polymorphicParentRelationshipResolvedLink = reader.read({
65788
- recordId: fieldData.__ref,
65789
- node: {
65790
- kind: 'Fragment',
65791
- private: [],
65792
- opaque: true,
65793
- version: VERSION$s
65794
- },
65795
- variables: {}
65796
- });
65797
- reader.markSeenId(fieldData.__ref);
65798
- if (polymorphicParentRelationshipResolvedLink.data !== undefined) {
65799
- const result = select$s(sel, variables, fragments)(polymorphicParentRelationshipResolvedLink.data, reader); // Should probably
65800
- reader.assignNonScalar(sink, key, result);
65801
- }
65802
- else {
65803
- reader.markMissingLink(fieldData.__ref);
65804
- reader.markMissing();
65805
- }
65351
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$s, select$s, false);
65806
65352
  break;
65807
65353
  }
65808
65354
  case 'RecordConnection': {
65809
- const childRelationshipResolvedLink = reader.read({
65810
- recordId: fieldData.__ref,
65811
- node: {
65812
- kind: 'Fragment',
65813
- private: [],
65814
- opaque: true,
65815
- version: VERSION$m
65816
- },
65817
- variables: {}
65818
- });
65819
- reader.markSeenId(fieldData.__ref);
65820
- if (childRelationshipResolvedLink.data !== undefined) {
65821
- const source = childRelationshipResolvedLink.data.data;
65822
- const totalEdges = source.edges !== undefined ? source.edges.length : 0;
65823
- const metadata = reader.resolveMetadata(source, PAGINATION_VERSION);
65824
- const firstArg = (_a = sel.arguments) === null || _a === void 0 ? void 0 : _a.find(argument => { return argument.name.value === 'first'; });
65825
- const firstArgVal = evaluateArgumentValue(firstArg, 'IntValue', variables);
65826
- const pageSize = firstArgVal !== undefined ? firstArgVal : totalEdges;
65827
- const afterArg = (_b = sel.arguments) === null || _b === void 0 ? void 0 : _b.find(argument => { return argument.name.value === 'after'; });
65828
- const afterArgVal = evaluateArgumentValue(afterArg, 'StringValue', variables);
65829
- const paginationParams = {
65830
- pageSize: parseInt(pageSize, 10),
65831
- token: afterArgVal
65832
- };
65833
- let { startOffset, endOffset } = getPageMetadata(metadata, paginationParams);
65834
- const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
65835
- let trimmedEdges = [];
65836
- let maxOffset = undefined;
65837
- if (totalEdges === 0 && listIsComplete) {
65838
- // We have an empty edge list
65839
- // If after token was specified, it will never be a good cursor, so defer to a cache miss
65840
- if (afterArgVal !== undefined) {
65841
- reader.markMissingLink(fieldData.__ref);
65842
- reader.markMissing();
65843
- return;
65844
- }
65845
- }
65846
- else {
65847
- if (metadata === undefined || startOffset === undefined || endOffset === undefined) {
65848
- reader.markMissingLink(fieldData.__ref);
65849
- reader.markMissing();
65850
- return;
65851
- }
65852
- // gql paging semantics is "after" the requested cursor, so shift the offsets provided a valid cursor is provided
65853
- if (afterArgVal !== undefined) {
65854
- startOffset++;
65855
- // if the "first" argument was not provided then the endOffset
65856
- // is already set to the index of the last edge.
65857
- // if the "first" argument was provided then we need to increment the endOffset
65858
- // however we still need to make sure the endOffset doesn't go past totalEdges
65859
- // if the list is already complete and we can't fetch any more edges
65860
- if (firstArgVal !== undefined && (!listIsComplete || endOffset < totalEdges)) {
65861
- endOffset++;
65862
- }
65863
- }
65864
- if (startOffset >= totalEdges && listIsComplete) {
65865
- // Data after the last page was requested, return empty set
65866
- startOffset = undefined;
65867
- endOffset = undefined;
65868
- }
65869
- else {
65870
- trimmedEdges = trimEdges(source.edges, startOffset, endOffset);
65871
- maxOffset = findMaxOffset(metadata);
65872
- const listHasEnoughItems = (endOffset - 1 <= maxOffset);
65873
- if (trimmedEdges === undefined || !listHasEnoughItems) {
65874
- reader.markMissingLink(fieldData.__ref);
65875
- reader.markMissing();
65876
- // optimize pagination when "first" and "after" args are part of the variable
65877
- 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') {
65878
- optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
65879
- }
65880
- return;
65881
- }
65882
- }
65883
- }
65884
- const paginatedData = {
65885
- data: {
65886
- ...source,
65887
- edges: ObjectFreeze(trimmedEdges),
65888
- }
65889
- };
65890
- const result = select$o(sel, variables, fragments)(paginatedData, reader);
65891
- const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
65892
- if (pageInfo !== undefined) {
65893
- const selectedPageInfo = selectPageInfo$1((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
65894
- if (selectedPageInfo !== undefined) {
65895
- reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
65896
- }
65897
- }
65898
- reader.assignNonScalar(sink, key, result);
65899
- }
65900
- else {
65901
- reader.markMissingLink(fieldData.__ref);
65902
- reader.markMissing();
65903
- }
65355
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$m, select$o, true);
65904
65356
  break;
65905
65357
  }
65906
65358
  }
@@ -65937,38 +65389,6 @@
65937
65389
  return sink;
65938
65390
  };
65939
65391
  }
65940
- function selectPageInfo$1(selections, fragments, pageInfo) {
65941
- var _a;
65942
- const pageInfoSelection = getSelectionNode$1(selections, fragments, 'pageInfo');
65943
- if (pageInfo === undefined || pageInfoSelection === undefined || pageInfoSelection.kind !== 'Field')
65944
- return undefined;
65945
- const pageInfoSelections = (_a = pageInfoSelection.selectionSet) === null || _a === void 0 ? void 0 : _a.selections;
65946
- const selectedPageInfo = Object.assign({}, pageInfo);
65947
- Object.keys(pageInfo).forEach((fieldName) => {
65948
- if (getSelectionNode$1(pageInfoSelections, fragments, fieldName) === undefined) {
65949
- delete selectedPageInfo[fieldName];
65950
- }
65951
- });
65952
- return selectedPageInfo;
65953
- }
65954
- function getSelectionNode$1(selections, fragments, fieldName) {
65955
- if (selections === undefined)
65956
- return undefined;
65957
- for (let i = 0; i < selections.length; i++) {
65958
- const selection = selections[i];
65959
- if (selection.kind === 'Field' && selection.name.value === fieldName) {
65960
- return selection;
65961
- }
65962
- else if (selection.kind === 'FragmentSpread') {
65963
- const fragment = fragments[selection.name.value];
65964
- return getSelectionNode$1(fragment === null || fragment === void 0 ? void 0 : fragment.selectionSet.selections, fragments, fieldName);
65965
- }
65966
- else if (selection.kind === 'InlineFragment') {
65967
- return getSelectionNode$1(selection.selectionSet.selections, fragments, fieldName);
65968
- }
65969
- }
65970
- return undefined;
65971
- }
65972
65392
  function getTypeCacheKeys$h(astNode, state) {
65973
65393
  const { path, data, luvio } = state;
65974
65394
  const rootKey = keyBuilder$l(luvio, path, data);
@@ -66830,25 +66250,7 @@
66830
66250
  break;
66831
66251
  }
66832
66252
  case 'RecordRepresentation': {
66833
- const nodeResolvedLink = reader.read({
66834
- recordId: fieldData.__ref,
66835
- node: {
66836
- kind: 'Fragment',
66837
- private: [],
66838
- opaque: true,
66839
- version: VERSION$o
66840
- },
66841
- variables: {}
66842
- });
66843
- reader.markSeenId(fieldData.__ref);
66844
- if (nodeResolvedLink.data !== undefined) {
66845
- const result = select$q(sel, variables, fragments)(nodeResolvedLink.data, reader); // Should probably
66846
- reader.assignNonScalar(sink, key, result);
66847
- }
66848
- else {
66849
- reader.markMissingLink(fieldData.__ref);
66850
- reader.markMissing();
66851
- }
66253
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$o, select$q, false);
66852
66254
  break;
66853
66255
  }
66854
66256
  }
@@ -67096,47 +66498,11 @@
67096
66498
  break;
67097
66499
  }
67098
66500
  case 'RecordEdge': {
67099
- const edgesResolvedLink = reader.read({
67100
- recordId: fieldData.__ref,
67101
- node: {
67102
- kind: 'Fragment',
67103
- private: [],
67104
- opaque: true,
67105
- version: VERSION$n
67106
- },
67107
- variables: {}
67108
- });
67109
- reader.markSeenId(fieldData.__ref);
67110
- if (edgesResolvedLink.data !== undefined) {
67111
- const result = select$p(sel, variables, fragments)(edgesResolvedLink.data, reader); // Should probably
67112
- reader.assignNonScalar(sink, key, result);
67113
- }
67114
- else {
67115
- reader.markMissingLink(fieldData.__ref);
67116
- reader.markMissing();
67117
- }
66501
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$n, select$p, false);
67118
66502
  break;
67119
66503
  }
67120
66504
  case 'PageInfo': {
67121
- const pageInfoResolvedLink = reader.read({
67122
- recordId: fieldData.__ref,
67123
- node: {
67124
- kind: 'Fragment',
67125
- private: [],
67126
- opaque: true,
67127
- version: VERSION$p
67128
- },
67129
- variables: {}
67130
- });
67131
- reader.markSeenId(fieldData.__ref);
67132
- if (pageInfoResolvedLink.data !== undefined) {
67133
- const result = select$r(sel, variables, fragments)(pageInfoResolvedLink.data, reader); // Should probably
67134
- reader.assignNonScalar(sink, key, result);
67135
- }
67136
- else {
67137
- reader.markMissingLink(fieldData.__ref);
67138
- reader.markMissing();
67139
- }
66505
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$p, select$r, false);
67140
66506
  break;
67141
66507
  }
67142
66508
  case 'Int': {
@@ -67336,7 +66702,6 @@
67336
66702
  }
67337
66703
  }
67338
66704
  function selectType$e(typename, sel, fieldData, reader, key, sink, variables, fragments) {
67339
- var _a, _b, _c, _d, _e;
67340
66705
  if (fieldData === null) {
67341
66706
  reader.assignScalar(key, sink, fieldData);
67342
66707
  return sink;
@@ -67347,101 +66712,7 @@
67347
66712
  break;
67348
66713
  }
67349
66714
  case 'RecordConnection': {
67350
- const recordQueryResolvedLink = reader.read({
67351
- recordId: fieldData.__ref,
67352
- node: {
67353
- kind: 'Fragment',
67354
- private: [],
67355
- opaque: true,
67356
- version: VERSION$m
67357
- },
67358
- variables: {}
67359
- });
67360
- reader.markSeenId(fieldData.__ref);
67361
- if (recordQueryResolvedLink.data !== undefined) {
67362
- const source = recordQueryResolvedLink.data.data;
67363
- const totalEdges = source.edges !== undefined ? source.edges.length : 0;
67364
- const metadata = reader.resolveMetadata(source, PAGINATION_VERSION);
67365
- const firstArg = (_a = sel.arguments) === null || _a === void 0 ? void 0 : _a.find(argument => { return argument.name.value === 'first'; });
67366
- const firstArgVal = evaluateArgumentValue(firstArg, 'IntValue', variables);
67367
- const pageSize = firstArgVal !== undefined ? firstArgVal : totalEdges;
67368
- const afterArg = (_b = sel.arguments) === null || _b === void 0 ? void 0 : _b.find(argument => { return argument.name.value === 'after'; });
67369
- const afterArgVal = evaluateArgumentValue(afterArg, 'StringValue', variables);
67370
- const paginationParams = {
67371
- pageSize: parseInt(pageSize, 10),
67372
- token: afterArgVal
67373
- };
67374
- let { startOffset, endOffset } = getPageMetadata(metadata, paginationParams);
67375
- const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
67376
- let trimmedEdges = [];
67377
- let maxOffset = undefined;
67378
- if (totalEdges === 0 && listIsComplete) {
67379
- // We have an empty edge list
67380
- // If after token was specified, it will never be a good cursor, so defer to a cache miss
67381
- if (afterArgVal !== undefined) {
67382
- reader.markMissingLink(fieldData.__ref);
67383
- reader.markMissing();
67384
- return;
67385
- }
67386
- }
67387
- else {
67388
- if (metadata === undefined || startOffset === undefined || endOffset === undefined) {
67389
- reader.markMissingLink(fieldData.__ref);
67390
- reader.markMissing();
67391
- return;
67392
- }
67393
- // gql paging semantics is "after" the requested cursor, so shift the offsets provided a valid cursor is provided
67394
- if (afterArgVal !== undefined) {
67395
- startOffset++;
67396
- // if the "first" argument was not provided then the endOffset
67397
- // is already set to the index of the last edge.
67398
- // if the "first" argument was provided then we need to increment the endOffset
67399
- // however we still need to make sure the endOffset doesn't go past totalEdges
67400
- // if the list is already complete and we can't fetch any more edges
67401
- if (firstArgVal !== undefined && (!listIsComplete || endOffset < totalEdges)) {
67402
- endOffset++;
67403
- }
67404
- }
67405
- if (startOffset >= totalEdges && listIsComplete) {
67406
- // Data after the last page was requested, return empty set
67407
- startOffset = undefined;
67408
- endOffset = undefined;
67409
- }
67410
- else {
67411
- trimmedEdges = trimEdges(source.edges, startOffset, endOffset);
67412
- maxOffset = findMaxOffset(metadata);
67413
- const listHasEnoughItems = (endOffset - 1 <= maxOffset);
67414
- if (trimmedEdges === undefined || !listHasEnoughItems) {
67415
- reader.markMissingLink(fieldData.__ref);
67416
- reader.markMissing();
67417
- // optimize pagination when "first" and "after" args are part of the variable
67418
- 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') {
67419
- optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
67420
- }
67421
- return;
67422
- }
67423
- }
67424
- }
67425
- const paginatedData = {
67426
- data: {
67427
- ...source,
67428
- edges: ObjectFreeze(trimmedEdges),
67429
- }
67430
- };
67431
- const result = select$o(sel, variables, fragments)(paginatedData, reader);
67432
- const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
67433
- if (pageInfo !== undefined) {
67434
- const selectedPageInfo = selectPageInfo((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
67435
- if (selectedPageInfo !== undefined) {
67436
- reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
67437
- }
67438
- }
67439
- reader.assignNonScalar(sink, key, result);
67440
- }
67441
- else {
67442
- reader.markMissingLink(fieldData.__ref);
67443
- reader.markMissing();
67444
- }
66715
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$m, select$o, true);
67445
66716
  break;
67446
66717
  }
67447
66718
  }
@@ -67477,38 +66748,6 @@
67477
66748
  return sink;
67478
66749
  };
67479
66750
  }
67480
- function selectPageInfo(selections, fragments, pageInfo) {
67481
- var _a;
67482
- const pageInfoSelection = getSelectionNode(selections, fragments, 'pageInfo');
67483
- if (pageInfo === undefined || pageInfoSelection === undefined || pageInfoSelection.kind !== 'Field')
67484
- return undefined;
67485
- const pageInfoSelections = (_a = pageInfoSelection.selectionSet) === null || _a === void 0 ? void 0 : _a.selections;
67486
- const selectedPageInfo = Object.assign({}, pageInfo);
67487
- Object.keys(pageInfo).forEach((fieldName) => {
67488
- if (getSelectionNode(pageInfoSelections, fragments, fieldName) === undefined) {
67489
- delete selectedPageInfo[fieldName];
67490
- }
67491
- });
67492
- return selectedPageInfo;
67493
- }
67494
- function getSelectionNode(selections, fragments, fieldName) {
67495
- if (selections === undefined)
67496
- return undefined;
67497
- for (let i = 0; i < selections.length; i++) {
67498
- const selection = selections[i];
67499
- if (selection.kind === 'Field' && selection.name.value === fieldName) {
67500
- return selection;
67501
- }
67502
- else if (selection.kind === 'FragmentSpread') {
67503
- const fragment = fragments[selection.name.value];
67504
- return getSelectionNode(fragment === null || fragment === void 0 ? void 0 : fragment.selectionSet.selections, fragments, fieldName);
67505
- }
67506
- else if (selection.kind === 'InlineFragment') {
67507
- return getSelectionNode(selection.selectionSet.selections, fragments, fieldName);
67508
- }
67509
- }
67510
- return undefined;
67511
- }
67512
66751
  function getMinimumSelections$A() {
67513
66752
  const minimumSelections = [
67514
66753
  {
@@ -67651,25 +66890,7 @@
67651
66890
  break;
67652
66891
  }
67653
66892
  case 'ObjectInfo': {
67654
- const objectInfoResolvedLink = reader.read({
67655
- recordId: fieldData.__ref,
67656
- node: {
67657
- kind: 'Fragment',
67658
- private: [],
67659
- opaque: true,
67660
- version: VERSION$d
67661
- },
67662
- variables: {}
67663
- });
67664
- reader.markSeenId(fieldData.__ref);
67665
- if (objectInfoResolvedLink.data !== undefined) {
67666
- const result = select$f(sel, variables, fragments)(objectInfoResolvedLink.data, reader); // Should probably
67667
- reader.assignNonScalar(sink, key, result);
67668
- }
67669
- else {
67670
- reader.markMissingLink(fieldData.__ref);
67671
- reader.markMissing();
67672
- }
66893
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$d, select$f, false);
67673
66894
  break;
67674
66895
  }
67675
66896
  }
@@ -68223,25 +67444,7 @@
68223
67444
  break;
68224
67445
  }
68225
67446
  case 'ObjectInfo': {
68226
- const objectInfoResolvedLink = reader.read({
68227
- recordId: fieldData.__ref,
68228
- node: {
68229
- kind: 'Fragment',
68230
- private: [],
68231
- opaque: true,
68232
- version: VERSION$d
68233
- },
68234
- variables: {}
68235
- });
68236
- reader.markSeenId(fieldData.__ref);
68237
- if (objectInfoResolvedLink.data !== undefined) {
68238
- const result = select$f(sel, variables, fragments)(objectInfoResolvedLink.data, reader); // Should probably
68239
- reader.assignNonScalar(sink, key, result);
68240
- }
68241
- else {
68242
- reader.markMissingLink(fieldData.__ref);
68243
- reader.markMissing();
68244
- }
67447
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$d, select$f, false);
68245
67448
  break;
68246
67449
  }
68247
67450
  }
@@ -68461,25 +67664,7 @@
68461
67664
  break;
68462
67665
  }
68463
67666
  case 'FilteredLookupInfo': {
68464
- const filteredLookupInfoResolvedLink = reader.read({
68465
- recordId: fieldData.__ref,
68466
- node: {
68467
- kind: 'Fragment',
68468
- private: [],
68469
- opaque: true,
68470
- version: VERSION$i
68471
- },
68472
- variables: {}
68473
- });
68474
- reader.markSeenId(fieldData.__ref);
68475
- if (filteredLookupInfoResolvedLink.data !== undefined) {
68476
- const result = select$k(sel, variables, fragments)(filteredLookupInfoResolvedLink.data, reader); // Should probably
68477
- reader.assignNonScalar(sink, key, result);
68478
- }
68479
- else {
68480
- reader.markMissingLink(fieldData.__ref);
68481
- reader.markMissing();
68482
- }
67667
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$i, select$k, false);
68483
67668
  break;
68484
67669
  }
68485
67670
  case 'Int': {
@@ -68487,25 +67672,7 @@
68487
67672
  break;
68488
67673
  }
68489
67674
  case 'ReferenceToInfo': {
68490
- const referenceToInfosResolvedLink = reader.read({
68491
- recordId: fieldData.__ref,
68492
- node: {
68493
- kind: 'Fragment',
68494
- private: [],
68495
- opaque: true,
68496
- version: VERSION$h
68497
- },
68498
- variables: {}
68499
- });
68500
- reader.markSeenId(fieldData.__ref);
68501
- if (referenceToInfosResolvedLink.data !== undefined) {
68502
- const result = select$j(sel, variables, fragments)(referenceToInfosResolvedLink.data, reader); // Should probably
68503
- reader.assignNonScalar(sink, key, result);
68504
- }
68505
- else {
68506
- reader.markMissingLink(fieldData.__ref);
68507
- reader.markMissing();
68508
- }
67675
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$h, select$j, false);
68509
67676
  break;
68510
67677
  }
68511
67678
  }
@@ -69264,25 +68431,7 @@
69264
68431
  break;
69265
68432
  }
69266
68433
  case 'ChildRelationship': {
69267
- const childRelationshipsResolvedLink = reader.read({
69268
- recordId: fieldData.__ref,
69269
- node: {
69270
- kind: 'Fragment',
69271
- private: [],
69272
- opaque: true,
69273
- version: VERSION$k
69274
- },
69275
- variables: {}
69276
- });
69277
- reader.markSeenId(fieldData.__ref);
69278
- if (childRelationshipsResolvedLink.data !== undefined) {
69279
- const result = select$m(sel, variables, fragments)(childRelationshipsResolvedLink.data, reader); // Should probably
69280
- reader.assignNonScalar(sink, key, result);
69281
- }
69282
- else {
69283
- reader.markMissingLink(fieldData.__ref);
69284
- reader.markMissing();
69285
- }
68434
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$k, select$m, false);
69286
68435
  break;
69287
68436
  }
69288
68437
  case 'Boolean': {
@@ -69294,91 +68443,19 @@
69294
68443
  break;
69295
68444
  }
69296
68445
  case 'DependentField': {
69297
- const dependentFieldsResolvedLink = reader.read({
69298
- recordId: fieldData.__ref,
69299
- node: {
69300
- kind: 'Fragment',
69301
- private: [],
69302
- opaque: true,
69303
- version: VERSION$j
69304
- },
69305
- variables: {}
69306
- });
69307
- reader.markSeenId(fieldData.__ref);
69308
- if (dependentFieldsResolvedLink.data !== undefined) {
69309
- const result = select$l(sel, variables, fragments)(dependentFieldsResolvedLink.data, reader); // Should probably
69310
- reader.assignNonScalar(sink, key, result);
69311
- }
69312
- else {
69313
- reader.markMissingLink(fieldData.__ref);
69314
- reader.markMissing();
69315
- }
68446
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$j, select$l, false);
69316
68447
  break;
69317
68448
  }
69318
68449
  case 'Field': {
69319
- const fieldsResolvedLink = reader.read({
69320
- recordId: fieldData.__ref,
69321
- node: {
69322
- kind: 'Fragment',
69323
- private: [],
69324
- opaque: true,
69325
- version: VERSION$g
69326
- },
69327
- variables: {}
69328
- });
69329
- reader.markSeenId(fieldData.__ref);
69330
- if (fieldsResolvedLink.data !== undefined) {
69331
- const result = select$i(sel, variables, fragments)(fieldsResolvedLink.data, reader); // Should probably
69332
- reader.assignNonScalar(sink, key, result);
69333
- }
69334
- else {
69335
- reader.markMissingLink(fieldData.__ref);
69336
- reader.markMissing();
69337
- }
68450
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$g, select$i, false);
69338
68451
  break;
69339
68452
  }
69340
68453
  case 'RecordTypeInfo': {
69341
- const recordTypeInfosResolvedLink = reader.read({
69342
- recordId: fieldData.__ref,
69343
- node: {
69344
- kind: 'Fragment',
69345
- private: [],
69346
- opaque: true,
69347
- version: VERSION$f
69348
- },
69349
- variables: {}
69350
- });
69351
- reader.markSeenId(fieldData.__ref);
69352
- if (recordTypeInfosResolvedLink.data !== undefined) {
69353
- const result = select$h(sel, variables, fragments)(recordTypeInfosResolvedLink.data, reader); // Should probably
69354
- reader.assignNonScalar(sink, key, result);
69355
- }
69356
- else {
69357
- reader.markMissingLink(fieldData.__ref);
69358
- reader.markMissing();
69359
- }
68454
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$f, select$h, false);
69360
68455
  break;
69361
68456
  }
69362
68457
  case 'ThemeInfo': {
69363
- const themeInfoResolvedLink = reader.read({
69364
- recordId: fieldData.__ref,
69365
- node: {
69366
- kind: 'Fragment',
69367
- private: [],
69368
- opaque: true,
69369
- version: VERSION$e
69370
- },
69371
- variables: {}
69372
- });
69373
- reader.markSeenId(fieldData.__ref);
69374
- if (themeInfoResolvedLink.data !== undefined) {
69375
- const result = select$g(sel, variables, fragments)(themeInfoResolvedLink.data, reader); // Should probably
69376
- reader.assignNonScalar(sink, key, result);
69377
- }
69378
- else {
69379
- reader.markMissingLink(fieldData.__ref);
69380
- reader.markMissing();
69381
- }
68458
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$e, select$g, false);
69382
68459
  break;
69383
68460
  }
69384
68461
  }
@@ -70159,47 +69236,11 @@
70159
69236
  break;
70160
69237
  }
70161
69238
  case 'ListColumn': {
70162
- const displayColumnsResolvedLink = reader.read({
70163
- recordId: fieldData.__ref,
70164
- node: {
70165
- kind: 'Fragment',
70166
- private: [],
70167
- opaque: true,
70168
- version: VERSION$c
70169
- },
70170
- variables: {}
70171
- });
70172
- reader.markSeenId(fieldData.__ref);
70173
- if (displayColumnsResolvedLink.data !== undefined) {
70174
- const result = select$e(sel, variables, fragments)(displayColumnsResolvedLink.data, reader); // Should probably
70175
- reader.assignNonScalar(sink, key, result);
70176
- }
70177
- else {
70178
- reader.markMissingLink(fieldData.__ref);
70179
- reader.markMissing();
70180
- }
69239
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$c, select$e, false);
70181
69240
  break;
70182
69241
  }
70183
69242
  case 'ListOrder': {
70184
- const orderedByInfoResolvedLink = reader.read({
70185
- recordId: fieldData.__ref,
70186
- node: {
70187
- kind: 'Fragment',
70188
- private: [],
70189
- opaque: true,
70190
- version: VERSION$b
70191
- },
70192
- variables: {}
70193
- });
70194
- reader.markSeenId(fieldData.__ref);
70195
- if (orderedByInfoResolvedLink.data !== undefined) {
70196
- const result = select$d(sel, variables, fragments)(orderedByInfoResolvedLink.data, reader); // Should probably
70197
- reader.assignNonScalar(sink, key, result);
70198
- }
70199
- else {
70200
- reader.markMissingLink(fieldData.__ref);
70201
- reader.markMissing();
70202
- }
69243
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$b, select$d, false);
70203
69244
  break;
70204
69245
  }
70205
69246
  }
@@ -70465,69 +69506,15 @@
70465
69506
  break;
70466
69507
  }
70467
69508
  case 'RecordQuery': {
70468
- const queryResolvedLink = reader.read({
70469
- recordId: fieldData.__ref,
70470
- node: {
70471
- kind: 'Fragment',
70472
- private: [],
70473
- opaque: true,
70474
- version: VERSION$l
70475
- },
70476
- variables: {}
70477
- });
70478
- reader.markSeenId(fieldData.__ref);
70479
- if (queryResolvedLink.data !== undefined) {
70480
- const result = select$n(sel, variables, fragments)(queryResolvedLink.data, reader); // Should probably
70481
- reader.assignNonScalar(sink, key, result);
70482
- }
70483
- else {
70484
- reader.markMissingLink(fieldData.__ref);
70485
- reader.markMissing();
70486
- }
69509
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$l, select$n, false);
70487
69510
  break;
70488
69511
  }
70489
69512
  case 'ObjectInfo': {
70490
- const objectInfosResolvedLink = reader.read({
70491
- recordId: fieldData.__ref,
70492
- node: {
70493
- kind: 'Fragment',
70494
- private: [],
70495
- opaque: true,
70496
- version: VERSION$d
70497
- },
70498
- variables: {}
70499
- });
70500
- reader.markSeenId(fieldData.__ref);
70501
- if (objectInfosResolvedLink.data !== undefined) {
70502
- const result = select$f(sel, variables, fragments)(objectInfosResolvedLink.data, reader); // Should probably
70503
- reader.assignNonScalar(sink, key, result);
70504
- }
70505
- else {
70506
- reader.markMissingLink(fieldData.__ref);
70507
- reader.markMissing();
70508
- }
69513
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$d, select$f, false);
70509
69514
  break;
70510
69515
  }
70511
69516
  case 'RelatedListInfo': {
70512
- const relatedListByNameResolvedLink = reader.read({
70513
- recordId: fieldData.__ref,
70514
- node: {
70515
- kind: 'Fragment',
70516
- private: [],
70517
- opaque: true,
70518
- version: VERSION$a
70519
- },
70520
- variables: {}
70521
- });
70522
- reader.markSeenId(fieldData.__ref);
70523
- if (relatedListByNameResolvedLink.data !== undefined) {
70524
- const result = select$c(sel, variables, fragments)(relatedListByNameResolvedLink.data, reader); // Should probably
70525
- reader.assignNonScalar(sink, key, result);
70526
- }
70527
- else {
70528
- reader.markMissingLink(fieldData.__ref);
70529
- reader.markMissing();
70530
- }
69517
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$a, select$c, false);
70531
69518
  break;
70532
69519
  }
70533
69520
  }
@@ -70976,47 +69963,11 @@
70976
69963
  break;
70977
69964
  }
70978
69965
  case 'UIAPI': {
70979
- const uiapiResolvedLink = reader.read({
70980
- recordId: fieldData.__ref,
70981
- node: {
70982
- kind: 'Fragment',
70983
- private: [],
70984
- opaque: true,
70985
- version: VERSION$9
70986
- },
70987
- variables: {}
70988
- });
70989
- reader.markSeenId(fieldData.__ref);
70990
- if (uiapiResolvedLink.data !== undefined) {
70991
- const result = select$b(sel, variables, fragments)(uiapiResolvedLink.data, reader); // Should probably
70992
- reader.assignNonScalar(sink, key, result);
70993
- }
70994
- else {
70995
- reader.markMissingLink(fieldData.__ref);
70996
- reader.markMissing();
70997
- }
69966
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$9, select$b, false);
70998
69967
  break;
70999
69968
  }
71000
69969
  case 'RateLimit': {
71001
- const rateLimitResolvedLink = reader.read({
71002
- recordId: fieldData.__ref,
71003
- node: {
71004
- kind: 'Fragment',
71005
- private: [],
71006
- opaque: true,
71007
- version: VERSION$8
71008
- },
71009
- variables: {}
71010
- });
71011
- reader.markSeenId(fieldData.__ref);
71012
- if (rateLimitResolvedLink.data !== undefined) {
71013
- const result = select$a(sel, variables, fragments)(rateLimitResolvedLink.data, reader); // Should probably
71014
- reader.assignNonScalar(sink, key, result);
71015
- }
71016
- else {
71017
- reader.markMissingLink(fieldData.__ref);
71018
- reader.markMissing();
71019
- }
69970
+ selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, VERSION$8, select$a, false);
71020
69971
  break;
71021
69972
  }
71022
69973
  }
@@ -73176,7 +72127,7 @@
73176
72127
  }
73177
72128
  }
73178
72129
  }
73179
- function getRequestedFieldsForType(typename, selectionSet, namedFragmentsMap, isFragmentApplicable) {
72130
+ function calculateRequestedFieldsForType(typename, selectionSet, namedFragmentsMap, isFragmentApplicable) {
73180
72131
  const selections = [];
73181
72132
  selectionSet.selections.forEach(selection => {
73182
72133
  if (selection.kind === "Field") {
@@ -73196,6 +72147,21 @@
73196
72147
  });
73197
72148
  return selections;
73198
72149
  }
72150
+ let selectionSetRequestedFieldsWeakMap = new WeakMap();
72151
+ function getRequestedFieldsForType(typename, selectionSet, namedFragmentsMap, isFragmentApplicable) {
72152
+ let cachedRequestedFieldsConfigurations = selectionSetRequestedFieldsWeakMap.get(selectionSet);
72153
+ if (cachedRequestedFieldsConfigurations === undefined) {
72154
+ cachedRequestedFieldsConfigurations = new Map();
72155
+ selectionSetRequestedFieldsWeakMap.set(selectionSet, cachedRequestedFieldsConfigurations);
72156
+ }
72157
+ const cachedRequestedFieldsForType = cachedRequestedFieldsConfigurations.get(typename);
72158
+ if (cachedRequestedFieldsForType !== undefined) {
72159
+ return cachedRequestedFieldsForType;
72160
+ }
72161
+ const selections = calculateRequestedFieldsForType(typename, selectionSet, namedFragmentsMap, isFragmentApplicable);
72162
+ cachedRequestedFieldsConfigurations.set(typename, selections);
72163
+ return selections;
72164
+ }
73199
72165
  function getQueryTransformerForType(typename, fragmentMap) {
73200
72166
  switch (typename) {
73201
72167
  case "PercentAggregate": return {
@@ -73723,6 +72689,145 @@
73723
72689
  }
73724
72690
  reader.exitPath();
73725
72691
  return sink;
72692
+ }
72693
+ function selectTypeLink(sel, fieldData, reader, key, sink, variables, fragments, version, selectFn, isCursorConnection) {
72694
+ const resolvedLink = reader.read({
72695
+ recordId: fieldData.__ref,
72696
+ node: {
72697
+ kind: 'Fragment',
72698
+ private: [],
72699
+ opaque: true,
72700
+ version,
72701
+ },
72702
+ variables: {}
72703
+ });
72704
+ reader.markSeenId(fieldData.__ref);
72705
+ if (resolvedLink.data !== undefined) {
72706
+ if (isCursorConnection) {
72707
+ selectTypeLinkWithPagination(resolvedLink, sel, fieldData, reader, key, sink, variables, fragments, selectFn);
72708
+ }
72709
+ else {
72710
+ const result = selectFn(sel, variables, fragments)(resolvedLink.data, reader);
72711
+ reader.assignNonScalar(sink, key, result);
72712
+ }
72713
+ }
72714
+ else {
72715
+ reader.markMissingLink(fieldData.__ref);
72716
+ reader.markMissing();
72717
+ }
72718
+ }
72719
+ function selectTypeLinkWithPagination(resolvedLink, sel, fieldData, reader, key, sink, variables, fragments, selectFn) {
72720
+ var _a, _b, _c, _d, _e;
72721
+ const source = resolvedLink.data.data;
72722
+ const totalEdges = source.edges !== undefined ? source.edges.length : 0;
72723
+ const metadata = reader.resolveMetadata(source, PAGINATION_VERSION);
72724
+ const firstArg = (_a = sel.arguments) === null || _a === void 0 ? void 0 : _a.find(argument => { return argument.name.value === 'first'; });
72725
+ const firstArgVal = evaluateArgumentValue(firstArg, 'IntValue', variables);
72726
+ const pageSize = firstArgVal !== undefined ? firstArgVal : totalEdges;
72727
+ const afterArg = (_b = sel.arguments) === null || _b === void 0 ? void 0 : _b.find(argument => { return argument.name.value === 'after'; });
72728
+ const afterArgVal = evaluateArgumentValue(afterArg, 'StringValue', variables);
72729
+ const paginationParams = {
72730
+ pageSize: parseInt(pageSize, 10),
72731
+ token: afterArgVal
72732
+ };
72733
+ let { startOffset, endOffset } = getPageMetadata(metadata, paginationParams);
72734
+ const listIsComplete = ((metadata === null || metadata === void 0 ? void 0 : metadata.__END__) !== undefined);
72735
+ let trimmedEdges = [];
72736
+ let maxOffset = undefined;
72737
+ if (totalEdges === 0 && listIsComplete) {
72738
+ // We have an empty edge list
72739
+ // If after token was specified, it will never be a good cursor, so defer to a cache miss
72740
+ if (afterArgVal !== undefined) {
72741
+ reader.markMissingLink(fieldData.__ref);
72742
+ reader.markMissing();
72743
+ return;
72744
+ }
72745
+ }
72746
+ else {
72747
+ if (metadata === undefined || startOffset === undefined || endOffset === undefined) {
72748
+ reader.markMissingLink(fieldData.__ref);
72749
+ reader.markMissing();
72750
+ return;
72751
+ }
72752
+ // gql paging semantics is "after" the requested cursor, so shift the offsets provided a valid cursor is provided
72753
+ if (afterArgVal !== undefined) {
72754
+ startOffset++;
72755
+ // if the "first" argument was not provided then the endOffset
72756
+ // is already set to the index of the last edge.
72757
+ // if the "first" argument was provided then we need to increment the endOffset
72758
+ // however we still need to make sure the endOffset doesn't go past totalEdges
72759
+ // if the list is already complete and we can't fetch any more edges
72760
+ if (firstArgVal !== undefined && (!listIsComplete || endOffset < totalEdges)) {
72761
+ endOffset++;
72762
+ }
72763
+ }
72764
+ if (startOffset >= totalEdges && listIsComplete) {
72765
+ // Data after the last page was requested, return empty set
72766
+ startOffset = undefined;
72767
+ endOffset = undefined;
72768
+ }
72769
+ else {
72770
+ trimmedEdges = trimEdges(source.edges, startOffset, endOffset);
72771
+ maxOffset = findMaxOffset(metadata);
72772
+ const listHasEnoughItems = (endOffset - 1 <= maxOffset);
72773
+ if (trimmedEdges === undefined || !listHasEnoughItems) {
72774
+ reader.markMissingLink(fieldData.__ref);
72775
+ reader.markMissing();
72776
+ // optimize pagination when "first" and "after" args are part of the variable
72777
+ 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') {
72778
+ optimizePagination(metadata, firstArg.value.name.value, afterArg.value.name.value, variables);
72779
+ }
72780
+ return;
72781
+ }
72782
+ }
72783
+ }
72784
+ const paginatedData = {
72785
+ data: {
72786
+ ...source,
72787
+ edges: ObjectFreeze(trimmedEdges),
72788
+ }
72789
+ };
72790
+ const result = selectFn(sel, variables, fragments)(paginatedData, reader);
72791
+ const pageInfo = createPageInfo(result === null || result === void 0 ? void 0 : result.edges, startOffset, endOffset, maxOffset, metadata);
72792
+ if (pageInfo !== undefined) {
72793
+ const selectedPageInfo = selectPageInfo((_e = sel.selectionSet) === null || _e === void 0 ? void 0 : _e.selections, fragments, pageInfo);
72794
+ if (selectedPageInfo !== undefined) {
72795
+ reader.assignNonScalar(result, 'pageInfo', selectedPageInfo);
72796
+ }
72797
+ }
72798
+ reader.assignNonScalar(sink, key, result);
72799
+ }
72800
+ function selectPageInfo(selections, fragments, pageInfo) {
72801
+ var _a;
72802
+ const pageInfoSelection = getSelectionNode(selections, fragments, 'pageInfo');
72803
+ if (pageInfo === undefined || pageInfoSelection === undefined || pageInfoSelection.kind !== 'Field')
72804
+ return undefined;
72805
+ const pageInfoSelections = (_a = pageInfoSelection.selectionSet) === null || _a === void 0 ? void 0 : _a.selections;
72806
+ const selectedPageInfo = Object.assign({}, pageInfo);
72807
+ Object.keys(pageInfo).forEach((fieldName) => {
72808
+ if (getSelectionNode(pageInfoSelections, fragments, fieldName) === undefined) {
72809
+ delete selectedPageInfo[fieldName];
72810
+ }
72811
+ });
72812
+ return selectedPageInfo;
72813
+ }
72814
+ function getSelectionNode(selections, fragments, fieldName) {
72815
+ if (selections === undefined)
72816
+ return undefined;
72817
+ for (let i = 0; i < selections.length; i++) {
72818
+ const selection = selections[i];
72819
+ if (selection.kind === 'Field' && selection.name.value === fieldName) {
72820
+ return selection;
72821
+ }
72822
+ else if (selection.kind === 'FragmentSpread') {
72823
+ const fragment = fragments[selection.name.value];
72824
+ return getSelectionNode(fragment === null || fragment === void 0 ? void 0 : fragment.selectionSet.selections, fragments, fieldName);
72825
+ }
72826
+ else if (selection.kind === 'InlineFragment') {
72827
+ return getSelectionNode(selection.selectionSet.selections, fragments, fieldName);
72828
+ }
72829
+ }
72830
+ return undefined;
73726
72831
  }
73727
72832
 
73728
72833
  const TTL = 900000;
@@ -75043,7 +74148,7 @@
75043
74148
  configuration: { ...configurationForGraphQLAdapters },
75044
74149
  instrument,
75045
74150
  });
75046
- // version: 1.120.0-d7f610c36
74151
+ // version: 1.121.1-7c3b8db1d
75047
74152
 
75048
74153
  // On core the unstable adapters are re-exported with different names,
75049
74154
 
@@ -77172,7 +76277,7 @@
77172
76277
  unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
77173
76278
  graphQLImperative = ldsAdapter;
77174
76279
  });
77175
- // version: 1.120.0-d7f610c36
76280
+ // version: 1.121.1-7c3b8db1d
77176
76281
 
77177
76282
  var gqlApi = /*#__PURE__*/Object.freeze({
77178
76283
  __proto__: null,
@@ -77871,4 +76976,4 @@
77871
76976
  Object.defineProperty(exports, '__esModule', { value: true });
77872
76977
 
77873
76978
  }));
77874
- // version: 1.120.0-7e4457c5c
76979
+ // version: 1.121.1-ac2ef2013