relay-runtime 0.0.0-main-944978ee → 0.0.0-main-3a151b45

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.
@@ -149,7 +149,7 @@ function update(store: RecordSourceProxy, payload: HandleFieldPayload): void {
149
149
  clientPageInfo &&
150
150
  args.after === clientPageInfo.getValue(END_CURSOR)
151
151
  ) {
152
- const nodeIDs = new Set();
152
+ const nodeIDs = new Set<mixed>();
153
153
  mergeEdges(prevEdges, nextEdges, nodeIDs);
154
154
  mergeEdges(serverEdges, nextEdges, nodeIDs);
155
155
  } else {
@@ -168,7 +168,7 @@ function update(store: RecordSourceProxy, payload: HandleFieldPayload): void {
168
168
  clientPageInfo &&
169
169
  args.before === clientPageInfo.getValue(START_CURSOR)
170
170
  ) {
171
- const nodeIDs = new Set();
171
+ const nodeIDs = new Set<mixed>();
172
172
  mergeEdges(serverEdges, nextEdges, nodeIDs);
173
173
  mergeEdges(prevEdges, nextEdges, nodeIDs);
174
174
  } else {
@@ -363,7 +363,7 @@ function insertEdgeAfter(
363
363
  if (cursor == null) {
364
364
  nextEdges = edges.concat(newEdge);
365
365
  } else {
366
- nextEdges = [];
366
+ nextEdges = ([]: Array<?RecordProxy>);
367
367
  let foundCursor = false;
368
368
  for (let ii = 0; ii < edges.length; ii++) {
369
369
  const edge = edges[ii];
@@ -467,7 +467,7 @@ function insertEdgeBefore(
467
467
  if (cursor == null) {
468
468
  nextEdges = [newEdge].concat(edges);
469
469
  } else {
470
- nextEdges = [];
470
+ nextEdges = ([]: Array<?RecordProxy>);
471
471
  let foundCursor = false;
472
472
  for (let ii = 0; ii < edges.length; ii++) {
473
473
  const edge = edges[ii];
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v0.0.0-main-944978ee
2
+ * Relay v0.0.0-main-3a151b45
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ * @format
9
+ */
10
+ 'use strict';
11
+
12
+ var _require = require('relay-runtime/store/ResolverFragments'),
13
+ readFragment = _require.readFragment;
14
+
15
+ var invariant = require('invariant');
16
+ /**
17
+ *
18
+ * This a High order function that returns a relay resolver that can read the data for
19
+ * the fragment`.
20
+ *
21
+ * - fragment: contains fragment Reader AST with resolver's data dependencies.
22
+ * - resolverFn: original resolver function that expects a data from the fragment
23
+ * - (optional) fieldName: individual field that needs to be read out of the fragment.
24
+ *
25
+ * This will not call the `resolverFn` if the fragment data for it is null/undefined.
26
+ * The the compiler generates calls to this function, ensuring the correct set of arguments.
27
+ */
28
+
29
+
30
+ function fragmentDataInjector(fragment, resolverFn, fieldName) {
31
+ return function (fragmentKey, args) {
32
+ var data = readFragment(fragment, fragmentKey);
33
+
34
+ if (fieldName != null) {
35
+ if (data == null) {
36
+ return null;
37
+ } // If `fieldName` is defined, the resolver expects only
38
+ // the data for this field.
39
+
40
+
41
+ if (fieldName in data) {
42
+ return resolverFn(data[fieldName], args);
43
+ } else {
44
+ // If both `data` and `fieldName` is available, we expect the
45
+ // `fieldName` field in the `data` object.
46
+ !false ? process.env.NODE_ENV !== "production" ? invariant(false, 'Missing field `%` in resolver response.', fieldName) : invariant(false) : void 0;
47
+ }
48
+ } else {
49
+ // By default we will pass the full set of the fragment data to the resolver
50
+ return resolverFn(data, args);
51
+ }
52
+ };
53
+ }
54
+
55
+ module.exports = fragmentDataInjector;
@@ -70,11 +70,15 @@ function addDependencyEdge(edges, from, to) {
70
70
  }
71
71
 
72
72
  var LiveResolverCache = /*#__PURE__*/function () {
73
+ // Flag indicating that Live Resolver updates are being batched.
74
+ // Lazily created record source for batched Live Resolver updates.
73
75
  function LiveResolverCache(getRecordSource, store) {
74
76
  this._resolverIDToRecordIDs = new Map();
75
77
  this._recordIDToResolverIDs = new Map();
76
78
  this._getRecordSource = getRecordSource;
77
79
  this._store = store;
80
+ this._handlingBatch = false;
81
+ this._liveResolverBatchRecordSource = null;
78
82
  }
79
83
 
80
84
  var _proto = LiveResolverCache.prototype;
@@ -281,19 +285,53 @@ var LiveResolverCache = /*#__PURE__*/function () {
281
285
  return;
282
286
  }
283
287
 
284
- var nextSource = RelayRecordSource.create();
285
288
  var nextRecord = RelayModernRecord.clone(currentRecord); // Mark the field as dirty. The next time it's read, we will call
286
289
  // `LiveState.read()`.
287
290
 
288
291
  RelayModernRecord.setValue(nextRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY, true);
289
- nextSource.set(linkedID, nextRecord);
290
292
 
291
- _this._store.publish(nextSource); // In the future, this notify might be deferred if we are within a
292
- // transaction.
293
+ _this._setLiveResolverUpdate(linkedID, nextRecord);
294
+ };
295
+ };
293
296
 
297
+ _proto._setLiveResolverUpdate = function _setLiveResolverUpdate(linkedId, record) {
298
+ if (this._handlingBatch) {
299
+ // Lazily create the batched record source.
300
+ if (this._liveResolverBatchRecordSource == null) {
301
+ this._liveResolverBatchRecordSource = RelayRecordSource.create();
302
+ }
294
303
 
295
- _this._store.notify();
296
- };
304
+ this._liveResolverBatchRecordSource.set(linkedId, record); // We will wait for the batch to complete before we publish/notify...
305
+
306
+ } else {
307
+ var nextSource = RelayRecordSource.create();
308
+ nextSource.set(linkedId, record); // We are not within a batch, so we will immediately publish/notify.
309
+
310
+ this._store.publish(nextSource);
311
+
312
+ this._store.notify();
313
+ }
314
+ };
315
+
316
+ _proto.batchLiveStateUpdates = function batchLiveStateUpdates(callback) {
317
+ !!this._handlingBatch ? process.env.NODE_ENV !== "production" ? invariant(false, 'Unexpected nested call to batchLiveStateUpdates.') : invariant(false) : void 0;
318
+ this._handlingBatch = true;
319
+
320
+ try {
321
+ callback();
322
+ } finally {
323
+ // We lazily create the record source. If one has not been created, there
324
+ // is nothing to publish.
325
+ if (this._liveResolverBatchRecordSource != null) {
326
+ this._store.publish(this._liveResolverBatchRecordSource);
327
+
328
+ this._store.notify();
329
+ } // Reset batched state.
330
+
331
+
332
+ this._liveResolverBatchRecordSource = null;
333
+ this._handlingBatch = false;
334
+ }
297
335
  };
298
336
 
299
337
  _proto._setRelayResolverValue = function _setRelayResolverValue(resolverRecord, value, field, variables) {
@@ -133,6 +133,30 @@ var LiveResolverStore = /*#__PURE__*/function () {
133
133
 
134
134
  _proto.getLiveResolverPromise = function getLiveResolverPromise(recordID) {
135
135
  return this._resolverCache.getLiveResolverPromise(recordID);
136
+ }
137
+ /**
138
+ * When an external data proider knows it's going to notify us about multiple
139
+ * Live Resolver state updates in a single tick, it can batch them into a
140
+ * single Relay update by notifying us within a batch. All updates recieved by
141
+ * Relay during the evaluation of the provided `callback` will be aggregated
142
+ * into a single Relay update.
143
+ *
144
+ * A typical use with a Flux store might look like this:
145
+ *
146
+ * const originalDispatch = fluxStore.dispatch;
147
+ *
148
+ * function wrapped(action) {
149
+ * relayStore.batchLiveStateUpdates(() => {
150
+ * originalDispatch(action);
151
+ * })
152
+ * }
153
+ *
154
+ * fluxStore.dispatch = wrapped;
155
+ */
156
+ ;
157
+
158
+ _proto.batchLiveStateUpdates = function batchLiveStateUpdates(callback) {
159
+ this._resolverCache.batchLiveStateUpdates(callback);
136
160
  };
137
161
 
138
162
  _proto.check = function check(operation, options) {
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ * @format
9
+ */
10
+ 'use strict';
11
+
12
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ function resolverWeakObjectWrapper(resolverFn, key) {
17
+ return function () {
18
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
19
+ args[_key] = arguments[_key];
20
+ }
21
+
22
+ var data = resolverFn.apply(null, args);
23
+ return (0, _defineProperty2["default"])({}, key, data);
24
+ };
25
+ }
26
+
27
+ module.exports = resolverWeakObjectWrapper;
@@ -105,7 +105,7 @@ function commitMutation<TMutation: MutationParameters>(
105
105
  updater,
106
106
  ));
107
107
  }
108
- const errors = [];
108
+ const errors: Array<PayloadError> = [];
109
109
  const subscription = environment
110
110
  .executeMutation({
111
111
  operation,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "relay-runtime",
3
3
  "description": "A core runtime for building GraphQL-driven applications.",
4
- "version": "0.0.0-main-944978ee",
4
+ "version": "0.0.0-main-3a151b45",
5
5
  "keywords": [
6
6
  "graphql",
7
7
  "relay"
@@ -148,7 +148,9 @@ function fetchQuery<TVariables: Variables, TData, TRawResponse>(
148
148
 
149
149
  switch (fetchPolicy) {
150
150
  case 'network-only': {
151
- return getNetworkObservable(environment, operation).map(readData);
151
+ return getNetworkObservable<$FlowFixMe>(environment, operation).map(
152
+ readData,
153
+ );
152
154
  }
153
155
  case 'store-or-network': {
154
156
  if (environment.check(operation).status === 'available') {
@@ -156,7 +158,9 @@ function fetchQuery<TVariables: Variables, TData, TRawResponse>(
156
158
  readData,
157
159
  );
158
160
  }
159
- return getNetworkObservable(environment, operation).map(readData);
161
+ return getNetworkObservable<$FlowFixMe>(environment, operation).map(
162
+ readData,
163
+ );
160
164
  }
161
165
  default:
162
166
  (fetchPolicy: empty);
@@ -36,7 +36,7 @@ type RequestCacheEntry = {
36
36
  const WEAKMAP_SUPPORTED = typeof WeakMap === 'function';
37
37
 
38
38
  const requestCachesByEnvironment = WEAKMAP_SUPPORTED
39
- ? new WeakMap()
39
+ ? new WeakMap<IEnvironment, Map<RequestIdentifier, RequestCacheEntry>>()
40
40
  : new Map();
41
41
 
42
42
  /**
package/relay-runtime.js CHANGED
@@ -1,4 +1,4 @@
1
1
  /**
2
- * Relay v0.0.0-main-944978ee
2
+ * Relay v0.0.0-main-3a151b45
3
3
  */
4
4
  !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/createForOfIteratorHelper"),require("@babel/runtime/helpers/objectSpread2"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/toConsumableArray"),require("@babel/runtime/helpers/defineProperty")):"function"==typeof define&&define.amd?define(["invariant","@babel/runtime/helpers/interopRequireDefault","fbjs/lib/warning","@babel/runtime/helpers/createForOfIteratorHelper","@babel/runtime/helpers/objectSpread2","fbjs/lib/areEqual","@babel/runtime/helpers/toConsumableArray","@babel/runtime/helpers/defineProperty"],t):"object"==typeof exports?exports.RelayRuntime=t(require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/createForOfIteratorHelper"),require("@babel/runtime/helpers/objectSpread2"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/toConsumableArray"),require("@babel/runtime/helpers/defineProperty")):e.RelayRuntime=t(e.invariant,e["@babel/runtime/helpers/interopRequireDefault"],e["fbjs/lib/warning"],e["@babel/runtime/helpers/createForOfIteratorHelper"],e["@babel/runtime/helpers/objectSpread2"],e["fbjs/lib/areEqual"],e["@babel/runtime/helpers/toConsumableArray"],e["@babel/runtime/helpers/defineProperty"])}(window,(function(e,t,r,n,i,a,o,s){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=60)}([function(t,r){t.exports=e},function(e,r){e.exports=t},function(e,t,r){"use strict";var n=(0,r(1).default)(r(16)),i=r(27),a=r(6),o=r(17),s=r(0),l=a.VARIABLE,u=a.LITERAL,c=a.OBJECT_VALUE,d=a.LIST_VALUE;function f(e,t){if(e.kind===l)return function(e,t){return t.hasOwnProperty(e)||s(!1,"getVariableValue(): Undefined variable `%s`.",e),o(t[e])}(e.variableName,t);if(e.kind===u)return e.value;if(e.kind===c){var r={};return e.fields.forEach((function(e){r[e.name]=f(e,t)})),r}if(e.kind===d){var n=[];return e.items.forEach((function(e){null!=e&&n.push(f(e,t))})),n}}function h(e,t){var r={};return e.forEach((function(e){r[e.name]=f(e,t)})),r}function p(e,t){if(!t)return e;var r=[];for(var n in t)if(t.hasOwnProperty(n)){var i,a=t[n];if(null!=a)r.push(n+":"+(null!==(i=JSON.stringify(a))&&void 0!==i?i:"undefined"))}return 0===r.length?e:e+"(".concat(r.join(","),")")}var _={ACTOR_IDENTIFIER_KEY:"__actorIdentifier",CLIENT_EDGE_TRAVERSAL_PATH:"__clientEdgeTraversalPath",FRAGMENTS_KEY:"__fragments",FRAGMENT_OWNER_KEY:"__fragmentOwner",FRAGMENT_PROP_NAME_KEY:"__fragmentPropName",MODULE_COMPONENT_KEY:"__module_component",ID_KEY:"__id",REF_KEY:"__ref",REFS_KEY:"__refs",ROOT_ID:"client:root",ROOT_TYPE:"__Root",TYPENAME_KEY:"__typename",INVALIDATED_AT_KEY:"__invalidated_at",IS_WITHIN_UNMATCHED_TYPE_REFINEMENT:"__isWithinUnmatchedTypeRefinement",RELAY_RESOLVER_VALUE_KEY:"__resolverValue",RELAY_RESOLVER_INVALIDATION_KEY:"__resolverValueMayBeInvalid",RELAY_RESOLVER_SNAPSHOT_KEY:"__resolverSnapshot",RELAY_RESOLVER_ERROR_KEY:"__resolverError",formatStorageKey:p,getArgumentValue:f,getArgumentValues:h,getHandleStorageKey:function(e,t){var r=e.dynamicKey,a=e.handle,o=e.key,s=e.name,l=e.args,u=e.filters,c=i(a,o,s),d=null;return l&&u&&0!==l.length&&0!==u.length&&(d=l.filter((function(e){return u.indexOf(e.name)>-1}))),r&&(d=null!=d?[r].concat((0,n.default)(d)):[r]),null===d?c:p(c,h(d,t))},getStorageKey:function(e,t){if(e.storageKey)return e.storageKey;var r=function(e){if("RelayResolver"===e.kind||"RelayLiveResolver"===e.kind){var t,r;return null==e.args?null===(r=e.fragment)||void 0===r?void 0:r.args:null==(null===(t=e.fragment)||void 0===t?void 0:t.args)?e.args:e.args.concat(e.fragment.args)}return void 0===e.args?void 0:e.args}(e),n=e.name;return r&&0!==r.length?p(n,h(r,t)):n},getStableStorageKey:function(e,t){return p(e,o(t))},getModuleComponentKey:function(e){return"".concat("__module_component_").concat(e)},getModuleOperationKey:function(e){return"".concat("__module_operation_").concat(e)}};e.exports=_},function(e,t){e.exports=r},function(e,t){e.exports=n},function(e,t,r){"use strict";e.exports={ENABLE_CLIENT_EDGES:!1,ENABLE_VARIABLE_CONNECTION_KEY:!1,ENABLE_PARTIAL_RENDERING_DEFAULT:!0,ENABLE_REACT_FLIGHT_COMPONENT_FIELD:!1,ENABLE_RELAY_RESOLVERS:!1,ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION:!1,ENABLE_FRIENDLY_QUERY_NAME_GQL_URL:!1,ENABLE_LOAD_QUERY_REQUEST_DEDUPING:!0,ENABLE_DO_NOT_WRAP_LIVE_QUERY:!1,ENABLE_NOTIFY_SUBSCRIPTION:!1,BATCH_ASYNC_MODULE_UPDATES_FN:null,ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT:!1,MAX_DATA_ID_LENGTH:null,STRING_INTERN_LEVEL:0,USE_REACT_CACHE:!1,USE_REACT_CACHE_LEGACY_TIMEOUTS:!0}},function(e,t,r){"use strict";e.exports={ACTOR_CHANGE:"ActorChange",CONDITION:"Condition",CLIENT_COMPONENT:"ClientComponent",CLIENT_EDGE_TO_SERVER_OBJECT:"ClientEdgeToServerObject",CLIENT_EDGE_TO_CLIENT_OBJECT:"ClientEdgeToClientObject",CLIENT_EXTENSION:"ClientExtension",DEFER:"Defer",CONNECTION:"Connection",FLIGHT_FIELD:"FlightField",FRAGMENT:"Fragment",FRAGMENT_SPREAD:"FragmentSpread",INLINE_DATA_FRAGMENT_SPREAD:"InlineDataFragmentSpread",INLINE_DATA_FRAGMENT:"InlineDataFragment",INLINE_FRAGMENT:"InlineFragment",LINKED_FIELD:"LinkedField",LINKED_HANDLE:"LinkedHandle",LITERAL:"Literal",LIST_VALUE:"ListValue",LOCAL_ARGUMENT:"LocalArgument",MODULE_IMPORT:"ModuleImport",ALIASED_FRAGMENT_SPREAD:"AliasedFragmentSpread",ALIASED_INLINE_FRAGMENT_SPREAD:"AliasedInlineFragmentSpread",RELAY_RESOLVER:"RelayResolver",RELAY_LIVE_RESOLVER:"RelayLiveResolver",REQUIRED_FIELD:"RequiredField",OBJECT_VALUE:"ObjectValue",OPERATION:"Operation",REQUEST:"Request",ROOT_ARGUMENT:"RootArgument",SCALAR_FIELD:"ScalarField",SCALAR_HANDLE:"ScalarHandle",SPLIT_OPERATION:"SplitOperation",STREAM:"Stream",TYPE_DISCRIMINATOR:"TypeDiscriminator",UPDATABLE_QUERY:"UpdatableQuery",VARIABLE:"Variable"}},function(e,t){e.exports=i},function(e,t,r){"use strict";var n=(0,r(1).default)(r(7)),i=r(18),a=r(9).isClientID,o=r(2),s=o.ACTOR_IDENTIFIER_KEY,l=o.ID_KEY,u=o.INVALIDATED_AT_KEY,c=o.REF_KEY,d=o.REFS_KEY,f=o.ROOT_ID,h=o.TYPENAME_KEY,p=r(14),_=r(0),v=r(3);function g(e){return e[l]}function m(e){return e[h]}e.exports={clone:function(e){return(0,n.default)({},e)},copyFields:function(e,t){for(var r in e)e.hasOwnProperty(r)&&r!==l&&r!==h&&(t[r]=e[r])},create:function(e,t){var r={};return r[l]=e,r[h]=t,r},freeze:function(e){i(e)},getDataID:g,getInvalidationEpoch:function(e){if(null==e)return null;var t=e[u];return"number"!=typeof t?null:t},getLinkedRecordID:function(e,t){var r=e[t];if(null==r)return r;var n=r;return"object"==typeof n&&n&&"string"==typeof n[c]||_(!1,"RelayModernRecord.getLinkedRecordID(): Expected `%s.%s` to be a linked ID, was `%s`.%s",e[l],t,JSON.stringify(n),"object"==typeof n&&void 0!==n[d]?" It appears to be a plural linked record: did you mean to call getLinkedRecords() instead of getLinkedRecord()?":""),n[c]},getLinkedRecordIDs:function(e,t){var r=e[t];return null==r?r:("object"==typeof r&&Array.isArray(r[d])||_(!1,"RelayModernRecord.getLinkedRecordIDs(): Expected `%s.%s` to contain an array of linked IDs, got `%s`.%s",e[l],t,JSON.stringify(r),"object"==typeof r&&void 0!==r[c]?" It appears to be a singular linked record: did you mean to call getLinkedRecord() instead of getLinkedRecords()?":""),r[d])},getType:m,getValue:function(e,t){var r=e[t];return r&&"object"==typeof r&&(r.hasOwnProperty(c)||r.hasOwnProperty(d))&&_(!1,"RelayModernRecord.getValue(): Expected a scalar (non-link) value for `%s.%s` but found %s.",e[l],t,r.hasOwnProperty(c)?"a linked record":"plural linked records"),r},merge:function(e,t){var r,i,o=g(e),s=g(t);v(o===s,"RelayModernRecord: Invalid record merge, expected both versions of the record to have the same id, got `%s` and `%s`.",o,s);var l=null!==(r=m(e))&&void 0!==r?r:null,u=null!==(i=m(t))&&void 0!==i?i:null;return v(a(s)&&s!==f||l===u,"RelayModernRecord: Invalid record merge, expected both versions of record `%s` to have the same `%s` but got conflicting types `%s` and `%s`. The GraphQL server likely violated the globally unique id requirement by returning the same id for different objects.",o,h,l,u),(0,n.default)((0,n.default)({},e),t)},setValue:function(e,t,r){var n=g(e);if(t===l)v(n===r,"RelayModernRecord: Invalid field update, expected both versions of the record to have the same id, got `%s` and `%s`.",n,r);else if(t===h){var i,o=null!==(i=m(e))&&void 0!==i?i:null,s=null!=r?r:null;v(a(g(e))&&g(e)!==f||o===s,"RelayModernRecord: Invalid field update, expected both versions of record `%s` to have the same `%s` but got conflicting types `%s` and `%s`. The GraphQL server likely violated the globally unique id requirement by returning the same id for different objects.",n,h,o,s)}e[t]=r},setLinkedRecordID:function(e,t,r){var n={};n[c]=r,e[t]=n},setLinkedRecordIDs:function(e,t,r){var n={};n[d]=r,e[t]=n},update:function(e,t){var r,i,o=g(e),s=g(t);v(o===s,"RelayModernRecord: Invalid record update, expected both versions of the record to have the same id, got `%s` and `%s`.",o,s);var l=null!==(r=m(e))&&void 0!==r?r:null,u=null!==(i=m(t))&&void 0!==i?i:null;v(a(s)&&s!==f||l===u,"RelayModernRecord: Invalid record update, expected both versions of record `%s` to have the same `%s` but got conflicting types `%s` and `%s`. The GraphQL server likely violated the globally unique id requirement by returning the same id for different objects.",o,h,l,u);for(var c=null,d=Object.keys(t),_=0;_<d.length;_++){var E=d[_];!c&&p(e[E],t[E])||((c=null!==c?c:(0,n.default)({},e))[E]=t[E])}return null!==c?c:e},getActorLinkedRecordID:function(e,t){var r=e[t];return null==r?r:(("object"!=typeof r||"string"!=typeof r[c]||null==r[s])&&_(!1,"RelayModernRecord.getActorLinkedRecordID(): Expected `%s.%s` to be an actor specific linked ID, was `%s`.",e[l],t,JSON.stringify(r)),[r[s],r[c]])},setActorLinkedRecordID:function(e,t,r,n){var i={};i[c]=n,i[s]=r,e[t]=i}}},function(e,t,r){"use strict";var n=r(5),i=r(35).intern;var a=0;e.exports={generateClientID:function(e,t,r){var a=(n.STRING_INTERN_LEVEL<=0?e:i(e,n.MAX_DATA_ID_LENGTH))+":"+t;return null!=r&&(a+=":"+r),0!==a.indexOf("client:")&&(a="client:"+a),a},generateClientObjectClientID:function(e,t,r){var n="".concat("client:").concat(e,":").concat(t);return null!=r&&(n+=":"+r),n},generateUniqueClientID:function(){return"".concat("client:","local:").concat(a++)},isClientID:function(e){return 0===e.indexOf("client:")}}},function(e,t,r){"use strict";var n=r(6),i=r(0),a=r(3);function o(e){var t=e;return"function"==typeof t?(t=t(),a(!1,"RelayGraphQLTag: node `%s` unexpectedly wrapped in a function.","Fragment"===t.kind?t.name:t.operation.name)):t.default&&(t=t.default),t}function s(e){var t=o(e);return"object"==typeof t&&null!==t&&t.kind===n.FRAGMENT}function l(e){var t=o(e);return"object"==typeof t&&null!==t&&t.kind===n.REQUEST}function u(e){var t=o(e);return"object"==typeof t&&null!==t&&t.kind===n.UPDATABLE_QUERY}function c(e){var t=o(e);return"object"==typeof t&&null!==t&&t.kind===n.INLINE_DATA_FRAGMENT}function d(e){var t=o(e);return s(t)||i(!1,"GraphQLTag: Expected a fragment, got `%s`.",JSON.stringify(t)),t}e.exports={getFragment:d,getNode:o,getPaginationFragment:function(e){var t,r=d(e),n=null===(t=r.metadata)||void 0===t?void 0:t.refetch,i=null==n?void 0:n.connection;return null===n||"object"!=typeof n||null===i||"object"!=typeof i?null:r},getRefetchableFragment:function(e){var t,r=d(e),n=null===(t=r.metadata)||void 0===t?void 0:t.refetch;return null===n||"object"!=typeof n?null:r},getRequest:function(e){var t=o(e);return l(t)||i(!1,"GraphQLTag: Expected a request, got `%s`.",JSON.stringify(t)),t},getUpdatableQuery:function(e){var t=o(e);return u(t)||i(!1,"GraphQLTag: Expected a request, got `%s`.",JSON.stringify(t)),t},getInlineDataFragment:function(e){var t=o(e);return c(t)||i(!1,"GraphQLTag: Expected an inline data fragment, got `%s`.",JSON.stringify(t)),t},graphql:function(e){i(!1,"graphql: Unexpected invocation at runtime. Either the Babel transform was not set up, or it failed to identify this call site. Make sure it is being used verbatim as `graphql`. Note also that there cannot be a space between graphql and the backtick that follows.")},isFragment:s,isRequest:l,isUpdatableQuery:u,isInlineDataFragment:c}},function(e,t,r){"use strict";var n=r(12).getFragmentVariables,i=r(2),a=i.CLIENT_EDGE_TRAVERSAL_PATH,o=i.FRAGMENT_OWNER_KEY,s=i.FRAGMENTS_KEY,l=i.ID_KEY,u=i.IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,c=r(14),d=r(0),f=r(3);function h(e,t){("object"!=typeof t||null===t||Array.isArray(t))&&d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`.",e.name,JSON.stringify(t));var r=t[l],i=t[s],c=t[o],h=!0===t[u],p=t[a];if("string"==typeof r&&"object"==typeof i&&null!==i&&"object"==typeof i[e.name]&&null!==i[e.name]&&"object"==typeof c&&null!==c&&(null==p||Array.isArray(p))){var _=c,v=p,g=i[e.name];return b(e,r,n(e,_.variables,g),_,h,v)}var m=JSON.stringify(t);return m.length>499&&(m=m.substr(0,498)+"…"),f(!1,"RelayModernSelector: Expected object to contain data for fragment `%s`, got `%s`. Make sure that the parent operation/fragment included fragment `...%s` without `@relay(mask: false)`.",e.name,m,e.name),null}function p(e,t){var r=null;return t.forEach((function(t,n){var i=null!=t?h(e,t):null;null!=i&&(r=r||[]).push(i)})),null==r?null:{kind:"PluralReaderSelector",selectors:r}}function _(e,t){return null==t?t:e.metadata&&!0===e.metadata.plural?(Array.isArray(t)||d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(t),e.name),p(e,t)):(Array.isArray(t)&&d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(t),e.name),h(e,t))}function v(e,t){return null==t?t:e.metadata&&!0===e.metadata.plural?(Array.isArray(t)||d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(t),e.name),function(e,t){var r=null;return t.forEach((function(t){var n=null!=t?g(e,t):null;null!=n&&(r=r||[]).push(n)})),r}(e,t)):(Array.isArray(t)&&d(!1,"RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(t),e.name),g(e,t))}function g(e,t){("object"!=typeof t||null===t||Array.isArray(t))&&d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`.",e.name,JSON.stringify(t));var r=t[l];return"string"==typeof r?r:(f(!1,"RelayModernSelector: Expected object to contain data for fragment `%s`, got `%s`. Make sure that the parent operation/fragment included fragment `...%s` without `@relay(mask: false)`, or `null` is passed as the fragment reference for `%s` if it's conditonally included and the condition isn't met.",e.name,JSON.stringify(t),e.name,e.name),null)}function m(e,t){var r;return null==t?{}:!0===(null===(r=e.metadata)||void 0===r?void 0:r.plural)?(Array.isArray(t)||d(!1,"RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.",e.name,JSON.stringify(t),e.name),y(e,t)):(Array.isArray(t)&&d(!1,"RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.",e.name,JSON.stringify(t),e.name),E(e,t)||{})}function E(e,t){var r=h(e,t);return r?r.variables:null}function y(e,t){var r={};return t.forEach((function(t,n){if(null!=t){var i=E(e,t);null!=i&&Object.assign(r,i)}})),r}function R(e,t){return e.owner===t.owner&&e.dataID===t.dataID&&e.node===t.node&&c(e.variables,t.variables)}function b(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a=arguments.length>5?arguments[5]:void 0;return{kind:"SingularReaderSelector",dataID:t,isWithinUnmatchedTypeRefinement:i,clientEdgeTraversalPath:null!=a?a:null,node:e,variables:r,owner:n}}e.exports={areEqualSelectors:function(e,t){return e===t||(null==e?null==t:null==t?null==e:"SingularReaderSelector"===e.kind&&"SingularReaderSelector"===t.kind?R(e,t):"PluralReaderSelector"===e.kind&&"PluralReaderSelector"===t.kind&&(e.selectors.length===t.selectors.length&&e.selectors.every((function(e,r){return R(e,t.selectors[r])}))))},createReaderSelector:b,createNormalizationSelector:function(e,t,r){return{dataID:t,node:e,variables:r}},getDataIDsFromFragment:v,getDataIDsFromObject:function(e,t){var r={};for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=t[n];r[n]=v(i,a)}return r},getSingularSelector:h,getPluralSelector:p,getSelector:_,getSelectorsFromObject:function(e,t){var r={};for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=t[n];r[n]=_(i,a)}return r},getVariablesFromSingularFragment:E,getVariablesFromPluralFragment:y,getVariablesFromFragment:m,getVariablesFromObject:function(e,t){var r={};for(var n in e)if(e.hasOwnProperty(n)){var i=m(e[n],t[n]);Object.assign(r,i)}return r}}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(7)),i=r(2).getArgumentValues,a=r(0);e.exports={getLocalVariables:function(e,t,r){if(null==t)return e;var a=(0,n.default)({},e),o=r?i(r,e):{};return t.forEach((function(e){var t,r=null!==(t=o[e.name])&&void 0!==t?t:e.defaultValue;a[e.name]=r})),a},getFragmentVariables:function(e,t,r){return null==e.argumentDefinitions?r:(e.argumentDefinitions.forEach((function(o){if(!r.hasOwnProperty(o.name))switch(i=i||(0,n.default)({},r),o.kind){case"LocalArgument":i[o.name]=o.defaultValue;break;case"RootArgument":if(!t.hasOwnProperty(o.name)){i[o.name]=void 0;break}i[o.name]=t[o.name];break;default:a(!1,"RelayConcreteVariables: Unexpected node kind `%s` in fragment `%s`.",o.kind,e.name)}})),i||r);var i},getOperationVariables:function(e,t,r){var n={};return e.argumentDefinitions.forEach((function(e){var t=e.defaultValue;null!=r[e.name]&&(t=r[e.name]),n[e.name]=t})),null!=t&&Object.keys(t).forEach((function(e){n[e]=t[e].get()})),n}}},function(e,t,r){"use strict";var n=r(18),i=r(39),a=r(12).getOperationVariables,o=r(11),s=o.createNormalizationSelector,l=o.createReaderSelector,u=r(2).ROOT_ID;function c(e,t,r){var a={identifier:i(e.params,t),node:e,variables:t,cacheConfig:r};return n(t),Object.freeze(e),Object.freeze(a),a}e.exports={createOperationDescriptor:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:u,i=e.operation,o=a(i,e.params.providedVariables,t),d=c(e,o,r),f={fragment:l(e.fragment,n,o,d),request:d,root:s(i,n,o)};return Object.freeze(f.fragment),Object.freeze(f.root),Object.freeze(f),f},createRequestDescriptor:c}},function(e,t){e.exports=a},function(e,t,r){"use strict";var n=r(41),i=function(e,t){},a=function(){function e(e){if(!e||"function"!=typeof e)throw new Error("Source must be a Function: "+String(e));this._source=e}e.create=function(t){return new e(t)},e.onUnhandledError=function(e){i=e},e.from=function(e){return function(e){return"object"==typeof e&&null!==e&&"function"==typeof e.subscribe}(e)?o(e):n(e)?s(e):l(e)};var t=e.prototype;return t.catch=function(t){var r=this;return e.create((function(e){var n;return r.subscribe({start:function(e){n=e},next:e.next,complete:e.complete,error:function(r){try{t(r).subscribe({start:function(e){n=e},next:e.next,complete:e.complete,error:e.error})}catch(t){e.error(t,!0)}}}),function(){return n.unsubscribe()}}))},t.concat=function(t){var r=this;return e.create((function(e){var n;return r.subscribe({start:function(e){n=e},next:e.next,error:e.error,complete:function(){n=t.subscribe(e)}}),function(){n&&n.unsubscribe()}}))},t.do=function(t){var r=this;return e.create((function(e){var n=function(r){return function(){try{t[r]&&t[r].apply(t,arguments)}catch(e){i(e,!0)}e[r]&&e[r].apply(e,arguments)}};return r.subscribe({start:n("start"),next:n("next"),error:n("error"),complete:n("complete"),unsubscribe:n("unsubscribe")})}))},t.finally=function(t){var r=this;return e.create((function(e){var n=r.subscribe(e);return function(){n.unsubscribe(),t()}}))},t.ifEmpty=function(t){var r=this;return e.create((function(e){var n=!1,i=r.subscribe({next:function(t){n=!0,e.next(t)},error:e.error,complete:function(){n?e.complete():i=t.subscribe(e)}});return function(){i.unsubscribe()}}))},t.subscribe=function(e){if(!e||"object"!=typeof e)throw new Error("Observer must be an Object with callbacks: "+String(e));return function(e,t){var r,n=!1,a=function(e){return Object.defineProperty(e,"closed",{get:function(){return n}})};function o(){if(r){if(r.unsubscribe)r.unsubscribe();else try{r()}catch(e){i(e,!0)}r=void 0}}var s=a({unsubscribe:function(){if(!n){n=!0;try{t.unsubscribe&&t.unsubscribe(s)}catch(e){i(e,!0)}finally{o()}}}});try{t.start&&t.start(s)}catch(e){i(e,!0)}if(n)return s;var l=a({next:function(e){if(!n&&t.next)try{t.next(e)}catch(e){i(e,!0)}},error:function(e,r){if(n||!t.error)n=!0,i(e,r||!1),o();else{n=!0;try{t.error(e)}catch(e){i(e,!0)}finally{o()}}},complete:function(){if(!n){n=!0;try{t.complete&&t.complete()}catch(e){i(e,!0)}finally{o()}}}});try{r=e(l)}catch(e){l.error(e,!0)}if(void 0!==r&&"function"!=typeof r&&(!r||"function"!=typeof r.unsubscribe))throw new Error("Returned cleanup function which cannot be called: "+String(r));n&&o();return s}(this._source,e)},t.map=function(t){var r=this;return e.create((function(e){var n=r.subscribe({complete:e.complete,error:e.error,next:function(r){try{var n=t(r);e.next(n)}catch(t){e.error(t,!0)}}});return function(){n.unsubscribe()}}))},t.mergeMap=function(t){var r=this;return e.create((function(n){var i=[];function a(e){this._sub=e,i.push(e)}function o(){i.splice(i.indexOf(this._sub),1),0===i.length&&n.complete()}return r.subscribe({start:a,next:function(r){try{n.closed||e.from(t(r)).subscribe({start:a,next:n.next,error:n.error,complete:o})}catch(e){n.error(e,!0)}},error:n.error,complete:o}),function(){i.forEach((function(e){return e.unsubscribe()})),i.length=0}}))},t.poll=function(t){var r=this;if("number"!=typeof t||t<=0)throw new Error("RelayObservable: Expected pollInterval to be positive, got: "+t);return e.create((function(e){var n,i;return function a(){n=r.subscribe({next:e.next,error:e.error,complete:function(){i=setTimeout(a,t)}})}(),function(){clearTimeout(i),n.unsubscribe()}}))},t.toPromise=function(){var e=this;return new Promise((function(t,r){var n=!1;e.subscribe({next:function(e){n||(n=!0,t(e))},error:r,complete:t})}))},e}();function o(e){return e instanceof a?e:a.create((function(t){return e.subscribe(t)}))}function s(e){return a.create((function(t){e.then((function(e){t.next(e),t.complete()}),t.error)}))}function l(e){return a.create((function(t){t.next(e),t.complete()}))}a.onUnhandledError((function(e,t){"function"==typeof fail?fail(String(e)):t?setTimeout((function(){throw e})):"undefined"!=typeof console&&console.error("RelayObservable: Unhandled Error",e)})),e.exports=a},function(e,t){e.exports=o},function(e,t,r){"use strict";e.exports=function e(t){if(!t||"object"!=typeof t)return t;if(Array.isArray(t))return t.map(e);for(var r=Object.keys(t).sort(),n={},i=0;i<r.length;i++)n[r[i]]=e(t[r[i]]);return n}},function(e,t,r){"use strict";e.exports=function e(t){return Object.freeze(t),Object.getOwnPropertyNames(t).forEach((function(r){var n=t[r];n&&"object"==typeof n&&!Object.isFrozen(n)&&e(n)})),t}},function(e,t){e.exports=s},function(e,t,r){"use strict";var n=(0,r(1).default)(r(4)),i=r(25),a=i.EXISTENT,o=i.NONEXISTENT,s=i.UNKNOWN,l=function(){function e(e){var t=this;this._records=new Map,null!=e&&Object.keys(e).forEach((function(r){t._records.set(r,e[r])}))}e.create=function(t){return new e(t)};var t=e.prototype;return t.clear=function(){this._records=new Map},t.delete=function(e){this._records.set(e,null)},t.get=function(e){return this._records.get(e)},t.getRecordIDs=function(){return Array.from(this._records.keys())},t.getStatus=function(e){return this._records.has(e)?null==this._records.get(e)?o:a:s},t.has=function(e){return this._records.has(e)},t.remove=function(e){this._records.delete(e)},t.set=function(e,t){this._records.set(e,t)},t.size=function(){return this._records.size},t.toJSON=function(){var e,t={},r=(0,n.default)(this._records);try{for(r.s();!(e=r.n()).done;){var i=e.value,a=i[0],o=i[1];t[a]=o}}catch(e){r.e(e)}finally{r.f()}return t},e}();e.exports=l},function(e,t,r){"use strict";var n=r(8).getType,i=r(0);e.exports={REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY:"executableDefinitions",REACT_FLIGHT_TREE_STORAGE_KEY:"tree",REACT_FLIGHT_TYPE_NAME:"ReactFlightComponent",getReactFlightClientResponse:function(e){return"ReactFlightComponent"!==n(e)&&i(!1,"getReactFlightClientResponse(): Expected a ReactFlightComponentRecord, got %s.",e),e.tree},refineToReactFlightPayloadData:function(e){return null!=e&&"object"==typeof e&&"string"==typeof e.status&&(Array.isArray(e.tree)||null===e.tree)&&Array.isArray(e.queries)&&Array.isArray(e.fragments)&&Array.isArray(e.errors)?e:null}}},function(e,t,r){"use strict";var n=r(9).generateClientID,i=r(2).getStableStorageKey,a=r(27),o=r(28),s=r(0),l=r(3),u="__connection_next_edge_index";function c(e,t,r){if(null==r)return r;var i=o.get().EDGES,a=t.getValue(u);"number"!=typeof a&&s(!1,"ConnectionHandler: Expected %s to be a number, got `%s`.",u,a);var l=n(t.getDataID(),i,a),c=e.create(l,r.getType());return c.copyFieldsFrom(r),null==c.getValue("cursor")&&c.setValue(null,"cursor"),t.setValue(a+1,u),c}function d(e,t,r){for(var n=o.get().NODE,i=0;i<e.length;i++){var a=e[i];if(a){var s=a.getLinkedRecord(n),l=s&&s.getDataID();if(l){if(r.has(l))continue;r.add(l)}t.push(a)}}}e.exports={buildConnectionEdge:c,createEdge:function(e,t,r,i){var a=o.get().NODE,s=n(t.getDataID(),r.getDataID()),l=e.get(s);return l||(l=e.create(s,i)),l.setLinkedRecord(r,a),null==l.getValue("cursor")&&l.setValue(null,"cursor"),l},deleteNode:function(e,t){var r=o.get(),n=r.EDGES,i=r.NODE,a=e.getLinkedRecords(n);if(a){for(var s,l=0;l<a.length;l++){var u=a[l],c=u&&u.getLinkedRecord(i);null!=c&&c.getDataID()===t?void 0===s&&(s=a.slice(0,l)):void 0!==s&&s.push(u)}void 0!==s&&e.setLinkedRecords(s,n)}},getConnection:function(e,t,r){var n=a("connection",t,null);return e.getLinkedRecord(n,r)},getConnectionID:function(e,t,r){var o=a("connection",t,null),s=i(o,r);return n(e,s)},insertEdgeAfter:function(e,t,r){var n=o.get(),i=n.CURSOR,a=n.EDGES,s=e.getLinkedRecords(a);if(s){var l;if(null==r)l=s.concat(t);else{l=[];for(var u=!1,c=0;c<s.length;c++){var d=s[c];if(l.push(d),null!=d)r===d.getValue(i)&&(l.push(t),u=!0)}u||l.push(t)}e.setLinkedRecords(l,a)}else e.setLinkedRecords([t],a)},insertEdgeBefore:function(e,t,r){var n=o.get(),i=n.CURSOR,a=n.EDGES,s=e.getLinkedRecords(a);if(s){var l;if(null==r)l=[t].concat(s);else{l=[];for(var u=!1,c=0;c<s.length;c++){var d=s[c];if(null!=d)r===d.getValue(i)&&(l.push(t),u=!0);l.push(d)}u||l.unshift(t)}e.setLinkedRecords(l,a)}else e.setLinkedRecords([t],a)},update:function(e,t){var r=e.get(t.dataID);if(r){var i=o.get(),a=i.EDGES,s=i.END_CURSOR,f=i.HAS_NEXT_PAGE,h=i.HAS_PREV_PAGE,p=i.PAGE_INFO,_=i.PAGE_INFO_TYPE,v=i.START_CURSOR,g=r.getLinkedRecord(t.fieldKey),m=g&&g.getLinkedRecord(p);if(g){var E=n(r.getDataID(),t.handleKey),y=r.getLinkedRecord(t.handleKey),R=null!=y?y:e.get(E),b=R&&R.getLinkedRecord(p);if(R){null==y&&r.setLinkedRecord(R,t.handleKey);var I=R,D=g.getLinkedRecords(a);D&&(D=D.map((function(t){return c(e,I,t)})));var S=I.getLinkedRecords(a),A=I.getLinkedRecord(p);I.copyFieldsFrom(g),S&&I.setLinkedRecords(S,a),A&&I.setLinkedRecord(A,p);var T=[],k=t.args;if(S&&D)if(null!=k.after){if(!b||k.after!==b.getValue(s))return void l(!1,"Relay: Unexpected after cursor `%s`, edges must be fetched from the end of the list (`%s`).",k.after,b&&b.getValue(s));var N=new Set;d(S,T,N),d(D,T,N)}else if(null!=k.before){if(!b||k.before!==b.getValue(v))return void l(!1,"Relay: Unexpected before cursor `%s`, edges must be fetched from the beginning of the list (`%s`).",k.before,b&&b.getValue(v));var O=new Set;d(D,T,O),d(S,T,O)}else T=D;else T=D||S;if(null!=T&&T!==S&&I.setLinkedRecords(T,a),b&&m)if(null==k.after&&null==k.before)b.copyFieldsFrom(m);else if(null!=k.before||null==k.after&&k.last){b.setValue(!!m.getValue(h),h);var F=m.getValue(v);"string"==typeof F&&b.setValue(F,v)}else if(null!=k.after||null==k.before&&k.first){b.setValue(!!m.getValue(f),f);var L=m.getValue(s);"string"==typeof L&&b.setValue(L,s)}}else{var P=e.create(E,g.getType());P.setValue(0,u),P.copyFieldsFrom(g);var x=g.getLinkedRecords(a);x&&(x=x.map((function(t){return c(e,P,t)})),P.setLinkedRecords(x,a)),r.setLinkedRecord(P,t.handleKey),(b=e.create(n(P.getDataID(),p),_)).setValue(!1,f),b.setValue(!1,h),b.setValue(null,s),b.setValue(null,v),m&&b.copyFieldsFrom(m),P.setLinkedRecord(b,p)}}else r.setValue(null,t.handleKey)}}}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(4)),i=r(22),a=r(3),o=Object.freeze({RANGE_ADD:"RANGE_ADD",RANGE_DELETE:"RANGE_DELETE",NODE_DELETE:"NODE_DELETE"}),s=Object.freeze({APPEND:"append",PREPEND:"prepend"});function l(e){return e.fragment.selections&&e.fragment.selections.length>0&&"LinkedField"===e.fragment.selections[0].kind?e.fragment.selections[0].name:null}e.exports={MutationTypes:o,RangeOperations:s,convert:function(e,t,r,o){var s=r?[r]:[],u=o?[o]:[];return e.forEach((function(e){switch(e.type){case"NODE_DELETE":var r=function(e,t){var r=e.deletedIDFieldName,n=l(t);if(!n)return null;return function(e,t){var i=e.getRootField(n);if(i){var a=i.getValue(r);(Array.isArray(a)?a:[a]).forEach((function(t){t&&"string"==typeof t&&e.delete(t)}))}}}(e,t);r&&(s.push(r),u.push(r));break;case"RANGE_ADD":var o=function(e,t){var r=e.parentID,o=e.connectionInfo,s=e.edgeName;if(!r)return a(!1,"RelayDeclarativeMutationConfig: For mutation config RANGE_ADD to work you must include a parentID"),null;var u=l(t);if(!o||!u)return null;return function(e,t){var l=e.get(r);if(l){var c=e.getRootField(u);if(c){var d,f=c.getLinkedRecord(s),h=(0,n.default)(o);try{for(h.s();!(d=h.n()).done;){var p=d.value;if(f){var _=i.getConnection(l,p.key,p.filters);if(_){var v=i.buildConnectionEdge(e,_,f);if(v)switch(p.rangeBehavior){case"append":i.insertEdgeAfter(_,v);break;case"prepend":i.insertEdgeBefore(_,v);break;default:a(!1,"RelayDeclarativeMutationConfig: RANGE_ADD range behavior `%s` will not work as expected in RelayModern, supported range behaviors are 'append', 'prepend'.",p.rangeBehavior)}}}}}catch(e){h.e(e)}finally{h.f()}}}}}(e,t);o&&(s.push(o),u.push(o));break;case"RANGE_DELETE":var c=function(e,t){var r=e.parentID,o=e.connectionKeys,s=e.pathToConnection,u=e.deletedIDFieldName;if(!r)return a(!1,"RelayDeclarativeMutationConfig: For mutation config RANGE_DELETE to work you must include a parentID"),null;var c=l(t);if(!c)return null;return function(e,t){if(t){var l=[],d=t[c];if(d&&Array.isArray(u)){var f,h=(0,n.default)(u);try{for(h.s();!(f=h.n()).done;){var p=f.value;d&&"object"==typeof d&&(d=d[p])}}catch(e){h.e(e)}finally{h.f()}Array.isArray(d)?d.forEach((function(e){e&&e.id&&"object"==typeof e&&"string"==typeof e.id&&l.push(e.id)})):d&&d.id&&"string"==typeof d.id&&l.push(d.id)}else d&&"string"==typeof u&&"object"==typeof d&&("string"==typeof(d=d[u])?l.push(d):Array.isArray(d)&&d.forEach((function(e){"string"==typeof e&&l.push(e)})));!function(e,t,r,o,s){a(null!=t,"RelayDeclarativeMutationConfig: RANGE_DELETE must provide a connectionKeys");var l=o.get(e);if(!l)return;if(r.length<2)return void a(!1,"RelayDeclarativeMutationConfig: RANGE_DELETE pathToConnection must include at least parent and connection");for(var u=l,c=1;c<r.length-1;c++)u&&(u=u.getLinkedRecord(r[c]));if(!t||!u)return void a(!1,"RelayDeclarativeMutationConfig: RANGE_DELETE pathToConnection is incorrect. Unable to find connection with parentID: %s and path: %s",e,r.toString());var d,f=(0,n.default)(t);try{var h=function(){var e=d.value,t=i.getConnection(u,e.key,e.filters);t&&s.forEach((function(e){i.deleteNode(t,e)}))};for(f.s();!(d=f.n()).done;)h()}catch(e){f.e(e)}finally{f.f()}}(r,o,s,e,l)}}}(e,t);c&&(s.push(c),u.push(c))}})),{optimisticUpdater:function(e,t){s.forEach((function(r){r(e,t)}))},updater:function(e,t){u.forEach((function(r){r(e,t)}))}}}}},function(e,t,r){"use strict";var n="undefined"!=typeof WeakSet,i="undefined"!=typeof WeakMap;e.exports=function e(t,r){if(t===r||"object"!=typeof t||t instanceof Set||t instanceof Map||n&&t instanceof WeakSet||i&&t instanceof WeakMap||!t||"object"!=typeof r||r instanceof Set||r instanceof Map||n&&r instanceof WeakSet||i&&r instanceof WeakMap||!r)return r;var a=!1,o=Array.isArray(t)?t:null,s=Array.isArray(r)?r:null;if(o&&s)a=s.reduce((function(t,r,n){var i=e(o[n],r);return i!==s[n]&&(Object.isFrozen(s)||(s[n]=i)),t&&i===o[n]}),!0)&&o.length===s.length;else if(!o&&!s){var l=t,u=r,c=Object.keys(l),d=Object.keys(u);a=d.reduce((function(t,r){var n=e(l[r],u[r]);return n!==u[r]&&(Object.isFrozen(u)||(u[r]=n)),t&&n===l[r]}),!0)&&c.length===d.length}return a?t:r}},function(e,t,r){"use strict";e.exports={EXISTENT:"EXISTENT",NONEXISTENT:"NONEXISTENT",UNKNOWN:"UNKNOWN"}},function(e,t,r){"use strict";e.exports={generateTypeID:function(e){return"client:__type:"+e},isTypeID:function(e){return 0===e.indexOf("client:__type:")},TYPE_SCHEMA_TYPE:"__TypeSchema"}},function(e,t,r){"use strict";var n=r(36).DEFAULT_HANDLE_KEY,i=r(0);e.exports=function(e,t,r){return t&&t!==n?"__".concat(t,"_").concat(e):(null==r&&i(!1,"getRelayHandleKey: Expected either `fieldName` or `key` in `handle` to be provided"),"__".concat(r,"_").concat(e))}},function(e,t,r){"use strict";var n={after:!0,before:!0,find:!0,first:!0,last:!0,surrounds:!0},i={CURSOR:"cursor",EDGES:"edges",END_CURSOR:"endCursor",HAS_NEXT_PAGE:"hasNextPage",HAS_PREV_PAGE:"hasPreviousPage",NODE:"node",PAGE_INFO_TYPE:"PageInfo",PAGE_INFO:"pageInfo",START_CURSOR:"startCursor"},a={inject:function(e){i=e},get:function(){return i},isConnectionCall:function(e){return n.hasOwnProperty(e.name)}};e.exports=a},function(e,t,r){"use strict";e.exports=function(e){return Boolean(e&&e["@@RelayModernEnvironment"])}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(4));e.exports=function(e,t,r){var i,a=(0,n.default)(r);try{for(a.s();!(i=a.n()).done;){var o=i.value;e.requiredFieldLogger({kind:"relay_resolver.error",owner:o.field.owner,fieldPath:o.field.path,error:o.error})}}catch(e){a.e(e)}finally{a.f()}if(null!=t)switch(t.action){case"THROW":var s=t.field,l=s.path,u=s.owner;throw e.requiredFieldLogger({kind:"missing_field.throw",owner:u,fieldPath:l}),new Error("Relay: Missing @required value at path '".concat(l,"' in '").concat(u,"'."));case"LOG":t.fields.forEach((function(t){var r=t.path,n=t.owner;e.requiredFieldLogger({kind:"missing_field.log",owner:n,fieldPath:r})}));break;default:t.action}}},function(e,t,r){"use strict";var n=r(15),i=r(5),a=r(42),o=r(0),s="function"==typeof WeakMap?new WeakMap:new Map;function l(e,t,r){return n.create((function(i){var s=c(e),l=s.get(t);return l||r().finally((function(){return s.delete(t)})).subscribe({start:function(e){l={identifier:t,subject:new a,subjectForInFlightStatus:new a,subscription:e,promise:null},s.set(t,l)},next:function(e){var r=d(s,t);r.subject.next(e),r.subjectForInFlightStatus.next(e)},error:function(e){var r=d(s,t);r.subject.error(e),r.subjectForInFlightStatus.error(e)},complete:function(){var e=d(s,t);e.subject.complete(),e.subjectForInFlightStatus.complete()},unsubscribe:function(e){var r=d(s,t);r.subject.unsubscribe(),r.subjectForInFlightStatus.unsubscribe()}}),null==l&&o(!1,"[fetchQueryInternal] fetchQueryDeduped: Expected `start` to be called synchronously"),function(e,t){return n.create((function(r){var n=t.subject.subscribe(r);return function(){n.unsubscribe();var r=e.get(t.identifier);if(r){var i=r.subscription;null!=i&&0===r.subject.getObserverCount()&&(i.unsubscribe(),e.delete(t.identifier))}}}))}(s,l).subscribe(i)}))}function u(e,t,r){return n.create((function(t){var n=r.subjectForInFlightStatus.subscribe({error:t.error,next:function(n){e.isRequestActive(r.identifier)?t.next():t.complete()},complete:t.complete,unsubscribe:t.complete});return function(){n.unsubscribe()}}))}function c(e){var t=s.get(e);if(null!=t)return t;var r=new Map;return s.set(e,r),r}function d(e,t){var r=e.get(t);return null==r&&o(!1,"[fetchQueryInternal] getCachedRequest: Expected request to be cached"),r}e.exports={fetchQuery:function(e,t){return l(e,t.request.identifier,(function(){return e.execute({operation:t})}))},fetchQueryDeduped:l,getPromiseForActiveRequest:function(e,t){var r=c(e),n=r.get(t.identifier);if(!n)return null;if(!e.isRequestActive(n.identifier))return null;if(i.USE_REACT_CACHE){var a=n.promise;if(a)return a}var o=new Promise((function(t,r){var i=!1;u(e,0,n).subscribe({complete:t,error:r,next:function(e){i&&t(e)}}),i=!0}));if(i.USE_REACT_CACHE){n.promise=o;var s=function(){n.promise=null};o.then(s,s)}return o},getObservableForActiveRequest:function(e,t){var r=c(e),n=r.get(t.identifier);return n&&e.isRequestActive(n.identifier)?u(e,0,n):null}}},function(e,t,r){"use strict";var n=r(0);e.exports={assertInternalActorIdentifier:function(e){"INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE"!==e&&n(!1,'Expected to use only internal version of the `actorIdentifier`. "%s" was provided.',e)},getActorIdentifier:function(e){return e},getDefaultActorIdentifier:function(){throw new Error("Not Implemented")},INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE:"INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE"}},function(e,t,r){"use strict";var n=r(6),i=n.REQUEST,a=n.SPLIT_OPERATION;e.exports=function(e){switch(e.kind){case i:return e.operation;case a:default:return e}}},function(e,t,r){"use strict";var n=r(1).default,i=n(r(4)),a=n(r(19)),o=n(r(16)),s=r(6),l=s.ACTOR_CHANGE,u=s.ALIASED_FRAGMENT_SPREAD,c=s.ALIASED_INLINE_FRAGMENT_SPREAD,d=s.CLIENT_EDGE_TO_CLIENT_OBJECT,f=s.CLIENT_EDGE_TO_SERVER_OBJECT,h=s.CLIENT_EXTENSION,p=s.CONDITION,_=s.DEFER,v=s.FLIGHT_FIELD,g=s.FRAGMENT_SPREAD,m=s.INLINE_DATA_FRAGMENT_SPREAD,E=s.INLINE_FRAGMENT,y=s.LINKED_FIELD,R=s.MODULE_IMPORT,b=s.RELAY_LIVE_RESOLVER,I=s.RELAY_RESOLVER,D=s.REQUIRED_FIELD,S=s.SCALAR_FIELD,A=s.STREAM,T=r(5),k=r(86).isSuspenseSentinel,N=r(12),O=r(8),F=r(21).getReactFlightClientResponse,L=r(2),P=L.CLIENT_EDGE_TRAVERSAL_PATH,x=L.FRAGMENT_OWNER_KEY,C=L.FRAGMENT_PROP_NAME_KEY,w=L.FRAGMENTS_KEY,M=L.ID_KEY,U=L.IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,V=L.MODULE_COMPONENT_KEY,j=L.ROOT_ID,q=L.getArgumentValues,G=L.getModuleComponentKey,H=L.getStorageKey,K=r(56).NoopResolverCache,z=r(57),Y=z.RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL,B=z.withResolverContext,Q=r(26).generateTypeID,W=r(0);function J(e,t,r){return new X(e,t,null!=r?r:new K).read()}var X=function(){function e(e,t,r){var n;this._clientEdgeTraversalPath=T.ENABLE_CLIENT_EDGES&&null!==(n=t.clientEdgeTraversalPath)&&void 0!==n&&n.length?(0,o.default)(t.clientEdgeTraversalPath):[],this._missingClientEdges=[],this._missingLiveResolverFields=[],this._isMissingData=!1,this._isWithinUnmatchedTypeRefinement=!1,this._missingRequiredFields=null,this._owner=t.owner,this._recordSource=e,this._seenRecords=new Set,this._selector=t,this._variables=t.variables,this._resolverCache=r,this._resolverErrors=[],this._fragmentName=t.node.name}var t=e.prototype;return t.read=function(){var e=this._selector,t=e.node,r=e.dataID,n=e.isWithinUnmatchedTypeRefinement,i=t.abstractKey,a=this._recordSource.get(r),o=!n;o&&null==i&&null!=a&&(O.getType(a)!==t.type&&r!==j&&(o=!1));if(o&&null!=i&&null!=a){var s=this._implementsInterface(a,i);!1===s?o=!1:null==s&&(this._isMissingData=!0)}return this._isWithinUnmatchedTypeRefinement=!o,{data:this._traverse(t,r,null),isMissingData:this._isMissingData&&o,missingClientEdges:T.ENABLE_CLIENT_EDGES&&this._missingClientEdges.length?this._missingClientEdges:null,missingLiveResolverFields:this._missingLiveResolverFields,seenRecords:this._seenRecords,selector:this._selector,missingRequiredFields:this._missingRequiredFields,relayResolverErrors:this._resolverErrors}},t._markDataAsMissing=function(){if(this._isMissingData=!0,T.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.length){var e=this._clientEdgeTraversalPath[this._clientEdgeTraversalPath.length-1];null!==e&&this._missingClientEdges.push({request:e.readerClientEdge.operation,clientEdgeDestinationID:e.clientEdgeDestinationID})}},t._traverse=function(e,t,r){var n=this._recordSource.get(t);if(this._seenRecords.add(t),null==n)return void 0===n&&this._markDataAsMissing(),n;var i=r||{};return this._traverseSelections(e.selections,n,i)?i:null},t._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||W(!1,"RelayReader(): Undefined variable `%s`.",e),this._variables[e]},t._maybeReportUnexpectedNull=function(e,t,r){var n;if("THROW"!==(null===(n=this._missingRequiredFields)||void 0===n?void 0:n.action)){var i=this._fragmentName;switch(t){case"THROW":return void(this._missingRequiredFields={action:t,field:{path:e,owner:i}});case"LOG":return void(null==this._missingRequiredFields?this._missingRequiredFields={action:t,fields:[{path:e,owner:i}]}:this._missingRequiredFields={action:t,fields:[].concat((0,o.default)(this._missingRequiredFields.fields),[{path:e,owner:i}])})}}},t._traverseSelections=function(e,t,r){for(var n=0;n<e.length;n++){var i=e[n];switch(i.kind){case D:if(null==this._readRequiredField(i,t,r)){var a=i.action;return"NONE"!==a&&this._maybeReportUnexpectedNull(i.path,a,t),!1}break;case S:this._readScalar(i,t,r);break;case y:i.plural?this._readPluralLink(i,t,r):this._readLink(i,t,r);break;case p:if(Boolean(this._getVariableValue(i.condition))===i.passingValue)if(!this._traverseSelections(i.selections,t,r))return!1;break;case E:if(!1===this._readInlineFragment(i,t,r))return!1;break;case b:case I:if(!T.ENABLE_RELAY_RESOLVERS)throw new Error("Relay Resolver fields are not yet supported.");this._readResolverField(i,t,r);break;case g:this._createFragmentPointer(i,t,r);break;case u:r[i.name]=this._createAliasedFragmentSpread(i,t);break;case c:var o=this._readInlineFragment(i.fragment,t,{});!1===o&&(o=null),r[i.name]=o;break;case R:this._readModuleImport(i,t,r);break;case m:this._createInlineDataOrResolverFragmentPointer(i,t,r);break;case _:case h:var s=this._isMissingData,k=this._missingClientEdges.length;T.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.push(null);var N=this._traverseSelections(i.selections,t,r);if(this._isMissingData=s||this._missingClientEdges.length>k||this._missingLiveResolverFields.length>0,T.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.pop(),!N)return!1;break;case A:if(!this._traverseSelections(i.selections,t,r))return!1;break;case v:if(!T.ENABLE_REACT_FLIGHT_COMPONENT_FIELD)throw new Error("Flight fields are not yet supported.");this._readFlightField(i,t,r);break;case l:this._readActorChange(i,t,r);break;case d:case f:if(!T.ENABLE_CLIENT_EDGES)throw new Error("Client edges are not yet supported.");this._readClientEdge(i,t,r);break;default:W(!1,"RelayReader(): Unexpected ast kind `%s`.",i.kind)}}return!0},t._readRequiredField=function(e,t,r){switch(e.field.kind){case S:return this._readScalar(e.field,t,r);case y:return e.field.plural?this._readPluralLink(e.field,t,r):this._readLink(e.field,t,r);case I:case b:if(!T.ENABLE_RELAY_RESOLVERS)throw new Error("Relay Resolver fields are not yet supported.");return this._readResolverField(e.field,t,r);case d:case f:if(!T.ENABLE_RELAY_RESOLVERS)throw new Error("Relay Resolver fields are not yet supported.");return this._readClientEdge(e.field,t,r);default:e.field.kind,W(!1,"RelayReader(): Unexpected ast kind `%s`.",e.kind)}},t._readResolverField=function(e,t,r){var n,o,s=this,l=e.fragment,u=O.getDataID(t),c=function(e){return null!=o?{data:o.data,isMissingData:o.isMissingData}:{data:(o=J(s._recordSource,e,s._resolverCache)).data,isMissingData:o.isMissingData}},d=this._resolverCache.readFromCacheOrEvaluate(u,e,this._variables,(function(){if(null!=l){var t={__id:u,__fragmentOwner:s._owner,__fragments:(0,a.default)({},l.name,l.args?q(l.args,s._variables):{})};return B({getDataForResolverFragment:c},(function(){var r=Z(e,s._variables,t,s._fragmentName),n=r[0],i=r[1];return{resolverResult:n,snapshot:o,error:i}}))}var r=Z(e,s._variables,null,s._fragmentName);return{resolverResult:r[0],snapshot:void 0,error:r[1]}}),c),f=d[0],h=d[1],p=d[2],_=d[3],v=d[4];if(null!=_){if(null!=_.missingRequiredFields&&this._addMissingRequiredFields(_.missingRequiredFields),null!=_.missingClientEdges){var g,m=(0,i.default)(_.missingClientEdges);try{for(m.s();!(g=m.n()).done;){var E=g.value;this._missingClientEdges.push(E)}}catch(e){m.e(e)}finally{m.f()}}if(null!=_.missingLiveResolverFields){this._isMissingData=this._isMissingData||_.missingLiveResolverFields.length>0;var y,R=(0,i.default)(_.missingLiveResolverFields);try{for(R.s();!(y=R.n()).done;){var b=y.value;this._missingLiveResolverFields.push(b)}}catch(e){R.e(e)}finally{R.f()}}var I,D=(0,i.default)(_.relayResolverErrors);try{for(D.s();!(I=D.n()).done;){var S=I.value;this._resolverErrors.push(S)}}catch(e){D.e(e)}finally{D.f()}this._isMissingData=this._isMissingData||_.isMissingData}return p&&this._resolverErrors.push(p),null!=h&&this._seenRecords.add(h),null!=v&&(this._isMissingData=!0,this._missingLiveResolverFields.push({path:"".concat(this._fragmentName,".").concat(e.path),liveStateID:v})),r[null!==(n=e.alias)&&void 0!==n?n:e.name]=f,f},t._readClientEdge=function(e,t,r){var n,i=this,a=e.backingField;"ClientExtension"===a.kind&&W(!1,"Client extension client edges are not yet implemented.");var o=null!==(n=a.alias)&&void 0!==n?n:a.name,s={};this._traverseSelections([a],t,s);var l=s[o];if(null==l||k(l))r[o]=l;else{if(e.linkedField.plural?Array.isArray(l)||W(!1,"Expected plural Client Edge Relay Resolver to return an array of IDs."):"string"!=typeof l&&W(!1,"Expected a Client Edge Relay Resolver to return an ID of type `string`."),e.kind===d?(null==a.normalizationInfo&&(l=e.linkedField.plural?l.map((function(t){return i._resolverCache.ensureClientRecord(t,e.concreteType)})):this._resolverCache.ensureClientRecord(l,e.concreteType)),this._clientEdgeTraversalPath.push(null)):(e.linkedField.plural&&W(!1,"Unexpected Client Edge to plural server type. This should be prevented by the compiler."),this._clientEdgeTraversalPath.push({readerClientEdge:e,clientEdgeDestinationID:l})),e.linkedField.plural)r[o]=this._readLinkedIds(e.linkedField,l,t,r);else{var u=r[o];null!=u&&"object"!=typeof u&&W(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an object, got `%s`.",o,O.getDataID(t),u),r[o]=this._traverse(e.linkedField,l,u)}this._clientEdgeTraversalPath.pop()}},t._readFlightField=function(e,t,r){var n,i=null!==(n=e.alias)&&void 0!==n?n:e.name,a=H(e,this._variables),o=O.getLinkedRecordID(t,a);if(null==o)return r[i]=o,void 0===o&&this._markDataAsMissing(),o;var s=this._recordSource.get(o);if(this._seenRecords.add(o),null==s)return r[i]=s,void 0===s&&this._markDataAsMissing(),s;var l=F(s);return r[i]=l,l},t._readScalar=function(e,t,r){var n,i=null!==(n=e.alias)&&void 0!==n?n:e.name,a=H(e,this._variables),o=O.getValue(t,a);return void 0===o&&this._markDataAsMissing(),r[i]=o,o},t._readLink=function(e,t,r){var n,i=null!==(n=e.alias)&&void 0!==n?n:e.name,a=H(e,this._variables),o=O.getLinkedRecordID(t,a);if(null==o)return r[i]=o,void 0===o&&this._markDataAsMissing(),o;var s=r[i];null!=s&&"object"!=typeof s&&W(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an object, got `%s`.",i,O.getDataID(t),s);var l=this._traverse(e,o,s);return r[i]=l,l},t._readActorChange=function(e,t,r){var n,i=null!==(n=e.alias)&&void 0!==n?n:e.name,a=H(e,this._variables),o=O.getActorLinkedRecordID(t,a);if(null==o)return r[i]=o,void 0===o&&this._markDataAsMissing(),r[i];var s=o[0],l=o[1],u={};return this._createFragmentPointer(e.fragmentSpread,{__id:l},u),r[i]={__fragmentRef:u,__viewer:s},r[i]},t._readPluralLink=function(e,t,r){var n=H(e,this._variables),i=O.getLinkedRecordIDs(t,n);return this._readLinkedIds(e,i,t,r)},t._readLinkedIds=function(e,t,r,n){var i,a=this,o=null!==(i=e.alias)&&void 0!==i?i:e.name;if(null==t)return n[o]=t,void 0===t&&this._markDataAsMissing(),t;var s=n[o];null==s||Array.isArray(s)||W(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an array, got `%s`.",o,O.getDataID(r),s);var l=s||[];return t.forEach((function(t,n){if(null==t)return void 0===t&&a._markDataAsMissing(),void(l[n]=t);var i=l[n];null!=i&&"object"!=typeof i&&W(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an object, got `%s`.",o,O.getDataID(r),i),l[n]=a._traverse(e,t,i)})),n[o]=l,l},t._readModuleImport=function(e,t,r){var n=G(e.documentName),i=O.getValue(t,n);null!=i?(this._createFragmentPointer({kind:"FragmentSpread",name:e.fragmentName,args:e.args},t,r),r[C]=e.fragmentPropName,r[V]=i):void 0===i&&this._markDataAsMissing()},t._createAliasedFragmentSpread=function(e,t){var r=e.abstractKey;if(null==r){var n=O.getType(t);if(null==n||n!==e.type)return null}else{var i=this._implementsInterface(t,r);if(!1===i)return null;if(null==i)return void this._markDataAsMissing()}var a={};return this._createFragmentPointer(e.fragment,t,a),a},t._readInlineFragment=function(e,t,r){var n=e.abstractKey;if(null==n){var i=O.getType(t);if(null==i||i!==e.type)return null;if(!this._traverseSelections(e.selections,t,r))return!1}else{var a=this._implementsInterface(t,n),o=this._isMissingData,s=this._isWithinUnmatchedTypeRefinement;if(this._isWithinUnmatchedTypeRefinement=s||!1===a,this._traverseSelections(e.selections,t,r),this._isWithinUnmatchedTypeRefinement=s,!1===a)return void(this._isMissingData=o);if(null==a)return this._markDataAsMissing(),null}return r},t._createFragmentPointer=function(e,t,r){var n=r[w];null==n&&(n=r[w]={}),("object"!=typeof n||null==n)&&W(!1,"RelayReader: Expected fragment spread data to be an object, got `%s`.",n),null==r[M]&&(r[M]=O.getDataID(t)),n[e.name]=e.args?q(e.args,this._variables):{},r[x]=this._owner,r[U]=this._isWithinUnmatchedTypeRefinement,T.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.length>0&&null!==this._clientEdgeTraversalPath[this._clientEdgeTraversalPath.length-1]&&(r[P]=(0,o.default)(this._clientEdgeTraversalPath))},t._createInlineDataOrResolverFragmentPointer=function(e,t,r){var n=r[w];null==n&&(n=r[w]={}),("object"!=typeof n||null==n)&&W(!1,"RelayReader: Expected fragment spread data to be an object, got `%s`.",n),null==r[M]&&(r[M]=O.getDataID(t));var i={},a=this._fragmentName;this._fragmentName=e.name;var o=this._variables,s=e.args?q(e.args,this._variables):{};this._variables=N.getFragmentVariables(e,this._owner.variables,s),this._traverseSelections(e.selections,t,i),this._variables=o,this._fragmentName=a,n[e.name]=i},t._addMissingRequiredFields=function(e){null!=this._missingRequiredFields?"THROW"!==this._missingRequiredFields.action&&("THROW"!==e.action?this._missingRequiredFields={action:"LOG",fields:[].concat((0,o.default)(this._missingRequiredFields.fields),(0,o.default)(e.fields))}:this._missingRequiredFields=e):this._missingRequiredFields=e},t._implementsInterface=function(e,t){var r=O.getType(e),n=this._recordSource.get(Q(r));return null!=n?O.getValue(n,t):null},e}();function Z(e,t,r,n){var i="function"==typeof e.resolverModule?e.resolverModule:e.resolverModule.default,a=null,o=null;try{var s=[];null!=e.fragment&&s.push(r);var l=e.args?q(e.args,t):void 0;s.push(l),a=i.apply(null,s)}catch(t){var u;if(t===Y)a=void 0;else o={field:{path:null!==(u=e.path)&&void 0!==u?u:"[UNKNOWN]",owner:n},error:t}}return[a,o]}e.exports={read:J}},function(e,t,r){"use strict";var n=new Map,i=1,a=function(){for(var e=new Set,t=0;t<10;++t)e.add(t.toString());return e}();e.exports={intern:function(e,t){if(null==t||e.length<t)return function(e){return"\t"===e[0]&&a.has(e[1])||"\v"===e[0]?"\v"+e:e}(e);var r=n.get(e);return null!=r||(r="\t"+i++,n.set(e,r)),r}}},function(e,t,r){"use strict";e.exports={DEFAULT_HANDLE_KEY:""}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(4)),i=r(22),a=r(28),o=r(0),s=r(3),l={update:function(e,t){var r=e.get(t.dataID);if(null!=r){var n=r.getValue(t.fieldKey);"string"==typeof n?e.delete(n):Array.isArray(n)&&n.forEach((function(t){"string"==typeof t&&e.delete(t)}))}}},u={update:function(e,t){var r=e.get(t.dataID);if(null!=r){var a=t.handleArgs.connections;null==a&&o(!1,"MutationHandlers: Expected connection IDs to be specified.");var l=r.getValue(t.fieldKey);(Array.isArray(l)?l:[l]).forEach((function(t){if("string"==typeof t){var r,o=(0,n.default)(a);try{for(o.s();!(r=o.n()).done;){var l=r.value,u=e.get(l);null!=u?i.deleteNode(u,t):s(!1,"[Relay][Mutation] The connection with id '".concat(l,"' doesn't exist."))}}catch(e){o.e(e)}finally{o.f()}}}))}}},c={update:p(i.insertEdgeAfter)},d={update:p(i.insertEdgeBefore)},f={update:_(i.insertEdgeAfter)},h={update:_(i.insertEdgeBefore)};function p(e){return function(t,r){var l,u=t.get(r.dataID);if(null!=u){var c,d,f=r.handleArgs.connections;null==f&&o(!1,"MutationHandlers: Expected connection IDs to be specified.");try{c=u.getLinkedRecord(r.fieldKey)}catch(e){}if(!c)try{d=u.getLinkedRecords(r.fieldKey)}catch(e){}if(null!=c||null!=d){var h,p=a.get(),_=p.NODE,v=p.EDGES,g=null!==(l=d)&&void 0!==l?l:[c],m=(0,n.default)(g);try{var E=function(){var r=h.value;if(null==r)return"continue";var a=r.getLinkedRecord("node");if(!a)return"continue";var l,u=a.getDataID(),c=(0,n.default)(f);try{for(c.s();!(l=c.n()).done;){var d=l.value,p=t.get(d);if(null!=p){if(!(null===(y=p.getLinkedRecords(v))||void 0===y?void 0:y.some((function(e){var t;return(null==e||null===(t=e.getLinkedRecord(_))||void 0===t?void 0:t.getDataID())===u})))){var g=i.buildConnectionEdge(t,p,r);null==g&&o(!1,"MutationHandlers: Failed to build the edge."),e(p,g)}}else s(!1,"[Relay][Mutation] The connection with id '".concat(d,"' doesn't exist."))}}catch(e){c.e(e)}finally{c.f()}};for(m.s();!(h=m.n()).done;){var y;E()}}catch(e){m.e(e)}finally{m.f()}}else s(!1,"MutationHandlers: Expected the server edge to be non-null.")}}}function _(e){return function(t,r){var l,u=t.get(r.dataID);if(null!=u){var c,d,f=r.handleArgs,h=f.connections,p=f.edgeTypeName;null==h&&o(!1,"MutationHandlers: Expected connection IDs to be specified."),null==p&&o(!1,"MutationHandlers: Expected edge typename to be specified.");try{c=u.getLinkedRecord(r.fieldKey)}catch(e){}if(!c)try{d=u.getLinkedRecords(r.fieldKey)}catch(e){}if(null!=c||null!=d){var _,v=a.get(),g=v.NODE,m=v.EDGES,E=null!==(l=d)&&void 0!==l?l:[c],y=(0,n.default)(E);try{var R=function(){var r=_.value;if(null==r)return"continue";var a,l=r.getDataID(),u=(0,n.default)(h);try{for(u.s();!(a=u.n()).done;){var c=a.value,d=t.get(c);if(null!=d){if(!(null===(b=d.getLinkedRecords(m))||void 0===b?void 0:b.some((function(e){var t;return(null==e||null===(t=e.getLinkedRecord(g))||void 0===t?void 0:t.getDataID())===l})))){var f=i.createEdge(t,d,r,p);null==f&&o(!1,"MutationHandlers: Failed to build the edge."),e(d,f)}}else s(!1,"[Relay][Mutation] The connection with id '".concat(c,"' doesn't exist."))}}catch(e){u.e(e)}finally{u.f()}};for(y.s();!(_=y.n()).done;){var b;R()}}catch(e){y.e(e)}finally{y.f()}}else s(!1,"MutationHandlers: Expected target node to exist.")}}}e.exports={AppendEdgeHandler:c,DeleteRecordHandler:l,PrependEdgeHandler:d,AppendNodeHandler:f,PrependNodeHandler:h,DeleteEdgeHandler:u}},function(e,t,r){"use strict";var n=r(22),i=r(37),a=r(0);e.exports=function(e){switch(e){case"connection":return n;case"deleteRecord":return i.DeleteRecordHandler;case"deleteEdge":return i.DeleteEdgeHandler;case"appendEdge":return i.AppendEdgeHandler;case"prependEdge":return i.PrependEdgeHandler;case"appendNode":return i.AppendNodeHandler;case"prependNode":return i.PrependNodeHandler}a(!1,"RelayDefaultHandlerProvider: No handler provided for `%s`.",e)}},function(e,t,r){"use strict";var n=r(17),i=r(0);e.exports=function(e,t){var r=null!=e.cacheID?e.cacheID:e.id;return null==r&&i(!1,"getRequestIdentifier: Expected request `%s` to have either a valid `id` or `cacheID` property",e.name),r+JSON.stringify(n(t))}},function(e,t,r){"use strict";var n=r(14),i=r(3),a="function"==typeof WeakMap,o=a?new WeakMap:new Map;function s(e,t){if(null!=t){var r={};return Object.assign(r,e),Object.keys(t).forEach((function(e){var a=t[e].get,s=a();if(o.has(a)){var l=o.get(a);i(n(s,l),"Relay: Expected function `%s` for provider `%s` to be a pure function, but got conflicting return values `%s` and `%s`",a.name,e,s,l),r[e]=l}else o.set(a,s),r[e]=s})),r}return e}s.tests_only_resetDebugCache=function(){o=a?new WeakMap:new Map},e.exports=s},function(e,t,r){"use strict";e.exports=function(e){return!!e&&"function"==typeof e.then}},function(e,t,r){"use strict";var n=r(1).default,i=n(r(4)),a=n(r(19)),o=r(15),s=r(0),l=function(){function e(){var e=this;(0,a.default)(this,"_complete",!1),(0,a.default)(this,"_events",[]),(0,a.default)(this,"_sinks",new Set),(0,a.default)(this,"_subscription",[]),this._observable=o.create((function(t){e._sinks.add(t);for(var r=e._events,n=0;n<r.length&&!t.closed;n++){var i=r[n];switch(i.kind){case"complete":t.complete();break;case"error":t.error(i.error);break;case"next":t.next(i.data);break;default:i.kind,s(!1,"RelayReplaySubject: Unknown event kind `%s`.",i.kind)}}return function(){e._sinks.delete(t)}}))}var t=e.prototype;return t.complete=function(){!0!==this._complete&&(this._complete=!0,this._events.push({kind:"complete"}),this._sinks.forEach((function(e){return e.complete()})))},t.error=function(e){!0!==this._complete&&(this._complete=!0,this._events.push({kind:"error",error:e}),this._sinks.forEach((function(t){return t.error(e)})))},t.next=function(e){!0!==this._complete&&(this._events.push({kind:"next",data:e}),this._sinks.forEach((function(t){return t.next(e)})))},t.subscribe=function(e){var t=this._observable.subscribe(e);return this._subscription.push(t),t},t.unsubscribe=function(){var e,t=(0,i.default)(this._subscription);try{for(t.s();!(e=t.n()).done;){e.value.unsubscribe()}}catch(e){t.e(e)}finally{t.f()}this._subscription=[]},t.getObserverCount=function(){return this._sinks.size},e}();e.exports=l},function(e,t,r){"use strict";var n=r(31).getPromiseForActiveRequest;e.exports=function(e,t,r){var i,a,o=[],s=n(e,r);if(null!=s)o=[r];else{var l,u,c=e.getOperationTracker().getPendingOperationsAffectingOwner(r);o=null!==(l=null==c?void 0:c.pendingOperations)&&void 0!==l?l:[],s=null!==(u=null==c?void 0:c.promise)&&void 0!==u?u:null}if(!s)return null;var d=null!==(i=null===(a=o)||void 0===a?void 0:a.map((function(e){return e.node.params.name})).join(","))&&void 0!==i?i:null;null!=d&&0!==d.length||(d="Unknown pending operation");var f=t.name,h=d===f?"Relay(".concat(d,")"):"Relay(".concat(d,":").concat(f,")");return s.displayName=h,{promise:s,pendingOperations:o}}},function(e,t,r){"use strict";e.exports=function(e,t){return e===t&&(null===e||"object"!=typeof e)}},function(e,t,r){"use strict";var n=1e5;e.exports=function(){return n++}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(4)),i=r(0),a=function(){function e(){this._ownersToPendingOperations=new Map,this._pendingOperationsToOwners=new Map,this._ownersToPendingPromise=new Map}var t=e.prototype;return t.update=function(e,t){if(0!==t.size){var r,i=e.identifier,a=new Set,o=(0,n.default)(t);try{for(o.s();!(r=o.n()).done;){var s=r.value.identifier,l=this._ownersToPendingOperations.get(s);null!=l?l.has(i)||(l.set(i,e),a.add(s)):(this._ownersToPendingOperations.set(s,new Map([[i,e]])),a.add(s))}}catch(e){o.e(e)}finally{o.f()}if(0!==a.size){var u,c=this._pendingOperationsToOwners.get(i)||new Set,d=(0,n.default)(a);try{for(d.s();!(u=d.n()).done;){var f=u.value;this._resolveOwnerResolvers(f),c.add(f)}}catch(e){d.e(e)}finally{d.f()}this._pendingOperationsToOwners.set(i,c)}}},t.complete=function(e){var t=e.identifier,r=this._pendingOperationsToOwners.get(t);if(null!=r){var i,a=new Set,o=new Set,s=(0,n.default)(r);try{for(s.s();!(i=s.n()).done;){var l=i.value,u=this._ownersToPendingOperations.get(l);u&&(u.delete(t),u.size>0?o.add(l):a.add(l))}}catch(e){s.e(e)}finally{s.f()}var c,d=(0,n.default)(a);try{for(d.s();!(c=d.n()).done;){var f=c.value;this._resolveOwnerResolvers(f),this._ownersToPendingOperations.delete(f)}}catch(e){d.e(e)}finally{d.f()}var h,p=(0,n.default)(o);try{for(p.s();!(h=p.n()).done;){var _=h.value;this._resolveOwnerResolvers(_)}}catch(e){p.e(e)}finally{p.f()}this._pendingOperationsToOwners.delete(t)}},t._resolveOwnerResolvers=function(e){var t=this._ownersToPendingPromise.get(e);null!=t&&t.resolve(),this._ownersToPendingPromise.delete(e)},t.getPendingOperationsAffectingOwner=function(e){var t=e.identifier,r=this._ownersToPendingOperations.get(t);if(null==r||0===r.size)return null;var n,a=this._ownersToPendingPromise.get(t);if(null!=a)return{promise:a.promise,pendingOperations:a.pendingOperations};var o=new Promise((function(e){n=e}));null==n&&i(!1,"RelayOperationTracker: Expected resolver to be defined. If youare seeing this, it is likely a bug in Relay.");var s=Array.from(r.values());return this._ownersToPendingPromise.set(t,{promise:o,resolve:n,pendingOperations:s}),{promise:o,pendingOperations:s}},e}();e.exports=a},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";var n=r(49),i=n.VIEWER_ID,a=n.VIEWER_TYPE;e.exports=function(e,t){return t===a&&null==e.id?i:e.id}},function(e,t,r){"use strict";var n=(0,r(9).generateClientID)(r(2).ROOT_ID,"viewer");e.exports={VIEWER_ID:n,VIEWER_TYPE:"Viewer"}},function(e,t,r){"use strict";function n(e,t,r){for(var n=arguments.length,i=new Array(n>3?n-3:0),a=3;a<n;a++)i[a-3]=arguments[a];var o=0,s=r.replace(/%s/g,(function(){return String(i[o++])})),l=new Error(s),u=Object.assign(l,{name:t,messageFormat:r,messageParams:i,type:e,taalOpcodes:[2,2]});if(void 0===u.stack)try{throw u}catch(e){}return u}e.exports={create:function(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];return n.apply(void 0,["error",e,t].concat(i))},createWarning:function(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];return n.apply(void 0,["warn",e,t].concat(i))}}},function(e,t,r){"use strict";var n=r(8),i=r(25).EXISTENT,a=r(0),o=function(){function e(e,t){this.__sources=[t,e],this._base=e,this._sink=t}var t=e.prototype;return t.unstable_getRawRecordWithChanges=function(e){var t=this._base.get(e),r=this._sink.get(e);if(void 0===r){if(null==t)return t;var i=n.clone(t);return n.freeze(i),i}if(null===r)return null;if(null!=t){var a=n.update(t,r);return a!==t&&n.freeze(a),a}var o=n.clone(r);return n.freeze(o),o},t._getSinkRecord=function(e){var t=this._sink.get(e);if(!t){var r=this._base.get(e);r||a(!1,"RelayRecordSourceMutator: Cannot modify non-existent record `%s`.",e),t=n.create(e,n.getType(r)),this._sink.set(e,t)}return t},t.copyFields=function(e,t){var r=this._sink.get(e),i=this._base.get(e);r||i||a(!1,"RelayRecordSourceMutator#copyFields(): Cannot copy fields from non-existent record `%s`.",e);var o=this._getSinkRecord(t);i&&n.copyFields(i,o),r&&n.copyFields(r,o)},t.copyFieldsFromRecord=function(e,t){var r=this._getSinkRecord(t);n.copyFields(e,r)},t.create=function(e,t){(this._base.getStatus(e)===i||this._sink.getStatus(e)===i)&&a(!1,"RelayRecordSourceMutator#create(): Cannot create a record with id `%s`, this record already exists.",e);var r=n.create(e,t);this._sink.set(e,r)},t.delete=function(e){this._sink.delete(e)},t.getStatus=function(e){return this._sink.has(e)?this._sink.getStatus(e):this._base.getStatus(e)},t.getType=function(e){for(var t=0;t<this.__sources.length;t++){var r=this.__sources[t].get(e);if(r)return n.getType(r);if(null===r)return null}},t.getValue=function(e,t){for(var r=0;r<this.__sources.length;r++){var i=this.__sources[r].get(e);if(i){var a=n.getValue(i,t);if(void 0!==a)return a}else if(null===i)return null}},t.setValue=function(e,t,r){var i=this._getSinkRecord(e);n.setValue(i,t,r)},t.getLinkedRecordID=function(e,t){for(var r=0;r<this.__sources.length;r++){var i=this.__sources[r].get(e);if(i){var a=n.getLinkedRecordID(i,t);if(void 0!==a)return a}else if(null===i)return null}},t.setLinkedRecordID=function(e,t,r){var i=this._getSinkRecord(e);n.setLinkedRecordID(i,t,r)},t.getLinkedRecordIDs=function(e,t){for(var r=0;r<this.__sources.length;r++){var i=this.__sources[r].get(e);if(i){var a=n.getLinkedRecordIDs(i,t);if(void 0!==a)return a}else if(null===i)return null}},t.setLinkedRecordIDs=function(e,t,r){var i=this._getSinkRecord(e);n.setLinkedRecordIDs(i,t,r)},e}();e.exports=o},function(e,t,r){"use strict";var n=r(8),i=r(25),a=i.EXISTENT,o=i.NONEXISTENT,s=r(2),l=s.ROOT_ID,u=s.ROOT_TYPE,c=r(53).readUpdatableFragment_EXPERIMENTAL,d=r(55).readUpdatableQuery_EXPERIMENTAL,f=r(84),h=r(0),p=function(){function e(e,t,r){this.__mutator=e,this._handlerProvider=r||null,this._proxies={},this._getDataID=t,this._invalidatedStore=!1,this._idsMarkedForInvalidation=new Set}var t=e.prototype;return t.publishSource=function(e,t){var r=this;e.getRecordIDs().forEach((function(t){var i=e.getStatus(t);if(i===a){var s=e.get(t);s&&(r.__mutator.getStatus(t)!==a&&r.create(t,n.getType(s)),r.__mutator.copyFieldsFromRecord(s,t))}else i===o&&r.delete(t)})),t&&t.length&&t.forEach((function(e){var t=r._handlerProvider&&r._handlerProvider(e.handle);t||h(!1,"RelayModernEnvironment: Expected a handler to be provided for handle `%s`.",e.handle),t.update(r,e)}))},t.create=function(e,t){this.__mutator.create(e,t),delete this._proxies[e];var r=this.get(e);return r||h(!1,"RelayRecordSourceProxy#create(): Expected the created record to exist."),r},t.delete=function(e){e===l&&h(!1,"RelayRecordSourceProxy#delete(): Cannot delete the root record."),delete this._proxies[e],this.__mutator.delete(e)},t.get=function(e){if(!this._proxies.hasOwnProperty(e)){var t=this.__mutator.getStatus(e);this._proxies[e]=t===a?new f(this,this.__mutator,e):t===o?null:void 0}return this._proxies[e]},t.getRoot=function(){var e=this.get(l);return e||(e=this.create(l,u)),e&&e.getType()===u||h(!1,"RelayRecordSourceProxy#getRoot(): Expected the source to contain a root record, %s.",null==e?"no root record found":"found a root record of type `".concat(e.getType(),"`")),e},t.invalidateStore=function(){this._invalidatedStore=!0},t.isStoreMarkedForInvalidation=function(){return this._invalidatedStore},t.markIDForInvalidation=function(e){this._idsMarkedForInvalidation.add(e)},t.getIDsMarkedForInvalidation=function(){return this._idsMarkedForInvalidation},t.readUpdatableQuery_EXPERIMENTAL=function(e,t){return d(e,t,this)},t.readUpdatableFragment_EXPERIMENTAL=function(e,t){return c(e,t,this)},e}();e.exports=p},function(e,t,r){"use strict";var n=r(10).getFragment,i=r(11).getVariablesFromFragment,a=r(2).ID_KEY,o=r(54).createUpdatableProxy,s=r(0);e.exports={readUpdatableFragment_EXPERIMENTAL:function(e,t,r){var l=n(e),u=i(l,t),c=t[a],d=r.get(c);return null==d&&s(!1,"No record with ".concat(c," was found. This likely indicates a problem with Relay.")),{updatableData:o(d,u,l.selections,r)}}}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(4)),i=r(2).getArgumentValues,a=r(6),o=a.ACTOR_CHANGE,s=a.ALIASED_FRAGMENT_SPREAD,l=a.ALIASED_INLINE_FRAGMENT_SPREAD,u=a.CLIENT_EDGE_TO_CLIENT_OBJECT,c=a.CLIENT_EDGE_TO_SERVER_OBJECT,d=a.CLIENT_EXTENSION,f=a.CONDITION,h=a.DEFER,p=a.FLIGHT_FIELD,_=a.FRAGMENT_SPREAD,v=a.INLINE_DATA_FRAGMENT_SPREAD,g=a.INLINE_FRAGMENT,m=a.LINKED_FIELD,E=a.MODULE_IMPORT,y=a.RELAY_LIVE_RESOLVER,R=a.RELAY_RESOLVER,b=a.REQUIRED_FIELD,I=a.SCALAR_FIELD,D=a.STREAM,S=["id","__id","__typename","js"];function A(e,t,r,a,F){var L,P,x=(0,n.default)(a);try{var C=function(){var n=P.value;switch(n.kind){case m:n.plural?Object.defineProperty(e,null!==(w=n.alias)&&void 0!==w?w:n.name,{get:N(n,r,t,F),set:T(n,r,t,F)}):Object.defineProperty(e,null!==(M=n.alias)&&void 0!==M?M:n.name,{get:O(n,r,t,F),set:k(n,r,t,F)});break;case I:var a=null!==(L=n.alias)&&void 0!==L?L:n.name;Object.defineProperty(e,a,{get:function(){var e,a=i(null!==(e=n.args)&&void 0!==e?e:[],r);return t.getValue(n.name,a)},set:S.includes(n.name)?void 0:function(e){var a,o=i(null!==(a=n.args)&&void 0!==a?a:[],r);t.setValue__UNSAFE(e,n.name,o)}});break;case g:t.getType()===n.type&&A(e,t,r,n.selections,F);break;case d:A(e,t,r,n.selections,F);break;case _:break;case f:case o:case s:case v:case l:case u:case c:case h:case p:case E:case y:case b:case D:case R:throw new Error("Encountered an unexpected ReaderSelection variant in RelayRecordSourceProxy. This indicates a bug in Relay.");default:throw n.kind,new Error("Encountered an unexpected ReaderSelection variant in RelayRecordSourceProxy. This indicates a bug in Relay.")}};for(x.s();!(P=x.n()).done;){var w,M;C()}}catch(e){x.e(e)}finally{x.f()}}function T(e,t,r,n){return function(a){var o,s=i(null!==(o=e.args)&&void 0!==o?o:[],t);if(null==a)throw new Error("Do not assign null to plural linked fields; assign an empty array instead.");var l=a.map((function(e){if(null==e)throw new Error("When assigning an array of items, none of the items should be null or undefined.");var t=e.__id;if(null==t)throw new Error("The __id field must be present on each item passed to the setter. This indicates a bug in Relay.");var r=n.get(t);if(null==r)throw new Error("Did not find item with data id ".concat(t," in the store."));return r}));r.setLinkedRecords(l,e.name,s)}}function k(e,t,r,n){return function(a){var o,s=i(null!==(o=e.args)&&void 0!==o?o:[],t);if(null==a)r.setValue(a,e.name,s);else{var l=a.__id;if(null==l)throw new Error("The __id field must be present on the argument. This indicates a bug in Relay.");var u=n.get(l);if(null==u)throw new Error("Did not find item with data id ".concat(l," in the store."));r.setLinkedRecord(u,e.name,s)}}}function N(e,t,r,n){return function(){var a,o=i(null!==(a=e.args)&&void 0!==a?a:[],t),s=r.getLinkedRecords(e.name,o);return null!=s?s.map((function(r){if(null!=r){var i={};return A(i,r,t,e.selections,n),Object.freeze(i),i}return r})):s}}function O(e,t,r,n){return function(){var a,o=i(null!==(a=e.args)&&void 0!==a?a:[],t),s=r.getLinkedRecord(e.name,o);if(null!=s){var l={};return A(l,s,t,e.selections,n),Object.freeze(l),l}return s}}e.exports={createUpdatableProxy:function(e,t,r,n){var i={};return A(i,e,t,r,n),Object.freeze(i),i}}},function(e,t,r){"use strict";var n=r(10).getUpdatableQuery,i=r(54).createUpdatableProxy;e.exports={readUpdatableQuery_EXPERIMENTAL:function(e,t,r){var a=n(e);return{updatableData:i(r.getRoot(),t,a.fragment.selections,r)}}}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(4)),i=r(24),a=r(6).RELAY_LIVE_RESOLVER,o=r(9).generateClientID,s=r(8),l=r(2),u=l.RELAY_RESOLVER_ERROR_KEY,c=l.RELAY_RESOLVER_INVALIDATION_KEY,d=l.RELAY_RESOLVER_SNAPSHOT_KEY,f=l.RELAY_RESOLVER_VALUE_KEY,h=l.getStorageKey,p=r(0),_=r(3),v=new Set,g=function(){function e(){}var t=e.prototype;return t.readFromCacheOrEvaluate=function(e,t,r,n,i){t.kind===a&&p(!1,"This store does not support Live Resolvers");var o=n(),s=o.resolverResult,l=o.snapshot;return[s,void 0,o.error,l,void 0]},t.invalidateDataIDs=function(e){},t.ensureClientRecord=function(e,t){p(!1,"Client Edges to Client Objects are not supported in this version of Relay Store")},e}();function m(e,t,r){var n=e.get(t);n||(n=new Set,e.set(t,n)),n.add(r)}var E=function(){function e(e){this._resolverIDToRecordIDs=new Map,this._recordIDToResolverIDs=new Map,this._getRecordSource=e}var t=e.prototype;return t.readFromCacheOrEvaluate=function(e,t,r,i,a){var l=this._getRecordSource(),c=l.get(e);null==c&&p(!1,"We expect record to exist in the store.");var _=h(t,r),v=s.getLinkedRecordID(c,_),g=null==v?null:l.get(v);if(null==g||this._isInvalid(g,a)){var E;v=null!==(E=v)&&void 0!==E?E:o(e,_),g=s.create(v,"__RELAY_RESOLVER__");var y=i();s.setValue(g,f,y.resolverResult),s.setValue(g,d,y.snapshot),s.setValue(g,u,y.error),l.set(v,g);var R=l.get(e);null==R&&p(!1,"Expected the parent record to still be in the record source.");var b=s.clone(R);if(s.setLinkedRecordID(b,_,v),l.set(e,b),null!=t.fragment){var I,D=h(t.fragment,r),S=o(e,D);m(this._resolverIDToRecordIDs,S,v),m(this._recordIDToResolverIDs,e,S);var A=null===(I=y.snapshot)||void 0===I?void 0:I.seenRecords;if(null!=A){var T,k=(0,n.default)(A);try{for(k.s();!(T=k.n()).done;){var N=T.value;m(this._recordIDToResolverIDs,N,S)}}catch(e){k.e(e)}finally{k.f()}}}}var O=g[f],F=g[d];return[O,v,g[u],F,void 0]},t.invalidateDataIDs=function(e){for(var t=this._getRecordSource(),r=new Set,i=Array.from(e);i.length;){var a=i.pop();e.add(a);var o,s=(0,n.default)(null!==(l=this._recordIDToResolverIDs.get(a))&&void 0!==l?l:v);try{for(s.s();!(o=s.n()).done;){var l,u=o.value;if(!r.has(u)){var c,d=(0,n.default)(null!==(f=this._resolverIDToRecordIDs.get(u))&&void 0!==f?f:v);try{for(d.s();!(c=d.n()).done;){var f,h=c.value;this._markInvalidatedResolverRecord(h,t,e),r.has(h)||i.push(h)}}catch(e){d.e(e)}finally{d.f()}}}}catch(e){s.e(e)}finally{s.f()}}},t._markInvalidatedResolverRecord=function(e,t,r){var n=t.get(e);if(n){var i=s.clone(n);s.setValue(i,c,!0),t.set(e,i)}else _(!1,"Expected a resolver record with ID %s, but it was missing.",e)},t._isInvalid=function(e,t){if(!s.getValue(e,c))return!1;var r=s.getValue(e,d),n=null==r?void 0:r.data,a=null==r?void 0:r.selector;if(null==n||null==a)return _(!1,"Expected previous inputs and reader selector on resolver record with ID %s, but they were missing.",s.getDataID(e)),!0;var o=t(a).data;return i(n,o)!==n},t.ensureClientRecord=function(e,t){p(!1,"Client Edges to Client Objects are not supported in this version of Relay Store")},e}();e.exports={NoopResolverCache:g,RecordResolverCache:E}},function(e,t,r){"use strict";var n=r(10).getFragment,i=r(11).getSelector,a=r(0),o=[];var s={};e.exports={readFragment:function(e,t){if(!o.length)throw new Error("readFragment should be called only from within a Relay Resolver function.");var r=o[o.length-1],l=n(e),u=i(l,t);null==u&&a(!1,"Expected a selector for the fragment of the resolver ".concat(l.name,", but got null.")),"SingularReaderSelector"!==u.kind&&a(!1,"Expected a singular reader selector for the fragment of the resolver ".concat(l.name,", but it was plural."));var c=r.getDataForResolverFragment(u,t),d=c.data;if(c.isMissingData)throw s;return d},withResolverContext:function(e,t){o.push(e);try{return t()}finally{o.pop()}},RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL:s}},function(e,t,r){"use strict";var n=r(6).LINKED_FIELD,i=r(2).getHandleStorageKey,a=r(14),o=r(0);e.exports=function(e,t,r){var s=t.find((function(t){return t.kind===n&&t.name===e.name&&t.alias===e.alias&&a(t.args,e.args)}));s&&s.kind===n||o(!1,"cloneRelayHandleSourceField: Expected a corresponding source field for handle `%s`.",e.handle);var l=i(e,r);return{kind:"LinkedField",alias:s.alias,name:l,storageKey:l,args:null,concreteType:s.concreteType,plural:s.plural,selections:s.selections}}},function(e,t,r){"use strict";var n=r(0);e.exports=function(e,t){var r,i;!0===(null===(r=e.metadata)||void 0===r?void 0:r.plural)&&n(!1,"Relay: getRefetchMetadata(): Expected fragment `%s` not to be plural when using `%s`. Remove `@relay(plural: true)` from fragment `%s` in order to use it with `%s`.",e.name,t,e.name,t);var a=null===(i=e.metadata)||void 0===i?void 0:i.refetch;null==a&&n(!1,"Relay: getRefetchMetadata(): Expected fragment `%s` to be refetchable when using `%s`. Did you forget to add a @refetchable directive to the fragment?",t,e.name);var o=a.operation.default?a.operation.default:a.operation,s=a.fragmentPathInResult;"string"==typeof o&&n(!1,"Relay: getRefetchMetadata(): Expected refetch query to be an operation and not a string when using `%s`. If you're seeing this, this is likely a bug in Relay.",t);var l=a.identifierField;return null!=l&&"string"!=typeof l&&n(!1,"Relay: getRefetchMetadata(): Expected `identifierField` to be a string."),{fragmentRefPathInResponse:s,identifierField:l,refetchableRequest:o,refetchMetadata:a}}},function(e,t,r){"use strict";var n=r(22),i=r(28),a=r(37),o=r(38),s=r(61),l=r(62),u=r(63),c=r(23),d=r(65),f=r(15),h=r(67),p=r(68),_=r(69),v=r(31),g=r(10),m=r(70),E=r(9),y=E.generateClientID,R=E.generateUniqueClientID,b=E.isClientID,I=r(71),D=r(73),S=r(29),A=r(74),T=r(12),k=r(75),N=r(13),O=r(8),F=r(11),L=r(88),P=r(46),x=r(20),C=r(2),w=r(57),M=r(49),U=r(96),V=r(97),j=r(18),q=r(98),G=r(100),H=r(101),K=r(43),z=r(59),Y=r(27),B=r(39),Q=r(102),W=r(30),J=r(41),X=r(44),Z=r(24),$=r(6),ee=r(36),te=r(50),re=r(5),ne=r(103),ie=r(42),ae=r(17),oe=r(40),se="function"!=typeof Map?"Map":null,le="function"!=typeof Set?"Set":null,ue="function"!=typeof Promise?"Promise":null,ce="function"!=typeof Object.assign?"Object.assign":null;if(se||le||ue||ce)throw new Error("relay-runtime requires ".concat([se,le,ue,ce].filter(Boolean).join(", and ")," to exist. ")+"Use a polyfill to provide these for older browsers.");e.exports={Environment:k,Network:d,Observable:f,QueryResponseCache:h,RecordSource:x,Record:O,ReplaySubject:ie,Store:L,areEqualSelectors:F.areEqualSelectors,createFragmentSpecResolver:I,createNormalizationSelector:F.createNormalizationSelector,createOperationDescriptor:N.createOperationDescriptor,createReaderSelector:F.createReaderSelector,createRequestDescriptor:N.createRequestDescriptor,getDataIDsFromFragment:F.getDataIDsFromFragment,getDataIDsFromObject:F.getDataIDsFromObject,getNode:g.getNode,getFragment:g.getFragment,getInlineDataFragment:g.getInlineDataFragment,getModuleComponentKey:C.getModuleComponentKey,getModuleOperationKey:C.getModuleOperationKey,getPaginationFragment:g.getPaginationFragment,getPluralSelector:F.getPluralSelector,getRefetchableFragment:g.getRefetchableFragment,getRequest:g.getRequest,getRequestIdentifier:B,getSelector:F.getSelector,getSelectorsFromObject:F.getSelectorsFromObject,getSingularSelector:F.getSingularSelector,getStorageKey:C.getStorageKey,getVariablesFromFragment:F.getVariablesFromFragment,getVariablesFromObject:F.getVariablesFromObject,getVariablesFromPluralFragment:F.getVariablesFromPluralFragment,getVariablesFromSingularFragment:F.getVariablesFromSingularFragment,handlePotentialSnapshotErrors:W,graphql:g.graphql,isFragment:g.isFragment,isInlineDataFragment:g.isInlineDataFragment,isRequest:g.isRequest,readInlineData:A,MutationTypes:c.MutationTypes,RangeOperations:c.RangeOperations,DefaultHandlerProvider:o,ConnectionHandler:n,MutationHandlers:a,VIEWER_ID:M.VIEWER_ID,VIEWER_TYPE:M.VIEWER_TYPE,applyOptimisticMutation:s,commitLocalUpdate:l,commitMutation:u,fetchQuery:p,fetchQuery_DEPRECATED:_,isRelayModernEnvironment:S,requestSubscription:U,ConnectionInterface:i,PreloadableQueryRegistry:m,RelayProfiler:ne,createPayloadFor3DField:V,RelayConcreteNode:$,RelayError:te,RelayFeatureFlags:re,DEFAULT_HANDLE_KEY:ee.DEFAULT_HANDLE_KEY,FRAGMENTS_KEY:C.FRAGMENTS_KEY,FRAGMENT_OWNER_KEY:C.FRAGMENT_OWNER_KEY,ID_KEY:C.ID_KEY,REF_KEY:C.REF_KEY,REFS_KEY:C.REFS_KEY,ROOT_ID:C.ROOT_ID,ROOT_TYPE:C.ROOT_TYPE,TYPENAME_KEY:C.TYPENAME_KEY,deepFreeze:j,generateClientID:y,generateUniqueClientID:R,getRelayHandleKey:Y,isClientID:b,isPromise:J,isScalarAndEqual:X,recycleNodesInto:Z,stableCopy:ae,getFragmentIdentifier:q,getRefetchMetadata:z,getPaginationMetadata:G,getPaginationVariables:H,getPendingOperationsForFragment:K,getValueAtPath:Q,__internal:{ResolverFragments:w,OperationTracker:P,createRelayContext:D,getOperationVariables:T.getOperationVariables,fetchQuery:v.fetchQuery,fetchQueryDeduped:v.fetchQueryDeduped,getPromiseForActiveRequest:v.getPromiseForActiveRequest,getObservableForActiveRequest:v.getObservableForActiveRequest,withProvidedVariables:oe}}},function(e,t,r){"use strict";var n=r(10).getRequest,i=r(29),a=r(13).createOperationDescriptor,o=r(23),s=r(0);e.exports=function(e,t){i(e)||s(!1,"commitMutation: expected `environment` to be an instance of `RelayModernEnvironment`.");var r=n(t.mutation);if("mutation"!==r.params.operationKind)throw new Error("commitMutation: Expected mutation operation");var l=t.optimisticUpdater,u=t.configs,c=t.optimisticResponse,d=t.variables,f=a(r,d);return u&&(l=o.convert(u,r,l).optimisticUpdater),e.applyMutation({operation:f,response:c,updater:l})}},function(e,t,r){"use strict";e.exports=function(e,t){e.commitUpdate(t)}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(16)),i=r(10).getRequest,a=r(9).generateUniqueClientID,o=r(29),s=r(13).createOperationDescriptor,l=r(23),u=r(64),c=r(0),d=r(3);e.exports=function(e,t){o(e)||c(!1,"commitMutation: expected `environment` to be an instance of `RelayModernEnvironment`.");var r=i(t.mutation);if("mutation"!==r.params.operationKind)throw new Error("commitMutation: Expected mutation operation");if("Request"!==r.kind)throw new Error("commitMutation: Expected mutation to be of type request");var f=t.optimisticResponse,h=t.optimisticUpdater,p=t.updater,_=t.configs,v=t.cacheConfig,g=t.onError,m=t.onUnsubscribe,E=t.variables,y=t.uploadables,R=s(r,E,v,a());if("function"==typeof f&&(f=f(),d(!1,"commitMutation: Expected `optimisticResponse` to be an object, received a function.")),f instanceof Object&&u(f,r,E),_){var b=l.convert(_,r,h,p);h=b.optimisticUpdater,p=b.updater}var I=[];return{dispose:e.executeMutation({operation:R,optimisticResponse:f,optimisticUpdater:h,updater:p,uploadables:y}).subscribe({next:function(e){var r;Array.isArray(e)?e.forEach((function(e){e.errors&&I.push.apply(I,(0,n.default)(e.errors))})):e.errors&&I.push.apply(I,(0,n.default)(e.errors)),null===(r=t.onNext)||void 0===r||r.call(t)},complete:function(){var r=t.onCompleted;r&&r(e.lookup(R.fragment).data,0!==I.length?I:null)},error:g,unsubscribe:m}).unsubscribe}}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(7)),i=r(6),a=i.ACTOR_CHANGE,o=i.CLIENT_COMPONENT,s=i.CLIENT_EXTENSION,l=i.CONDITION,u=i.DEFER,c=i.FLIGHT_FIELD,d=i.FRAGMENT_SPREAD,f=i.INLINE_FRAGMENT,h=i.LINKED_FIELD,p=i.LINKED_HANDLE,_=i.MODULE_IMPORT,v=i.RELAY_RESOLVER,g=i.SCALAR_FIELD,m=i.SCALAR_HANDLE,E=i.STREAM,y=i.TYPE_DISCRIMINATOR,R=r(3),b=Object.prototype.hasOwnProperty,I=function(){},D=function(e,t,r){var n=t;e.split(".").forEach((function(e,t,i){null==n[e]&&(n[e]={}),r&&t===i.length-1&&(n[e]="<scalar>"),n=n[e]}))};I=function(e,t,r){var n=t.operation.name,i={path:"ROOT",visitedPaths:new Set,variables:r||{},missingDiff:{},extraDiff:{},moduleImportPaths:new Set};S(e,t.operation.selections,i),O(e,i),R(null==i.missingDiff.ROOT,"Expected `optimisticResponse` to match structure of server response for mutation `%s`, please define fields for all of\n%s",n,JSON.stringify(i.missingDiff.ROOT,null,2)),R(null==i.extraDiff.ROOT,"Expected `optimisticResponse` to match structure of server response for mutation `%s`, please remove all fields of\n%s",n,JSON.stringify(i.extraDiff.ROOT,null,2))};var S=function(e,t,r){t.forEach((function(t){return A(e,t,r)}))},A=function e(t,r,n){switch(r.kind){case l:return void S(t,r.selections,n);case o:case d:return void S(t,r.fragment.selections,n);case g:case h:case c:return N(t,r,n);case a:return N(t,r.linkedField,n);case f:var i=r.type,R=null==r.abstractKey;return k(n,r.abstractKey),void r.selections.forEach((function(r){R&&t.__typename!==i||e(t,r,n)}));case s:return void r.selections.forEach((function(r){e(t,r,n)}));case _:return T(n);case y:return k(n,r.abstractKey);case v:case p:case m:case u:case E:default:return}},T=function(e){e.moduleImportPaths.add(e.path)},k=function(e,t){if(null!=t){var r="".concat(e.path,".").concat(t);e.visitedPaths.add(r)}},N=function(e,t,r){var i=t.alias||t.name,a="".concat(r.path,".").concat(i);switch(r.visitedPaths.add(a),t.kind){case g:return void(!1===b.call(e,i)&&D(a,r.missingDiff,!0));case h:var o=t.selections;if(null===e[i]||b.call(e,i)&&void 0===e[i])return;return t.plural?Array.isArray(e[i])?void e[i].forEach((function(e){null!==e&&S(e,o,(0,n.default)((0,n.default)({},r),{},{path:a}))})):void D(a,r.missingDiff):e[i]instanceof Object?void S(e[i],o,(0,n.default)((0,n.default)({},r),{},{path:a})):void D(a,r.missingDiff);case c:if(null===e[i]||b.call(e,i)&&void 0===e[i])return;throw new Error("validateMutation: Flight fields are not compatible with optimistic updates, as React does not have the component code necessary to process new data on the client. Instead, you should update your code to require a full refetch of the Flight field so your UI can be updated.")}},O=function e(t,r){Array.isArray(t)?t.forEach((function(t){t instanceof Object&&e(t,r)})):Object.keys(t).forEach((function(i){var a=t[i],o="".concat(r.path,".").concat(i);r.moduleImportPaths.has(o)||(r.visitedPaths.has(o)?a instanceof Object&&e(a,(0,n.default)((0,n.default)({},r),{},{path:o})):D(o,r.extraDiff))}))};e.exports=I},function(e,t,r){"use strict";var n=r(40),i=r(66).convertFetch,a=r(0);e.exports={create:function(e,t){var r=i(e);return{execute:function(e,i,o,s,l){var u=n(i,e.providedVariables);if("subscription"===e.operationKind)return t||a(!1,"RelayNetwork: This network layer does not support Subscriptions. To use Subscriptions, provide a custom network layer."),s&&a(!1,"RelayNetwork: Cannot provide uploadables while subscribing."),t(e,u,o);var c=o.poll;return null!=c?(s&&a(!1,"RelayNetwork: Cannot provide uploadables while polling."),r(e,u,{force:!0}).poll(c)):r(e,u,o,s,l)}}}}},function(e,t,r){"use strict";var n=r(15);e.exports={convertFetch:function(e){return function(t,r,i,a,o){var s=e(t,r,i,a,o);return s instanceof Error?n.create((function(e){return e.error(s)})):n.from(s)}}}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(7)),i=r(17),a=r(0),o=function(){function e(e){var t=e.size,r=e.ttl;t>0||a(!1,"RelayQueryResponseCache: Expected the max cache size to be > 0, got `%s`.",t),r>0||a(!1,"RelayQueryResponseCache: Expected the max ttl to be > 0, got `%s`.",r),this._responses=new Map,this._size=t,this._ttl=r}var t=e.prototype;return t.clear=function(){this._responses.clear()},t.get=function(e,t){var r=this,i=s(e,t);this._responses.forEach((function(e,t){var n,i;n=e.fetchTime,i=r._ttl,n+i>=Date.now()||r._responses.delete(t)}));var a=this._responses.get(i);return null==a?null:Array.isArray(a.payload)?a.payload.map((function(e){return(0,n.default)((0,n.default)({},e),{},{extensions:(0,n.default)((0,n.default)({},e.extensions),{},{cacheTimestamp:a.fetchTime})})})):(0,n.default)((0,n.default)({},a.payload),{},{extensions:(0,n.default)((0,n.default)({},a.payload.extensions),{},{cacheTimestamp:a.fetchTime})})},t.set=function(e,t,r){var n=Date.now(),i=s(e,t);if(this._responses.delete(i),this._responses.set(i,{fetchTime:n,payload:r}),this._responses.size>this._size){var a=this._responses.keys().next();a.done||this._responses.delete(a.value)}},e}();function s(e,t){return JSON.stringify(i({queryID:e,variables:t}))}e.exports=o},function(e,t,r){"use strict";var n=(0,r(1).default)(r(7)),i=r(15),a=r(13).createOperationDescriptor,o=r(30),s=r(31),l=r(10).getRequest,u=r(0);function c(e,t){return s.fetchQuery(e,t).map((function(){return e.lookup(t.fragment)}))}e.exports=function(e,t,r,s){var d,f=l(t);"query"!==f.params.operationKind&&u(!1,"fetchQuery: Expected query operation");var h=(0,n.default)({force:!0},null==s?void 0:s.networkCacheConfig),p=a(f,r,h),_=null!==(d=null==s?void 0:s.fetchPolicy)&&void 0!==d?d:"network-only";function v(t){return o(e,t.missingRequiredFields,t.relayResolverErrors),t.data}switch(_){case"network-only":return c(e,p).map(v);case"store-or-network":return"available"===e.check(p).status?i.from(e.lookup(p.fragment)).map(v):c(e,p).map(v);default:throw new Error("fetchQuery: Invalid fetchPolicy "+_)}}},function(e,t,r){"use strict";var n=r(13).createOperationDescriptor,i=r(10).getRequest;e.exports=function(e,t,r,a){var o=i(t);if("query"!==o.params.operationKind)throw new Error("fetchQuery: Expected query operation");var s=n(o,r,a);return e.execute({operation:s}).map((function(){return e.lookup(s.fragment).data})).toPromise()}},function(e,t,r){"use strict";var n=new(function(){function e(){this._preloadableQueries=new Map,this._callbacks=new Map}var t=e.prototype;return t.set=function(e,t){this._preloadableQueries.set(e,t);var r=this._callbacks.get(e);null!=r&&r.forEach((function(e){try{e(t)}catch(e){setTimeout((function(){throw e}),0)}}))},t.get=function(e){return this._preloadableQueries.get(e)},t.onLoad=function(e,t){var r,n=null!==(r=this._callbacks.get(e))&&void 0!==r?r:new Set;n.add(t);return this._callbacks.set(e,n),{dispose:function(){n.delete(t)}}},t.clear=function(){this._preloadableQueries.clear()},e}());e.exports=n},function(e,t,r){"use strict";var n=r(72),i=r(3);e.exports=function(e,t,r,a,o,s){return Object.keys(r).forEach((function(e){var r=a[e];i(void 0!==r,"createFragmentSpecResolver: Expected prop `%s` to be supplied to `%s`, but got `undefined`. Pass an explicit `null` if this is intentional.",e,t)})),new n(e,r,a,s,o)}},function(e,t,r){"use strict";var n=r(1).default,i=n(r(7)),a=n(r(19)),o=r(43),s=r(30),l=r(44),u=r(24),c=r(5),d=r(13).createRequestDescriptor,f=r(11),h=f.areEqualSelectors,p=f.createReaderSelector,_=f.getSelectorsFromObject,v=r(14),g=r(0),m=r(3),E=function(){function e(e,t,r,n,i){var o=this;(0,a.default)(this,"_onChange",(function(){o._stale=!0,"function"==typeof o._callback&&o._callback()})),this._callback=n,this._context=e,this._data={},this._fragments=t,this._props={},this._resolvers={},this._stale=!1,this._rootIsQueryRenderer=i,this.setProps(r)}var t=e.prototype;return t.dispose=function(){for(var e in this._resolvers)this._resolvers.hasOwnProperty(e)&&b(this._resolvers[e])},t.resolve=function(){if(this._stale){var e,t=this._data;for(var r in this._resolvers)if(this._resolvers.hasOwnProperty(r)){var n=this._resolvers[r],a=t[r];if(n){var o=n.resolve();(e||o!==a)&&((e=e||(0,i.default)({},t))[r]=o)}else{var s=this._props[r],u=void 0!==s?s:null;!e&&l(u,a)||((e=e||(0,i.default)({},t))[r]=u)}}this._data=e||t,this._stale=!1}return this._data},t.setCallback=function(e,t){this._callback=t,!0===c.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT&&this.setProps(e)},t.setProps=function(e){this._props={};var t=_(this._fragments,e);for(var r in t)if(t.hasOwnProperty(r)){var n=t[r],i=this._resolvers[r];null==n?(null!=i&&i.dispose(),i=null):"PluralReaderSelector"===n.kind?null==i?i=new R(this._context.environment,this._rootIsQueryRenderer,n,null!=this._callback,this._onChange):(i instanceof R||g(!1,"RelayModernFragmentSpecResolver: Expected prop `%s` to always be an array.",r),i.setSelector(n)):null==i?i=new y(this._context.environment,this._rootIsQueryRenderer,n,null!=this._callback,this._onChange):(i instanceof y||g(!1,"RelayModernFragmentSpecResolver: Expected prop `%s` to always be an object.",r),i.setSelector(n)),this._props[r]=e[r],this._resolvers[r]=i}this._stale=!0},t.setVariables=function(e,t){for(var r in this._resolvers)if(this._resolvers.hasOwnProperty(r)){var n=this._resolvers[r];n&&n.setVariables(e,t)}this._stale=!0},e}(),y=function(){function e(e,t,r,n,i){var o=this;(0,a.default)(this,"_onChange",(function(e){o._data=e.data,o._isMissingData=e.isMissingData,o._missingRequiredFields=e.missingRequiredFields,o._relayResolverErrors=e.relayResolverErrors,o._callback()}));var s=e.lookup(r);this._callback=i,this._data=s.data,this._isMissingData=s.isMissingData,this._missingRequiredFields=s.missingRequiredFields,this._relayResolverErrors=s.relayResolverErrors,this._environment=e,this._rootIsQueryRenderer=t,this._selector=r,!0===c.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT?n&&(this._subscription=e.subscribe(s,this._onChange)):this._subscription=e.subscribe(s,this._onChange)}var t=e.prototype;return t.dispose=function(){this._subscription&&(this._subscription.dispose(),this._subscription=null)},t.resolve=function(){if(!0===this._isMissingData){var e=o(this._environment,this._selector.node,this._selector.owner),t=null==e?void 0:e.promise;if(null!=t){if(!this._rootIsQueryRenderer){var r,n=null!==(r=null==e?void 0:e.pendingOperations)&&void 0!==r?r:[];throw m(!1,"Relay: Relay Container for fragment `%s` suspended. When using features such as @defer or @module, use `useFragment` instead of a Relay Container.",this._selector.node.name),this._environment.__log({name:"suspense.fragment",data:this._data,fragment:this._selector.node,isRelayHooks:!1,isMissingData:this._isMissingData,isPromiseCached:!1,pendingOperations:n}),t}m(!1,"Relay: Relay Container for fragment `%s` has missing data and would suspend. When using features such as @defer or @module, use `useFragment` instead of a Relay Container.",this._selector.node.name)}}return s(this._environment,this._missingRequiredFields,this._relayResolverErrors),this._data},t.setSelector=function(e){if(null==this._subscription||!h(e,this._selector)){this.dispose();var t=this._environment.lookup(e);this._data=u(this._data,t.data),this._isMissingData=t.isMissingData,this._missingRequiredFields=t.missingRequiredFields,this._relayResolverErrors=t.relayResolverErrors,this._selector=e,this._subscription=this._environment.subscribe(t,this._onChange)}},t.setVariables=function(e,t){if(!v(e,this._selector.variables)){var r=d(t,e),n=p(this._selector.node,this._selector.dataID,e,r);this.setSelector(n)}},e}(),R=function(){function e(e,t,r,n,i){var o=this;(0,a.default)(this,"_onChange",(function(e){o._stale=!0,o._callback()})),this._callback=i,this._data=[],this._environment=e,this._resolvers=[],this._stale=!0,this._rootIsQueryRenderer=t,this._subscribeOnConstruction=n,this.setSelector(r)}var t=e.prototype;return t.dispose=function(){this._resolvers.forEach(b)},t.resolve=function(){if(this._stale){for(var e,t=this._data,r=0;r<this._resolvers.length;r++){var n=t[r],i=this._resolvers[r].resolve();(e||i!==n)&&(e=e||t.slice(0,r)).push(i)}e||this._resolvers.length===t.length||(e=t.slice(0,this._resolvers.length)),this._data=e||t,this._stale=!1}return this._data},t.setSelector=function(e){for(var t=e.selectors;this._resolvers.length>t.length;){this._resolvers.pop().dispose()}for(var r=0;r<t.length;r++)r<this._resolvers.length?this._resolvers[r].setSelector(t[r]):this._resolvers[r]=new y(this._environment,this._rootIsQueryRenderer,t[r],this._subscribeOnConstruction,this._onChange);this._stale=!0},t.setVariables=function(e,t){this._resolvers.forEach((function(r){return r.setVariables(e,t)})),this._stale=!0},e}();function b(e){e&&e.dispose()}e.exports=E},function(e,t,r){"use strict";var n,i,a=r(0);e.exports=function(e){return n||((n=e.createContext(null)).displayName="RelayContext",i=e),e!==i&&a(!1,"[createRelayContext]: You are passing a different instance of React",e.version),n}},function(e,t,r){"use strict";var n=r(10).getInlineDataFragment,i=r(2).FRAGMENTS_KEY,a=r(0);e.exports=function(e,t){var r,o=n(e);if(null==t)return t;"object"!=typeof t&&a(!1,"readInlineData(): Expected an object, got `%s`.",typeof t);var s=null===(r=t[i])||void 0===r?void 0:r[o.name];return null==s&&a(!1,"readInlineData(): Expected fragment `%s` to be spread in the parent fragment.",o.name),s}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(7)),i=r(38),a=r(32),o=a.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,s=a.assertInternalActorIdentifier,l=r(15),u=r(76),c=r(46),d=r(77),f=r(5),h=r(48),p=r(78),_=r(79),v=r(83),g=r(20),m=r(0),E=function(){function e(e){var t,n,a,o,s,l,_,g,E,R=this;this.configName=e.configName,this._treatMissingFieldsAsNull=!0===e.treatMissingFieldsAsNull;var b=e.operationLoader,I=e.reactFlightPayloadDeserializer,D=e.reactFlightServerErrorHandler;null!=b&&("object"!=typeof b||"function"!=typeof b.get||"function"!=typeof b.load)&&m(!1,"RelayModernEnvironment: Expected `operationLoader` to be an object with get() and load() functions, got `%s`.",b),null!=I&&"function"!=typeof I&&m(!1,"RelayModernEnvironment: Expected `reactFlightPayloadDeserializer` to be a function, got `%s`.",I),this.__log=null!==(t=e.log)&&void 0!==t?t:y,this.requiredFieldLogger=null!==(n=e.requiredFieldLogger)&&void 0!==n?n:p,this._defaultRenderPolicy=(null!==(a=e.UNSTABLE_defaultRenderPolicy)&&void 0!==a?a:!0===f.ENABLE_PARTIAL_RENDERING_DEFAULT)?"partial":"full",this._operationLoader=b,this._operationExecutions=new Map,this._network=u(this,e.network),this._getDataID=null!==(o=e.getDataID)&&void 0!==o?o:h,this._publishQueue=new v(e.store,null!==(s=e.handlerProvider)&&void 0!==s?s:i,this._getDataID),this._scheduler=null!==(l=e.scheduler)&&void 0!==l?l:null,this._store=e.store,this.options=e.options,this._isServer=null!==(_=e.isServer)&&void 0!==_&&_,this.__setNet=function(e){return R._network=u(R,e)};var S=r(87).inspect;this.DEBUG_inspect=function(e){return S(R,e)},this._missingFieldHandlers=null!==(g=e.missingFieldHandlers)&&void 0!==g?g:[],this._operationTracker=null!==(E=e.operationTracker)&&void 0!==E?E:new c,this._reactFlightPayloadDeserializer=I,this._reactFlightServerErrorHandler=D,this._shouldProcessClientComponents=e.shouldProcessClientComponents,d(this)}var t=e.prototype;return t.getStore=function(){return this._store},t.getNetwork=function(){return this._network},t.getOperationTracker=function(){return this._operationTracker},t.isRequestActive=function(e){return"active"===this._operationExecutions.get(e)},t.UNSTABLE_getDefaultRenderPolicy=function(){return this._defaultRenderPolicy},t.applyUpdate=function(e){var t=this;return this._scheduleUpdates((function(){t._publishQueue.applyUpdate(e),t._publishQueue.run()})),{dispose:function(){t._scheduleUpdates((function(){t._publishQueue.revertUpdate(e),t._publishQueue.run()}))}}},t.revertUpdate=function(e){var t=this;this._scheduleUpdates((function(){t._publishQueue.revertUpdate(e),t._publishQueue.run()}))},t.replaceUpdate=function(e,t){var r=this;this._scheduleUpdates((function(){r._publishQueue.revertUpdate(e),r._publishQueue.applyUpdate(t),r._publishQueue.run()}))},t.applyMutation=function(e){var t=this._execute({createSource:function(){return l.create((function(e){}))},isClientPayload:!1,operation:e.operation,optimisticConfig:e,updater:null}).subscribe({});return{dispose:function(){return t.unsubscribe()}}},t.check=function(e){return 0!==this._missingFieldHandlers.length||function(e){return"Operation"===e.root.node.kind&&null!=e.root.node.clientAbstractTypes}(e)?this._checkSelectorAndHandleMissingFields(e,this._missingFieldHandlers):this._store.check(e)},t.commitPayload=function(e,t){this._execute({createSource:function(){return l.from({data:t})},isClientPayload:!0,operation:e,optimisticConfig:null,updater:null}).subscribe({})},t.commitUpdate=function(e){var t=this;this._scheduleUpdates((function(){t._publishQueue.commitUpdate(e),t._publishQueue.run()}))},t.lookup=function(e){return this._store.lookup(e)},t.subscribe=function(e,t){return this._store.subscribe(e,t)},t.retain=function(e){return this._store.retain(e)},t.isServer=function(){return this._isServer},t._checkSelectorAndHandleMissingFields=function(e,t){var r=this,n=g.create(),i=this._store.getSource(),a=this._store.check(e,{handlers:t,defaultActorIdentifier:o,getSourceForActor:function(e){return s(e),i},getTargetForActor:function(e){return s(e),n}});return n.size()>0&&this._scheduleUpdates((function(){r._publishQueue.commitSource(n),r._publishQueue.run()})),a},t._scheduleUpdates=function(e){var t=this._scheduler;null!=t?t.schedule(e):e()},t.execute=function(e){var t=this,r=e.operation;return this._execute({createSource:function(){return t.getNetwork().execute(r.request.node.params,r.request.variables,r.request.cacheConfig||{},null)},isClientPayload:!1,operation:r,optimisticConfig:null,updater:null})},t.executeSubscription=function(e){var t=this,r=e.operation,n=e.updater;return this._execute({createSource:function(){return t.getNetwork().execute(r.request.node.params,r.request.variables,r.request.cacheConfig||{},null)},isClientPayload:!1,operation:r,optimisticConfig:null,updater:n})},t.executeMutation=function(e){var t,r=this,i=e.operation,a=e.optimisticResponse,o=e.optimisticUpdater,s=e.updater,l=e.uploadables;return(a||o)&&(t={operation:i,response:a,updater:o}),this._execute({createSource:function(){return r.getNetwork().execute(i.request.node.params,i.request.variables,(0,n.default)((0,n.default)({},i.request.cacheConfig),{},{force:!0}),l)},isClientPayload:!1,operation:i,optimisticConfig:t,updater:s})},t.executeWithSource=function(e){var t=e.operation,r=e.source;return this._execute({createSource:function(){return r},isClientPayload:!1,operation:t,optimisticConfig:null,updater:null})},t.toJSON=function(){var e;return"RelayModernEnvironment(".concat(null!==(e=this.configName)&&void 0!==e?e:"",")")},t._execute=function(e){var t=this,r=e.createSource,n=e.isClientPayload,i=e.operation,a=e.optimisticConfig,u=e.updater,c=this._publishQueue,d=this._store;return l.create((function(e){var l=_.execute({actorIdentifier:o,getDataID:t._getDataID,isClientPayload:n,log:t.__log,operation:i,operationExecutions:t._operationExecutions,operationLoader:t._operationLoader,operationTracker:t._operationTracker,optimisticConfig:a,getPublishQueue:function(e){return s(e),c},reactFlightPayloadDeserializer:t._reactFlightPayloadDeserializer,reactFlightServerErrorHandler:t._reactFlightServerErrorHandler,scheduler:t._scheduler,shouldProcessClientComponents:t._shouldProcessClientComponents,sink:e,source:r(),getStore:function(e){return s(e),d},treatMissingFieldsAsNull:t._treatMissingFieldsAsNull,updater:u});return function(){return l.cancel()}}))},e}();function y(){}E.prototype["@@RelayModernEnvironment"]=!0,e.exports=E},function(e,t,r){"use strict";var n=r(45);e.exports=function(e,t){return{execute:function(r,i,a,o){var s=n(),l={start:function(t){e.__log({name:"network.start",networkRequestId:s,params:r,variables:i,cacheConfig:a})},next:function(t){e.__log({name:"network.next",networkRequestId:s,response:t})},error:function(t){e.__log({name:"network.error",networkRequestId:s,error:t})},complete:function(){e.__log({name:"network.complete",networkRequestId:s})},unsubscribe:function(){e.__log({name:"network.unsubscribe",networkRequestId:s})}};return t.execute(r,i,a,o,(function(t){e.__log({name:"network.info",networkRequestId:s,info:t})})).do(l)}}}},function(e,t,r){"use strict";(function(t){e.exports=function(e){var r=void 0!==t?t:"undefined"!=typeof window?window:void 0,n=r&&r.__RELAY_DEVTOOLS_HOOK__;n&&n.registerEnvironment(e)}}).call(this,r(47))},function(e,t,r){"use strict";e.exports=function(e){if("missing_field.log"===e.kind)throw new Error("Relay Environment Configuration Error (dev only): `@required(action: LOG)` requires that the Relay Environment be configured with a `requiredFieldLogger`.")}},function(e,t,r){"use strict";var n=r(1).default,i=n(r(7)),a=n(r(4)),o=n(r(19)),s=n(r(16)),l=r(15),u=r(45),c=r(33),d=r(50),f=r(5),h=r(17),p=r(80),_=r(9),v=_.generateClientID,g=_.generateUniqueClientID,m=r(12).getLocalVariables,E=r(8),y=r(11),R=y.createNormalizationSelector,b=y.createReaderSelector,I=r(20),D=r(81),S=r(2),A=S.ROOT_TYPE,T=S.TYPENAME_KEY,k=S.getStorageKey,N=r(0),O=r(3);var F=function(){function e(e){var t=this,r=e.actorIdentifier,n=e.getDataID,i=e.getPublishQueue,a=e.getStore,s=e.isClientPayload,l=e.operation,c=e.operationExecutions,d=e.operationLoader,f=e.operationTracker,h=e.optimisticConfig,_=e.reactFlightPayloadDeserializer,v=e.reactFlightServerErrorHandler,g=e.scheduler,m=e.shouldProcessClientComponents,E=e.sink,y=e.source,R=e.treatMissingFieldsAsNull,b=e.updater,I=e.log;(0,o.default)(this,"_deserializeReactFlightPayloadWithLogging",(function(e){var r=t._reactFlightPayloadDeserializer;"function"!=typeof r&&N(!1,"OperationExecutor: Expected reactFlightPayloadDeserializer to be available when calling _deserializeReactFlightPayloadWithLogging.");var n=p((function(){return r(e)})),i=n[0],a=n[1];return t._log({name:"execute.flight.payload_deserialize",executeId:t._executeId,operationName:t._operation.request.node.params.name,duration:i}),a})),this._actorIdentifier=r,this._getDataID=n,this._treatMissingFieldsAsNull=R,this._incrementalPayloadsPending=!1,this._incrementalResults=new Map,this._log=I,this._executeId=u(),this._nextSubscriptionId=0,this._operation=l,this._operationExecutions=c,this._operationLoader=d,this._operationTracker=f,this._operationUpdateEpochs=new Map,this._optimisticUpdates=null,this._pendingModulePayloadsCount=0,this._getPublishQueue=i,this._scheduler=g,this._sink=E,this._source=new Map,this._state="started",this._getStore=a,this._subscriptions=new Map,this._updater=b,this._isClientPayload=!0===s,this._reactFlightPayloadDeserializer=_,this._reactFlightServerErrorHandler=v,this._isSubscriptionOperation="subscription"===this._operation.request.node.params.operationKind,this._shouldProcessClientComponents=m,this._retainDisposables=new Map,this._seenActors=new Set,this._completeFns=[];var D=this._nextSubscriptionId++;y.subscribe({complete:function(){return t._complete(D)},error:function(e){return t._error(e)},next:function(e){try{t._next(D,e)}catch(e){E.error(e)}},start:function(e){var r;t._start(D,e),t._log({name:"execute.start",executeId:t._executeId,params:t._operation.request.node.params,variables:t._operation.request.variables,cacheConfig:null!==(r=t._operation.request.cacheConfig)&&void 0!==r?r:{}})}}),null!=h&&this._processOptimisticResponse(null!=h.response?{data:h.response}:null,h.updater,!1)}var t=e.prototype;return t.cancel=function(){var e=this;if("completed"!==this._state){this._state="completed",this._operationExecutions.delete(this._operation.request.identifier),0!==this._subscriptions.size&&(this._subscriptions.forEach((function(e){return e.unsubscribe()})),this._subscriptions.clear());var t=this._optimisticUpdates;null!==t&&(this._optimisticUpdates=null,t.forEach((function(t){return e._getPublishQueueAndSaveActor().revertUpdate(t)})),this._runPublishQueue()),this._incrementalResults.clear(),null!=this._asyncStoreUpdateDisposable&&(this._asyncStoreUpdateDisposable.dispose(),this._asyncStoreUpdateDisposable=null),this._completeFns=[],this._completeOperationTracker(),this._disposeRetainedData()}},t._updateActiveState=function(){var e;switch(this._state){case"started":case"loading_incremental":e="active";break;case"completed":e="inactive";break;case"loading_final":e=this._pendingModulePayloadsCount>0?"active":"inactive";break;default:this._state,N(!1,"OperationExecutor: invalid executor state.")}this._operationExecutions.set(this._operation.request.identifier,e)},t._schedule=function(e){var t=this,r=this._scheduler;if(null!=r){var n=this._nextSubscriptionId++;l.create((function(t){var n=r.schedule((function(){try{e(),t.complete()}catch(e){t.error(e)}}));return function(){return r.cancel(n)}})).subscribe({complete:function(){return t._complete(n)},error:function(e){return t._error(e)},start:function(e){return t._start(n,e)}})}else e()},t._complete=function(e){this._subscriptions.delete(e),0===this._subscriptions.size&&(this.cancel(),this._sink.complete(),this._log({name:"execute.complete",executeId:this._executeId}))},t._error=function(e){this.cancel(),this._sink.error(e),this._log({name:"execute.error",executeId:this._executeId,error:e})},t._start=function(e,t){this._subscriptions.set(e,t),this._updateActiveState()},t._next=function(e,t){var r=this;this._schedule((function(){var e=p((function(){r._handleNext(t),r._maybeCompleteSubscriptionOperationTracking()}))[0];r._log({name:"execute.next",executeId:r._executeId,response:t,duration:e})}))},t._handleErrorResponse=function(e){var t=this,r=[];return e.forEach((function(e){if(null!==e.data||null==e.extensions||e.hasOwnProperty("errors")){if(null==e.data){var n=e.hasOwnProperty("errors")&&null!=e.errors?e.errors:null,i=n?n.map((function(e){return e.message})).join("\n"):"(No errors)",a=d.create("RelayNetwork","No data returned for operation `"+t._operation.request.node.params.name+"`, got error(s):\n"+i+"\n\nSee the error `source` property for more information.");throw a.source={errors:n,operation:t._operation.request.node,variables:t._operation.request.variables},a.stack,a}var o=e;r.push(o)}})),r},t._handleOptimisticResponses=function(e){var t;if(e.length>1)return e.some((function(e){var t;return!0===(null===(t=e.extensions)||void 0===t?void 0:t.isOptimistic)}))&&N(!1,"OperationExecutor: Optimistic responses cannot be batched."),!1;var r=e[0],n=!0===(null===(t=r.extensions)||void 0===t?void 0:t.isOptimistic);return n&&"started"!==this._state&&N(!1,"OperationExecutor: optimistic payload received after server payload."),!!n&&(this._processOptimisticResponse(r,null,this._treatMissingFieldsAsNull),this._sink.next(r),!0)},t._handleNext=function(e){if("completed"!==this._state){this._seenActors.clear();var t=Array.isArray(e)?e:[e],r=this._handleErrorResponse(t);if(0===r.length)return t.some((function(e){var t;return!0===(null===(t=e.extensions)||void 0===t?void 0:t.is_final)}))&&(this._state="loading_final",this._updateActiveState(),this._incrementalPayloadsPending=!1),void this._sink.next(e);if(!this._handleOptimisticResponses(r)){var n=function(e){var t=[],r=[];return e.forEach((function(e){if(null!=e.path||null!=e.label){var n=e.label,i=e.path;null!=n&&null!=i||N(!1,"OperationExecutor: invalid incremental payload, expected `path` and `label` to either both be null/undefined, or `path` to be an `Array<string | number>` and `label` to be a `string`."),r.push({label:n,path:i,response:e})}else t.push(e)})),[t,r]}(r),i=n[0],a=n[1],o=i.length>0;if(o){if(this._isSubscriptionOperation){var s=g();this._operation={request:this._operation.request,fragment:b(this._operation.fragment.node,s,this._operation.fragment.variables,this._operation.fragment.owner),root:R(this._operation.root.node,s,this._operation.root.variables)}}var l=this._processResponses(i);this._processPayloadFollowups(l)}if(a.length>0){var u=this._processIncrementalResponses(a);this._processPayloadFollowups(u)}this._isSubscriptionOperation&&(null==r[0].extensions?r[0].extensions={__relay_subscription_root_id:this._operation.fragment.dataID}:r[0].extensions.__relay_subscription_root_id=this._operation.fragment.dataID);var c=this._runPublishQueue(o?this._operation:void 0);o&&this._incrementalPayloadsPending&&this._retainData(),this._updateOperationTracker(c),this._sink.next(e)}}},t._processOptimisticResponse=function(e,t,r){var n=this;if(null!==this._optimisticUpdates&&N(!1,"OperationExecutor: environment.execute: only support one optimistic response per execute."),null!=e||null!=t){var i=[];if(e){var a=L(e,this._operation.root,A,{actorIdentifier:this._actorIdentifier,getDataID:this._getDataID,path:[],reactFlightPayloadDeserializer:null!=this._reactFlightPayloadDeserializer?this._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:this._reactFlightServerErrorHandler,shouldProcessClientComponents:this._shouldProcessClientComponents,treatMissingFieldsAsNull:r});P(a),i.push({operation:this._operation,payload:a,updater:t}),this._processOptimisticFollowups(a,i)}else t&&i.push({operation:this._operation,payload:{errors:null,fieldPayloads:null,incrementalPlaceholders:null,followupPayloads:null,source:I.create(),isFinal:!1},updater:t});this._optimisticUpdates=i,i.forEach((function(e){return n._getPublishQueueAndSaveActor().applyUpdate(e)})),this._runPublishQueue()}},t._processOptimisticFollowups=function(e,t){if(e.followupPayloads&&e.followupPayloads.length){var r,n=e.followupPayloads,i=(0,a.default)(n);try{for(i.s();!(r=i.n()).done;){var o=r.value;switch(o.kind){case"ModuleImportPayload":var l=this._expectOperationLoader().get(o.operationReference);if(null==l)this._processAsyncOptimisticModuleImport(o);else{var u=this._processOptimisticModuleImport(l,o);t.push.apply(t,(0,s.default)(u))}break;case"ActorPayload":O(!1,"OperationExecutor: Unexpected optimistic ActorPayload. These updates are not supported.");break;default:N(!1,"OperationExecutor: Unexpected followup kind `%s`. when processing optimistic updates.",o.kind)}}}catch(e){i.e(e)}finally{i.f()}}},t._normalizeFollowupPayload=function(e,t){var r;r="SplitOperation"===t.kind&&"ModuleImportPayload"===e.kind?m(e.variables,t.argumentDefinitions,e.args):e.variables;var n=R(t,e.dataID,r);return L({data:e.data},n,e.typeName,{actorIdentifier:this._actorIdentifier,getDataID:this._getDataID,path:e.path,reactFlightPayloadDeserializer:null!=this._reactFlightPayloadDeserializer?this._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:this._reactFlightServerErrorHandler,treatMissingFieldsAsNull:this._treatMissingFieldsAsNull,shouldProcessClientComponents:this._shouldProcessClientComponents})},t._processOptimisticModuleImport=function(e,t){var r=c(e),n=[],i=this._normalizeFollowupPayload(t,r);return P(i),n.push({operation:this._operation,payload:i,updater:null}),this._processOptimisticFollowups(i,n),n},t._processAsyncOptimisticModuleImport=function(e){var t=this;this._expectOperationLoader().load(e.operationReference).then((function(r){if(null!=r&&"started"===t._state){var n,i=t._processOptimisticModuleImport(r,e);if(i.forEach((function(e){return t._getPublishQueueAndSaveActor().applyUpdate(e)})),null==t._optimisticUpdates)O(!1,"OperationExecutor: Unexpected ModuleImport optimistic update in operation %s."+t._operation.request.node.params.name);else(n=t._optimisticUpdates).push.apply(n,(0,s.default)(i)),t._runPublishQueue()}}))},t._processResponses=function(e){var t=this;return null!==this._optimisticUpdates&&(this._optimisticUpdates.forEach((function(e){t._getPublishQueueAndSaveActor().revertUpdate(e)})),this._optimisticUpdates=null),this._incrementalPayloadsPending=!1,this._incrementalResults.clear(),this._source.clear(),e.map((function(e){var r=L(e,t._operation.root,A,{actorIdentifier:t._actorIdentifier,getDataID:t._getDataID,path:[],reactFlightPayloadDeserializer:null!=t._reactFlightPayloadDeserializer?t._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:t._reactFlightServerErrorHandler,treatMissingFieldsAsNull:t._treatMissingFieldsAsNull,shouldProcessClientComponents:t._shouldProcessClientComponents});return t._getPublishQueueAndSaveActor().commitPayload(t._operation,r,t._updater),r}))},t._processPayloadFollowups=function(e){var t=this;"completed"!==this._state&&e.forEach((function(e){var r=e.incrementalPlaceholders,n=e.followupPayloads,i=e.isFinal;if(t._state=i?"loading_final":"loading_incremental",t._updateActiveState(),i&&(t._incrementalPayloadsPending=!1),n&&0!==n.length&&n.forEach((function(e){var r,n=t._actorIdentifier;t._actorIdentifier=null!==(r=e.actorIdentifier)&&void 0!==r?r:t._actorIdentifier,t._processFollowupPayload(e),t._actorIdentifier=n})),r&&0!==r.length&&(t._incrementalPayloadsPending="loading_final"!==t._state,r.forEach((function(r){var n,i=t._actorIdentifier;t._actorIdentifier=null!==(n=r.actorIdentifier)&&void 0!==n?n:t._actorIdentifier,t._processIncrementalPlaceholder(e,r),t._actorIdentifier=i})),t._isClientPayload||"loading_final"===t._state)){O(t._isClientPayload,"RelayModernEnvironment: Operation `%s` contains @defer/@stream directives but was executed in non-streaming mode. See https://fburl.com/relay-incremental-delivery-non-streaming-warning.",t._operation.request.node.params.name);var a=[];r.forEach((function(e){"defer"===e.kind&&a.push(t._processDeferResponse(e.label,e.path,e,{data:e.data}))})),a.length>0&&t._processPayloadFollowups(a)}}))},t._maybeCompleteSubscriptionOperationTracking=function(){this._isSubscriptionOperation&&0===this._pendingModulePayloadsCount&&!1===this._incrementalPayloadsPending&&this._completeOperationTracker()},t._processFollowupPayload=function(e){var t=this;switch(e.kind){case"ModuleImportPayload":var r=this._expectOperationLoader(),n=r.get(e.operationReference);if(null!=n)this._processFollowupPayloadWithNormalizationNode(e,c(n));else{var i=this._nextSubscriptionId++;this._pendingModulePayloadsCount++;var a=function(){t._pendingModulePayloadsCount--,t._maybeCompleteSubscriptionOperationTracking()},o=l.from(new Promise((function(t,n){r.load(e.operationReference).then(t,n)})));l.create((function(r){var n,i=o.subscribe({next:function(i){if(null!=i){var a=function(){try{var n=c(i),a=f.BATCH_ASYNC_MODULE_UPDATES_FN,o=null!=a&&t._pendingModulePayloadsCount>1,s=p((function(){if(t._handleFollowupPayload(e,n),o)t._scheduleAsyncStoreUpdate(a,r.complete);else{var i=t._runPublishQueue();t._updateOperationTracker(i)}}))[0];t._log({name:"execute.async.module",executeId:t._executeId,operationName:n.name,duration:s}),o||r.complete()}catch(e){r.error(e)}},o=t._scheduler;null==o?a():n=o.schedule(a)}else r.complete()},error:r.error});return function(){i.unsubscribe(),null!=t._scheduler&&null!=n&&t._scheduler.cancel(n)}})).subscribe({complete:function(){t._complete(i),a()},error:function(e){t._error(e),a()},start:function(e){return t._start(i,e)}})}break;case"ActorPayload":this._processFollowupPayloadWithNormalizationNode(e,e.node);break;default:N(!1,"OperationExecutor: Unexpected followup kind `%s`.",e.kind)}},t._processFollowupPayloadWithNormalizationNode=function(e,t){this._handleFollowupPayload(e,t),this._maybeCompleteSubscriptionOperationTracking()},t._handleFollowupPayload=function(e,t){var r=this._normalizeFollowupPayload(e,t);this._getPublishQueueAndSaveActor().commitPayload(this._operation,r),this._processPayloadFollowups([r])},t._processIncrementalPlaceholder=function(e,t){var r,n=t.label,i=t.path.map(String).join("."),a=this._incrementalResults.get(n);null==a&&(a=new Map,this._incrementalResults.set(n,a));var o,s=a.get(i),l=null!=s&&"response"===s.kind?s.responses:null;a.set(i,{kind:"placeholder",placeholder:t}),"stream"===t.kind?o=t.parentID:"defer"===t.kind?o=t.selector.dataID:N(!1,"OperationExecutor: Unsupported incremental placeholder kind `%s`.",t.kind);var u,c,d=e.source.get(o),f=(null!==(r=e.fieldPayloads)&&void 0!==r?r:[]).filter((function(e){var t=v(e.dataID,e.fieldKey);return e.dataID===o||t===o}));null==d&&N(!1,"OperationExecutor: Expected record `%s` to exist.",o);var p=this._source.get(o);if(null!=p){u=E.update(p.record,d);var _=new Map,g=function(e){var t,r,n=(t=e,null!==(r=JSON.stringify(h(t)))&&void 0!==r?r:"");_.set(n,e)};p.fieldPayloads.forEach(g),f.forEach(g),c=Array.from(_.values())}else u=d,c=f;if(this._source.set(o,{record:u,fieldPayloads:c}),null!=l){var m=this._processIncrementalResponses(l);this._processPayloadFollowups(m)}},t._processIncrementalResponses=function(e){var t=this,r=[];return e.forEach((function(e){var n=e.label,i=e.path,a=e.response,o=t._incrementalResults.get(n);if(null==o&&(o=new Map,t._incrementalResults.set(n,o)),-1!==n.indexOf("$defer$")){var s=i.map(String).join("."),l=o.get(s);if(null==l)return l={kind:"response",responses:[e]},void o.set(s,l);if("response"===l.kind)return void l.responses.push(e);var u=l.placeholder;"defer"!==u.kind&&N(!1,"OperationExecutor: Expected data for path `%s` for label `%s` to be data for @defer, was `@%s`.",s,n,u.kind),r.push(t._processDeferResponse(n,i,u,a))}else{var c=i.slice(0,-2).map(String).join("."),d=o.get(c);if(null==d)return d={kind:"response",responses:[e]},void o.set(c,d);if("response"===d.kind)return void d.responses.push(e);var f=d.placeholder;"stream"!==f.kind&&N(!1,"OperationExecutor: Expected data for path `%s` for label `%s` to be data for @stream, was `@%s`.",c,n,f.kind),r.push(t._processStreamResponse(n,i,f,a))}})),r},t._processDeferResponse=function(e,t,r,n){var i,a=r.selector.dataID,o=this._actorIdentifier;this._actorIdentifier=null!==(i=r.actorIdentifier)&&void 0!==i?i:this._actorIdentifier;var s=L(n,r.selector,r.typeName,{actorIdentifier:this._actorIdentifier,getDataID:this._getDataID,path:r.path,reactFlightPayloadDeserializer:null!=this._reactFlightPayloadDeserializer?this._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:this._reactFlightServerErrorHandler,treatMissingFieldsAsNull:this._treatMissingFieldsAsNull,shouldProcessClientComponents:this._shouldProcessClientComponents});this._getPublishQueueAndSaveActor().commitPayload(this._operation,s);var l=this._source.get(a);null==l&&N(!1,"OperationExecutor: Expected the parent record `%s` for @defer data to exist.",a);var u=l.fieldPayloads;if(0!==u.length){var c,d={errors:null,fieldPayloads:u,incrementalPlaceholders:null,followupPayloads:null,source:I.create(),isFinal:!0===(null===(c=n.extensions)||void 0===c?void 0:c.is_final)};this._getPublishQueueAndSaveActor().commitPayload(this._operation,d)}return this._actorIdentifier=o,s},t._processStreamResponse=function(e,t,r,n){var i=r.parentID,a=r.node,o=r.variables,l=r.actorIdentifier,u=this._actorIdentifier;this._actorIdentifier=null!=l?l:this._actorIdentifier;var c=a.selections[0];(null==c||"LinkedField"!==c.kind||!0!==c.plural)&&N(!1,"OperationExecutor: Expected @stream to be used on a plural field.");var d=this._normalizeStreamItem(n,i,c,o,t,r.path),f=d.fieldPayloads,h=d.itemID,p=d.itemIndex,_=d.prevIDs,v=d.relayPayload,g=d.storageKey;if(this._getPublishQueueAndSaveActor().commitPayload(this._operation,v,(function(e){var t=e.get(i);if(null!=t){var r=t.getLinkedRecords(g);if(null!=r&&r.length===_.length&&!r.some((function(e,t){return _[t]!==(e&&e.getDataID())}))){var n=(0,s.default)(r);n[p]=e.get(h),t.setLinkedRecords(n,g)}}})),0!==f.length){var m={errors:null,fieldPayloads:f,incrementalPlaceholders:null,followupPayloads:null,source:I.create(),isFinal:!1};this._getPublishQueueAndSaveActor().commitPayload(this._operation,m)}return this._actorIdentifier=u,v},t._normalizeStreamItem=function(e,t,r,n,i,a){var o,l,u,c,d=e.data;"object"!=typeof d&&N(!1,"OperationExecutor: Expected the GraphQL @stream payload `data` value to be an object.");var f=null!==(o=r.alias)&&void 0!==o?o:r.name,h=k(r,n),p=this._source.get(t);null==p&&N(!1,"OperationExecutor: Expected the parent record `%s` for @stream data to exist.",t);var _=p.record,g=p.fieldPayloads,m=E.getLinkedRecordIDs(_,h);null==m&&N(!1,"OperationExecutor: Expected record `%s` to have fetched field `%s` with @stream.",t,r.name);var y=i[i.length-1],b=parseInt(y,10);b===y&&b>=0||N(!1,"OperationExecutor: Expected path for @stream to end in a positive integer index, got `%s`",y);var I=null!==(l=r.concreteType)&&void 0!==l?l:d[T];"string"!=typeof I&&N(!1,"OperationExecutor: Expected @stream field `%s` to have a __typename.",r.name);var D=null!==(u=null!==(c=this._getDataID(d,I))&&void 0!==c?c:null==m?void 0:m[b])&&void 0!==u?u:v(t,h,b);"string"!=typeof D&&N(!1,"OperationExecutor: Expected id of elements of field `%s` to be strings.",h);var S=R(r,D,n),A=E.clone(_),O=(0,s.default)(m);return O[b]=D,E.setLinkedRecordIDs(A,h,O),this._source.set(t,{record:A,fieldPayloads:g}),{fieldPayloads:g,itemID:D,itemIndex:b,prevIDs:m,relayPayload:L(e,S,I,{actorIdentifier:this._actorIdentifier,getDataID:this._getDataID,path:[].concat((0,s.default)(a),[f,String(b)]),reactFlightPayloadDeserializer:null!=this._reactFlightPayloadDeserializer?this._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:this._reactFlightServerErrorHandler,treatMissingFieldsAsNull:this._treatMissingFieldsAsNull,shouldProcessClientComponents:this._shouldProcessClientComponents}),storageKey:h}},t._scheduleAsyncStoreUpdate=function(e,t){var r=this;this._completeFns.push(t),null==this._asyncStoreUpdateDisposable&&(this._asyncStoreUpdateDisposable=e((function(){r._asyncStoreUpdateDisposable=null;var e=r._runPublishQueue();r._updateOperationTracker(e);var t,n=(0,a.default)(r._completeFns);try{for(n.s();!(t=n.n()).done;){(0,t.value)()}}catch(e){n.e(e)}finally{n.f()}r._completeFns=[]})))},t._updateOperationTracker=function(e){null!=e&&e.length>0&&this._operationTracker.update(this._operation.request,new Set(e))},t._completeOperationTracker=function(){this._operationTracker.complete(this._operation.request)},t._getPublishQueueAndSaveActor=function(){return this._seenActors.add(this._actorIdentifier),this._getPublishQueue(this._actorIdentifier)},t._getActorsToVisit=function(){return 0===this._seenActors.size?new Set([this._actorIdentifier]):this._seenActors},t._runPublishQueue=function(e){var t,r=new Set,n=(0,a.default)(this._getActorsToVisit());try{for(n.s();!(t=n.n()).done;){var i=t.value;this._getPublishQueue(i).run(e).forEach((function(e){return r.add(e)}))}}catch(e){n.e(e)}finally{n.f()}return Array.from(r)},t._retainData=function(){var e,t=(0,a.default)(this._getActorsToVisit());try{for(t.s();!(e=t.n()).done;){var r=e.value;this._retainDisposables.has(r)||this._retainDisposables.set(r,this._getStore(r).retain(this._operation))}}catch(e){t.e(e)}finally{t.f()}},t._disposeRetainedData=function(){var e,t=(0,a.default)(this._retainDisposables.values());try{for(t.s();!(e=t.n()).done;){e.value.dispose()}}catch(e){t.e(e)}finally{t.f()}this._retainDisposables.clear()},t._expectOperationLoader=function(){var e=this._operationLoader;return e||N(!1,"OperationExecutor: Expected an operationLoader to be configured when using `@match`."),e},e}();function L(e,t,r,n){var a,o=e.data,s=e.errors,l=I.create(),u=E.create(t.dataID,r);l.set(t.dataID,u);var c=D.normalize(l,t,o,n);return(0,i.default)((0,i.default)({},c),{},{errors:s,isFinal:!0===(null===(a=e.extensions)||void 0===a?void 0:a.is_final)})}function P(e){var t=e.incrementalPlaceholders;null!=t&&0!==t.length&&N(!1,"OperationExecutor: optimistic responses cannot be returned for operations that use incremental data delivery (@defer, @stream, and @stream_connection).")}e.exports={execute:function(e){return new F(e)}}},function(e,t,r){"use strict";var n,i,a="undefined"!=typeof window&&"function"==typeof(null===(n=window)||void 0===n||null===(i=n.performance)||void 0===i?void 0:i.now);function o(){return a?window.performance.now():Date.now()}e.exports=function(e){var t=o(),r=e();return[o()-t,r]}},function(e,t,r){"use strict";var n=r(1).default,i=n(r(4)),a=n(r(16)),o=r(82),s=o.ACTOR_IDENTIFIER_FIELD_NAME,l=o.getActorIdentifierFromPayload,u=r(6),c=u.ACTOR_CHANGE,d=u.CLIENT_COMPONENT,f=u.CLIENT_EXTENSION,h=u.CONDITION,p=u.DEFER,_=u.FLIGHT_FIELD,v=u.FRAGMENT_SPREAD,g=u.INLINE_FRAGMENT,m=u.LINKED_FIELD,E=u.LINKED_HANDLE,y=u.MODULE_IMPORT,R=u.RELAY_RESOLVER,b=u.SCALAR_FIELD,I=u.SCALAR_HANDLE,D=u.STREAM,S=u.TYPE_DISCRIMINATOR,A=r(5),T=r(9),k=T.generateClientID,N=T.isClientID,O=r(12).getLocalVariables,F=r(8),L=r(11).createNormalizationSelector,P=r(21),x=P.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY,C=P.REACT_FLIGHT_TREE_STORAGE_KEY,w=P.REACT_FLIGHT_TYPE_NAME,M=P.refineToReactFlightPayloadData,U=r(2),V=U.ROOT_ID,j=U.ROOT_TYPE,q=U.TYPENAME_KEY,G=U.getArgumentValues,H=U.getHandleStorageKey,K=U.getModuleComponentKey,z=U.getModuleOperationKey,Y=U.getStorageKey,B=r(26),Q=B.TYPE_SCHEMA_TYPE,W=B.generateTypeID,J=r(14),X=r(0),Z=r(3);var $=function(){function e(e,t,r){this._actorIdentifier=r.actorIdentifier,this._getDataId=r.getDataID,this._handleFieldPayloads=[],this._treatMissingFieldsAsNull=r.treatMissingFieldsAsNull,this._incrementalPlaceholders=[],this._isClientExtension=!1,this._isUnmatchedAbstractType=!1,this._followupPayloads=[],this._path=r.path?(0,a.default)(r.path):[],this._recordSource=e,this._variables=t,this._reactFlightPayloadDeserializer=r.reactFlightPayloadDeserializer,this._reactFlightServerErrorHandler=r.reactFlightServerErrorHandler,this._shouldProcessClientComponents=r.shouldProcessClientComponents}var t=e.prototype;return t.normalizeResponse=function(e,t,r){var n=this._recordSource.get(t);return n||X(!1,"RelayResponseNormalizer(): Expected root record `%s` to exist.",t),this._assignClientAbstractTypes(e),this._traverseSelections(e,n,r),{errors:null,fieldPayloads:this._handleFieldPayloads,incrementalPlaceholders:this._incrementalPlaceholders,followupPayloads:this._followupPayloads,source:this._recordSource,isFinal:!1}},t._assignClientAbstractTypes=function(e){var t=e.clientAbstractTypes;if(null!=t)for(var r=0,n=Object.keys(t);r<n.length;r++){var a,o=n[r],s=(0,i.default)(t[o]);try{for(s.s();!(a=s.n()).done;){var l=a.value,u=W(l),c=this._recordSource.get(u);null==c&&(c=F.create(u,Q),this._recordSource.set(u,c)),F.setValue(c,o,!0)}}catch(e){s.e(e)}finally{s.f()}}},t._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||X(!1,"RelayResponseNormalizer(): Undefined variable `%s`.",e),this._variables[e]},t._getRecordType=function(e){var t=e[q];return null==t&&X(!1,"RelayResponseNormalizer(): Expected a typename for record `%s`.",JSON.stringify(e,null,2)),t},t._traverseSelections=function(e,t,r){for(var n=0;n<e.selections.length;n++){var i=e.selections[n];switch(i.kind){case b:case m:this._normalizeField(e,i,t,r);break;case h:Boolean(this._getVariableValue(i.condition))===i.passingValue&&this._traverseSelections(i,t,r);break;case v:var a=this._variables;this._variables=O(this._variables,i.fragment.argumentDefinitions,i.args),this._traverseSelections(i.fragment,t,r),this._variables=a;break;case g:var o=i.abstractKey;if(null==o){F.getType(t)===i.type&&this._traverseSelections(i,t,r)}else{var s=r.hasOwnProperty(o),l=F.getType(t),u=W(l),T=this._recordSource.get(u);null==T&&(T=F.create(u,Q),this._recordSource.set(u,T)),F.setValue(T,o,s),s&&this._traverseSelections(i,t,r)}break;case S:var k=i.abstractKey,N=r.hasOwnProperty(k),L=F.getType(t),P=W(L),x=this._recordSource.get(P);null==x&&(x=F.create(P,Q),this._recordSource.set(P,x)),F.setValue(x,k,N);break;case E:case I:var C=i.args?G(i.args,this._variables):{},w=Y(i,this._variables),M=H(i,this._variables);this._handleFieldPayloads.push({args:C,dataID:F.getDataID(t),fieldKey:w,handle:i.handle,handleKey:M,handleArgs:i.handleArgs?G(i.handleArgs,this._variables):{}});break;case y:this._normalizeModuleImport(e,i,t,r);break;case p:this._normalizeDefer(i,t,r);break;case D:this._normalizeStream(i,t,r);break;case f:var U=this._isClientExtension;this._isClientExtension=!0,this._traverseSelections(i,t,r),this._isClientExtension=U;break;case d:if(!1===this._shouldProcessClientComponents)break;this._traverseSelections(i.fragment,t,r);break;case _:if(!A.ENABLE_REACT_FLIGHT_COMPONENT_FIELD)throw new Error("Flight fields are not yet supported.");this._normalizeFlightField(e,i,t,r);break;case c:this._normalizeActorChange(e,i,t,r);break;case R:null!=i.fragment&&this._traverseSelections(i.fragment,t,r);break;default:X(!1,"RelayResponseNormalizer(): Unexpected ast kind `%s`.",i.kind)}}},t._normalizeDefer=function(e,t,r){var n=null===e.if||this._getVariableValue(e.if);Z("boolean"==typeof n,"RelayResponseNormalizer: Expected value for @defer `if` argument to be a boolean, got `%s`.",n),!1===n?this._traverseSelections(e,t,r):this._incrementalPlaceholders.push({kind:"defer",data:r,label:e.label,path:(0,a.default)(this._path),selector:L(e,F.getDataID(t),this._variables),typeName:F.getType(t),actorIdentifier:this._actorIdentifier})},t._normalizeStream=function(e,t,r){this._traverseSelections(e,t,r);var n=null===e.if||this._getVariableValue(e.if);Z("boolean"==typeof n,"RelayResponseNormalizer: Expected value for @stream `if` argument to be a boolean, got `%s`.",n),!0===n&&this._incrementalPlaceholders.push({kind:"stream",label:e.label,path:(0,a.default)(this._path),parentID:F.getDataID(t),node:e,variables:this._variables,actorIdentifier:this._actorIdentifier})},t._normalizeModuleImport=function(e,t,r,n){"object"==typeof n&&n||X(!1,"RelayResponseNormalizer: Expected data for @module to be an object.");var i=F.getType(r),o=K(t.documentName),s=t.componentModuleProvider||n[o];F.setValue(r,o,null!=s?s:null);var l=z(t.documentName),u=t.operationModuleProvider||n[l];F.setValue(r,l,null!=u?u:null),null!=u&&this._followupPayloads.push({kind:"ModuleImportPayload",args:t.args,data:n,dataID:F.getDataID(r),operationReference:u,path:(0,a.default)(this._path),typeName:i,variables:this._variables,actorIdentifier:this._actorIdentifier})},t._normalizeField=function(e,t,r,n){"object"==typeof n&&n||X(!1,"writeField(): Expected data for field `%s` to be an object.",t.name);var i=t.alias||t.name,a=Y(t,this._variables),o=n[i];if(null==o){if(void 0===o){if(this._isClientExtension||this._isUnmatchedAbstractType)return;if(!this._treatMissingFieldsAsNull)return void Z(!1,"RelayResponseNormalizer: Payload did not contain a value for field `%s: %s`. Check that you are parsing with the same query that was used to fetch the payload.",i,a)}return t.kind===b&&this._validateConflictingFieldsWithIdenticalId(r,a,null),void F.setValue(r,a,null)}t.kind===b?(this._validateConflictingFieldsWithIdenticalId(r,a,o),F.setValue(r,a,o)):t.kind===m?(this._path.push(i),t.plural?this._normalizePluralLink(t,r,a,o):this._normalizeLink(t,r,a,o),this._path.pop()):X(!1,"RelayResponseNormalizer(): Unexpected ast kind `%s` during normalization.",t.kind)},t._normalizeActorChange=function(e,t,r,n){var i,o=t.linkedField;"object"==typeof n&&n||X(!1,"_normalizeActorChange(): Expected data for field `%s` to be an object.",o.name);var u=o.alias||o.name,c=Y(o,this._variables),d=n[u];if(null!=d){var f=l(d);if(null==f)return Z(!1,"RelayResponseNormalizer: Payload did not contain a value for field `%s`. Check that you are parsing with the same query that was used to fetch the payload. Payload is `%s`.",s,JSON.stringify(d,null,2)),void F.setValue(r,c,null);var h=null!==(i=o.concreteType)&&void 0!==i?i:this._getRecordType(d),p=this._getDataId(d,h)||F.getLinkedRecordID(r,c)||k(F.getDataID(r),c);"string"!=typeof p&&X(!1,"RelayResponseNormalizer: Expected id on field `%s` to be a string.",c),F.setActorLinkedRecordID(r,c,f,p),this._followupPayloads.push({kind:"ActorPayload",data:d,dataID:p,path:[].concat((0,a.default)(this._path),[u]),typeName:h,variables:this._variables,node:o,actorIdentifier:f})}else{if(void 0===d){if(this._isClientExtension||this._isUnmatchedAbstractType)return;if(!this._treatMissingFieldsAsNull)return void Z(!1,"RelayResponseNormalizer: Payload did not contain a value for field `%s: %s`. Check that you are parsing with the same query that was used to fetch the payload.",u,c)}F.setValue(r,c,null)}},t._normalizeFlightField=function(e,t,r,n){var a=t.alias||t.name,o=Y(t,this._variables),s=n[a];if(null!=s){var l=M(s),u=this._reactFlightPayloadDeserializer;null==l&&X(!1,"RelayResponseNormalizer: Expected React Flight payload data to be an object with `status`, tree`, `queries` and `errors` properties, got `%s`.",s),"function"!=typeof u&&X(!1,"RelayResponseNormalizer: Expected reactFlightPayloadDeserializer to be a function, got `%s`.",u),l.errors.length>0&&("function"==typeof this._reactFlightServerErrorHandler?this._reactFlightServerErrorHandler(l.status,l.errors):Z(!1,"RelayResponseNormalizer: Received server errors for field `%s`.\n\n%s\n%s",a,l.errors[0].message,l.errors[0].stack));var c=k(F.getDataID(r),Y(t,this._variables)),d=this._recordSource.get(c);if(null==d&&(d=F.create(c,w),this._recordSource.set(c,d)),null==l.tree)return Z(!1,"RelayResponseNormalizer: Expected `tree` not to be null. This typically indicates that a fatal server error prevented any Server Component rows from being written."),F.setValue(d,C,null),F.setValue(d,x,[]),void F.setLinkedRecordID(r,o,c);var f=u(l.tree);F.setValue(d,C,f);var h,p=[],_=(0,i.default)(l.queries);try{for(_.s();!(h=_.n()).done;){var v=h.value;null!=v.response.data&&this._followupPayloads.push({kind:"ModuleImportPayload",args:null,data:v.response.data,dataID:V,operationReference:v.module,path:[],typeName:j,variables:v.variables,actorIdentifier:this._actorIdentifier}),p.push({module:v.module,variables:v.variables})}}catch(e){_.e(e)}finally{_.f()}var g,m=(0,i.default)(l.fragments);try{for(m.s();!(g=m.n()).done;){var E=g.value;null!=E.response.data&&this._followupPayloads.push({kind:"ModuleImportPayload",args:null,data:E.response.data,dataID:E.__id,operationReference:E.module,path:[],typeName:E.__typename,variables:E.variables,actorIdentifier:this._actorIdentifier}),p.push({module:E.module,variables:E.variables})}}catch(e){m.e(e)}finally{m.f()}F.setValue(d,x,p),F.setLinkedRecordID(r,o,c)}else{if(void 0===s){if(this._isUnmatchedAbstractType)return;this._treatMissingFieldsAsNull||X(!1,"RelayResponseNormalizer: Payload did not contain a value for field `%s: %s`. Check that you are parsing with the same query that was used to fetch the payload.",a,o)}F.setValue(r,o,null)}},t._normalizeLink=function(e,t,r,n){var i;"object"==typeof n&&n||X(!1,"RelayResponseNormalizer: Expected data for field `%s` to be an object.",r);var a=this._getDataId(n,null!==(i=e.concreteType)&&void 0!==i?i:this._getRecordType(n))||F.getLinkedRecordID(t,r)||k(F.getDataID(t),r);"string"!=typeof a&&X(!1,"RelayResponseNormalizer: Expected id on field `%s` to be a string.",r),this._validateConflictingLinkedFieldsWithIdenticalId(t,F.getLinkedRecordID(t,r),a,r),F.setLinkedRecordID(t,r,a);var o=this._recordSource.get(a);if(o)this._validateRecordType(o,e,n);else{var s=e.concreteType||this._getRecordType(n);o=F.create(a,s),this._recordSource.set(a,o)}this._traverseSelections(e,o,n)},t._normalizePluralLink=function(e,t,r,n){var i=this;Array.isArray(n)||X(!1,"RelayResponseNormalizer: Expected data for field `%s` to be an array of objects.",r);var a=F.getLinkedRecordIDs(t,r),o=[];n.forEach((function(n,s){var l;if(null!=n){i._path.push(String(s)),"object"!=typeof n&&X(!1,"RelayResponseNormalizer: Expected elements for field `%s` to be objects.",r);var u=i._getDataId(n,null!==(l=e.concreteType)&&void 0!==l?l:i._getRecordType(n))||a&&a[s]||k(F.getDataID(t),r,s);"string"!=typeof u&&X(!1,"RelayResponseNormalizer: Expected id of elements of field `%s` to be strings.",r),o.push(u);var c=i._recordSource.get(u);if(c)i._validateRecordType(c,e,n);else{var d=e.concreteType||i._getRecordType(n);c=F.create(u,d),i._recordSource.set(u,c)}a&&i._validateConflictingLinkedFieldsWithIdenticalId(t,a[s],u,r),i._traverseSelections(e,c,n),i._path.pop()}else o.push(n)})),F.setLinkedRecordIDs(t,r,o)},t._validateRecordType=function(e,t,r){var n,i=null!==(n=t.concreteType)&&void 0!==n?n:this._getRecordType(r),a=F.getDataID(e);Z(N(a)&&a!==V||F.getType(e)===i,"RelayResponseNormalizer: Invalid record `%s`. Expected %s to be consistent, but the record was assigned conflicting types `%s` and `%s`. The GraphQL server likely violated the globally unique id requirement by returning the same id for different objects.",a,q,F.getType(e),i)},t._validateConflictingFieldsWithIdenticalId=function(e,t,r){var n=F.getDataID(e),i=F.getValue(e,t);Z(t===q||void 0===i||J(i,r),"RelayResponseNormalizer: Invalid record. The record contains two instances of the same id: `%s` with conflicting field, %s and its values: %s and %s. If two fields are different but share the same id, one field will overwrite the other.",n,t,i,r)},t._validateConflictingLinkedFieldsWithIdenticalId=function(e,t,r,n){Z(void 0===t||t===r,"RelayResponseNormalizer: Invalid record. The record contains references to the conflicting field, %s and its id values: %s and %s. We need to make sure that the record the field points to remains consistent or one field will overwrite the other.",n,t,r)},e}();e.exports={normalize:function(e,t,r,n){var i=t.dataID,a=t.node,o=t.variables;return new $(e,o,n).normalizeResponse(a,i,r)}}},function(e,t,r){"use strict";var n=r(32).getActorIdentifier;e.exports={ACTOR_IDENTIFIER_FIELD_NAME:"actor_key",getActorIdentifierFromPayload:function(e){if(null!=e&&"object"==typeof e&&"string"==typeof e.actor_key)return n(e.actor_key)}}},function(e,t,r){"use strict";(function(t){var n,i,a=r(51),o=r(52),s=r(85),l=r(34),u=r(20),c=r(0),d=r(3),f=void 0!==t?t:"undefined"!=typeof window?window:void 0,h=null!==(n=null==f||null===(i=f.ErrorUtils)||void 0===i?void 0:i.applyWithGuard)&&void 0!==n?n:function(e,t,r,n,i){return e.apply(t,r)},p=function(){function e(e,t,r){this._hasStoreSnapshot=!1,this._handlerProvider=t||null,this._pendingBackupRebase=!1,this._pendingData=new Set,this._pendingOptimisticUpdates=new Set,this._store=e,this._appliedOptimisticUpdates=new Set,this._gcHold=null,this._getDataID=r}var t=e.prototype;return t.applyUpdate=function(e){(this._appliedOptimisticUpdates.has(e)||this._pendingOptimisticUpdates.has(e))&&c(!1,"RelayPublishQueue: Cannot apply the same update function more than once concurrently."),this._pendingOptimisticUpdates.add(e)},t.revertUpdate=function(e){this._pendingOptimisticUpdates.has(e)?this._pendingOptimisticUpdates.delete(e):this._appliedOptimisticUpdates.has(e)&&(this._pendingBackupRebase=!0,this._appliedOptimisticUpdates.delete(e))},t.revertAll=function(){this._pendingBackupRebase=!0,this._pendingOptimisticUpdates.clear(),this._appliedOptimisticUpdates.clear()},t.commitPayload=function(e,t,r){this._pendingBackupRebase=!0,this._pendingData.add({kind:"payload",operation:e,payload:t,updater:r})},t.commitUpdate=function(e){this._pendingBackupRebase=!0,this._pendingData.add({kind:"updater",updater:e})},t.commitSource=function(e){this._pendingBackupRebase=!0,this._pendingData.add({kind:"source",source:e})},t.run=function(e){var t=0===this._appliedOptimisticUpdates&&!!this._gcHold,r=!this._pendingBackupRebase&&0===this._pendingOptimisticUpdates.size&&!t;if(d(!r,"RelayPublishQueue.run was called, but the call would have been a noop."),d(!0!==this._isRunning,"A store update was detected within another store update. Please make sure new store updates aren't being executed within an updater function for a different update."),this._isRunning=!0,r)return this._isRunning=!1,[];this._pendingBackupRebase&&this._hasStoreSnapshot&&(this._store.restore(),this._hasStoreSnapshot=!1);var n=this._commitData();return(this._pendingOptimisticUpdates.size||this._pendingBackupRebase&&this._appliedOptimisticUpdates.size)&&(this._hasStoreSnapshot||(this._store.snapshot(),this._hasStoreSnapshot=!0),this._applyUpdates()),this._pendingBackupRebase=!1,this._appliedOptimisticUpdates.size>0?this._gcHold||(this._gcHold=this._store.holdGC()):this._gcHold&&(this._gcHold.dispose(),this._gcHold=null),this._isRunning=!1,this._store.notify(e,n)},t._publishSourceFromPayload=function(e){var t=this,r=e.payload,n=e.operation,i=e.updater,l=r.source,u=r.fieldPayloads,d=new a(this._store.getSource(),l),f=new o(d,this._getDataID);if(u&&u.length&&u.forEach((function(e){var r=t._handlerProvider&&t._handlerProvider(e.handle);r||c(!1,"RelayModernEnvironment: Expected a handler to be provided for handle `%s`.",e.handle),r.update(f,e)})),i){var h=n.fragment;null==h&&c(!1,"RelayModernEnvironment: Expected a selector to be provided with updater function."),i(new s(d,f,h),_(l,h))}var p=f.getIDsMarkedForInvalidation();return this._store.publish(l,p),f.isStoreMarkedForInvalidation()},t._commitData=function(){var e=this;if(!this._pendingData.size)return!1;var t=!1;return this._pendingData.forEach((function(r){if("payload"===r.kind){var n=e._publishSourceFromPayload(r);t=t||n}else if("source"===r.kind){var i=r.source;e._store.publish(i)}else{var s=r.updater,l=u.create(),c=new a(e._store.getSource(),l),d=new o(c,e._getDataID);h(s,null,[d],null,"RelayPublishQueue:commitData"),t=t||d.isStoreMarkedForInvalidation();var f=d.getIDsMarkedForInvalidation();e._store.publish(l,f)}})),this._pendingData.clear(),t},t._applyUpdates=function(){var e=this,t=u.create(),r=new a(this._store.getSource(),t),n=new o(r,this._getDataID,this._handlerProvider),i=function(e){if(e.storeUpdater){var t=e.storeUpdater;h(t,null,[n],null,"RelayPublishQueue:applyUpdates")}else{var i=e.operation,a=e.payload,o=e.updater,l=a.source,u=a.fieldPayloads;if(l&&n.publishSource(l,u),o){var c;l&&(c=_(l,i.fragment));var d=new s(r,n,i.fragment);h(o,null,[d,c],null,"RelayPublishQueue:applyUpdates")}}};this._pendingBackupRebase&&this._appliedOptimisticUpdates.size&&this._appliedOptimisticUpdates.forEach(i),this._pendingOptimisticUpdates.size&&(this._pendingOptimisticUpdates.forEach((function(t){i(t),e._appliedOptimisticUpdates.add(t)})),this._pendingOptimisticUpdates.clear()),this._store.publish(t)},e}();function _(e,t){var n=l.read(e,t).data,i=r(18);return n&&i(n),n}e.exports=p}).call(this,r(47))},function(e,t,r){"use strict";var n=r(9).generateClientID,i=r(2).getStableStorageKey,a=r(0),o=function(){function e(e,t,r){this._dataID=r,this._mutator=t,this._source=e}var t=e.prototype;return t.copyFieldsFrom=function(e){this._mutator.copyFields(e.getDataID(),this._dataID)},t.getDataID=function(){return this._dataID},t.getType=function(){var e=this._mutator.getType(this._dataID);return null==e&&a(!1,"RelayRecordProxy: Cannot get the type of deleted record `%s`.",this._dataID),e},t.getValue=function(e,t){var r=i(e,t);return this._mutator.getValue(this._dataID,r)},t.setValue=function(e,t,r){return s(e)||a(!1,"RelayRecordProxy#setValue(): Expected a scalar or array of scalars, got `%s`.",JSON.stringify(e)),this.setValue__UNSAFE(e,t,r)},t.setValue__UNSAFE=function(e,t,r){var n=i(t,r);return this._mutator.setValue(this._dataID,n,e),this},t.getLinkedRecord=function(e,t){var r=i(e,t),n=this._mutator.getLinkedRecordID(this._dataID,r);return null!=n?this._source.get(n):n},t.setLinkedRecord=function(t,r,n){t instanceof e||a(!1,"RelayRecordProxy#setLinkedRecord(): Expected a record, got `%s`.",t);var o=i(r,n),s=t.getDataID();return this._mutator.setLinkedRecordID(this._dataID,o,s),this},t.getOrCreateLinkedRecord=function(e,t,r){var a=this.getLinkedRecord(e,r);if(!a){var o,s=i(e,r),l=n(this.getDataID(),s);a=null!==(o=this._source.get(l))&&void 0!==o?o:this._source.create(l,t),this.setLinkedRecord(a,e,r)}return a},t.getLinkedRecords=function(e,t){var r=this,n=i(e,t),a=this._mutator.getLinkedRecordIDs(this._dataID,n);return null==a?a:a.map((function(e){return null!=e?r._source.get(e):e}))},t.setLinkedRecords=function(e,t,r){Array.isArray(e)||a(!1,"RelayRecordProxy#setLinkedRecords(): Expected records to be an array, got `%s`.",e);var n=i(t,r),o=e.map((function(e){return e&&e.getDataID()}));return this._mutator.setLinkedRecordIDs(this._dataID,n,o),this},t.invalidateRecord=function(){this._source.markIDForInvalidation(this._dataID)},e}();function s(e){return null==e||"object"!=typeof e||Array.isArray(e)&&e.every(s)}e.exports=o},function(e,t,r){"use strict";var n=r(2),i=n.ROOT_TYPE,a=n.getStorageKey,o=r(53).readUpdatableFragment_EXPERIMENTAL,s=r(55).readUpdatableQuery_EXPERIMENTAL,l=r(0),u=function(){function e(e,t,r){this.__mutator=e,this.__recordSource=t,this._readSelector=r}var t=e.prototype;return t.create=function(e,t){return this.__recordSource.create(e,t)},t.delete=function(e){this.__recordSource.delete(e)},t.get=function(e){return this.__recordSource.get(e)},t.getRoot=function(){return this.__recordSource.getRoot()},t.getOperationRoot=function(){var e=this.__recordSource.get(this._readSelector.dataID);return e||(e=this.__recordSource.create(this._readSelector.dataID,i)),e},t._getRootField=function(e,t,r){var n=e.node.selections.find((function(e){return"LinkedField"===e.kind&&e.name===t||"RequiredField"===e.kind&&e.field.name===t}));return n&&"RequiredField"===n.kind&&(n=n.field),n&&"LinkedField"===n.kind||l(!1,"RelayRecordSourceSelectorProxy#getRootField(): Cannot find root field `%s`, no such field is defined on GraphQL document `%s`.",t,e.node.name),n.plural!==r&&l(!1,"RelayRecordSourceSelectorProxy#getRootField(): Expected root field `%s` to be %s.",t,r?"plural":"singular"),n},t.getRootField=function(e){var t=this._getRootField(this._readSelector,e,!1),r=a(t,this._readSelector.variables);return this.getOperationRoot().getLinkedRecord(r)},t.getPluralRootField=function(e){var t=this._getRootField(this._readSelector,e,!0),r=a(t,this._readSelector.variables);return this.getOperationRoot().getLinkedRecords(r)},t.invalidateStore=function(){this.__recordSource.invalidateStore()},t.readUpdatableQuery_EXPERIMENTAL=function(e,t){return s(e,t,this)},t.readUpdatableFragment_EXPERIMENTAL=function(e,t){return o(e,t,this)},e}();e.exports=u},function(e,t,r){"use strict";var n=Object.freeze({__LIVE_RESOLVER_SUSPENSE_SENTINEL:!0});e.exports={isSuspenseSentinel:function(e){return e===n},suspenseSentinel:function(){return n}}},function(e,t,r){"use strict";var n=r(1).default,i=n(r(7)),a=n(r(16)),o=function(){},s=!1,l=function(){var e={style:"list-style-type: none; padding: 0; margin: 0 0 0 12px; font-style: normal"},t={style:"rgb(136, 19, 145)"},r={style:"color: #777"},n=function(e){return["span",{style:"font-style: italic"},e.__typename,["span",r,' {id: "',e.__id,'", …}']]},i=function(e){return null!=e&&"string"==typeof e.__id},o=function(e,t){this.key=e,this.value=t},s=function(t){var r=Object.keys(t).map((function(e){return["li",{},["object",{object:new o(e,t[e])}]]}));return["ol",e].concat((0,a.default)(r))};return[{header:function(e){return i(e)?n(e):null},hasBody:function(e){return!0},body:function(e){return s(e)}},{header:function(e){if(e instanceof o){var a=i(e.value)?n(e.value):null==(s=e.value)?["span",r,"undefined"]:["object",{object:s,config:l}];return["span",t,e.key,": ",a]}var s,l;return null},hasBody:function(e){return i(e.value)},body:function(e){return s(e.value)}}]};o=function(e,t){var r;return s||(s=!0,null==window.devtoolsFormatters&&(window.devtoolsFormatters=[]),Array.isArray(window.devtoolsFormatters)&&(console.info('Make sure to select "Enable custom formatters" in the Chrome Developer Tools settings, tab "Preferences" under the "Console" section.'),(r=window.devtoolsFormatters).push.apply(r,(0,a.default)(l())))),function e(t,r){var n=t.get(r);return null==n?n:new Proxy((0,i.default)({},n),{get:function(r,n){var i=r[n];if(null==i)return i;if("object"==typeof i){if("string"==typeof i.__ref)return e(t,i.__ref);if(Array.isArray(i.__refs))return i.__refs.map((function(r){return e(t,r)}))}return i}})}(e.getStore().getSource(),null!=t?t:"client:root")},e.exports={inspect:o}},function(e,t,r){"use strict";var n=r(1).default,i=n(r(4)),a=n(r(19)),o=r(32),s=o.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,l=o.assertInternalActorIdentifier,u=r(18),c=r(5),d=r(89),f=r(90),h=r(48),p=r(8),_=r(92),v=r(34),g=r(93),m=r(21),E=r(94),y=r(2),R=r(2),b=R.ROOT_ID,I=R.ROOT_TYPE,D=r(56).RecordResolverCache,S=r(0),A=function(){function e(e,t){var r,n,i,o,s,l=this;(0,a.default)(this,"_gcStep",(function(){l._gcRun&&(l._gcRun.next().done?l._gcRun=null:l._gcScheduler(l._gcStep))}));for(var u=e.getRecordIDs(),c=0;c<u.length;c++){var f=e.get(u[c]);f&&p.freeze(f)}this._currentWriteEpoch=0,this._gcHoldCounter=0,this._gcReleaseBufferSize=null!==(r=null==t?void 0:t.gcReleaseBufferSize)&&void 0!==r?r:10,this._gcRun=null,this._gcScheduler=null!==(n=null==t?void 0:t.gcScheduler)&&void 0!==n?n:d,this._getDataID=null!==(i=null==t?void 0:t.getDataID)&&void 0!==i?i:h,this._globalInvalidationEpoch=null,this._invalidationSubscriptions=new Set,this._invalidatedRecordIDs=new Set,this.__log=null!==(o=null==t?void 0:t.log)&&void 0!==o?o:null,this._queryCacheExpirationTime=null==t?void 0:t.queryCacheExpirationTime,this._operationLoader=null!==(s=null==t?void 0:t.operationLoader)&&void 0!==s?s:null,this._optimisticSource=null,this._recordSource=e,this._releaseBuffer=[],this._roots=new Map,this._shouldScheduleGC=!1,this._resolverCache=new D((function(){return l._getMutableRecordSource()})),this._storeSubscriptions=new E(null==t?void 0:t.log,this._resolverCache),this._updatedRecordIDs=new Set,this._shouldProcessClientComponents=null==t?void 0:t.shouldProcessClientComponents,function(e){if(!e.has(b)){var t=p.create(b,I);e.set(b,t)}}(this._recordSource)}var t=e.prototype;return t.getSource=function(){var e;return null!==(e=this._optimisticSource)&&void 0!==e?e:this._recordSource},t._getMutableRecordSource=function(){var e;return null!==(e=this._optimisticSource)&&void 0!==e?e:this._recordSource},t.check=function(e,t){var r,n,i,a,o=e.root,u=this._getMutableRecordSource(),c=this._globalInvalidationEpoch,d=this._roots.get(e.request.identifier),h=null!=d?d.epoch:null;if(null!=c&&(null==h||h<=c))return{status:"stale"};var p=null!==(r=null==t?void 0:t.handlers)&&void 0!==r?r:[],_=null!==(n=null==t?void 0:t.getSourceForActor)&&void 0!==n?n:function(e){return l(e),u},v=null!==(i=null==t?void 0:t.getTargetForActor)&&void 0!==i?i:function(e){return l(e),u};return function(e,t,r,n){var i=e.mostRecentlyInvalidatedAt,a=e.status;if("number"==typeof i&&(null==t||i>t))return{status:"stale"};if("missing"===a)return{status:"missing"};if(null!=r&&null!=n){if(r<=Date.now()-n)return{status:"stale"}}return{status:"available",fetchTime:null!=r?r:null}}(f.check(_,v,null!==(a=null==t?void 0:t.defaultActorIdentifier)&&void 0!==a?a:s,o,p,this._operationLoader,this._getDataID,this._shouldProcessClientComponents),h,null==d?void 0:d.fetchTime,this._queryCacheExpirationTime)},t.retain=function(e){var t=this,r=e.request.identifier,n=!1,i=this._roots.get(r);return null!=i?(0===i.refCount&&(this._releaseBuffer=this._releaseBuffer.filter((function(e){return e!==r}))),i.refCount+=1):this._roots.set(r,{operation:e,refCount:1,epoch:null,fetchTime:null}),{dispose:function(){if(!n){n=!0;var e=t._roots.get(r);if(null!=e&&(e.refCount--,0===e.refCount)){var i=t._queryCacheExpirationTime;if(null!=e.fetchTime&&null!=i&&e.fetchTime<=Date.now()-i)t._roots.delete(r),t.scheduleGC();else if(t._releaseBuffer.push(r),t._releaseBuffer.length>t._gcReleaseBufferSize){var a=t._releaseBuffer.shift();t._roots.delete(a),t.scheduleGC()}}}}}},t.lookup=function(e){var t=this.getSource(),r=v.read(t,e,this._resolverCache);return u(r),r},t.notify=function(e,t){var r=this,n=this.__log;null!=n&&n({name:"store.notify.start",sourceOperation:e}),this._currentWriteEpoch++,!0===t&&(this._globalInvalidationEpoch=this._currentWriteEpoch),c.ENABLE_RELAY_RESOLVERS&&this._resolverCache.invalidateDataIDs(this._updatedRecordIDs);var i=this.getSource(),a=[];if(this._storeSubscriptions.updateSubscriptions(i,this._updatedRecordIDs,a,e),this._invalidationSubscriptions.forEach((function(e){r._updateInvalidationSubscription(e,!0===t)})),null!=n&&n({name:"store.notify.complete",sourceOperation:e,updatedRecordIDs:this._updatedRecordIDs,invalidatedRecordIDs:this._invalidatedRecordIDs}),this._updatedRecordIDs.clear(),this._invalidatedRecordIDs.clear(),null!=e){var o=e.request.identifier,s=this._roots.get(o);if(null!=s)s.epoch=this._currentWriteEpoch,s.fetchTime=Date.now();else if("query"===e.request.node.params.operationKind&&this._gcReleaseBufferSize>0&&this._releaseBuffer.length<this._gcReleaseBufferSize){var l={operation:e,refCount:0,epoch:this._currentWriteEpoch,fetchTime:Date.now()};this._releaseBuffer.push(o),this._roots.set(o,l)}}return a},t.publish=function(e,t){var r=this._getMutableRecordSource();!function(e,t,r,n,i,a){n&&n.forEach((function(n){var i,o=e.get(n),s=t.get(n);null!==s&&((i=null!=o?p.clone(o):null!=s?p.clone(s):null)&&(p.setValue(i,y.INVALIDATED_AT_KEY,r),a.add(n),e.set(n,i)))}));for(var o=t.getRecordIDs(),s=0;s<o.length;s++){var l=o[s],u=t.get(l),c=e.get(l);if(u&&p.freeze(u),u&&c){var d=p.getType(c)===m.REACT_FLIGHT_TYPE_NAME?u:p.update(c,u);d!==c&&(p.freeze(d),i.add(l),e.set(l,d))}else null===u?(e.delete(l),null!==c&&i.add(l)):u&&(e.set(l,u),i.add(l))}}(r,e,this._currentWriteEpoch+1,t,this._updatedRecordIDs,this._invalidatedRecordIDs);var n=this.__log;null!=n&&n({name:"store.publish",source:e,optimistic:r===this._optimisticSource})},t.subscribe=function(e,t){return this._storeSubscriptions.subscribe(e,t)},t.holdGC=function(){var e=this;this._gcRun&&(this._gcRun=null,this._shouldScheduleGC=!0),this._gcHoldCounter++;return{dispose:function(){e._gcHoldCounter>0&&(e._gcHoldCounter--,0===e._gcHoldCounter&&e._shouldScheduleGC&&(e.scheduleGC(),e._shouldScheduleGC=!1))}}},t.toJSON=function(){return"RelayModernStore()"},t.getEpoch=function(){return this._currentWriteEpoch},t.__getUpdatedRecordIDs=function(){return this._updatedRecordIDs},t.lookupInvalidationState=function(e){var t=this,r=new Map;return e.forEach((function(e){var n,i=t.getSource().get(e);r.set(e,null!==(n=p.getInvalidationEpoch(i))&&void 0!==n?n:null)})),r.set("global",this._globalInvalidationEpoch),{dataIDs:e,invalidations:r}},t.checkInvalidationState=function(e){var t=this.lookupInvalidationState(e.dataIDs).invalidations,r=e.invalidations;if(t.get("global")!==r.get("global"))return!0;var n,a=(0,i.default)(e.dataIDs);try{for(a.s();!(n=a.n()).done;){var o=n.value;if(t.get(o)!==r.get(o))return!0}}catch(e){a.e(e)}finally{a.f()}return!1},t.subscribeToInvalidationState=function(e,t){var r=this,n={callback:t,invalidationState:e};return this._invalidationSubscriptions.add(n),{dispose:function(){r._invalidationSubscriptions.delete(n)}}},t._updateInvalidationSubscription=function(e,t){var r=this,n=e.callback,i=e.invalidationState.dataIDs;(t||i.some((function(e){return r._invalidatedRecordIDs.has(e)})))&&n()},t.snapshot=function(){null!=this._optimisticSource&&S(!1,"RelayModernStore: Unexpected call to snapshot() while a previous snapshot exists.");var e=this.__log;null!=e&&e({name:"store.snapshot"}),this._storeSubscriptions.snapshotSubscriptions(this.getSource()),this._gcRun&&(this._gcRun=null,this._shouldScheduleGC=!0),this._optimisticSource=_.create(this.getSource())},t.restore=function(){null==this._optimisticSource&&S(!1,"RelayModernStore: Unexpected call to restore(), expected a snapshot to exist (make sure to call snapshot()).");var e=this.__log;null!=e&&e({name:"store.restore"}),this._optimisticSource=null,this._shouldScheduleGC&&this.scheduleGC(),this._storeSubscriptions.restoreSubscriptions()},t.scheduleGC=function(){this._gcHoldCounter>0?this._shouldScheduleGC=!0:this._gcRun||(this._gcRun=this._collect(),this._gcScheduler(this._gcStep))},t.__gc=function(){if(null==this._optimisticSource)for(var e=this._collect();!e.next().done;);},t._collect=function*(){e:for(;;){var e,t=this._currentWriteEpoch,r=new Set,n=(0,i.default)(this._roots.values());try{for(n.s();!(e=n.n()).done;){var a=e.value.operation.root;if(g.mark(this._recordSource,a,r,this._operationLoader,this._shouldProcessClientComponents),yield,t!==this._currentWriteEpoch)continue e}}catch(e){n.e(e)}finally{n.f()}var o=this.__log;if(null!=o&&o({name:"store.gc",references:r}),0===r.size)this._recordSource.clear();else for(var s=this._recordSource.getRecordIDs(),l=0;l<s.length;l++){var u=s[l];r.has(u)||this._recordSource.remove(u)}return}},e}();e.exports=A},function(e,t,r){"use strict";var n=Promise.resolve();function i(e){setTimeout((function(){throw e}),0)}e.exports=function(e){n.then(e).catch(i)}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(4)),i=r(51),a=r(52),o=r(33),s=r(6),l=r(5),u=r(9).isClientID,c=r(58),d=r(91),f=r(12).getLocalVariables,h=r(8),p=r(25),_=p.EXISTENT,v=p.UNKNOWN,g=r(21),m=r(2),E=r(26),y=E.generateTypeID,R=E.TYPE_SCHEMA_TYPE,b=r(0),I=s.ACTOR_CHANGE,D=s.CONDITION,S=s.CLIENT_COMPONENT,A=s.CLIENT_EXTENSION,T=s.DEFER,k=s.FLIGHT_FIELD,N=s.FRAGMENT_SPREAD,O=s.INLINE_FRAGMENT,F=s.LINKED_FIELD,L=s.LINKED_HANDLE,P=s.MODULE_IMPORT,x=s.RELAY_RESOLVER,C=s.SCALAR_FIELD,w=s.SCALAR_HANDLE,M=s.STREAM,U=s.TYPE_DISCRIMINATOR,V=m.ROOT_ID,j=m.getModuleOperationKey,q=m.getStorageKey,G=m.getArgumentValues;var H=function(){function e(e,t,r,n,i,a,o,s){this._getSourceForActor=e,this._getTargetForActor=t,this._getDataID=o,this._source=e(r),this._mutatorRecordSourceProxyCache=new Map;var l=this._getMutatorAndRecordProxyForActor(r),u=l[0],c=l[1];this._mostRecentlyInvalidatedAt=null,this._handlers=i,this._mutator=u,this._operationLoader=null!=a?a:null,this._recordSourceProxy=c,this._recordWasMissing=!1,this._variables=n,this._shouldProcessClientComponents=s}var t=e.prototype;return t._getMutatorAndRecordProxyForActor=function(e){var t=this._mutatorRecordSourceProxyCache.get(e);if(null==t){var r=this._getTargetForActor(e),n=new i(this._getSourceForActor(e),r);t=[n,new a(n,this._getDataID)],this._mutatorRecordSourceProxyCache.set(e,t)}return t},t.check=function(e,t){return this._assignClientAbstractTypes(e),this._traverse(e,t),!0===this._recordWasMissing?{status:"missing",mostRecentlyInvalidatedAt:this._mostRecentlyInvalidatedAt}:{status:"available",mostRecentlyInvalidatedAt:this._mostRecentlyInvalidatedAt}},t._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||b(!1,"RelayAsyncLoader(): Undefined variable `%s`.",e),this._variables[e]},t._handleMissing=function(){this._recordWasMissing=!0},t._getDataForHandlers=function(e,t){return{args:e.args?G(e.args,this._variables):{},record:this._source.get(t)}},t._handleMissingScalarField=function(e,t){if("id"!==e.name||null!=e.alias||!u(t)){var r,i=this._getDataForHandlers(e,t),a=i.args,o=i.record,s=(0,n.default)(this._handlers);try{for(s.s();!(r=s.n()).done;){var l=r.value;if("scalar"===l.kind){var c=l.handle(e,o,a,this._recordSourceProxy);if(void 0!==c)return c}}}catch(e){s.e(e)}finally{s.f()}this._handleMissing()}},t._handleMissingLinkField=function(e,t){var r,i=this._getDataForHandlers(e,t),a=i.args,o=i.record,s=(0,n.default)(this._handlers);try{for(s.s();!(r=s.n()).done;){var l=r.value;if("linked"===l.kind){var u=l.handle(e,o,a,this._recordSourceProxy);if(void 0!==u&&(null===u||this._mutator.getStatus(u)===_))return u}}}catch(e){s.e(e)}finally{s.f()}this._handleMissing()},t._handleMissingPluralLinkField=function(e,t){var r,i=this,a=this._getDataForHandlers(e,t),o=a.args,s=a.record,l=(0,n.default)(this._handlers);try{for(l.s();!(r=l.n()).done;){var u=r.value;if("pluralLinked"===u.kind){var c=u.handle(e,s,o,this._recordSourceProxy);if(null!=c){if(c.every((function(e){return null!=e&&i._mutator.getStatus(e)===_})))return c}else if(null===c)return null}}}catch(e){l.e(e)}finally{l.f()}this._handleMissing()},t._traverse=function(e,t){var r=this._mutator.getStatus(t);if(r===v&&this._handleMissing(),r===_){var n=this._source.get(t),i=h.getInvalidationEpoch(n);null!=i&&(this._mostRecentlyInvalidatedAt=null!=this._mostRecentlyInvalidatedAt?Math.max(this._mostRecentlyInvalidatedAt,i):i),this._traverseSelections(e.selections,t)}},t._traverseSelections=function(e,t){var r=this;e.forEach((function(n){switch(n.kind){case C:r._checkScalar(n,t);break;case F:n.plural?r._checkPluralLink(n,t):r._checkLink(n,t);break;case I:r._checkActorChange(n.linkedField,t);break;case D:Boolean(r._getVariableValue(n.condition))===n.passingValue&&r._traverseSelections(n.selections,t);break;case O:var i=n.abstractKey;if(null==i){r._mutator.getType(t)===n.type&&r._traverseSelections(n.selections,t)}else{var a=r._mutator.getType(t);null==a&&b(!1,"DataChecker: Expected record `%s` to have a known type",t);var o=y(a),s=r._mutator.getValue(o,i);!0===s?r._traverseSelections(n.selections,t):null==s&&r._handleMissing()}break;case L:var u=c(n,e,r._variables);u.plural?r._checkPluralLink(u,t):r._checkLink(u,t);break;case w:var h=d(n,e,r._variables);r._checkScalar(h,t);break;case P:r._checkModuleImport(n,t);break;case T:case M:r._traverseSelections(n.selections,t);break;case N:var p=r._variables;r._variables=f(r._variables,n.fragment.argumentDefinitions,n.args),r._traverseSelections(n.fragment.selections,t),r._variables=p;break;case A:var _=r._recordWasMissing;r._traverseSelections(n.selections,t),r._recordWasMissing=_;break;case U:var v=n.abstractKey,g=r._mutator.getType(t);null==g&&b(!1,"DataChecker: Expected record `%s` to have a known type",t);var m=y(g);null==r._mutator.getValue(m,v)&&r._handleMissing();break;case k:if(!l.ENABLE_REACT_FLIGHT_COMPONENT_FIELD)throw new Error("Flight fields are not yet supported.");r._checkFlightField(n,t);break;case S:if(!1===r._shouldProcessClientComponents)break;r._traverseSelections(n.fragment.selections,t);break;case x:n.fragment&&r._traverseSelections([n.fragment],t);break;default:b(!1,"RelayAsyncLoader(): Unexpected ast kind `%s`.",n.kind)}}))},t._checkModuleImport=function(e,t){var r=this._operationLoader;null===r&&b(!1,"DataChecker: Expected an operationLoader to be configured when using `@module`.");var n=j(e.documentName),i=this._mutator.getValue(t,n);if(null!=i){var a=r.get(i);if(null!=a){var s=o(a),l=this._variables;this._variables=f(this._variables,s.argumentDefinitions,e.args),this._traverse(s,t),this._variables=l}else this._handleMissing()}else void 0===i&&this._handleMissing()},t._checkScalar=function(e,t){var r=q(e,this._variables),n=this._mutator.getValue(t,r);void 0===n&&void 0!==(n=this._handleMissingScalarField(e,t))&&this._mutator.setValue(t,r,n)},t._checkLink=function(e,t){var r=q(e,this._variables),n=this._mutator.getLinkedRecordID(t,r);void 0===n&&(null!=(n=this._handleMissingLinkField(e,t))?this._mutator.setLinkedRecordID(t,r,n):null===n&&this._mutator.setValue(t,r,null)),null!=n&&this._traverse(e,n)},t._checkPluralLink=function(e,t){var r=this,n=q(e,this._variables),i=this._mutator.getLinkedRecordIDs(t,n);void 0===i&&(null!=(i=this._handleMissingPluralLinkField(e,t))?this._mutator.setLinkedRecordIDs(t,n,i):null===i&&this._mutator.setValue(t,n,null)),i&&i.forEach((function(t){null!=t&&r._traverse(e,t)}))},t._checkActorChange=function(e,t){var r=q(e,this._variables),n=this._source.get(t),i=null!=n?h.getActorLinkedRecordID(n,r):n;if(null==i)void 0===i&&this._handleMissing();else{var a=i[0],o=i[1],s=this._source,l=this._mutator,u=this._recordSourceProxy,c=this._getMutatorAndRecordProxyForActor(a),d=c[0],f=c[1];this._source=this._getSourceForActor(a),this._mutator=d,this._recordSourceProxy=f,this._assignClientAbstractTypes(e),this._traverse(e,o),this._source=s,this._mutator=l,this._recordSourceProxy=u}},t._checkFlightField=function(e,t){var r=q(e,this._variables),i=this._mutator.getLinkedRecordID(t,r);if(null==i)return void 0===i?void this._handleMissing():void 0;var a=this._mutator.getValue(i,g.REACT_FLIGHT_TREE_STORAGE_KEY),s=this._mutator.getValue(i,g.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY);if(null!=a&&Array.isArray(s)){var l=this._operationLoader;null===l&&b(!1,"DataChecker: Expected an operationLoader to be configured when using React Flight.");var u,c=this._variables,d=(0,n.default)(s);try{for(d.s();!(u=d.n()).done;){var f=u.value;this._variables=f.variables;var h=l.get(f.module);if(null!=h){var p=o(h);this._traverseSelections(p.selections,V)}else this._handleMissing()}}catch(e){d.e(e)}finally{d.f()}this._variables=c}else this._handleMissing()},t._assignClientAbstractTypes=function(e){var t=e.clientAbstractTypes;if(null!=t)for(var r=0,i=Object.keys(t);r<i.length;r++){var a,o=i[r],s=(0,n.default)(t[o]);try{for(s.s();!(a=s.n()).done;){var l=a.value,u=y(l);null==this._source.get(u)&&this._mutator.create(u,R),null==this._mutator.getValue(u,o)&&this._mutator.setValue(u,o,!0)}}catch(e){s.e(e)}finally{s.f()}}},e}();e.exports={check:function(e,t,r,n,i,a,o,s){var l=n.dataID,u=n.node,c=n.variables;return new H(e,t,r,c,i,a,o,s).check(u,l)}}},function(e,t,r){"use strict";var n=r(6).SCALAR_FIELD,i=r(2).getHandleStorageKey,a=r(14),o=r(0);e.exports=function(e,t,r){var s=t.find((function(t){return t.kind===n&&t.name===e.name&&t.alias===e.alias&&a(t.args,e.args)}));s&&s.kind===n||o(!1,"cloneRelayScalarHandleSourceField: Expected a corresponding source field for handle `%s`.",e.handle);var l=i(e,r);return{kind:"ScalarField",alias:s.alias,name:l,storageKey:l,args:null}}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(7)),i=r(20),a=r(0),o=Object.freeze({__UNPUBLISH_RECORD_SENTINEL:!0}),s=function(){function e(e){this._base=e,this._sink=i.create()}var t=e.prototype;return t.has=function(e){return this._sink.has(e)?this._sink.get(e)!==o:this._base.has(e)},t.get=function(e){if(this._sink.has(e)){var t=this._sink.get(e);return t===o?void 0:t}return this._base.get(e)},t.getStatus=function(e){var t=this.get(e);return void 0===t?"UNKNOWN":null===t?"NONEXISTENT":"EXISTENT"},t.clear=function(){this._base=i.create(),this._sink.clear()},t.delete=function(e){this._sink.delete(e)},t.remove=function(e){this._sink.set(e,o)},t.set=function(e,t){this._sink.set(e,t)},t.getRecordIDs=function(){return Object.keys(this.toJSON())},t.size=function(){return Object.keys(this.toJSON()).length},t.toJSON=function(){var e=this,t=(0,n.default)({},this._base.toJSON());return this._sink.getRecordIDs().forEach((function(r){var n=e.get(r);void 0===n?delete t[r]:t[r]=n})),t},t.getOptimisticRecordIDs=function(){return new Set(this._sink.getRecordIDs())},e}();e.exports={create:function(e){return new s(e)},getOptimisticRecordIDs:function(e){return e instanceof s||a(!1,"getOptimisticRecordIDs: Instance of RelayOptimisticRecordSource is expected"),e.getOptimisticRecordIDs()}}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(4)),i=r(33),a=r(6),o=r(5),s=r(58),l=r(12).getLocalVariables,u=r(8),c=r(21),d=r(2),f=r(26).generateTypeID,h=r(0),p=a.ACTOR_CHANGE,_=a.CONDITION,v=a.CLIENT_COMPONENT,g=a.CLIENT_EXTENSION,m=a.DEFER,E=a.FLIGHT_FIELD,y=a.FRAGMENT_SPREAD,R=a.INLINE_FRAGMENT,b=a.LINKED_FIELD,I=a.MODULE_IMPORT,D=a.LINKED_HANDLE,S=a.SCALAR_FIELD,A=a.SCALAR_HANDLE,T=a.STREAM,k=a.TYPE_DISCRIMINATOR,N=a.RELAY_RESOLVER,O=d.ROOT_ID,F=d.getStorageKey,L=d.getModuleOperationKey;var P=function(){function e(e,t,r,n,i){this._operationLoader=null!=n?n:null,this._operationName=null,this._recordSource=e,this._references=r,this._variables=t,this._shouldProcessClientComponents=i}var t=e.prototype;return t.mark=function(e,t){"Operation"!==e.kind&&"SplitOperation"!==e.kind||(this._operationName=e.name),this._traverse(e,t)},t._traverse=function(e,t){this._references.add(t);var r=this._recordSource.get(t);null!=r&&this._traverseSelections(e.selections,r)},t._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||h(!1,"RelayReferenceMarker(): Undefined variable `%s`.",e),this._variables[e]},t._traverseSelections=function(e,t){var r=this;e.forEach((function(n){switch(n.kind){case p:r._traverseLink(n.linkedField,t);break;case b:n.plural?r._traversePluralLink(n,t):r._traverseLink(n,t);break;case _:Boolean(r._getVariableValue(n.condition))===n.passingValue&&r._traverseSelections(n.selections,t);break;case R:if(null==n.abstractKey){var i=u.getType(t);(null!=i&&i===n.type||i===d.ROOT_TYPE)&&r._traverseSelections(n.selections,t)}else{var a=u.getType(t),c=f(a);r._references.add(c),r._traverseSelections(n.selections,t)}break;case y:var O=r._variables;r._variables=l(r._variables,n.fragment.argumentDefinitions,n.args),r._traverseSelections(n.fragment.selections,t),r._variables=O;break;case D:var F=s(n,e,r._variables);F.plural?r._traversePluralLink(F,t):r._traverseLink(F,t);break;case m:case T:r._traverseSelections(n.selections,t);break;case S:case A:break;case k:var L=u.getType(t),P=f(L);r._references.add(P);break;case I:r._traverseModuleImport(n,t);break;case g:r._traverseSelections(n.selections,t);break;case E:if(!o.ENABLE_REACT_FLIGHT_COMPONENT_FIELD)throw new Error("Flight fields are not yet supported.");r._traverseFlightField(n,t);break;case v:if(!1===r._shouldProcessClientComponents)break;r._traverseSelections(n.fragment.selections,t);break;case N:r._traverseResolverField(n,t);break;default:h(!1,"RelayReferenceMarker: Unknown AST node `%s`.",n)}}))},t._traverseResolverField=function(e,t){var r=F(e,this._variables),n=u.getLinkedRecordID(t,r);null!=n&&this._references.add(n);var i=e.fragment;null!=i&&this._traverseSelections([i],t)},t._traverseModuleImport=function(e,t){var r,n=this._operationLoader;null===n&&h(!1,"RelayReferenceMarker: Expected an operationLoader to be configured when using `@module`. Could not load fragment `%s` in operation `%s`.",e.fragmentName,null!==(r=this._operationName)&&void 0!==r?r:"(unknown)");var a=L(e.documentName),o=u.getValue(t,a);if(null!=o){var s=n.get(o);if(null!=s){var c=i(s),d=this._variables;this._variables=l(this._variables,c.argumentDefinitions,e.args),this._traverseSelections(c.selections,t),this._variables=d}}},t._traverseLink=function(e,t){var r=F(e,this._variables),n=u.getLinkedRecordID(t,r);null!=n&&this._traverse(e,n)},t._traversePluralLink=function(e,t){var r=this,n=F(e,this._variables),i=u.getLinkedRecordIDs(t,n);null!=i&&i.forEach((function(t){null!=t&&r._traverse(e,t)}))},t._traverseFlightField=function(e,t){var r=F(e,this._variables),a=u.getLinkedRecordID(t,r);if(null!=a){this._references.add(a);var o=this._recordSource.get(a);if(null!=o){var s=u.getValue(o,c.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY);if(Array.isArray(s)){var l=this._operationLoader;null===l&&h(!1,"DataChecker: Expected an operationLoader to be configured when using React Flight");var d,f=this._variables,p=(0,n.default)(s);try{for(p.s();!(d=p.n()).done;){var _=d.value;this._variables=_.variables;var v=_.module,g=l.get(v);if(null!=g){var m=i(g);this._traverse(m,O)}}}catch(e){p.e(e)}finally{p.f()}this._variables=f}}}},e}();e.exports={mark:function(e,t,r,n,i){var a=t.dataID,o=t.node,s=t.variables;new P(e,s,r,n,i).mark(o,a)}}},function(e,t,r){"use strict";var n=r(18),i=r(24),a=r(5),o=r(95),s=r(34),l=function(){function e(e,t){this._subscriptions=new Set,this.__log=e,this._resolverCache=t}var t=e.prototype;return t.subscribe=function(e,t){var r=this,n={backup:null,callback:t,snapshot:e,stale:!1};return this._subscriptions.add(n),{dispose:function(){r._subscriptions.delete(n)}}},t.snapshotSubscriptions=function(e){var t=this;this._subscriptions.forEach((function(r){if(r.stale){var n=r.snapshot,a=s.read(e,n.selector,t._resolverCache),o=i(n.data,a.data);a.data=o,r.backup=a}else r.backup=r.snapshot}))},t.restoreSubscriptions=function(){this._subscriptions.forEach((function(e){var t=e.backup;e.backup=null,t?(t.data!==e.snapshot.data&&(e.stale=!0),e.snapshot={data:e.snapshot.data,isMissingData:t.isMissingData,missingClientEdges:t.missingClientEdges,missingLiveResolverFields:t.missingLiveResolverFields,seenRecords:t.seenRecords,selector:t.selector,missingRequiredFields:t.missingRequiredFields,relayResolverErrors:t.relayResolverErrors}):e.stale=!0}))},t.updateSubscriptions=function(e,t,r,n){var i=this,a=0!==t.size;this._subscriptions.forEach((function(o){var s=i._updateSubscription(e,o,t,a,n);null!=s&&r.push(s)}))},t._updateSubscription=function(e,t,r,l,u){var c=t.backup,d=t.callback,f=t.snapshot,h=t.stale,p=l&&o(f.seenRecords,r);if(h||p){var _=p||!c?s.read(e,f.selector,this._resolverCache):c;return _={data:i(f.data,_.data),isMissingData:_.isMissingData,missingClientEdges:_.missingClientEdges,missingLiveResolverFields:_.missingLiveResolverFields,seenRecords:_.seenRecords,selector:_.selector,missingRequiredFields:_.missingRequiredFields,relayResolverErrors:_.relayResolverErrors},n(_),t.snapshot=_,t.stale=!1,_.data!==f.data?(this.__log&&a.ENABLE_NOTIFY_SUBSCRIPTION&&this.__log({name:"store.notify.subscription",sourceOperation:u,snapshot:f,nextSnapshot:_}),d(_),f.selector.owner):void 0}},e}();e.exports=l},function(e,t,r){"use strict";var n=Symbol.iterator;e.exports=function(e,t){for(var r=e[n](),i=r.next();!i.done;){var a=i.value;if(t.has(a))return!0;i=r.next()}return!1}},function(e,t,r){"use strict";var n=r(23),i=r(10).getRequest,a=r(13).createOperationDescriptor,o=r(11).createReaderSelector,s=r(3);e.exports=function(e,t){var r=i(t.subscription);if("subscription"!==r.params.operationKind)throw new Error("requestSubscription: Must use Subscription operation");var l=t.configs,u=t.onCompleted,c=t.onError,d=t.onNext,f=t.variables,h=t.cacheConfig,p=a(r,f,h);s(!(t.updater&&l),"requestSubscription: Expected only one of `updater` and `configs` to be provided");var _=(l?n.convert(l,r,null,t.updater):t).updater;return{dispose:e.executeSubscription({operation:p,updater:_}).subscribe({next:function(t){if(null!=d){var r,n,i,a,s=p.fragment;if(Array.isArray(t))r=null===(n=t[0])||void 0===n||null===(i=n.extensions)||void 0===i?void 0:i.__relay_subscription_root_id;else r=null===(a=t.extensions)||void 0===a?void 0:a.__relay_subscription_root_id;"string"==typeof r&&(s=o(s.node,r,s.variables,s.owner));var l=e.lookup(s).data;d(l)}},error:c,complete:u}).unsubscribe}}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(7)),i=r(2),a=i.getModuleComponentKey,o=i.getModuleOperationKey;e.exports=function(e,t,r,i){var s=(0,n.default)({},i);return s[a(e)]=r,s[o(e)]=t,s}},function(e,t,r){"use strict";var n=r(11),i=n.getDataIDsFromFragment,a=n.getSelector,o=n.getVariablesFromFragment,s=r(99),l=r(5),u=r(17),c=r(35).intern;e.exports=function(e,t){var r=a(e,t),n=null==r?"null":"SingularReaderSelector"===r.kind?r.owner.identifier:"["+r.selectors.map((function(e){return e.owner.identifier})).join(",")+"]",d=o(e,t),f=i(e,t);if(l.ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION){var h=void 0===f?"missing":null==f?"null":Array.isArray(f)?"["+f.join(",")+"]":f;return h=l.STRING_INTERN_LEVEL<=1?h:c(h,l.MAX_DATA_ID_LENGTH),n+"/"+e.name+"/"+(null==d||s(d)?"{}":JSON.stringify(u(d)))+"/"+h}var p,_=null!==(p=JSON.stringify(f))&&void 0!==p?p:"missing";return _=l.STRING_INTERN_LEVEL<=1?_:c(_,l.MAX_DATA_ID_LENGTH),n+"/"+e.name+"/"+JSON.stringify(u(d))+"/"+_}},function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty;e.exports=function(e){for(var t in e)if(n.call(e,t))return!1;return!0}},function(e,t,r){"use strict";var n=r(59),i=r(0);e.exports=function(e,t){var r,a,o=n(e,t),s=o.refetchableRequest,l=o.refetchMetadata,u=l.connection;null==u&&i(!1,"Relay: getPaginationMetadata(): Expected fragment `%s` to include a connection when using `%s`. Did you forget to add a @connection directive to the connection field in the fragment?",t,e.name);var c=u.path,d=(null!==(r=null===(a=e.metadata)||void 0===a?void 0:a.connection)&&void 0!==r?r:[])[0];null==d&&i(!1,"Relay: getPaginationMetadata(): Expected fragment `%s` to include a connection when using `%s`. Did you forget to add a @connection directive to the connection field in the fragment?",t,e.name);var f=l.identifierField;return null!=f&&"string"!=typeof f&&i(!1,"Relay: getRefetchMetadata(): Expected `identifierField` to be a string."),{connectionPathInFragmentData:c,identifierField:f,paginationRequest:s,paginationMetadata:u,stream:!0===d.stream}}},function(e,t,r){"use strict";var n=r(1).default,i=n(r(19)),a=n(r(7)),o=r(0),s=r(3);e.exports=function(e,t,r,n,l,u){var c,d=u.backward,f=u.forward;if("backward"===e){var h;(null==d||null==d.count||null==d.cursor)&&o(!1,"Relay: Expected backward pagination metadata to be available. If you're seeing this, this is likely a bug in Relay."),s(!l.hasOwnProperty(d.cursor),"Relay: `UNSTABLE_extraVariables` provided by caller should not contain cursor variable `%s`. This variable is automatically determined by Relay.",d.cursor),s(!l.hasOwnProperty(d.count),"Relay: `UNSTABLE_extraVariables` provided by caller should not contain count variable `%s`. This variable is automatically determined by Relay.",d.count);var p=(0,a.default)((0,a.default)((0,a.default)({},n),l),{},(h={},(0,i.default)(h,d.cursor,r),(0,i.default)(h,d.count,t),h));return f&&f.cursor&&(p[f.cursor]=null),f&&f.count&&(p[f.count]=null),p}(null==f||null==f.count||null==f.cursor)&&o(!1,"Relay: Expected forward pagination metadata to be available. If you're seeing this, this is likely a bug in Relay."),s(!l.hasOwnProperty(f.cursor),"Relay: `UNSTABLE_extraVariables` provided by caller should not contain cursor variable `%s`. This variable is automatically determined by Relay.",f.cursor),s(!l.hasOwnProperty(f.count),"Relay: `UNSTABLE_extraVariables` provided by caller should not contain count variable `%s`. This variable is automatically determined by Relay.",f.count);var _=(0,a.default)((0,a.default)((0,a.default)({},n),l),{},(c={},(0,i.default)(c,f.cursor,r),(0,i.default)(c,f.count,t),c));return d&&d.cursor&&(_[d.cursor]=null),d&&d.count&&(_[d.count]=null),_}},function(e,t,r){"use strict";var n=(0,r(1).default)(r(4)),i=r(0);e.exports=function(e,t){var r,a=e,o=(0,n.default)(t);try{for(o.s();!(r=o.n()).done;){var s=r.value;if(null==a)return null;"number"==typeof s?(Array.isArray(a)||i(!1,"Relay: Expected an array when extracting value at path. If you're seeing this, this is likely a bug in Relay."),a=a[s]):(("object"!=typeof a||Array.isArray(a))&&i(!1,"Relay: Expected an object when extracting value at path. If you're seeing this, this is likely a bug in Relay."),a=a[s])}}catch(e){o.e(e)}finally{o.f()}return a}},function(e,t,r){"use strict";var n={},i={stop:function(){}},a={profile:function(e,t){var r=n[e];if(r&&r.length>0){for(var a=[],o=r.length-1;o>=0;o--){var s=r[o](e,t);a.unshift(s)}return{stop:function(e){a.forEach((function(t){return t(e)}))}}}return i},attachProfileHandler:function(e,t){n.hasOwnProperty(e)||(n[e]=[]),n[e].push(t)},detachProfileHandler:function(e,t){var r,i,a;n.hasOwnProperty(e)&&(r=n[e],i=t,-1!==(a=r.indexOf(i))&&r.splice(a,1))}};e.exports=a}])}));
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v0.0.0-main-944978ee
2
+ * Relay v0.0.0-main-3a151b45
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *
@@ -343,7 +343,7 @@ class Executor<TMutation: MutationParameters> {
343
343
  const scheduler = this._scheduler;
344
344
  if (scheduler != null) {
345
345
  const id = this._nextSubscriptionId++;
346
- RelayObservable.create(sink => {
346
+ RelayObservable.create<empty>(sink => {
347
347
  const cancellationToken = scheduler.schedule(() => {
348
348
  try {
349
349
  task();
@@ -746,7 +746,7 @@ class Executor<TMutation: MutationParameters> {
746
746
  moduleImportPayload: ModuleImportPayload,
747
747
  ): $ReadOnlyArray<OptimisticUpdate<TMutation>> {
748
748
  const operation = getOperation(normalizationRootNode);
749
- const optimisticUpdates = [];
749
+ const optimisticUpdates: Array<OptimisticUpdate<TMutation>> = [];
750
750
  const modulePayload = this._normalizeFollowupPayload(
751
751
  moduleImportPayload,
752
752
  operation,
@@ -956,7 +956,7 @@ class Executor<TMutation: MutationParameters> {
956
956
  .then(resolve, reject);
957
957
  }),
958
958
  );
959
- RelayObservable.create(sink => {
959
+ RelayObservable.create<empty>(sink => {
960
960
  let cancellationToken;
961
961
  const subscription = networkObservable.subscribe({
962
962
  next: (loadedNode: ?NormalizationRootNode) => {
@@ -1153,7 +1153,7 @@ class Executor<TMutation: MutationParameters> {
1153
1153
  previousParentEntry.record,
1154
1154
  parentRecord,
1155
1155
  );
1156
- const handlePayloads = new Map();
1156
+ const handlePayloads = new Map<string, HandleFieldPayload>();
1157
1157
  const dedupePayload = (payload: HandleFieldPayload) => {
1158
1158
  const key = stableStringify(payload);
1159
1159
  handlePayloads.set(key, payload);
@@ -1569,7 +1569,7 @@ class Executor<TMutation: MutationParameters> {
1569
1569
  _runPublishQueue(
1570
1570
  operation?: OperationDescriptor,
1571
1571
  ): $ReadOnlyArray<RequestDescriptor> {
1572
- const updatedOwners = new Set();
1572
+ const updatedOwners = new Set<RequestDescriptor>();
1573
1573
  for (const actorIdentifier of this._getActorsToVisit()) {
1574
1574
  const owners = this._getPublishQueue(actorIdentifier).run(operation);
1575
1575
  owners.forEach(owner => updatedOwners.add(owner));
@@ -178,7 +178,7 @@ export class GraphModeNormalizer {
178
178
  if (maybeSent != null) {
179
179
  return maybeSent;
180
180
  }
181
- const sent = new Set();
181
+ const sent = new Set<string>();
182
182
  this._sentFields.set(cacheKey, sent);
183
183
  return sent;
184
184
  }
@@ -333,7 +333,7 @@ class RelayModernStore implements Store {
333
333
  this._resolverCache.invalidateDataIDs(this._updatedRecordIDs);
334
334
  }
335
335
  const source = this.getSource();
336
- const updatedOwners = [];
336
+ const updatedOwners: Array<RequestDescriptor> = [];
337
337
  this._storeSubscriptions.updateSubscriptions(
338
338
  source,
339
339
  this._updatedRecordIDs,
@@ -457,7 +457,7 @@ class RelayModernStore implements Store {
457
457
  }
458
458
 
459
459
  lookupInvalidationState(dataIDs: $ReadOnlyArray<DataID>): InvalidationState {
460
- const invalidations = new Map();
460
+ const invalidations = new Map<DataID, ?number>();
461
461
  dataIDs.forEach(dataID => {
462
462
  const record = this.getSource().get(dataID);
463
463
  invalidations.set(
@@ -602,7 +602,7 @@ class RelayModernStore implements Store {
602
602
  /* eslint-disable no-labels */
603
603
  top: while (true) {
604
604
  const startEpoch = this._currentWriteEpoch;
605
- const references = new Set();
605
+ const references = new Set<DataID>();
606
606
 
607
607
  // Mark all records that are traversable from a root
608
608
  for (const {operation} of this._roots.values()) {
@@ -10,6 +10,7 @@
10
10
  */
11
11
 
12
12
  'use strict';
13
+ import type {RequestIdentifier} from '../util/getRequestIdentifier';
13
14
 
14
15
  import type {RequestDescriptor} from './RelayStoreTypes';
15
16
 
@@ -45,7 +46,7 @@ class RelayOperationTracker {
45
46
  return;
46
47
  }
47
48
  const pendingOperationIdentifier = pendingOperation.identifier;
48
- const newlyAffectedOwnersIdentifier = new Set();
49
+ const newlyAffectedOwnersIdentifier = new Set<RequestIdentifier>();
49
50
  for (const owner of affectedOwners) {
50
51
  const ownerIdentifier = owner.identifier;
51
52
  const pendingOperationsAffectingOwner =
@@ -105,11 +106,11 @@ class RelayOperationTracker {
105
106
  return;
106
107
  }
107
108
  // These were the owners affected only by `pendingOperationIdentifier`
108
- const completedOwnersIdentifier = new Set();
109
+ const completedOwnersIdentifier = new Set<string>();
109
110
 
110
111
  // These were the owners affected by `pendingOperationIdentifier`
111
112
  // and some other operations
112
- const updatedOwnersIdentifier = new Set();
113
+ const updatedOwnersIdentifier = new Set<string>();
113
114
  for (const ownerIdentifier of affectedOwnersIdentifier) {
114
115
  const pendingOperationsAffectingOwner =
115
116
  this._ownersToPendingOperations.get(ownerIdentifier);
@@ -904,7 +904,7 @@ class RelayResponseNormalizer {
904
904
  storageKey,
905
905
  );
906
906
  const prevIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);
907
- const nextIDs = [];
907
+ const nextIDs: Array<?DataID> = [];
908
908
  fieldValue.forEach((item, nextIndex) => {
909
909
  // validate response data
910
910
  if (item == null) {
@@ -14,6 +14,7 @@
14
14
  import type {GraphQLTaggedNode} from '../query/GraphQLTag';
15
15
  import type {FragmentType, SingularReaderSelector} from './RelayStoreTypes';
16
16
  import type {ResolverFragmentResult} from './ResolverCache';
17
+ import type {Fragment} from '../util/RelayRuntimeTypes';
17
18
 
18
19
  const {getFragment} = require('../query/GraphQLTag');
19
20
  const {getSelector} = require('./RelayModernSelector');
@@ -98,6 +99,11 @@ declare function readFragment<
98
99
  TKey,
99
100
  >;
100
101
 
102
+ declare function readFragment<TKey: FragmentType, TData>(
103
+ fragmentInput: Fragment<TKey, TData>,
104
+ fragmentKey: TKey,
105
+ ): TData;
106
+
101
107
  function readFragment(
102
108
  fragmentInput: GraphQLTaggedNode,
103
109
  fragmentKey: FragmentType,
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ import type {Fragment} from '../../util/RelayRuntimeTypes';
14
+ import type {FragmentType} from '../RelayStoreTypes';
15
+ const {readFragment} = require('relay-runtime/store/ResolverFragments');
16
+ const invariant = require('invariant');
17
+
18
+ /**
19
+ *
20
+ * This a High order function that returns a relay resolver that can read the data for
21
+ * the fragment`.
22
+ *
23
+ * - fragment: contains fragment Reader AST with resolver's data dependencies.
24
+ * - resolverFn: original resolver function that expects a data from the fragment
25
+ * - (optional) fieldName: individual field that needs to be read out of the fragment.
26
+ *
27
+ * This will not call the `resolverFn` if the fragment data for it is null/undefined.
28
+ * The the compiler generates calls to this function, ensuring the correct set of arguments.
29
+ */
30
+ function fragmentDataInjector<
31
+ TFragmentType: FragmentType,
32
+ TData: ?{...},
33
+ TResolverFn: ($FlowFixMe, ?$FlowFixMe) => mixed,
34
+ >(
35
+ fragment: Fragment<TFragmentType, TData>,
36
+ resolverFn: TResolverFn,
37
+ fieldName?: string,
38
+ ): (fragmentKey: TFragmentType, args: mixed) => mixed {
39
+ return (fragmentKey: TFragmentType, args: mixed): mixed => {
40
+ const data = readFragment(fragment, fragmentKey);
41
+ if (fieldName != null) {
42
+ if (data == null) {
43
+ return null;
44
+ }
45
+
46
+ // If `fieldName` is defined, the resolver expects only
47
+ // the data for this field.
48
+ if (fieldName in data) {
49
+ return resolverFn(data[fieldName], args);
50
+ } else {
51
+ // If both `data` and `fieldName` is available, we expect the
52
+ // `fieldName` field in the `data` object.
53
+ invariant(false, 'Missing field `%` in resolver response.', fieldName);
54
+ }
55
+ } else {
56
+ // By default we will pass the full set of the fragment data to the resolver
57
+ return resolverFn(data, args);
58
+ }
59
+ };
60
+ }
61
+
62
+ module.exports = fragmentDataInjector;
@@ -85,6 +85,8 @@ class LiveResolverCache implements ResolverCache {
85
85
  _recordIDToResolverIDs: Map<DataID, Set<ResolverID>>;
86
86
  _getRecordSource: () => MutableRecordSource;
87
87
  _store: LiveResolverStore;
88
+ _handlingBatch: boolean; // Flag indicating that Live Resolver updates are being batched.
89
+ _liveResolverBatchRecordSource: ?MutableRecordSource; // Lazily created record source for batched Live Resolver updates.
88
90
 
89
91
  constructor(
90
92
  getRecordSource: () => MutableRecordSource,
@@ -94,6 +96,8 @@ class LiveResolverCache implements ResolverCache {
94
96
  this._recordIDToResolverIDs = new Map();
95
97
  this._getRecordSource = getRecordSource;
96
98
  this._store = store;
99
+ this._handlingBatch = false;
100
+ this._liveResolverBatchRecordSource = null;
97
101
  }
98
102
 
99
103
  readFromCacheOrEvaluate<T>(
@@ -403,7 +407,6 @@ class LiveResolverCache implements ResolverCache {
403
407
  return;
404
408
  }
405
409
 
406
- const nextSource = RelayRecordSource.create();
407
410
  const nextRecord = RelayModernRecord.clone(currentRecord);
408
411
 
409
412
  // Mark the field as dirty. The next time it's read, we will call
@@ -414,13 +417,48 @@ class LiveResolverCache implements ResolverCache {
414
417
  true,
415
418
  );
416
419
 
417
- nextSource.set(linkedID, nextRecord);
418
- this._store.publish(nextSource);
420
+ this._setLiveResolverUpdate(linkedID, nextRecord);
421
+ };
422
+ }
419
423
 
420
- // In the future, this notify might be deferred if we are within a
421
- // transaction.
424
+ _setLiveResolverUpdate(linkedId: DataID, record: Record) {
425
+ if (this._handlingBatch) {
426
+ // Lazily create the batched record source.
427
+ if (this._liveResolverBatchRecordSource == null) {
428
+ this._liveResolverBatchRecordSource = RelayRecordSource.create();
429
+ }
430
+ this._liveResolverBatchRecordSource.set(linkedId, record);
431
+ // We will wait for the batch to complete before we publish/notify...
432
+ } else {
433
+ const nextSource = RelayRecordSource.create();
434
+ nextSource.set(linkedId, record);
435
+
436
+ // We are not within a batch, so we will immediately publish/notify.
437
+ this._store.publish(nextSource);
422
438
  this._store.notify();
423
- };
439
+ }
440
+ }
441
+
442
+ batchLiveStateUpdates(callback: () => void) {
443
+ invariant(
444
+ !this._handlingBatch,
445
+ 'Unexpected nested call to batchLiveStateUpdates.',
446
+ );
447
+ this._handlingBatch = true;
448
+ try {
449
+ callback();
450
+ } finally {
451
+ // We lazily create the record source. If one has not been created, there
452
+ // is nothing to publish.
453
+ if (this._liveResolverBatchRecordSource != null) {
454
+ this._store.publish(this._liveResolverBatchRecordSource);
455
+ this._store.notify();
456
+ }
457
+
458
+ // Reset batched state.
459
+ this._liveResolverBatchRecordSource = null;
460
+ this._handlingBatch = false;
461
+ }
424
462
  }
425
463
 
426
464
  _setRelayResolverValue(
@@ -191,6 +191,29 @@ class LiveResolverStore implements Store {
191
191
  return this._resolverCache.getLiveResolverPromise(recordID);
192
192
  }
193
193
 
194
+ /**
195
+ * When an external data proider knows it's going to notify us about multiple
196
+ * Live Resolver state updates in a single tick, it can batch them into a
197
+ * single Relay update by notifying us within a batch. All updates recieved by
198
+ * Relay during the evaluation of the provided `callback` will be aggregated
199
+ * into a single Relay update.
200
+ *
201
+ * A typical use with a Flux store might look like this:
202
+ *
203
+ * const originalDispatch = fluxStore.dispatch;
204
+ *
205
+ * function wrapped(action) {
206
+ * relayStore.batchLiveStateUpdates(() => {
207
+ * originalDispatch(action);
208
+ * })
209
+ * }
210
+ *
211
+ * fluxStore.dispatch = wrapped;
212
+ */
213
+ batchLiveStateUpdates(callback: () => void) {
214
+ this._resolverCache.batchLiveStateUpdates(callback);
215
+ }
216
+
194
217
  check(
195
218
  operation: OperationDescriptor,
196
219
  options?: CheckOptions,
@@ -373,7 +396,7 @@ class LiveResolverStore implements Store {
373
396
  this._resolverCache.invalidateDataIDs(this._updatedRecordIDs);
374
397
 
375
398
  const source = this.getSource();
376
- const updatedOwners = [];
399
+ const updatedOwners: Array<RequestDescriptor> = [];
377
400
  this._storeSubscriptions.updateSubscriptions(
378
401
  source,
379
402
  this._updatedRecordIDs,
@@ -501,7 +524,7 @@ class LiveResolverStore implements Store {
501
524
  // real RelayModernStore can create. For now we just use any.
502
525
  // $FlowFixMe
503
526
  lookupInvalidationState(dataIDs: $ReadOnlyArray<DataID>): any {
504
- const invalidations = new Map();
527
+ const invalidations = new Map<DataID, ?number>();
505
528
  dataIDs.forEach(dataID => {
506
529
  const record = this.getSource().get(dataID);
507
530
  invalidations.set(
@@ -663,7 +686,7 @@ class LiveResolverStore implements Store {
663
686
  /* eslint-disable no-labels */
664
687
  top: while (true) {
665
688
  const startEpoch = this._currentWriteEpoch;
666
- const references = new Set();
689
+ const references = new Set<DataID>();
667
690
 
668
691
  // Mark all records that are traversable from a root
669
692
  for (const {operation} of this._roots.values()) {
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ function resolverWeakObjectWrapper<TKey, TArgs>(
14
+ resolverFn: (key: TKey, args?: TArgs) => mixed,
15
+ key: string,
16
+ ): (key: TKey, args?: TArgs) => mixed {
17
+ return (...args) => {
18
+ const data = resolverFn.apply(null, args);
19
+ return {
20
+ [key]: data,
21
+ };
22
+ };
23
+ }
24
+
25
+ module.exports = resolverWeakObjectWrapper;
@@ -67,7 +67,7 @@ const RelayProfiler = {
67
67
  profile(name: EventName, state?: any): {stop: (error?: Error) => void, ...} {
68
68
  const handlers = profileHandlersByName[name];
69
69
  if (handlers && handlers.length > 0) {
70
- const stopHandlers = [];
70
+ const stopHandlers: Array<(error?: Error) => void> = [];
71
71
  for (let ii = handlers.length - 1; ii >= 0; ii--) {
72
72
  const stopHandler = handlers[ii](name, state);
73
73
  stopHandlers.unshift(stopHandler);
@@ -11,7 +11,7 @@
11
11
 
12
12
  'use strict';
13
13
 
14
- const internTable = new Map();
14
+ const internTable = new Map<string, string>();
15
15
  let nextIndex = 1;
16
16
  const digits = initDigitTable();
17
17
 
@@ -26,7 +26,7 @@ const ESCAPE_PREFIX = '\v';
26
26
  function initDigitTable() {
27
27
  // disable lint because digits isn't defined when this function is called
28
28
  // eslint-disable-next-line no-shadow
29
- const digits = new Set();
29
+ const digits = new Set<string>();
30
30
  for (let i = 0; i < 10; ++i) {
31
31
  digits.add(i.toString());
32
32
  }