relay-runtime 0.0.0-main-91feecfd → 0.0.0-main-8e13c8f5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -1
- package/lib/store/{experimental-external-state-resolvers/ExternalStateResolverCache.js → experimental-live-resolvers/LiveResolverCache.js} +61 -65
- package/lib/store/{experimental-external-state-resolvers/ExternalStateResolverStore.js → experimental-live-resolvers/LiveResolverStore.js} +11 -11
- package/package.json +1 -1
- package/relay-runtime.js +1 -1
- package/relay-runtime.min.js +1 -1
- package/store/{experimental-external-state-resolvers/ExternalStateResolverCache.js.flow → experimental-live-resolvers/LiveResolverCache.js.flow} +78 -80
- package/store/{experimental-external-state-resolvers/ExternalStateResolverStore.js.flow → experimental-live-resolvers/LiveResolverStore.js.flow} +8 -8
package/index.js
CHANGED
|
@@ -16,34 +16,39 @@ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime
|
|
|
16
16
|
|
|
17
17
|
var recycleNodesInto = require('../../util/recycleNodesInto');
|
|
18
18
|
|
|
19
|
-
var _require = require('
|
|
20
|
-
|
|
19
|
+
var _require = require('../../util/RelayConcreteNode'),
|
|
20
|
+
RELAY_LIVE_RESOLVER = _require.RELAY_LIVE_RESOLVER;
|
|
21
|
+
|
|
22
|
+
var _require2 = require('../ClientID'),
|
|
23
|
+
generateClientID = _require2.generateClientID;
|
|
21
24
|
|
|
22
25
|
var RelayModernRecord = require('../RelayModernRecord');
|
|
23
26
|
|
|
24
27
|
var RelayRecordSource = require('../RelayRecordSource');
|
|
25
28
|
|
|
26
|
-
var
|
|
27
|
-
RELAY_RESOLVER_ERROR_KEY =
|
|
28
|
-
RELAY_RESOLVER_INPUTS_KEY =
|
|
29
|
-
RELAY_RESOLVER_INVALIDATION_KEY =
|
|
30
|
-
RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY =
|
|
31
|
-
RELAY_RESOLVER_READER_SELECTOR_KEY =
|
|
32
|
-
RELAY_RESOLVER_VALUE_KEY =
|
|
33
|
-
getStorageKey =
|
|
29
|
+
var _require3 = require('../RelayStoreUtils'),
|
|
30
|
+
RELAY_RESOLVER_ERROR_KEY = _require3.RELAY_RESOLVER_ERROR_KEY,
|
|
31
|
+
RELAY_RESOLVER_INPUTS_KEY = _require3.RELAY_RESOLVER_INPUTS_KEY,
|
|
32
|
+
RELAY_RESOLVER_INVALIDATION_KEY = _require3.RELAY_RESOLVER_INVALIDATION_KEY,
|
|
33
|
+
RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY = _require3.RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY,
|
|
34
|
+
RELAY_RESOLVER_READER_SELECTOR_KEY = _require3.RELAY_RESOLVER_READER_SELECTOR_KEY,
|
|
35
|
+
RELAY_RESOLVER_VALUE_KEY = _require3.RELAY_RESOLVER_VALUE_KEY,
|
|
36
|
+
getStorageKey = _require3.getStorageKey;
|
|
37
|
+
|
|
38
|
+
var LiveResolverStore = require('./LiveResolverStore');
|
|
34
39
|
|
|
35
|
-
var
|
|
40
|
+
var invariant = require('invariant');
|
|
36
41
|
|
|
37
42
|
var warning = require("fbjs/lib/warning"); // When this experiment gets promoted to stable, these keys will move into
|
|
38
43
|
// `RelayStoreUtils`.
|
|
39
44
|
|
|
40
45
|
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var
|
|
46
|
+
var RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY = '__resolverLieStateSubscription';
|
|
47
|
+
var RELAY_RESOLVER_LIVE_STATE_VALUE = '__resolverLiveStateValue';
|
|
48
|
+
var RELAY_RESOLVER_LIVE_STATE_DIRTY = '__resolverLiveStateDirty';
|
|
44
49
|
/**
|
|
45
50
|
* An experimental fork of store/ResolverCache.js intended to let us experiment
|
|
46
|
-
* with
|
|
51
|
+
* with Live Resolvers.
|
|
47
52
|
*/
|
|
48
53
|
|
|
49
54
|
// $FlowFixMe[unclear-type] - will always be empty
|
|
@@ -60,15 +65,15 @@ function addDependencyEdge(edges, from, to) {
|
|
|
60
65
|
set.add(to);
|
|
61
66
|
}
|
|
62
67
|
|
|
63
|
-
var
|
|
64
|
-
function
|
|
68
|
+
var LiveResolverCache = /*#__PURE__*/function () {
|
|
69
|
+
function LiveResolverCache(getRecordSource, store) {
|
|
65
70
|
this._resolverIDToRecordIDs = new Map();
|
|
66
71
|
this._recordIDToResolverIDs = new Map();
|
|
67
72
|
this._getRecordSource = getRecordSource;
|
|
68
73
|
this._store = store;
|
|
69
74
|
}
|
|
70
75
|
|
|
71
|
-
var _proto =
|
|
76
|
+
var _proto = LiveResolverCache.prototype;
|
|
72
77
|
|
|
73
78
|
_proto.readFromCacheOrEvaluate = function readFromCacheOrEvaluate(record, field, variables, evaluate, getDataForResolverFragment) {
|
|
74
79
|
var recordSource = this._getRecordSource();
|
|
@@ -84,14 +89,17 @@ var ExternalStateResolverCache = /*#__PURE__*/function () {
|
|
|
84
89
|
// Cache miss; evaluate the selector and store the result in a new record:
|
|
85
90
|
linkedID = (_linkedID = linkedID) !== null && _linkedID !== void 0 ? _linkedID : generateClientID(recordID, storageKey);
|
|
86
91
|
linkedRecord = RelayModernRecord.create(linkedID, '__RELAY_RESOLVER__');
|
|
87
|
-
var evaluationResult = evaluate();
|
|
88
|
-
|
|
89
|
-
|
|
92
|
+
var evaluationResult = evaluate();
|
|
93
|
+
|
|
94
|
+
if (field.kind === RELAY_LIVE_RESOLVER) {
|
|
95
|
+
if (process.env.NODE_ENV !== "production") {
|
|
96
|
+
!isLiveStateValue(evaluationResult.resolverResult) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected a @live Relay Resolver to return a value that implements LiveState.') : invariant(false) : void 0;
|
|
97
|
+
}
|
|
90
98
|
|
|
91
|
-
|
|
99
|
+
var liveState = // $FlowFixMe[incompatible-type] - casting mixed
|
|
100
|
+
evaluationResult.resolverResult;
|
|
92
101
|
|
|
93
|
-
|
|
94
|
-
this._setExternalStateValue(linkedRecord, linkedID, externalState);
|
|
102
|
+
this._setLiveStateValue(linkedRecord, linkedID, liveState);
|
|
95
103
|
} else {
|
|
96
104
|
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, evaluationResult.resolverResult);
|
|
97
105
|
}
|
|
@@ -123,30 +131,23 @@ var ExternalStateResolverCache = /*#__PURE__*/function () {
|
|
|
123
131
|
} finally {
|
|
124
132
|
_iterator.f();
|
|
125
133
|
}
|
|
126
|
-
} else {
|
|
127
|
-
|
|
134
|
+
} else if (field.kind === RELAY_LIVE_RESOLVER && RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY)) {
|
|
135
|
+
var _linkedID2;
|
|
136
|
+
|
|
137
|
+
// If this is an Live Resolver, we might have a cache hit (the
|
|
128
138
|
// fragment data hasn't changed since we last evaluated the resolver),
|
|
129
|
-
// but it might still be "dirty" (the
|
|
139
|
+
// but it might still be "dirty" (the live state changed and we need
|
|
130
140
|
// to call `.read()` again).
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
// only External State Resolvers can have `RELAY_EXTERNAL_STATE_DIRTY`
|
|
134
|
-
// set. However, in the future, we will have a distinct Reader AST node
|
|
135
|
-
// for External State Resolvers, so we won't have to be so implicit.
|
|
136
|
-
if (RelayModernRecord.getValue(linkedRecord, RELAY_EXTERNAL_STATE_DIRTY)) {
|
|
137
|
-
var _linkedID2;
|
|
138
|
-
|
|
139
|
-
linkedID = (_linkedID2 = linkedID) !== null && _linkedID2 !== void 0 ? _linkedID2 : generateClientID(recordID, storageKey);
|
|
140
|
-
linkedRecord = RelayModernRecord.clone(linkedRecord); // $FlowFixMe[incompatible-type] - casting mixed
|
|
141
|
+
linkedID = (_linkedID2 = linkedID) !== null && _linkedID2 !== void 0 ? _linkedID2 : generateClientID(recordID, storageKey);
|
|
142
|
+
linkedRecord = RelayModernRecord.clone(linkedRecord); // $FlowFixMe[incompatible-type] - casting mixed
|
|
141
143
|
|
|
142
|
-
|
|
144
|
+
var _liveState = RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_VALUE); // Set the new value for this and future reads.
|
|
143
145
|
|
|
144
146
|
|
|
145
|
-
|
|
147
|
+
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, _liveState.read()); // Mark the resolver as clean again.
|
|
146
148
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
149
|
+
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY, false);
|
|
150
|
+
recordSource.set(linkedID, linkedRecord);
|
|
150
151
|
} // $FlowFixMe[incompatible-type] - will always be empty
|
|
151
152
|
|
|
152
153
|
|
|
@@ -156,36 +157,36 @@ var ExternalStateResolverCache = /*#__PURE__*/function () {
|
|
|
156
157
|
|
|
157
158
|
var errors = linkedRecord[RELAY_RESOLVER_ERROR_KEY];
|
|
158
159
|
return [answer, linkedID, errors, missingRequiredFields];
|
|
159
|
-
} // Register a new
|
|
160
|
+
} // Register a new Live State object in the store, subscribing to future
|
|
160
161
|
// updates.
|
|
161
162
|
;
|
|
162
163
|
|
|
163
|
-
_proto.
|
|
164
|
+
_proto._setLiveStateValue = function _setLiveStateValue(linkedRecord, linkedID, liveState) {
|
|
164
165
|
// If there's an existing subscription, unsubscribe.
|
|
165
166
|
// $FlowFixMe[incompatible-type] - casting mixed
|
|
166
|
-
var previousUnsubscribe = RelayModernRecord.getValue(linkedRecord,
|
|
167
|
+
var previousUnsubscribe = RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY);
|
|
167
168
|
|
|
168
169
|
if (previousUnsubscribe != null) {
|
|
169
170
|
previousUnsubscribe();
|
|
170
171
|
} // Subscribe to future values
|
|
171
172
|
|
|
172
173
|
|
|
173
|
-
var handler = this.
|
|
174
|
+
var handler = this._makeLiveStateHandler(linkedID);
|
|
174
175
|
|
|
175
|
-
var unsubscribe =
|
|
176
|
+
var unsubscribe = liveState.subscribe(handler); // Store the live state value for future re-reads.
|
|
176
177
|
|
|
177
|
-
RelayModernRecord.setValue(linkedRecord,
|
|
178
|
+
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_VALUE, liveState); // Store the current value, for this read, and future cached reads.
|
|
178
179
|
|
|
179
|
-
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY,
|
|
180
|
+
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, liveState.read()); // Mark the field as clean.
|
|
180
181
|
|
|
181
|
-
RelayModernRecord.setValue(linkedRecord,
|
|
182
|
+
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY, false); // Store our our unsubscribe function for future cleanup.
|
|
182
183
|
|
|
183
|
-
RelayModernRecord.setValue(linkedRecord,
|
|
184
|
-
} // Create a callback to handle notifications from the
|
|
184
|
+
RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY, unsubscribe);
|
|
185
|
+
} // Create a callback to handle notifications from the live source that the
|
|
185
186
|
// value may have changed.
|
|
186
187
|
;
|
|
187
188
|
|
|
188
|
-
_proto.
|
|
189
|
+
_proto._makeLiveStateHandler = function _makeLiveStateHandler(linkedID) {
|
|
189
190
|
var _this = this;
|
|
190
191
|
|
|
191
192
|
return function () {
|
|
@@ -200,9 +201,9 @@ var ExternalStateResolverCache = /*#__PURE__*/function () {
|
|
|
200
201
|
|
|
201
202
|
var nextSource = RelayRecordSource.create();
|
|
202
203
|
var nextRecord = RelayModernRecord.clone(currentRecord); // Mark the field as dirty. The next time it's read, we will call
|
|
203
|
-
// `
|
|
204
|
+
// `LiveState.read()`.
|
|
204
205
|
|
|
205
|
-
RelayModernRecord.setValue(nextRecord,
|
|
206
|
+
RelayModernRecord.setValue(nextRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY, true);
|
|
206
207
|
nextSource.set(linkedID, nextRecord);
|
|
207
208
|
|
|
208
209
|
_this._store.publish(nextSource); // In the future, this notify might be defferred if we are within a
|
|
@@ -301,20 +302,15 @@ var ExternalStateResolverCache = /*#__PURE__*/function () {
|
|
|
301
302
|
return false;
|
|
302
303
|
};
|
|
303
304
|
|
|
304
|
-
return
|
|
305
|
-
}(); //
|
|
306
|
-
// a value is external state
|
|
305
|
+
return LiveResolverCache;
|
|
306
|
+
}(); // Validate that a value is live state
|
|
307
307
|
// $FlowFixMe
|
|
308
308
|
|
|
309
309
|
|
|
310
|
-
function
|
|
311
|
-
|
|
312
|
-
return v;
|
|
313
|
-
} else {
|
|
314
|
-
return null;
|
|
315
|
-
}
|
|
310
|
+
function isLiveStateValue(v) {
|
|
311
|
+
return v != null && typeof v.read === 'function' && typeof v.subscribe === 'function';
|
|
316
312
|
}
|
|
317
313
|
|
|
318
314
|
module.exports = {
|
|
319
|
-
|
|
315
|
+
LiveResolverCache: LiveResolverCache
|
|
320
316
|
};
|
|
@@ -48,8 +48,8 @@ var _require2 = require('../RelayStoreUtils'),
|
|
|
48
48
|
ROOT_ID = _require2.ROOT_ID,
|
|
49
49
|
ROOT_TYPE = _require2.ROOT_TYPE;
|
|
50
50
|
|
|
51
|
-
var _require3 = require('./
|
|
52
|
-
|
|
51
|
+
var _require3 = require('./LiveResolverCache'),
|
|
52
|
+
LiveResolverCache = _require3.LiveResolverCache;
|
|
53
53
|
|
|
54
54
|
var invariant = require('invariant');
|
|
55
55
|
|
|
@@ -60,8 +60,8 @@ var DEFAULT_RELEASE_BUFFER_SIZE = 10;
|
|
|
60
60
|
* Experimental fork of RelayModernStore
|
|
61
61
|
*/
|
|
62
62
|
|
|
63
|
-
var
|
|
64
|
-
function
|
|
63
|
+
var LiveResolverStore = /*#__PURE__*/function () {
|
|
64
|
+
function LiveResolverStore(source, options) {
|
|
65
65
|
var _this = this;
|
|
66
66
|
|
|
67
67
|
var _options$gcReleaseBuf, _options$gcScheduler, _options$getDataID, _options$log, _options$operationLoa;
|
|
@@ -106,7 +106,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
|
|
|
106
106
|
this._releaseBuffer = [];
|
|
107
107
|
this._roots = new Map();
|
|
108
108
|
this._shouldScheduleGC = false;
|
|
109
|
-
this._resolverCache = new
|
|
109
|
+
this._resolverCache = new LiveResolverCache(function () {
|
|
110
110
|
return _this._getMutableRecordSource();
|
|
111
111
|
}, this);
|
|
112
112
|
this._storeSubscriptions = new RelayStoreSubscriptions(options === null || options === void 0 ? void 0 : options.log, this._resolverCache);
|
|
@@ -115,7 +115,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
|
|
|
115
115
|
initializeRecordSource(this._recordSource);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
var _proto =
|
|
118
|
+
var _proto = LiveResolverStore.prototype;
|
|
119
119
|
|
|
120
120
|
_proto.getSource = function getSource() {
|
|
121
121
|
var _this$_optimisticSour;
|
|
@@ -397,7 +397,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
|
|
|
397
397
|
};
|
|
398
398
|
|
|
399
399
|
_proto.toJSON = function toJSON() {
|
|
400
|
-
return '
|
|
400
|
+
return 'LiveResolverStore()';
|
|
401
401
|
};
|
|
402
402
|
|
|
403
403
|
_proto.getEpoch = function getEpoch() {
|
|
@@ -507,7 +507,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
|
|
|
507
507
|
};
|
|
508
508
|
|
|
509
509
|
_proto.snapshot = function snapshot() {
|
|
510
|
-
!(this._optimisticSource == null) ? process.env.NODE_ENV !== "production" ? invariant(false, '
|
|
510
|
+
!(this._optimisticSource == null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'LiveResolverStore: Unexpected call to snapshot() while a previous ' + 'snapshot exists.') : invariant(false) : void 0;
|
|
511
511
|
var log = this.__log;
|
|
512
512
|
|
|
513
513
|
if (log != null) {
|
|
@@ -527,7 +527,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
|
|
|
527
527
|
};
|
|
528
528
|
|
|
529
529
|
_proto.restore = function restore() {
|
|
530
|
-
!(this._optimisticSource != null) ? process.env.NODE_ENV !== "production" ? invariant(false, '
|
|
530
|
+
!(this._optimisticSource != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'LiveResolverStore: Unexpected call to restore(), expected a snapshot ' + 'to exist (make sure to call snapshot()).') : invariant(false) : void 0;
|
|
531
531
|
var log = this.__log;
|
|
532
532
|
|
|
533
533
|
if (log != null) {
|
|
@@ -632,7 +632,7 @@ var ExternalStateResolverStore = /*#__PURE__*/function () {
|
|
|
632
632
|
}
|
|
633
633
|
};
|
|
634
634
|
|
|
635
|
-
return
|
|
635
|
+
return LiveResolverStore;
|
|
636
636
|
}();
|
|
637
637
|
|
|
638
638
|
function initializeRecordSource(target) {
|
|
@@ -784,4 +784,4 @@ function getAvailabilityStatus(operationAvailability, operationLastWrittenAt, op
|
|
|
784
784
|
};
|
|
785
785
|
}
|
|
786
786
|
|
|
787
|
-
module.exports =
|
|
787
|
+
module.exports = LiveResolverStore;
|
package/package.json
CHANGED
package/relay-runtime.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Relay v0.0.0-main-
|
|
2
|
+
* Relay v0.0.0-main-8e13c8f5
|
|
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=58)}([function(t,r){t.exports=e},function(e,r){e.exports=t},function(e,t,r){"use strict";var n=r(1)(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_INPUTS_KEY:"__resolverInputValues",RELAY_RESOLVER_READER_SELECTOR_KEY:"__resolverReaderSelector",RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY:"__resolverMissingRequiredFields",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=void 0===e.args?void 0:e.args,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}},function(e,t,r){"use strict";e.exports={ACTOR_CHANGE:"ActorChange",CONDITION:"Condition",CLIENT_COMPONENT:"ClientComponent",CLIENT_EDGE:"ClientEdge",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",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=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},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(1)(r(7)),i=r(18),a=r(8).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),g=r(3);function v(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:v,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];return null==r?r:("object"==typeof r&&r&&"string"==typeof r[c]||_(!1,"RelayModernRecord.getLinkedRecordID(): Expected `%s.%s` to be a linked ID, was `%s`.%s",e[l],t,JSON.stringify(r),"object"==typeof r&&void 0!==r[d]?" It appears to be a plural linked record: did you mean to call getLinkedRecords() instead of getLinkedRecord()?":""),r[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,n,i=v(e),o=v(t);g(i===o,"RelayModernRecord: Invalid record merge, expected both versions of the record to have the same id, got `%s` and `%s`.",i,o);var s=null!==(r=m(e))&&void 0!==r?r:null,l=null!==(n=m(t))&&void 0!==n?n:null;return g(a(o)&&o!==f||s===l,"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.",i,h,s,l),Object.assign({},e,t)},setValue:function(e,t,r){var n=v(e);if(t===l)g(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;g(a(v(e))&&v(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=v(e),s=v(t);g(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;g(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 y=d[_];!c&&p(e[y],t[y])||((c=null!==c?c:(0,n.default)({},e))[y]=t[y])}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(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(13).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,g=p,v=i[e.name];return R(e,r,n(e,_.variables,v),_,h,g)}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 g(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?v(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),v(e,t))}function v(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),E(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),y(e,t)||{})}function y(e,t){var r=h(e,t);return r?r.variables:null}function E(e,t){var r={};return t.forEach((function(t,n){if(null!=t){var i=y(e,t);null!=i&&Object.assign(r,i)}})),r}function b(e,t){return e.owner===t.owner&&e.dataID===t.dataID&&e.node===t.node&&c(e.variables,t.variables)}function R(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"SingularReaderSelector"===(null==e?void 0:e.kind)&&"SingularReaderSelector"===(null==t?void 0:t.kind)?b(e,t):"PluralReaderSelector"===(null==e?void 0:e.kind)&&"PluralReaderSelector"===(null==t?void 0:t.kind)?e.selectors.length===t.selectors.length&&e.selectors.every((function(e,r){return b(e,t.selectors[r])})):null==e&&null==t},createReaderSelector:R,createNormalizationSelector:function(e,t,r){return{dataID:t,node:e,variables:r}},getDataIDsFromFragment:g,getDataIDsFromObject:function(e,t){var r={};for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=t[n];r[n]=g(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:y,getVariablesFromPluralFragment:E,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=r(18),i=r(39),a=r(13).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,r){"use strict";var n=r(1)(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){var i;return 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},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){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=r(1)(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(9).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(8).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,g=i.START_CURSOR,v=r.getLinkedRecord(t.fieldKey),m=v&&v.getLinkedRecord(p);if(v){var y=n(r.getDataID(),t.handleKey),E=r.getLinkedRecord(t.handleKey),b=null!=E?E:e.get(y),R=b&&b.getLinkedRecord(p);if(b){null==E&&r.setLinkedRecord(b,t.handleKey);var I=b,D=v.getLinkedRecords(a);D&&(D=D.map((function(t){return c(e,I,t)})));var S=I.getLinkedRecords(a),k=I.getLinkedRecord(p);I.copyFieldsFrom(v),S&&I.setLinkedRecords(S,a),k&&I.setLinkedRecord(k,p);var A=[],T=t.args;if(S&&D)if(null!=T.after){if(!R||T.after!==R.getValue(s))return void l(!1,"Relay: Unexpected after cursor `%s`, edges must be fetched from the end of the list (`%s`).",T.after,R&&R.getValue(s));var O=new Set;d(S,A,O),d(D,A,O)}else if(null!=T.before){if(!R||T.before!==R.getValue(g))return void l(!1,"Relay: Unexpected before cursor `%s`, edges must be fetched from the beginning of the list (`%s`).",T.before,R&&R.getValue(g));var N=new Set;d(D,A,N),d(S,A,N)}else A=D;else A=D||S;if(null!=A&&A!==S&&I.setLinkedRecords(A,a),R&&m)if(null==T.after&&null==T.before)R.copyFieldsFrom(m);else if(null!=T.before||null==T.after&&T.last){R.setValue(!!m.getValue(h),h);var F=m.getValue(g);"string"==typeof F&&R.setValue(F,g)}else if(null!=T.after||null==T.before&&T.first){R.setValue(!!m.getValue(f),f);var P=m.getValue(s);"string"==typeof P&&R.setValue(P,s)}}else{var L=e.create(y,v.getType());L.setValue(0,u),L.copyFieldsFrom(v);var x=v.getLinkedRecords(a);x&&(x=x.map((function(t){return c(e,L,t)})),L.setLinkedRecords(x,a)),r.setLinkedRecord(L,t.handleKey),(R=e.create(n(L.getDataID(),p),_)).setValue(!1,f),R.setValue(!1,h),R.setValue(null,s),R.setValue(null,g),m&&R.copyFieldsFrom(m),L.setLinkedRecord(R,p)}}else r.setValue(null,t.handleKey)}}}},function(e,t,r){"use strict";var n=r(1)(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 g=i.buildConnectionEdge(e,_,f);if(g)switch(p.rangeBehavior){case"append":i.insertEdgeAfter(_,g);break;case"prepend":i.insertEdgeBefore(_,g);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={CLIENT_MUTATION_ID:"clientMutationId",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=r(1)(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(42),a=r(0),o="function"==typeof WeakMap?new WeakMap:new Map;function s(e,t,r){return n.create((function(o){var s=u(e),l=s.get(t);return l||r().finally((function(){return s.delete(t)})).subscribe({start:function(e){l={identifier:t,subject:new i,subjectForInFlightStatus:new i,subscription:e},s.set(t,l)},next:function(e){var r=c(s,t);r.subject.next(e),r.subjectForInFlightStatus.next(e)},error:function(e){var r=c(s,t);r.subject.error(e),r.subjectForInFlightStatus.error(e)},complete:function(){var e=c(s,t);e.subject.complete(),e.subjectForInFlightStatus.complete()},unsubscribe:function(e){var r=c(s,t);r.subject.unsubscribe(),r.subjectForInFlightStatus.unsubscribe()}}),null==l&&a(!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(o)}))}function l(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 u(e){var t=o.get(e);if(null!=t)return t;var r=new Map;return o.set(e,r),r}function c(e,t){var r=e.get(t);return null==r&&a(!1,"[fetchQueryInternal] getCachedRequest: Expected request to be cached"),r}e.exports={fetchQuery:function(e,t){return s(e,t.request.identifier,(function(){return e.execute({operation:t})}))},fetchQueryDeduped:s,getPromiseForActiveRequest:function(e,t){var r=u(e),n=r.get(t.identifier);return n&&e.isRequestActive(n.identifier)?new Promise((function(t,r){var i=!1;l(e,0,n).subscribe({complete:t,error:r,next:function(e){i&&t(e)}}),i=!0})):null},getObservableForActiveRequest:function(e,t){var r=u(e),n=r.get(t.identifier);return n&&e.isRequestActive(n.identifier)?l(e,0,n):null}}},function(e,t,r){"use strict";var n=r(0);e.exports={assertInternalActorIndentifier: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),i=n(r(4)),a=n(r(19)),o=n(r(16)),s=r(6),l=s.ACTOR_CHANGE,u=s.CLIENT_EDGE,c=s.CLIENT_EXTENSION,d=s.CONDITION,f=s.DEFER,h=s.FLIGHT_FIELD,p=s.FRAGMENT_SPREAD,_=s.INLINE_DATA_FRAGMENT_SPREAD,g=s.INLINE_FRAGMENT,v=s.LINKED_FIELD,m=s.MODULE_IMPORT,y=s.RELAY_LIVE_RESOLVER,E=s.RELAY_RESOLVER,b=s.REQUIRED_FIELD,R=s.SCALAR_FIELD,I=s.STREAM,D=r(5),S=r(8),k=r(9),A=r(21).getReactFlightClientResponse,T=r(2),O=T.CLIENT_EDGE_TRAVERSAL_PATH,N=T.FRAGMENT_OWNER_KEY,F=T.FRAGMENT_PROP_NAME_KEY,P=T.FRAGMENTS_KEY,L=T.ID_KEY,x=T.IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,w=T.MODULE_COMPONENT_KEY,C=T.ROOT_ID,M=T.getArgumentValues,U=T.getModuleComponentKey,V=T.getStorageKey,q=r(54).NoopResolverCache,j=r(55).withResolverContext,K=r(26).generateTypeID,G=r(0);var H=function(){function e(e,t,r){var n;this._clientEdgeTraversalPath=D.ENABLE_CLIENT_EDGES&&(null===(n=t.clientEdgeTraversalPath)||void 0===n?void 0:n.length)?(0,o.default)(t.clientEdgeTraversalPath):[],this._missingClientEdges=[],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&&(k.getType(a)!==t.type&&r!==C&&(o=!1));if(o&&null!=i&&null!=a){var s=k.getType(a),l=K(s),u=this._recordSource.get(l),c=null!=u?k.getValue(u,i):null;!1===c?o=!1:null==c&&(this._isMissingData=!0)}return this._isWithinUnmatchedTypeRefinement=!o,{data:this._traverse(t,r,null),isMissingData:this._isMissingData&&o,missingClientEdges:D.ENABLE_CLIENT_EDGES&&this._missingClientEdges.length?this._missingClientEdges:null,seenRecords:this._seenRecords,selector:this._selector,missingRequiredFields:this._missingRequiredFields,relayResolverErrors:this._resolverErrors}},t._markDataAsMissing=function(){if(this._isMissingData=!0,D.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)||G(!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 b:if(null==this._readRequiredField(i,t,r)){var a=i.action;return"NONE"!==a&&this._maybeReportUnexpectedNull(i.path,a,t),!1}break;case R:this._readScalar(i,t,r);break;case v:i.plural?this._readPluralLink(i,t,r):this._readLink(i,t,r);break;case d:if(Boolean(this._getVariableValue(i.condition))===i.passingValue)if(!this._traverseSelections(i.selections,t,r))return!1;break;case g:var o=i.abstractKey;if(null==o){var s=k.getType(t);if(null!=s&&s===i.type)if(!this._traverseSelections(i.selections,t,r))return!1}else{var S=this._isMissingData,A=this._isWithinUnmatchedTypeRefinement,T=k.getType(t),O=K(T),N=this._recordSource.get(O),F=null!=N?k.getValue(N,o):null;this._isWithinUnmatchedTypeRefinement=A||!1===F,this._traverseSelections(i.selections,t,r),this._isWithinUnmatchedTypeRefinement=A,!1===F?this._isMissingData=S:null==F&&this._markDataAsMissing()}break;case y:case E:if(!D.ENABLE_RELAY_RESOLVERS)throw new Error("Relay Resolver fields are not yet supported.");this._readResolverField(i,t,r);break;case p:this._createFragmentPointer(i,t,r);break;case m:this._readModuleImport(i,t,r);break;case _:this._createInlineDataOrResolverFragmentPointer(i,t,r);break;case f:case c:var P=this._isMissingData,L=this._missingClientEdges.length;D.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.push(null);var x=this._traverseSelections(i.selections,t,r);if(this._isMissingData=P||this._missingClientEdges.length>L,D.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.pop(),!x)return!1;break;case I:if(!this._traverseSelections(i.selections,t,r))return!1;break;case h:if(!D.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 u:if(!D.ENABLE_CLIENT_EDGES)throw new Error("Client edges are not yet supported.");this._readClientEdge(i,t,r);break;default:G(!1,"RelayReader(): Unexpected ast kind `%s`.",i.kind)}}return!0},t._readRequiredField=function(e,t,r){switch(e.field.kind){case R:return this._readScalar(e.field,t,r);case v:return e.field.plural?this._readPluralLink(e.field,t,r):this._readLink(e.field,t,r);case E:case y:if(!D.ENABLE_RELAY_RESOLVERS)throw new Error("Relay Resolver fields are not yet supported.");return this._readResolverField(e.field,t,r);default:e.field.kind,G(!1,"RelayReader(): Unexpected ast kind `%s`.",e.kind)}},t._readResolverField=function(e,t,r){var n,o,s,l,u,c,d,f,h=this,p=e.resolverModule,_=e.fragment,g=V(e,this._variables),v=S.generateClientID(k.getDataID(t),g),m=new Set,y=function(e){if(null!=o)return o;s=e;var r=h._seenRecords;try{var n;h._seenRecords=m;var i={};return u=h._missingRequiredFields,h._missingRequiredFields=null,d=h._resolverErrors,h._resolverErrors=[],h._createInlineDataOrResolverFragmentPointer(e.node,t,i),l=h._missingRequiredFields,c=h._resolverErrors,("object"!=typeof(o=null===(n=i[P])||void 0===n?void 0:n[_.name])||null===o)&&G(!1,"Expected reader data to contain a __fragments property with a property for the fragment named ".concat(_.name,", but it is missing.")),o}finally{h._seenRecords=r,h._missingRequiredFields=u,h._resolverErrors=d}},E={getDataForResolverFragment:y},b=this._resolverCache.readFromCacheOrEvaluate(t,e,this._variables,(function(){var r={__id:k.getDataID(t),__fragmentOwner:h._owner,__fragments:(0,a.default)({},_.name,{})};return j(E,(function(){var t=null;try{t=p(r)}catch(t){var n,i=null!==(n=e.path)&&void 0!==n?n:"[UNKNOWN]";c.push({field:{path:i,owner:h._fragmentName},error:t})}return{resolverResult:t,errors:c,fragmentValue:o,resolverID:v,seenRecordIDs:m,readerSelector:s,missingRequiredFields:l}}))}),y),R=b[0],I=b[1],D=b[2],A=b[3],T=(0,i.default)(D);try{for(T.s();!(f=T.n()).done;){var O=f.value;this._resolverErrors.push(O)}}catch(e){T.e(e)}finally{T.f()}return null!=A&&this._addMissingRequiredFields(A),null!=I&&this._seenRecords.add(I),r[null!==(n=e.alias)&&void 0!==n?n:e.name]=R,R},t._readClientEdge=function(e,t,r){var n,i=e.backingField;"ClientExtension"===i.kind&&G(!1,"Client extension client edges are not yet implemented.");var a=null!==(n=i.alias)&&void 0!==n?n:i.name,o={};this._traverseSelections([i],t,o);var s=o[a];if(null!=s){"string"!=typeof s&&G(!1,"Plural client edges not are yet implemented"),this._clientEdgeTraversalPath.push({readerClientEdge:e,clientEdgeDestinationID:s});var l=r[a];null!=l&&"object"!=typeof l&&G(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an object, got `%s`.",a,k.getDataID(t),l);var u=this._traverse(e.linkedField,s,l);r[a]=u,this._clientEdgeTraversalPath.pop()}else r[a]=s},t._readFlightField=function(e,t,r){var n,i=null!==(n=e.alias)&&void 0!==n?n:e.name,a=V(e,this._variables),o=k.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=A(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=V(e,this._variables),o=k.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=V(e,this._variables),o=k.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&&G(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an object, got `%s`.",i,k.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=V(e,this._variables),o=k.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,i=this,a=null!==(n=e.alias)&&void 0!==n?n:e.name,o=V(e,this._variables),s=k.getLinkedRecordIDs(t,o);if(null==s)return r[a]=s,void 0===s&&this._markDataAsMissing(),s;var l=r[a];null==l||Array.isArray(l)||G(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an array, got `%s`.",a,k.getDataID(t),l);var u=l||[];return s.forEach((function(r,n){if(null==r)return void 0===r&&i._markDataAsMissing(),void(u[n]=r);var o=u[n];null!=o&&"object"!=typeof o&&G(!1,"RelayReader(): Expected data for field `%s` on record `%s` to be an object, got `%s`.",a,k.getDataID(t),o),u[n]=i._traverse(e,r,o)})),r[a]=u,u},t._readModuleImport=function(e,t,r){var n=U(e.documentName),i=k.getValue(t,n);null!=i?(this._createFragmentPointer({kind:"FragmentSpread",name:e.fragmentName,args:e.args},t,r),r[F]=e.fragmentPropName,r[w]=i):void 0===i&&this._markDataAsMissing()},t._createFragmentPointer=function(e,t,r){var n=r[P];null==n&&(n=r[P]={}),("object"!=typeof n||null==n)&&G(!1,"RelayReader: Expected fragment spread data to be an object, got `%s`.",n),null==r[L]&&(r[L]=k.getDataID(t)),n[e.name]=e.args?M(e.args,this._variables):{},r[N]=this._owner,r[x]=this._isWithinUnmatchedTypeRefinement,D.ENABLE_CLIENT_EDGES&&this._clientEdgeTraversalPath.length>0&&null!==this._clientEdgeTraversalPath[this._clientEdgeTraversalPath.length-1]&&(r[O]=(0,o.default)(this._clientEdgeTraversalPath))},t._createInlineDataOrResolverFragmentPointer=function(e,t,r){var n=r[P];null==n&&(n=r[P]={}),("object"!=typeof n||null==n)&&G(!1,"RelayReader: Expected fragment spread data to be an object, got `%s`.",n),null==r[L]&&(r[L]=k.getDataID(t));var i={},a=this._fragmentName;this._fragmentName=e.name,this._traverseSelections(e.selections,t,i),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},e}();e.exports={read:function(e,t,r){return new H(e,t,null!=r?r:new q).read()}}},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=r(1)(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,r.args)}catch(e){}if(!c)try{d=u.getLinkedRecords(r.fieldKey,r.args)}catch(e){}if(null!=c||null!=d){var h,p=a.get(),_=p.NODE,g=p.EDGES,v=null!==(l=d)&&void 0!==l?l:[c],m=(0,n.default)(v);try{var y=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===(E=p.getLinkedRecords(g))||void 0===E?void 0:E.some((function(e){var t;return(null==e||null===(t=e.getLinkedRecord(_))||void 0===t?void 0:t.getDataID())===u})))){var v=i.buildConnectionEdge(t,p,r);null==v&&o(!1,"MutationHandlers: Failed to build the edge."),e(p,v)}}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 E;y()}}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,r.args)}catch(e){}if(!c)try{d=u.getLinkedRecords(r.fieldKey,r.args)}catch(e){}if(null!=c||null!=d){var _,g=a.get(),v=g.NODE,m=g.EDGES,y=null!==(l=d)&&void 0!==l?l:[c],E=(0,n.default)(y);try{var b=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===(R=d.getLinkedRecords(m))||void 0===R?void 0:R.some((function(e){var t;return(null==e||null===(t=e.getLinkedRecord(v))||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(E.s();!(_=E.n()).done;){var R;b()}}catch(e){E.e(e)}finally{E.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?new WeakMap:new Map;e.exports=function(e,t){if(null!=t){var r={};return Object.assign(r,e),Object.keys(t).forEach((function(e){var o=t[e].get,s=o();if(a.has(o)){var l=a.get(o);i(n(s,l),"Relay: Expected function `%s` for provider `%s` to be a pure function, but got conflicting return values `%s` and `%s`",o.name,e,s,l),r[e]=l}else a.set(o,s),r[e]=s})),r}return e}},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),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=r(1)(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(8).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(9),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(9),i=r(25),a=i.EXISTENT,o=i.NONEXISTENT,s=r(2),l=s.ROOT_ID,u=s.ROOT_TYPE,c=r(53).readUpdatableQuery_EXPERIMENTAL,d=r(82),f=r(0),h=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||f(!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||f(!1,"RelayRecordSourceProxy#create(): Expected the created record to exist."),r},t.delete=function(e){e===l&&f(!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 d(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||f(!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 c(e,t,this)},e}();e.exports=h},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(10).getUpdatableQuery,a=r(2).getArgumentValues,o=["id","__id","__typename","js"];function s(e,t,r,i,f){var h,p,_=(0,n.default)(i);try{var g=function(){var n=p.value;switch(n.kind){case"LinkedField":n.plural?Object.defineProperty(e,null!==(v=n.alias)&&void 0!==v?v:n.name,{get:c(n,r,t,f),set:l(n,r,t,f)}):Object.defineProperty(e,null!==(m=n.alias)&&void 0!==m?m:n.name,{get:d(n,r,t,f),set:u(n,r,t,f)});break;case"ScalarField":var i=null!==(h=n.alias)&&void 0!==h?h:n.name;Object.defineProperty(e,i,{get:function(){var e,i=a(null!==(e=n.args)&&void 0!==e?e:[],r);return t.getValue(n.name,i)},set:o.includes(n.name)?void 0:function(e){var i,o=a(null!==(i=n.args)&&void 0!==i?i:[],r);t.setValue(e,n.name,o)}});break;case"InlineFragment":t.getType()===n.type&&s(e,t,r,n.selections,f);break;case"ClientExtension":s(e,t,r,n.selections,f);break;case"FragmentSpread":break;default:throw new Error("Encountered an unexpected ReaderSelection variant in RelayRecordSourceProxy. This indicates a bug in Relay.")}};for(_.s();!(p=_.n()).done;){var v,m;g()}}catch(e){_.e(e)}finally{_.f()}}function l(e,t,r,n){return function(i){var o,s=a(null!==(o=e.args)&&void 0!==o?o:[],t);if(null==i)throw new Error("Do not assign null to plural linked fields; assign an empty array instead.");var l=i.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 u(e,t,r,n){return function(i){var o,s=a(null!==(o=e.args)&&void 0!==o?o:[],t);if(null==i)r.setValue(i,e.name,s);else{var l=i.__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 c(e,t,r,n){return function(){var i,o=a(null!==(i=e.args)&&void 0!==i?i:[],t),l=r.getLinkedRecords(e.name,o);return null!=l?l.map((function(r){if(null!=r){var i={};return s(i,r,t,e.selections,n),Object.freeze(i),i}return r})):l}}function d(e,t,r,n){return function(){var i,o=a(null!==(i=e.args)&&void 0!==i?i:[],t),l=r.getLinkedRecord(e.name,o);if(null!=l){var u={};return s(u,l,t,e.selections,n),Object.freeze(u),u}return l}}e.exports={readUpdatableQuery_EXPERIMENTAL:function(e,t,r){var n=i(e),a={};return s(a,r.getRoot(),t,n.fragment.selections,r),Object.freeze(a),a}}},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(24),a=r(6).RELAY_LIVE_RESOLVER,o=r(8).generateClientID,s=r(9),l=r(2),u=l.RELAY_RESOLVER_ERROR_KEY,c=l.RELAY_RESOLVER_INPUTS_KEY,d=l.RELAY_RESOLVER_INVALIDATION_KEY,f=l.RELAY_RESOLVER_MISSING_REQUIRED_FIELDS_KEY,h=l.RELAY_RESOLVER_READER_SELECTOR_KEY,p=l.RELAY_RESOLVER_VALUE_KEY,_=l.getStorageKey,g=r(0),v=r(3),m=new Set,y=function(){function e(){}var t=e.prototype;return t.readFromCacheOrEvaluate=function(e,t,r,n,i){t.kind===a&&g(!1,"This store does not support Live Resolvers");var o=n(),s=o.resolverResult,l=o.missingRequiredFields;return[s,void 0,o.errors,l]},t.invalidateDataIDs=function(e){},e}();function E(e,t,r){var n=e.get(t);n||(n=new Set,e.set(t,n)),n.add(r)}var b=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(),d=s.getDataID(e),g=_(t,r),v=s.getLinkedRecordID(e,g),m=null==v?null:l.get(v);if(null==m||this._isInvalid(m,a)){var y;v=null!==(y=v)&&void 0!==y?y:o(d,g),m=s.create(v,"__RELAY_RESOLVER__");var b=i();s.setValue(m,p,b.resolverResult),s.setValue(m,c,b.fragmentValue),s.setValue(m,h,b.readerSelector),s.setValue(m,f,b.missingRequiredFields),s.setValue(m,u,b.errors),l.set(v,m);var R=s.clone(e);s.setLinkedRecordID(R,g,v),l.set(s.getDataID(R),R);var I=b.resolverID;E(this._resolverIDToRecordIDs,I,v),E(this._recordIDToResolverIDs,d,I);var D,S=(0,n.default)(b.seenRecordIDs);try{for(S.s();!(D=S.n()).done;){var k=D.value;E(this._recordIDToResolverIDs,k,I)}}catch(e){S.e(e)}finally{S.f()}}var A=m[p],T=m[f];return[A,v,m[u],T]},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:m);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:m);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,d,!0),t.set(e,i)}else v(!1,"Expected a resolver record with ID %s, but it was missing.",e)},t._isInvalid=function(e,t){if(!s.getValue(e,d))return!1;var r=s.getValue(e,c),n=s.getValue(e,h);if(null==r||null==n)return v(!1,"Expected previous inputs and reader selector on resolver record with ID %s, but they were missing.",s.getDataID(e)),!0;var a=t(n);return i(r,a)!==r},e}();e.exports={NoopResolverCache:y,RecordResolverCache:b}},function(e,t,r){"use strict";var n=r(10).getFragment,i=r(11).getSelector,a=r(0),o=[];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],s=n(e),l=i(s,t);return null==l&&a(!1,"Expected a selector for the fragment of the resolver ".concat(s.name,", but got null.")),"SingularReaderSelector"!==l.kind&&a(!1,"Expected a singular reader selector for the fragment of the resolver ".concat(s.name,", but it was plural.")),r.getDataForResolverFragment(l,t)},withResolverContext:function(e,t){o.push(e);try{return t()}finally{o.pop()}}}},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(59),l=r(60),u=r(61),c=r(23),d=r(63),f=r(15),h=r(65),p=r(66),_=r(67),g=r(31),v=r(10),m=r(68),y=r(8),E=y.generateClientID,b=y.generateUniqueClientID,R=y.isClientID,I=r(69),D=r(71),S=r(29),k=r(72),A=r(13),T=r(73),O=r(12),N=r(9),F=r(11),P=r(85),L=r(46),x=r(20),w=r(2),C=r(55),M=r(49),U=r(93),V=r(94),q=r(18),j=r(95),K=r(97),G=r(98),H=r(43),z=r(57),Y=r(27),Q=r(39),B=r(99),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(100),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:T,Network:d,Observable:f,QueryResponseCache:h,RecordSource:x,Record:N,ReplaySubject:ie,Store:P,areEqualSelectors:F.areEqualSelectors,createFragmentSpecResolver:I,createNormalizationSelector:F.createNormalizationSelector,createOperationDescriptor:O.createOperationDescriptor,createReaderSelector:F.createReaderSelector,createRequestDescriptor:O.createRequestDescriptor,getDataIDsFromFragment:F.getDataIDsFromFragment,getDataIDsFromObject:F.getDataIDsFromObject,getNode:v.getNode,getFragment:v.getFragment,getInlineDataFragment:v.getInlineDataFragment,getModuleComponentKey:w.getModuleComponentKey,getModuleOperationKey:w.getModuleOperationKey,getPaginationFragment:v.getPaginationFragment,getPluralSelector:F.getPluralSelector,getRefetchableFragment:v.getRefetchableFragment,getRequest:v.getRequest,getRequestIdentifier:Q,getSelector:F.getSelector,getSelectorsFromObject:F.getSelectorsFromObject,getSingularSelector:F.getSingularSelector,getStorageKey:w.getStorageKey,getVariablesFromFragment:F.getVariablesFromFragment,getVariablesFromObject:F.getVariablesFromObject,getVariablesFromPluralFragment:F.getVariablesFromPluralFragment,getVariablesFromSingularFragment:F.getVariablesFromSingularFragment,handlePotentialSnapshotErrors:W,graphql:v.graphql,isFragment:v.isFragment,isInlineDataFragment:v.isInlineDataFragment,isRequest:v.isRequest,readInlineData:k,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:w.FRAGMENTS_KEY,FRAGMENT_OWNER_KEY:w.FRAGMENT_OWNER_KEY,ID_KEY:w.ID_KEY,REF_KEY:w.REF_KEY,REFS_KEY:w.REFS_KEY,ROOT_ID:w.ROOT_ID,ROOT_TYPE:w.ROOT_TYPE,TYPENAME_KEY:w.TYPENAME_KEY,deepFreeze:q,generateClientID:E,generateUniqueClientID:b,getRelayHandleKey:Y,isClientID:R,isPromise:J,isScalarAndEqual:X,recycleNodesInto:Z,stableCopy:ae,getFragmentIdentifier:j,getRefetchMetadata:z,getPaginationMetadata:K,getPaginationVariables:G,getPendingOperationsForFragment:H,getValueAtPath:B,__internal:{ResolverFragments:C,OperationTracker:L,createRelayContext:D,getOperationVariables:A.getOperationVariables,fetchQuery:g.fetchQuery,fetchQueryDeduped:g.fetchQueryDeduped,getPromiseForActiveRequest:g.getPromiseForActiveRequest,getObservableForActiveRequest:g.getObservableForActiveRequest,withProvidedVariables:oe}}},function(e,t,r){"use strict";var n=r(10).getRequest,i=r(29),a=r(12).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=r(1)(r(16)),i=r(10).getRequest,a=r(8).generateUniqueClientID,o=r(29),s=r(12).createOperationDescriptor,l=r(23),u=r(62),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,g=t.cacheConfig,v=t.onError,m=t.onUnsubscribe,y=t.variables,E=t.uploadables,b=s(r,y,g,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,y),_){var R=l.convert(_,r,h,p);h=R.optimisticUpdater,p=R.updater}var I=[];return{dispose:e.executeMutation({operation:b,optimisticResponse:f,optimisticUpdater:h,updater:p,uploadables:E}).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(b.fragment).data,0!==I.length?I:null)},error:v,unsubscribe:m}).unsubscribe}}},function(e,t,r){"use strict";var n=r(1)(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,g=i.SCALAR_FIELD,v=i.SCALAR_HANDLE,m=i.STREAM,y=i.TYPE_DISCRIMINATOR,E=r(3),b=Object.prototype.hasOwnProperty,R=function(){},I=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]}))};R=function(e,t,r){var n=t.operation.name,i={path:"ROOT",visitedPaths:new Set,variables:r||{},missingDiff:{},extraDiff:{},moduleImportPaths:new Set};D(e,t.operation.selections,i),O(e,i),E(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)),E(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 D=function(e,t,r){t.forEach((function(t){return S(e,t,r)}))},S=function e(t,r,n){switch(r.kind){case l:return void D(t,r.selections,n);case o:case d:return void D(t,r.fragment.selections,n);case g:case h:case c:return T(t,r,n);case a:return T(t,r.linkedField,n);case f:var i=r.type,E=null==r.abstractKey;return A(n,r.abstractKey),void r.selections.forEach((function(r){E&&t.__typename!==i||e(t,r,n)}));case s:return void r.selections.forEach((function(r){e(t,r,n)}));case _:return k(n);case y:return A(n,r.abstractKey);case p:case v:case u:case m:default:return}},k=function(e){e.moduleImportPaths.add(e.path)},A=function(e,t){if(null!=t){var r="".concat(e.path,".").concat(t);e.visitedPaths.add(r)}},T=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)&&I(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&&D(e,o,(0,n.default)((0,n.default)({},r),{},{path:a}))})):void I(a,r.missingDiff):e[i]instanceof Object?void D(e[i],o,(0,n.default)((0,n.default)({},r),{},{path:a})):void I(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})):I(o,r.extraDiff))}))};e.exports=R},function(e,t,r){"use strict";var n=r(40),i=r(64).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=r(1)(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=r(1)(r(7)),i=r(15),a=r(12).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 g(t){return o(e,t.missingRequiredFields,t.relayResolverErrors),t.data}switch(_){case"network-only":return c(e,p).map(g);case"store-or-network":return"available"===e.check(p).status?i.from(e.lookup(p.fragment)).map(g):c(e,p).map(g);default:throw new Error("fetchQuery: Invalid fetchPolicy "+_)}}},function(e,t,r){"use strict";var n=r(12).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(70),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),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(12).createRequestDescriptor,f=r(11),h=f.areEqualSelectors,p=f.createReaderSelector,_=f.getSelectorsFromObject,g=r(14),v=r(0),m=r(3),y=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)&&R(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 b(this._context.environment,this._rootIsQueryRenderer,n,null!=this._callback,this._onChange):(i instanceof b||v(!1,"RelayModernFragmentSpecResolver: Expected prop `%s` to always be an array.",r),i.setSelector(n)):null==i?i=new E(this._context.environment,this._rootIsQueryRenderer,n,null!=this._callback,this._onChange):(i instanceof E||v(!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}(),E=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(!g(e,this._selector.variables)){var r=d(t,e),n=p(this._selector.node,this._selector.dataID,e,r);this.setSelector(n)}},e}(),b=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(R)},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 E(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 R(e){e&&e.dispose()}e.exports=y},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=r(1)(r(7)),i=r(38),a=r(32),o=a.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,s=a.assertInternalActorIndentifier,l=r(15),u=r(74),c=r(46),d=r(75),f=r(5),h=r(48),p=r(76),_=r(77),g=r(81),v=r(20),m=r(0),y=function(){function e(e){var t,n,a,o,s,l,_,v,y=this;this.configName=e.configName,this._treatMissingFieldsAsNull=!0===e.treatMissingFieldsAsNull;var b=e.operationLoader,R=e.reactFlightPayloadDeserializer,I=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!=R&&"function"!=typeof R&&m(!1,"RelayModernEnvironment: Expected `reactFlightPayloadDeserializer` to be a function, got `%s`.",R),this.__log=null!==(t=e.log)&&void 0!==t?t:E,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 g(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 y._network=u(y,e)};var D=r(84).inspect;this.DEBUG_inspect=function(e){return D(y,e)},this._missingFieldHandlers=e.missingFieldHandlers,this._operationTracker=null!==(v=e.operationTracker)&&void 0!==v?v:new c,this._reactFlightPayloadDeserializer=R,this._reactFlightServerErrorHandler=I,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 null==this._missingFieldHandlers||0===this._missingFieldHandlers.length?this._store.check(e):this._checkSelectorAndHandleMissingFields(e,this._missingFieldHandlers)},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=v.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 E(){}y.prototype["@@RelayModernEnvironment"]=!0,e.exports=y},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),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(78),_=r(8),g=_.generateClientID,v=_.generateUniqueClientID,m=r(13).getLocalVariables,y=r(9),E=r(11),b=E.createNormalizationSelector,R=E.createReaderSelector,I=r(20),D=r(79),S=r(2),k=S.ROOT_TYPE,A=S.TYPENAME_KEY,T=S.getStorageKey,O=r(0),N=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,g=e.reactFlightServerErrorHandler,v=e.scheduler,m=e.shouldProcessClientComponents,y=e.sink,E=e.source,b=e.treatMissingFieldsAsNull,R=e.updater,I=e.log;(0,o.default)(this,"_deserializeReactFlightPayloadWithLogging",(function(e){var r=t._reactFlightPayloadDeserializer;"function"!=typeof r&&O(!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=b,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=v,this._sink=y,this._source=new Map,this._state="started",this._getStore=a,this._subscriptions=new Map,this._updater=R,this._isClientPayload=!0===s,this._reactFlightPayloadDeserializer=_,this._reactFlightServerErrorHandler=g,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++;E.subscribe({complete:function(){return t._complete(D)},error:function(e){return t._error(e)},next:function(e){try{t._next(D,e)}catch(e){y.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,O(!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)}))&&O(!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&&O(!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||O(!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=v();this._operation={request:this._operation.request,fragment:R(this._operation.fragment.node,s,this._operation.fragment.variables,this._operation.fragment.owner),root:b(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&&O(!1,"OperationExecutor: environment.execute: only support one optimistic response per execute."),null!=e||null!=t){var i=[];if(e){var a=P(e,this._operation.root,k,{actorIdentifier:this._actorIdentifier,getDataID:this._getDataID,path:[],reactFlightPayloadDeserializer:null!=this._reactFlightPayloadDeserializer?this._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:this._reactFlightServerErrorHandler,shouldProcessClientComponents:this._shouldProcessClientComponents,treatMissingFieldsAsNull:r});L(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":N(!1,"OperationExecutor: Unexpected optimistic ActorPayload. These updates are not supported.");break;default:O(!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=b(t,e.dataID,r);return P({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 L(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)N(!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=P(e,t._operation.root,k,{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)){N(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:O(!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:O(!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=g(e.dataID,e.fieldKey);return e.dataID===o||t===o}));null==d&&O(!1,"OperationExecutor: Expected record `%s` to exist.",o);var p=this._source.get(o);if(null!=p){u=y.update(p.record,d);var _=new Map,v=function(e){var t,r,n=(t=e,null!==(r=JSON.stringify(h(t)))&&void 0!==r?r:"");_.set(n,e)};p.fieldPayloads.forEach(v),f.forEach(v),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&&O(!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&&O(!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=P(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&&O(!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)&&O(!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,g=d.relayPayload,v=d.storageKey;if(this._getPublishQueueAndSaveActor().commitPayload(this._operation,g,(function(e){var t=e.get(i);if(null!=t){var r=t.getLinkedRecords(v);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,v)}}})),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,g},t._normalizeStreamItem=function(e,t,r,n,i,a){var o,l,u,c=e.data;"object"!=typeof c&&O(!1,"OperationExecutor: Expected the GraphQL @stream payload `data` value to be an object.");var d=null!==(o=r.alias)&&void 0!==o?o:r.name,f=T(r,n),h=this._source.get(t);null==h&&O(!1,"OperationExecutor: Expected the parent record `%s` for @stream data to exist.",t);var p=h.record,_=h.fieldPayloads,v=y.getLinkedRecordIDs(p,f);null==v&&O(!1,"OperationExecutor: Expected record `%s` to have fetched field `%s` with @stream.",t,r.name);var m=i[i.length-1],E=parseInt(m,10);E===m&&E>=0||O(!1,"OperationExecutor: Expected path for @stream to end in a positive integer index, got `%s`",m);var R=null!==(l=r.concreteType)&&void 0!==l?l:c[A];"string"!=typeof R&&O(!1,"OperationExecutor: Expected @stream field `%s` to have a __typename.",r.name);var I=(null!==(u=this._getDataID(c,R))&&void 0!==u?u:v&&v[E])||g(t,f,E);"string"!=typeof I&&O(!1,"OperationExecutor: Expected id of elements of field `%s` to be strings.",f);var D=b(r,I,n),S=y.clone(p),k=(0,s.default)(v);return k[E]=I,y.setLinkedRecordIDs(S,f,k),this._source.set(t,{record:S,fieldPayloads:_}),{fieldPayloads:_,itemID:I,itemIndex:E,prevIDs:v,relayPayload:P(e,D,R,{actorIdentifier:this._actorIdentifier,getDataID:this._getDataID,path:[].concat((0,s.default)(a),[d,String(E)]),reactFlightPayloadDeserializer:null!=this._reactFlightPayloadDeserializer?this._deserializeReactFlightPayloadWithLogging:null,reactFlightServerErrorHandler:this._reactFlightServerErrorHandler,treatMissingFieldsAsNull:this._treatMissingFieldsAsNull,shouldProcessClientComponents:this._shouldProcessClientComponents}),storageKey:f}},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||O(!1,"OperationExecutor: Expected an operationLoader to be configured when using `@match`."),e},e}();function P(e,t,r,n){var a,o=e.data,s=e.errors,l=I.create(),u=y.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 L(e){var t=e.incrementalPlaceholders;null!=t&&0!==t.length&&O(!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),i=n(r(4)),a=n(r(16)),o=r(80),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,g=u.FRAGMENT_SPREAD,v=u.INLINE_FRAGMENT,m=u.LINKED_FIELD,y=u.LINKED_HANDLE,E=u.MODULE_IMPORT,b=u.SCALAR_FIELD,R=u.SCALAR_HANDLE,I=u.STREAM,D=u.TYPE_DISCRIMINATOR,S=r(5),k=r(8),A=k.generateClientID,T=k.isClientID,O=r(13).getLocalVariables,N=r(9),F=r(11).createNormalizationSelector,P=r(21),L=P.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY,x=P.REACT_FLIGHT_TREE_STORAGE_KEY,w=P.REACT_FLIGHT_TYPE_NAME,C=P.refineToReactFlightPayloadData,M=r(2),U=M.ROOT_ID,V=M.ROOT_TYPE,q=M.TYPENAME_KEY,j=M.getArgumentValues,K=M.getHandleStorageKey,G=M.getModuleComponentKey,H=M.getModuleOperationKey,z=M.getStorageKey,Y=r(26),Q=Y.TYPE_SCHEMA_TYPE,B=Y.generateTypeID,W=r(14),J=r(0),X=r(3);var Z=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||J(!1,"RelayResponseNormalizer(): Expected root record `%s` to exist.",t),this._traverseSelections(e,n,r),{errors:null,fieldPayloads:this._handleFieldPayloads,incrementalPlaceholders:this._incrementalPlaceholders,followupPayloads:this._followupPayloads,source:this._recordSource,isFinal:!1}},t._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||J(!1,"RelayResponseNormalizer(): Undefined variable `%s`.",e),this._variables[e]},t._getRecordType=function(e){var t=e[q];return null==t&&J(!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 g: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 v:var o=i.abstractKey;if(null==o){N.getType(t)===i.type&&this._traverseSelections(i,t,r)}else{var s=r.hasOwnProperty(o),l=N.getType(t),u=B(l),k=this._recordSource.get(u);null==k&&(k=N.create(u,Q),this._recordSource.set(u,k)),N.setValue(k,o,s),s&&this._traverseSelections(i,t,r)}break;case D:var A=i.abstractKey,T=r.hasOwnProperty(A),F=N.getType(t),P=B(F),L=this._recordSource.get(P);null==L&&(L=N.create(P,Q),this._recordSource.set(P,L)),N.setValue(L,A,T);break;case y:case R:var x=i.args?j(i.args,this._variables):{},w=z(i,this._variables),C=K(i,this._variables);this._handleFieldPayloads.push({args:x,dataID:N.getDataID(t),fieldKey:w,handle:i.handle,handleKey:C,handleArgs:i.handleArgs?j(i.handleArgs,this._variables):{}});break;case E:this._normalizeModuleImport(e,i,t,r);break;case p:this._normalizeDefer(i,t,r);break;case I:this._normalizeStream(i,t,r);break;case f:var M=this._isClientExtension;this._isClientExtension=!0,this._traverseSelections(i,t,r),this._isClientExtension=M;break;case d:if(!1===this._shouldProcessClientComponents)break;this._traverseSelections(i.fragment,t,r);break;case _:if(!S.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;default:J(!1,"RelayResponseNormalizer(): Unexpected ast kind `%s`.",i.kind)}}},t._normalizeDefer=function(e,t,r){var n=null===e.if||this._getVariableValue(e.if);X("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:F(e,N.getDataID(t),this._variables),typeName:N.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);X("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:N.getDataID(t),node:e,variables:this._variables,actorIdentifier:this._actorIdentifier})},t._normalizeModuleImport=function(e,t,r,n){"object"==typeof n&&n||J(!1,"RelayResponseNormalizer: Expected data for @module to be an object.");var i=N.getType(r),o=G(t.documentName),s=n[o];N.setValue(r,o,null!=s?s:null);var l=H(t.documentName),u=n[l];N.setValue(r,l,null!=u?u:null),null!=u&&this._followupPayloads.push({kind:"ModuleImportPayload",args:t.args,data:n,dataID:N.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||J(!1,"writeField(): Expected data for field `%s` to be an object.",t.name);var i=t.alias||t.name,a=z(t,this._variables),o=n[i];if(null==o){if(void 0===o){if(this._isClientExtension||this._isUnmatchedAbstractType)return;if(!this._treatMissingFieldsAsNull)return void 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.",i,a)}return t.kind===b&&this._validateConflictingFieldsWithIdenticalId(r,a,null),void N.setValue(r,a,null)}t.kind===b?(this._validateConflictingFieldsWithIdenticalId(r,a,o),N.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()):J(!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||J(!1,"_normalizeActorChange(): Expected data for field `%s` to be an object.",o.name);var u=o.alias||o.name,c=z(o,this._variables),d=n[u];if(null!=d){var f=l(d);if(null==f)return X(!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 N.setValue(r,c,null);var h=null!==(i=o.concreteType)&&void 0!==i?i:this._getRecordType(d),p=this._getDataId(d,h)||N.getLinkedRecordID(r,c)||A(N.getDataID(r),c);"string"!=typeof p&&J(!1,"RelayResponseNormalizer: Expected id on field `%s` to be a string.",c),N.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 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.",u,c)}N.setValue(r,c,null)}},t._normalizeFlightField=function(e,t,r,n){var a=t.alias||t.name,o=z(t,this._variables),s=n[a];if(null!=s){var l=C(s),u=this._reactFlightPayloadDeserializer;null==l&&J(!1,"RelayResponseNormalizer: Expected React Flight payload data to be an object with `status`, tree`, `queries` and `errors` properties, got `%s`.",s),"function"!=typeof u&&J(!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):X(!1,"RelayResponseNormalizer: Received server errors for field `%s`.\n\n%s\n%s",a,l.errors[0].message,l.errors[0].stack));var c=A(N.getDataID(r),z(t,this._variables)),d=this._recordSource.get(c);if(null==d&&(d=N.create(c,w),this._recordSource.set(c,d)),null==l.tree)return X(!1,"RelayResponseNormalizer: Expected `tree` not to be null. This typically indicates that a fatal server error prevented any Server Component rows from being written."),N.setValue(d,x,null),N.setValue(d,L,[]),void N.setLinkedRecordID(r,o,c);var f=u(l.tree);N.setValue(d,x,f);var h,p=[],_=(0,i.default)(l.queries);try{for(_.s();!(h=_.n()).done;){var g=h.value;null!=g.response.data&&this._followupPayloads.push({kind:"ModuleImportPayload",args:null,data:g.response.data,dataID:U,operationReference:g.module,path:[],typeName:V,variables:g.variables,actorIdentifier:this._actorIdentifier}),p.push({module:g.module,variables:g.variables})}}catch(e){_.e(e)}finally{_.f()}var v,m=(0,i.default)(l.fragments);try{for(m.s();!(v=m.n()).done;){var y=v.value;null!=y.response.data&&this._followupPayloads.push({kind:"ModuleImportPayload",args:null,data:y.response.data,dataID:y.__id,operationReference:y.module,path:[],typeName:y.__typename,variables:y.variables,actorIdentifier:this._actorIdentifier}),p.push({module:y.module,variables:y.variables})}}catch(e){m.e(e)}finally{m.f()}N.setValue(d,L,p),N.setLinkedRecordID(r,o,c)}else{if(void 0===s){if(this._isUnmatchedAbstractType)return;this._treatMissingFieldsAsNull||J(!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)}N.setValue(r,o,null)}},t._normalizeLink=function(e,t,r,n){var i;"object"==typeof n&&n||J(!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))||N.getLinkedRecordID(t,r)||A(N.getDataID(t),r);"string"!=typeof a&&J(!1,"RelayResponseNormalizer: Expected id on field `%s` to be a string.",r),this._validateConflictingLinkedFieldsWithIdenticalId(t,N.getLinkedRecordID(t,r),a,r),N.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=N.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)||J(!1,"RelayResponseNormalizer: Expected data for field `%s` to be an array of objects.",r);var a=N.getLinkedRecordIDs(t,r),o=[];n.forEach((function(n,s){var l;if(null!=n){i._path.push(String(s)),"object"!=typeof n&&J(!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]||A(N.getDataID(t),r,s);"string"!=typeof u&&J(!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=N.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)})),N.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=N.getDataID(e);X(T(a)&&a!==U||N.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,N.getType(e),i)},t._validateConflictingFieldsWithIdenticalId=function(e,t,r){var n=N.getDataID(e),i=N.getValue(e,t);X(t===q||void 0===i||W(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){X(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 Z(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(83),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(8).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){s(e)||a(!1,"RelayRecordProxy#setValue(): Expected a scalar or array of scalars, got `%s`.",JSON.stringify(e));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).readUpdatableQuery_EXPERIMENTAL,s=r(0),l=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||s(!1,"RelayRecordSourceSelectorProxy#getRootField(): Cannot find root field `%s`, no such field is defined on GraphQL document `%s`.",t,e.node.name),n.plural!==r&&s(!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 o(e,t,this)},e}();e.exports=l},function(e,t,r){"use strict";var n=r(1),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),i=n(r(4)),a=n(r(19)),o=r(32),s=o.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,l=o.assertInternalActorIndentifier,u=r(18),c=r(5),d=r(86),f=r(87),h=r(48),p=r(9),_=r(89),g=r(34),v=r(90),m=r(21),y=r(91),E=r(2),b=r(2),R=b.ROOT_ID,I=b.ROOT_TYPE,D=r(54).RecordResolverCache,S=r(0),k=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 y(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(R)){var t=p.create(R,I);e.set(R,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},g=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(_,g,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=g.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,E.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(v.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=k},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=r(1)(r(4)),i=r(51),a=r(52),o=r(33),s=r(6),l=r(5),u=r(8).isClientID,c=r(56),d=r(88),f=r(13).getLocalVariables,h=r(9),p=r(25),_=p.EXISTENT,g=p.UNKNOWN,v=r(21),m=r(2),y=r(26).generateTypeID,E=r(0),b=s.ACTOR_CHANGE,R=s.CONDITION,I=s.CLIENT_COMPONENT,D=s.CLIENT_EXTENSION,S=s.DEFER,k=s.FLIGHT_FIELD,A=s.FRAGMENT_SPREAD,T=s.INLINE_FRAGMENT,O=s.LINKED_FIELD,N=s.LINKED_HANDLE,F=s.MODULE_IMPORT,P=s.SCALAR_FIELD,L=s.SCALAR_HANDLE,x=s.STREAM,w=s.TYPE_DISCRIMINATOR,C=m.ROOT_ID,M=m.getModuleOperationKey,U=m.getStorageKey,V=m.getArgumentValues;var q=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._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)||E(!1,"RelayAsyncLoader(): Undefined variable `%s`.",e),this._variables[e]},t._handleMissing=function(){this._recordWasMissing=!0},t._getDataForHandlers=function(e,t){return{args:e.args?V(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===g&&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 P:r._checkScalar(n,t);break;case O:n.plural?r._checkPluralLink(n,t):r._checkLink(n,t);break;case b:r._checkActorChange(n.linkedField,t);break;case R:Boolean(r._getVariableValue(n.condition))===n.passingValue&&r._traverseSelections(n.selections,t);break;case T: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&&E(!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 N:var u=c(n,e,r._variables);u.plural?r._checkPluralLink(u,t):r._checkLink(u,t);break;case L:var h=d(n,e,r._variables);r._checkScalar(h,t);break;case F:r._checkModuleImport(n,t);break;case S:case x:r._traverseSelections(n.selections,t);break;case A: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 D:var _=r._recordWasMissing;r._traverseSelections(n.selections,t),r._recordWasMissing=_;break;case w:var g=n.abstractKey,v=r._mutator.getType(t);null==v&&E(!1,"DataChecker: Expected record `%s` to have a known type",t);var m=y(v);null==r._mutator.getValue(m,g)&&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 I:if(!1===r._shouldProcessClientComponents)break;r._traverseSelections(n.fragment.selections,t);break;default:E(!1,"RelayAsyncLoader(): Unexpected ast kind `%s`.",n.kind)}}))},t._checkModuleImport=function(e,t){var r=this._operationLoader;null===r&&E(!1,"DataChecker: Expected an operationLoader to be configured when using `@module`.");var n=M(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=U(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=U(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=U(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=U(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._traverse(e,o),this._source=s,this._mutator=l,this._recordSourceProxy=u}},t._checkFlightField=function(e,t){var r=U(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,v.REACT_FLIGHT_TREE_STORAGE_KEY),s=this._mutator.getValue(i,v.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY);if(null!=a&&Array.isArray(s)){var l=this._operationLoader;null===l&&E(!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,C)}else this._handleMissing()}}catch(e){d.e(e)}finally{d.f()}this._variables=c}else this._handleMissing()},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 q(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=r(1)(r(7)),i=r(20),a=Object.freeze({__UNPUBLISH_RECORD_SENTINEL:!0}),o=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)!==a:this._base.has(e)},t.get=function(e){if(this._sink.has(e)){var t=this._sink.get(e);return t===a?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,a)},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},e}();e.exports={create:function(e){return new o(e)}}},function(e,t,r){"use strict";var n=r(1)(r(4)),i=r(33),a=r(6),o=r(5),s=r(56),l=r(13).getLocalVariables,u=r(9),c=r(21),d=r(2),f=r(26).generateTypeID,h=r(0),p=a.ACTOR_CHANGE,_=a.CONDITION,g=a.CLIENT_COMPONENT,v=a.CLIENT_EXTENSION,m=a.DEFER,y=a.FLIGHT_FIELD,E=a.FRAGMENT_SPREAD,b=a.INLINE_FRAGMENT,R=a.LINKED_FIELD,I=a.MODULE_IMPORT,D=a.LINKED_HANDLE,S=a.SCALAR_FIELD,k=a.SCALAR_HANDLE,A=a.STREAM,T=a.TYPE_DISCRIMINATOR,O=d.ROOT_ID,N=d.getStorageKey,F=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 R: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 b:if(null==n.abstractKey){var i=u.getType(t);null!=i&&i===n.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 E:var d=r._variables;r._variables=l(r._variables,n.fragment.argumentDefinitions,n.args),r._traverseSelections(n.fragment.selections,t),r._variables=d;break;case D:var O=s(n,e,r._variables);O.plural?r._traversePluralLink(O,t):r._traverseLink(O,t);break;case m:case A:r._traverseSelections(n.selections,t);break;case S:case k:break;case T:var N=u.getType(t),F=f(N);r._references.add(F);break;case I:r._traverseModuleImport(n,t);break;case v:r._traverseSelections(n.selections,t);break;case y:if(!o.ENABLE_REACT_FLIGHT_COMPONENT_FIELD)throw new Error("Flight fields are not yet supported.");r._traverseFlightField(n,t);break;case g:if(!1===r._shouldProcessClientComponents)break;r._traverseSelections(n.fragment.selections,t);break;default:h(!1,"RelayReferenceMarker: Unknown AST node `%s`.",n)}}))},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=F(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=N(e,this._variables),n=u.getLinkedRecordID(t,r);null!=n&&this._traverse(e,n)},t._traversePluralLink=function(e,t){var r=this,n=N(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=N(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 g=_.module,v=l.get(g);if(null!=v){var m=i(v);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(92),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,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,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(12).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=r(1)(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(96),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(57),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),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=r(1)(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}])}));
|
package/relay-runtime.min.js
CHANGED
|
@@ -25,9 +25,10 @@ import type {
|
|
|
25
25
|
SingularReaderSelector,
|
|
26
26
|
} from '../RelayStoreTypes';
|
|
27
27
|
import type {ResolverCache} from '../ResolverCache';
|
|
28
|
-
import type {
|
|
28
|
+
import type {LiveState} from './LiveResolverStore';
|
|
29
29
|
|
|
30
30
|
const recycleNodesInto = require('../../util/recycleNodesInto');
|
|
31
|
+
const {RELAY_LIVE_RESOLVER} = require('../../util/RelayConcreteNode');
|
|
31
32
|
const {generateClientID} = require('../ClientID');
|
|
32
33
|
const RelayModernRecord = require('../RelayModernRecord');
|
|
33
34
|
const RelayRecordSource = require('../RelayRecordSource');
|
|
@@ -40,19 +41,20 @@ const {
|
|
|
40
41
|
RELAY_RESOLVER_VALUE_KEY,
|
|
41
42
|
getStorageKey,
|
|
42
43
|
} = require('../RelayStoreUtils');
|
|
43
|
-
const
|
|
44
|
+
const LiveResolverStore = require('./LiveResolverStore');
|
|
45
|
+
const invariant = require('invariant');
|
|
44
46
|
const warning = require('warning');
|
|
45
47
|
|
|
46
48
|
// When this experiment gets promoted to stable, these keys will move into
|
|
47
49
|
// `RelayStoreUtils`.
|
|
48
|
-
const
|
|
49
|
-
'
|
|
50
|
-
const
|
|
51
|
-
const
|
|
50
|
+
const RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY =
|
|
51
|
+
'__resolverLieStateSubscription';
|
|
52
|
+
const RELAY_RESOLVER_LIVE_STATE_VALUE = '__resolverLiveStateValue';
|
|
53
|
+
const RELAY_RESOLVER_LIVE_STATE_DIRTY = '__resolverLiveStateDirty';
|
|
52
54
|
|
|
53
55
|
/**
|
|
54
56
|
* An experimental fork of store/ResolverCache.js intended to let us experiment
|
|
55
|
-
* with
|
|
57
|
+
* with Live Resolvers.
|
|
56
58
|
*/
|
|
57
59
|
|
|
58
60
|
type ResolverID = string;
|
|
@@ -83,16 +85,16 @@ function addDependencyEdge(
|
|
|
83
85
|
set.add(to);
|
|
84
86
|
}
|
|
85
87
|
|
|
86
|
-
class
|
|
88
|
+
class LiveResolverCache implements ResolverCache {
|
|
87
89
|
_resolverIDToRecordIDs: Map<ResolverID, Set<DataID>>;
|
|
88
90
|
_recordIDToResolverIDs: Map<DataID, Set<ResolverID>>;
|
|
89
91
|
|
|
90
92
|
_getRecordSource: () => MutableRecordSource;
|
|
91
|
-
_store:
|
|
93
|
+
_store: LiveResolverStore;
|
|
92
94
|
|
|
93
95
|
constructor(
|
|
94
96
|
getRecordSource: () => MutableRecordSource,
|
|
95
|
-
store:
|
|
97
|
+
store: LiveResolverStore,
|
|
96
98
|
) {
|
|
97
99
|
this._resolverIDToRecordIDs = new Map();
|
|
98
100
|
this._recordIDToResolverIDs = new Map();
|
|
@@ -129,15 +131,17 @@ class ExternalStateResolverCache implements ResolverCache {
|
|
|
129
131
|
|
|
130
132
|
const evaluationResult = evaluate();
|
|
131
133
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
134
|
+
if (field.kind === RELAY_LIVE_RESOLVER) {
|
|
135
|
+
if (__DEV__) {
|
|
136
|
+
invariant(
|
|
137
|
+
isLiveStateValue(evaluationResult.resolverResult),
|
|
138
|
+
'Expected a @live Relay Resolver to return a value that implements LiveState.',
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
const liveState: LiveState<mixed> =
|
|
142
|
+
// $FlowFixMe[incompatible-type] - casting mixed
|
|
143
|
+
evaluationResult.resolverResult;
|
|
144
|
+
this._setLiveStateValue(linkedRecord, linkedID, liveState);
|
|
141
145
|
} else {
|
|
142
146
|
RelayModernRecord.setValue(
|
|
143
147
|
linkedRecord,
|
|
@@ -183,40 +187,34 @@ class ExternalStateResolverCache implements ResolverCache {
|
|
|
183
187
|
resolverID,
|
|
184
188
|
);
|
|
185
189
|
}
|
|
186
|
-
} else
|
|
187
|
-
|
|
190
|
+
} else if (
|
|
191
|
+
field.kind === RELAY_LIVE_RESOLVER &&
|
|
192
|
+
RelayModernRecord.getValue(linkedRecord, RELAY_RESOLVER_LIVE_STATE_DIRTY)
|
|
193
|
+
) {
|
|
194
|
+
// If this is an Live Resolver, we might have a cache hit (the
|
|
188
195
|
// fragment data hasn't changed since we last evaluated the resolver),
|
|
189
|
-
// but it might still be "dirty" (the
|
|
196
|
+
// but it might still be "dirty" (the live state changed and we need
|
|
190
197
|
// to call `.read()` again).
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
//
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
linkedRecord
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
);
|
|
212
|
-
// Mark the resolver as clean again.
|
|
213
|
-
RelayModernRecord.setValue(
|
|
214
|
-
linkedRecord,
|
|
215
|
-
RELAY_EXTERNAL_STATE_DIRTY,
|
|
216
|
-
false,
|
|
217
|
-
);
|
|
218
|
-
recordSource.set(linkedID, linkedRecord);
|
|
219
|
-
}
|
|
198
|
+
linkedID = linkedID ?? generateClientID(recordID, storageKey);
|
|
199
|
+
linkedRecord = RelayModernRecord.clone(linkedRecord);
|
|
200
|
+
// $FlowFixMe[incompatible-type] - casting mixed
|
|
201
|
+
const liveState: LiveState<mixed> = RelayModernRecord.getValue(
|
|
202
|
+
linkedRecord,
|
|
203
|
+
RELAY_RESOLVER_LIVE_STATE_VALUE,
|
|
204
|
+
);
|
|
205
|
+
// Set the new value for this and future reads.
|
|
206
|
+
RelayModernRecord.setValue(
|
|
207
|
+
linkedRecord,
|
|
208
|
+
RELAY_RESOLVER_VALUE_KEY,
|
|
209
|
+
liveState.read(),
|
|
210
|
+
);
|
|
211
|
+
// Mark the resolver as clean again.
|
|
212
|
+
RelayModernRecord.setValue(
|
|
213
|
+
linkedRecord,
|
|
214
|
+
RELAY_RESOLVER_LIVE_STATE_DIRTY,
|
|
215
|
+
false,
|
|
216
|
+
);
|
|
217
|
+
recordSource.set(linkedID, linkedRecord);
|
|
220
218
|
}
|
|
221
219
|
|
|
222
220
|
// $FlowFixMe[incompatible-type] - will always be empty
|
|
@@ -231,18 +229,18 @@ class ExternalStateResolverCache implements ResolverCache {
|
|
|
231
229
|
return [answer, linkedID, errors, missingRequiredFields];
|
|
232
230
|
}
|
|
233
231
|
|
|
234
|
-
// Register a new
|
|
232
|
+
// Register a new Live State object in the store, subscribing to future
|
|
235
233
|
// updates.
|
|
236
|
-
|
|
234
|
+
_setLiveStateValue(
|
|
237
235
|
linkedRecord: Record,
|
|
238
236
|
linkedID: DataID,
|
|
239
|
-
|
|
237
|
+
liveState: LiveState<mixed>,
|
|
240
238
|
) {
|
|
241
239
|
// If there's an existing subscription, unsubscribe.
|
|
242
240
|
// $FlowFixMe[incompatible-type] - casting mixed
|
|
243
241
|
const previousUnsubscribe: () => void = RelayModernRecord.getValue(
|
|
244
242
|
linkedRecord,
|
|
245
|
-
|
|
243
|
+
RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY,
|
|
246
244
|
);
|
|
247
245
|
|
|
248
246
|
if (previousUnsubscribe != null) {
|
|
@@ -250,40 +248,41 @@ class ExternalStateResolverCache implements ResolverCache {
|
|
|
250
248
|
}
|
|
251
249
|
|
|
252
250
|
// Subscribe to future values
|
|
253
|
-
const handler = this.
|
|
254
|
-
const unsubscribe =
|
|
251
|
+
const handler = this._makeLiveStateHandler(linkedID);
|
|
252
|
+
const unsubscribe = liveState.subscribe(handler);
|
|
255
253
|
|
|
256
|
-
// Store the
|
|
254
|
+
// Store the live state value for future re-reads.
|
|
257
255
|
RelayModernRecord.setValue(
|
|
258
256
|
linkedRecord,
|
|
259
|
-
|
|
260
|
-
|
|
257
|
+
RELAY_RESOLVER_LIVE_STATE_VALUE,
|
|
258
|
+
liveState,
|
|
261
259
|
);
|
|
262
260
|
|
|
263
261
|
// Store the current value, for this read, and future cached reads.
|
|
264
262
|
RelayModernRecord.setValue(
|
|
265
263
|
linkedRecord,
|
|
266
264
|
RELAY_RESOLVER_VALUE_KEY,
|
|
267
|
-
|
|
265
|
+
liveState.read(),
|
|
268
266
|
);
|
|
269
267
|
|
|
270
268
|
// Mark the field as clean.
|
|
271
|
-
RelayModernRecord.setValue(
|
|
269
|
+
RelayModernRecord.setValue(
|
|
270
|
+
linkedRecord,
|
|
271
|
+
RELAY_RESOLVER_LIVE_STATE_DIRTY,
|
|
272
|
+
false,
|
|
273
|
+
);
|
|
272
274
|
|
|
273
275
|
// Store our our unsubscribe function for future cleanup.
|
|
274
276
|
RelayModernRecord.setValue(
|
|
275
277
|
linkedRecord,
|
|
276
|
-
|
|
278
|
+
RELAY_RESOLVER_LIVE_STATE_SUBSCRIPTION_KEY,
|
|
277
279
|
unsubscribe,
|
|
278
280
|
);
|
|
279
281
|
}
|
|
280
282
|
|
|
281
|
-
// Create a callback to handle notifications from the
|
|
283
|
+
// Create a callback to handle notifications from the live source that the
|
|
282
284
|
// value may have changed.
|
|
283
|
-
|
|
284
|
-
linkedID: DataID,
|
|
285
|
-
externalState: ExternalState<mixed>,
|
|
286
|
-
): () => void {
|
|
285
|
+
_makeLiveStateHandler(linkedID: DataID): () => void {
|
|
287
286
|
return () => {
|
|
288
287
|
const currentSource = this._getRecordSource();
|
|
289
288
|
const currentRecord = currentSource.get(linkedID);
|
|
@@ -300,8 +299,12 @@ class ExternalStateResolverCache implements ResolverCache {
|
|
|
300
299
|
const nextRecord = RelayModernRecord.clone(currentRecord);
|
|
301
300
|
|
|
302
301
|
// Mark the field as dirty. The next time it's read, we will call
|
|
303
|
-
// `
|
|
304
|
-
RelayModernRecord.setValue(
|
|
302
|
+
// `LiveState.read()`.
|
|
303
|
+
RelayModernRecord.setValue(
|
|
304
|
+
nextRecord,
|
|
305
|
+
RELAY_RESOLVER_LIVE_STATE_DIRTY,
|
|
306
|
+
true,
|
|
307
|
+
);
|
|
305
308
|
|
|
306
309
|
nextSource.set(linkedID, nextRecord);
|
|
307
310
|
this._store.publish(nextSource);
|
|
@@ -392,21 +395,16 @@ class ExternalStateResolverCache implements ResolverCache {
|
|
|
392
395
|
}
|
|
393
396
|
}
|
|
394
397
|
|
|
395
|
-
//
|
|
396
|
-
// a value is external state
|
|
398
|
+
// Validate that a value is live state
|
|
397
399
|
// $FlowFixMe
|
|
398
|
-
function
|
|
399
|
-
|
|
400
|
+
function isLiveStateValue(v: Object): boolean {
|
|
401
|
+
return (
|
|
400
402
|
v != null &&
|
|
401
403
|
typeof v.read === 'function' &&
|
|
402
404
|
typeof v.subscribe === 'function'
|
|
403
|
-
)
|
|
404
|
-
return v;
|
|
405
|
-
} else {
|
|
406
|
-
return null;
|
|
407
|
-
}
|
|
405
|
+
);
|
|
408
406
|
}
|
|
409
407
|
|
|
410
408
|
module.exports = {
|
|
411
|
-
|
|
409
|
+
LiveResolverCache,
|
|
412
410
|
};
|
|
@@ -50,10 +50,10 @@ const RelayStoreReactFlightUtils = require('../RelayStoreReactFlightUtils');
|
|
|
50
50
|
const RelayStoreSubscriptions = require('../RelayStoreSubscriptions');
|
|
51
51
|
const RelayStoreUtils = require('../RelayStoreUtils');
|
|
52
52
|
const {ROOT_ID, ROOT_TYPE} = require('../RelayStoreUtils');
|
|
53
|
-
const {
|
|
53
|
+
const {LiveResolverCache} = require('./LiveResolverCache');
|
|
54
54
|
const invariant = require('invariant');
|
|
55
55
|
|
|
56
|
-
export type
|
|
56
|
+
export type LiveState<T> = {|
|
|
57
57
|
read(): T,
|
|
58
58
|
subscribe(cb: () => void): () => void,
|
|
59
59
|
|};
|
|
@@ -79,7 +79,7 @@ const DEFAULT_RELEASE_BUFFER_SIZE = 10;
|
|
|
79
79
|
*
|
|
80
80
|
* Experimental fork of RelayModernStore
|
|
81
81
|
*/
|
|
82
|
-
class
|
|
82
|
+
class LiveResolverStore implements Store {
|
|
83
83
|
_currentWriteEpoch: number;
|
|
84
84
|
_gcHoldCounter: number;
|
|
85
85
|
_gcReleaseBufferSize: number;
|
|
@@ -150,7 +150,7 @@ class ExternalStateResolverStore implements Store {
|
|
|
150
150
|
this._releaseBuffer = [];
|
|
151
151
|
this._roots = new Map();
|
|
152
152
|
this._shouldScheduleGC = false;
|
|
153
|
-
this._resolverCache = new
|
|
153
|
+
this._resolverCache = new LiveResolverCache(
|
|
154
154
|
() => this._getMutableRecordSource(),
|
|
155
155
|
this,
|
|
156
156
|
);
|
|
@@ -448,7 +448,7 @@ class ExternalStateResolverStore implements Store {
|
|
|
448
448
|
}
|
|
449
449
|
|
|
450
450
|
toJSON(): mixed {
|
|
451
|
-
return '
|
|
451
|
+
return 'LiveResolverStore()';
|
|
452
452
|
}
|
|
453
453
|
|
|
454
454
|
getEpoch(): number {
|
|
@@ -543,7 +543,7 @@ class ExternalStateResolverStore implements Store {
|
|
|
543
543
|
snapshot(): void {
|
|
544
544
|
invariant(
|
|
545
545
|
this._optimisticSource == null,
|
|
546
|
-
'
|
|
546
|
+
'LiveResolverStore: Unexpected call to snapshot() while a previous ' +
|
|
547
547
|
'snapshot exists.',
|
|
548
548
|
);
|
|
549
549
|
const log = this.__log;
|
|
@@ -565,7 +565,7 @@ class ExternalStateResolverStore implements Store {
|
|
|
565
565
|
restore(): void {
|
|
566
566
|
invariant(
|
|
567
567
|
this._optimisticSource != null,
|
|
568
|
-
'
|
|
568
|
+
'LiveResolverStore: Unexpected call to restore(), expected a snapshot ' +
|
|
569
569
|
'to exist (make sure to call snapshot()).',
|
|
570
570
|
);
|
|
571
571
|
const log = this.__log;
|
|
@@ -819,4 +819,4 @@ function getAvailabilityStatus(
|
|
|
819
819
|
return {status: 'available', fetchTime: operationFetchTime ?? null};
|
|
820
820
|
}
|
|
821
821
|
|
|
822
|
-
module.exports =
|
|
822
|
+
module.exports = LiveResolverStore;
|