relay-runtime 0.0.0-main-6b2ec499 → 0.0.0-main-143e5036
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/experimental.js +1 -1
- package/index.js +1 -1
- package/lib/mutations/createUpdatableProxy.js +0 -1
- package/lib/network/ConvertToExecuteFunction.js +0 -1
- package/lib/store/RelayConcreteVariables.js +0 -1
- package/lib/store/RelayModernRecord.js +45 -9
- package/lib/store/RelayPublishQueue.js +1 -3
- package/lib/store/RelayReferenceMarker.js +49 -19
- package/lib/store/RelayResponseNormalizer.js +1 -6
- package/lib/store/defaultGetDataID.js +0 -2
- package/lib/util/deepFreeze.js +0 -1
- package/lib/util/getPendingOperationsForFragment.js +10 -0
- package/mutations/createUpdatableProxy.js.flow +0 -1
- package/network/ConvertToExecuteFunction.js.flow +0 -1
- package/package.json +1 -1
- package/relay-runtime-experimental.js +1 -1
- package/relay-runtime-experimental.min.js +1 -1
- package/relay-runtime.js +2 -2
- package/relay-runtime.min.js +2 -2
- package/store/RelayConcreteVariables.js.flow +0 -1
- package/store/RelayModernRecord.js.flow +57 -1
- package/store/RelayPublishQueue.js.flow +0 -1
- package/store/RelayReferenceMarker.js.flow +36 -8
- package/store/RelayResponseNormalizer.js.flow +1 -5
- package/store/RelayStoreTypes.js.flow +9 -0
- package/store/defaultGetDataID.js.flow +0 -2
- package/util/deepFreeze.js.flow +0 -1
- package/util/getPendingOperationsForFragment.js.flow +10 -0
package/experimental.js
CHANGED
package/index.js
CHANGED
|
@@ -58,7 +58,6 @@ function updateProxyFromSelections(mutableUpdatableProxy, updatableProxyRootReco
|
|
|
58
58
|
case LINKED_FIELD:
|
|
59
59
|
if (selection.plural) {
|
|
60
60
|
Object.defineProperty(mutableUpdatableProxy, (_selection$alias = selection.alias) !== null && _selection$alias !== void 0 ? _selection$alias : selection.name, {
|
|
61
|
-
// $FlowFixMe[incompatible-call] these getters and setters have different types on purpose
|
|
62
61
|
get: createGetterForPluralLinkedField(selection, variables, updatableProxyRootRecord, recordSourceProxy, missingFieldHandlers),
|
|
63
62
|
set: createSetterForPluralLinkedField(selection, variables, updatableProxyRootRecord, recordSourceProxy)
|
|
64
63
|
});
|
|
@@ -22,7 +22,6 @@ function convertFetch(fn) {
|
|
|
22
22
|
// Note: We allow FetchFunction to directly return Error to indicate
|
|
23
23
|
// a failure to fetch. To avoid handling this special case throughout the
|
|
24
24
|
// Relay codebase, it is explicitly handled here.
|
|
25
|
-
// $FlowFixMe[incompatible-type]
|
|
26
25
|
if (result instanceof Error) {
|
|
27
26
|
return RelayObservable.create(function (sink) {
|
|
28
27
|
return sink.error(result);
|
|
@@ -97,7 +97,6 @@ function getLocalVariables(currentVariables, argumentDefinitions, args) {
|
|
|
97
97
|
var nextArgs = args ? getArgumentValues(args, currentVariables) : {};
|
|
98
98
|
argumentDefinitions.forEach(function (def) {
|
|
99
99
|
var _nextArgs$def$name;
|
|
100
|
-
// $FlowFixMe[cannot-write]
|
|
101
100
|
var value = (_nextArgs$def$name = nextArgs[def.name]) !== null && _nextArgs$def$name !== void 0 ? _nextArgs$def$name : def.defaultValue;
|
|
102
101
|
nextVariables[def.name] = value;
|
|
103
102
|
});
|
|
@@ -15,15 +15,19 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
15
15
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
16
16
|
var deepFreeze = require('../util/deepFreeze');
|
|
17
17
|
var _require = require('./ClientID'),
|
|
18
|
+
generateClientObjectClientID = _require.generateClientObjectClientID,
|
|
18
19
|
isClientID = _require.isClientID;
|
|
19
|
-
var _require2 = require('./
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
var _require2 = require('./experimental-live-resolvers/LiveResolverSuspenseSentinel'),
|
|
21
|
+
isSuspenseSentinel = _require2.isSuspenseSentinel;
|
|
22
|
+
var _require3 = require('./RelayStoreUtils'),
|
|
23
|
+
ACTOR_IDENTIFIER_KEY = _require3.ACTOR_IDENTIFIER_KEY,
|
|
24
|
+
ID_KEY = _require3.ID_KEY,
|
|
25
|
+
INVALIDATED_AT_KEY = _require3.INVALIDATED_AT_KEY,
|
|
26
|
+
REF_KEY = _require3.REF_KEY,
|
|
27
|
+
REFS_KEY = _require3.REFS_KEY,
|
|
28
|
+
RELAY_RESOLVER_VALUE_KEY = _require3.RELAY_RESOLVER_VALUE_KEY,
|
|
29
|
+
ROOT_ID = _require3.ROOT_ID,
|
|
30
|
+
TYPENAME_KEY = _require3.TYPENAME_KEY;
|
|
27
31
|
var areEqual = require("fbjs/lib/areEqual");
|
|
28
32
|
var invariant = require('invariant');
|
|
29
33
|
var warning = require("fbjs/lib/warning");
|
|
@@ -329,6 +333,36 @@ function getActorLinkedRecordID(record, storageKey) {
|
|
|
329
333
|
!(typeof link === 'object' && typeof link[REF_KEY] === 'string' && link[ACTOR_IDENTIFIER_KEY] != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernRecord.getActorLinkedRecordID(): Expected `%s.%s` to be an actor specific linked ID, ' + 'was `%s`.', record[ID_KEY], storageKey, JSON.stringify(link)) : invariant(false) : void 0;
|
|
330
334
|
return [link[ACTOR_IDENTIFIER_KEY], link[REF_KEY]];
|
|
331
335
|
}
|
|
336
|
+
function getResolverLinkedRecordID(record, typeName) {
|
|
337
|
+
var id = getValue(record, RELAY_RESOLVER_VALUE_KEY);
|
|
338
|
+
if (id == null || isSuspenseSentinel(id)) {
|
|
339
|
+
return null;
|
|
340
|
+
}
|
|
341
|
+
// TODD: Deprecate client edges that return just id.
|
|
342
|
+
if (typeof id === 'object') {
|
|
343
|
+
id = id.id;
|
|
344
|
+
}
|
|
345
|
+
!(typeof id === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernRecord.getResolverLinkedRecordID(): Expected value to be a linked ID, ' + 'was `%s`.', JSON.stringify(id)) : invariant(false) : void 0;
|
|
346
|
+
return generateClientObjectClientID(typeName, id);
|
|
347
|
+
}
|
|
348
|
+
function getResolverLinkedRecordIDs(record, typeName) {
|
|
349
|
+
var resolverValue = getValue(record, RELAY_RESOLVER_VALUE_KEY);
|
|
350
|
+
if (resolverValue == null || isSuspenseSentinel(resolverValue)) {
|
|
351
|
+
return null;
|
|
352
|
+
}
|
|
353
|
+
!Array.isArray(resolverValue) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernRecord.getResolverLinkedRecordIDs(): Expected value to be an array of linked IDs, ' + 'was `%s`.', JSON.stringify(resolverValue)) : invariant(false) : void 0;
|
|
354
|
+
return resolverValue.map(function (id) {
|
|
355
|
+
if (id == null) {
|
|
356
|
+
return null;
|
|
357
|
+
}
|
|
358
|
+
// TODD: Deprecate client edges that return just id.
|
|
359
|
+
if (typeof id === 'object') {
|
|
360
|
+
id = id.id;
|
|
361
|
+
}
|
|
362
|
+
!(typeof id === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayModernRecord.getResolverLinkedRecordIDs(): Expected item within resolver linked field to be a DataID, ' + 'was `%s`.', JSON.stringify(id)) : invariant(false) : void 0;
|
|
363
|
+
return generateClientObjectClientID(typeName, id);
|
|
364
|
+
});
|
|
365
|
+
}
|
|
332
366
|
module.exports = {
|
|
333
367
|
clone: clone,
|
|
334
368
|
copyFields: copyFields,
|
|
@@ -346,5 +380,7 @@ module.exports = {
|
|
|
346
380
|
setLinkedRecordIDs: setLinkedRecordIDs,
|
|
347
381
|
update: update,
|
|
348
382
|
getActorLinkedRecordID: getActorLinkedRecordID,
|
|
349
|
-
setActorLinkedRecordID: setActorLinkedRecordID
|
|
383
|
+
setActorLinkedRecordID: setActorLinkedRecordID,
|
|
384
|
+
getResolverLinkedRecordID: getResolverLinkedRecordID,
|
|
385
|
+
getResolverLinkedRecordIDs: getResolverLinkedRecordIDs
|
|
350
386
|
};
|
|
@@ -141,9 +141,7 @@ var RelayPublishQueue = /*#__PURE__*/function () {
|
|
|
141
141
|
* Execute all queued up operations from the other public methods.
|
|
142
142
|
*/;
|
|
143
143
|
_proto.run = function run(sourceOperation) {
|
|
144
|
-
var runWillClearGcHold =
|
|
145
|
-
// $FlowFixMe[incompatible-type]
|
|
146
|
-
this._appliedOptimisticUpdates === 0 && !!this._gcHold;
|
|
144
|
+
var runWillClearGcHold = this._appliedOptimisticUpdates === 0 && !!this._gcHold;
|
|
147
145
|
var runIsANoop =
|
|
148
146
|
// this._pendingBackupRebase is true if an applied optimistic
|
|
149
147
|
// update has potentially been reverted or if this._pendingData is not empty.
|
|
@@ -203,26 +203,56 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
203
203
|
return;
|
|
204
204
|
}
|
|
205
205
|
var resolverRecord = this._recordSource.get(dataID);
|
|
206
|
-
if (resolverRecord
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
206
|
+
if (resolverRecord == null) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
if (field.backingField.isOutputType) {
|
|
210
|
+
// Mark all @outputType record IDs
|
|
211
|
+
var outputTypeRecordIDs = getOutputTypeRecordIDs(resolverRecord);
|
|
212
|
+
if (outputTypeRecordIDs != null) {
|
|
213
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(outputTypeRecordIDs),
|
|
214
|
+
_step;
|
|
215
|
+
try {
|
|
216
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
217
|
+
var _dataID = _step.value;
|
|
218
|
+
this._references.add(_dataID);
|
|
219
|
+
}
|
|
220
|
+
} catch (err) {
|
|
221
|
+
_iterator.e(err);
|
|
222
|
+
} finally {
|
|
223
|
+
_iterator.f();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
} else {
|
|
227
|
+
var linkedField = field.linkedField;
|
|
228
|
+
var concreteType = linkedField.concreteType;
|
|
229
|
+
if (concreteType == null) {
|
|
230
|
+
// TODO: Handle retaining abstract client edges to client types.
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
if (linkedField.plural) {
|
|
234
|
+
var dataIDs = RelayModernRecord.getResolverLinkedRecordIDs(resolverRecord, concreteType);
|
|
235
|
+
if (dataIDs != null) {
|
|
236
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(dataIDs),
|
|
237
|
+
_step2;
|
|
213
238
|
try {
|
|
214
|
-
for (
|
|
215
|
-
var
|
|
216
|
-
|
|
239
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
240
|
+
var _dataID2 = _step2.value;
|
|
241
|
+
if (_dataID2 != null) {
|
|
242
|
+
this._traverse(linkedField, _dataID2);
|
|
243
|
+
}
|
|
217
244
|
}
|
|
218
245
|
} catch (err) {
|
|
219
|
-
|
|
246
|
+
_iterator2.e(err);
|
|
220
247
|
} finally {
|
|
221
|
-
|
|
248
|
+
_iterator2.f();
|
|
222
249
|
}
|
|
223
250
|
}
|
|
224
251
|
} else {
|
|
225
|
-
|
|
252
|
+
var _dataID3 = RelayModernRecord.getResolverLinkedRecordID(resolverRecord, concreteType);
|
|
253
|
+
if (_dataID3 != null) {
|
|
254
|
+
this._traverse(linkedField, _dataID3);
|
|
255
|
+
}
|
|
226
256
|
}
|
|
227
257
|
}
|
|
228
258
|
};
|
|
@@ -306,11 +336,11 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
306
336
|
// definitions aren't the same as what's in scope for the outer query.
|
|
307
337
|
var prevVariables = this._variables;
|
|
308
338
|
// $FlowFixMe[incompatible-cast]
|
|
309
|
-
var
|
|
310
|
-
|
|
339
|
+
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(reachableExecutableDefinitions),
|
|
340
|
+
_step3;
|
|
311
341
|
try {
|
|
312
|
-
for (
|
|
313
|
-
var definition =
|
|
342
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
343
|
+
var definition = _step3.value;
|
|
314
344
|
this._variables = definition.variables;
|
|
315
345
|
var operationReference = definition.module;
|
|
316
346
|
var normalizationRootNode = operationLoader.get(operationReference);
|
|
@@ -320,9 +350,9 @@ var RelayReferenceMarker = /*#__PURE__*/function () {
|
|
|
320
350
|
}
|
|
321
351
|
}
|
|
322
352
|
} catch (err) {
|
|
323
|
-
|
|
353
|
+
_iterator3.e(err);
|
|
324
354
|
} finally {
|
|
325
|
-
|
|
355
|
+
_iterator3.f();
|
|
326
356
|
}
|
|
327
357
|
this._variables = prevVariables;
|
|
328
358
|
};
|
|
@@ -220,17 +220,12 @@ var RelayResponseNormalizer = /*#__PURE__*/function () {
|
|
|
220
220
|
var fieldKey = getStorageKey(selection, this._variables);
|
|
221
221
|
var handleKey = getHandleStorageKey(selection, this._variables);
|
|
222
222
|
this._handleFieldPayloads.push({
|
|
223
|
-
/* $FlowFixMe[class-object-subtyping] added when improving typing
|
|
224
|
-
* for this parameters */
|
|
225
223
|
args: args,
|
|
226
224
|
dataID: RelayModernRecord.getDataID(record),
|
|
227
225
|
fieldKey: fieldKey,
|
|
228
226
|
handle: selection.handle,
|
|
229
227
|
handleKey: handleKey,
|
|
230
|
-
handleArgs: selection.handleArgs ?
|
|
231
|
-
/* $FlowFixMe[class-object-subtyping] added when improving typing
|
|
232
|
-
* for this parameters */
|
|
233
|
-
getArgumentValues(selection.handleArgs, this._variables) : {}
|
|
228
|
+
handleArgs: selection.handleArgs ? getArgumentValues(selection.handleArgs, this._variables) : {}
|
|
234
229
|
});
|
|
235
230
|
break;
|
|
236
231
|
case MODULE_IMPORT:
|
|
@@ -16,10 +16,8 @@ var _require = require('./ViewerPattern'),
|
|
|
16
16
|
VIEWER_TYPE = _require.VIEWER_TYPE;
|
|
17
17
|
function defaultGetDataID(fieldValue, typeName) {
|
|
18
18
|
if (typeName === VIEWER_TYPE) {
|
|
19
|
-
// $FlowFixMe[prop-missing]
|
|
20
19
|
return fieldValue.id == null ? VIEWER_ID : fieldValue.id;
|
|
21
20
|
}
|
|
22
|
-
// $FlowFixMe[prop-missing]
|
|
23
21
|
return fieldValue.id;
|
|
24
22
|
}
|
|
25
23
|
module.exports = defaultGetDataID;
|
package/lib/util/deepFreeze.js
CHANGED
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
function deepFreeze(object) {
|
|
21
21
|
Object.freeze(object);
|
|
22
22
|
Object.getOwnPropertyNames(object).forEach(function (name) {
|
|
23
|
-
// $FlowFixMe[prop-missing]
|
|
24
23
|
var property = object[name];
|
|
25
24
|
if (property && typeof property === 'object' && !Object.isFrozen(property)) {
|
|
26
25
|
deepFreeze(property);
|
|
@@ -38,6 +38,16 @@ function getPendingOperationsForFragment(environment, fragmentNode, fragmentOwne
|
|
|
38
38
|
var promiseDisplayName = pendingOperationName === fragmentName ? "Relay(".concat(pendingOperationName, ")") : "Relay(".concat(pendingOperationName, ":").concat(fragmentName, ")");
|
|
39
39
|
// $FlowExpectedError[prop-missing] Expando to annotate Promises.
|
|
40
40
|
promise.displayName = promiseDisplayName;
|
|
41
|
+
|
|
42
|
+
// In order to monitor the efficacy of RelayOperationTracker, we log
|
|
43
|
+
// enough information to track whether we are suspending on the fragment
|
|
44
|
+
// owner's operation, or some other operation.
|
|
45
|
+
environment.__log({
|
|
46
|
+
name: 'pendingoperation.found',
|
|
47
|
+
fragment: fragmentNode,
|
|
48
|
+
fragmentOwner: fragmentOwner,
|
|
49
|
+
pendingOperations: pendingOperations
|
|
50
|
+
});
|
|
41
51
|
return {
|
|
42
52
|
promise: promise,
|
|
43
53
|
pendingOperations: pendingOperations
|
|
@@ -89,7 +89,6 @@ function updateProxyFromSelections<TData>(
|
|
|
89
89
|
mutableUpdatableProxy,
|
|
90
90
|
selection.alias ?? selection.name,
|
|
91
91
|
{
|
|
92
|
-
// $FlowFixMe[incompatible-call] these getters and setters have different types on purpose
|
|
93
92
|
get: createGetterForPluralLinkedField(
|
|
94
93
|
selection,
|
|
95
94
|
variables,
|
|
@@ -36,7 +36,6 @@ function convertFetch(fn: FetchFunction): ExecuteFunction {
|
|
|
36
36
|
// Note: We allow FetchFunction to directly return Error to indicate
|
|
37
37
|
// a failure to fetch. To avoid handling this special case throughout the
|
|
38
38
|
// Relay codebase, it is explicitly handled here.
|
|
39
|
-
// $FlowFixMe[incompatible-type]
|
|
40
39
|
if (result instanceof Error) {
|
|
41
40
|
return RelayObservable.create(sink => sink.error(result));
|
|
42
41
|
}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Relay v0.0.0-main-
|
|
2
|
+
* Relay v0.0.0-main-143e5036
|
|
3
3
|
*/
|
|
4
4
|
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/objectSpread2"),require("@babel/runtime/helpers/toConsumableArray"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/defineProperty")):"function"==typeof define&&define.amd?define(["invariant","@babel/runtime/helpers/interopRequireDefault","fbjs/lib/warning","@babel/runtime/helpers/objectSpread2","@babel/runtime/helpers/toConsumableArray","fbjs/lib/areEqual","@babel/runtime/helpers/defineProperty"],r):"object"==typeof exports?exports.ReactRelayExperimental=r(require("invariant"),require("@babel/runtime/helpers/interopRequireDefault"),require("fbjs/lib/warning"),require("@babel/runtime/helpers/objectSpread2"),require("@babel/runtime/helpers/toConsumableArray"),require("fbjs/lib/areEqual"),require("@babel/runtime/helpers/defineProperty")):e.ReactRelayExperimental=r(e.invariant,e["@babel/runtime/helpers/interopRequireDefault"],e["fbjs/lib/warning"],e["@babel/runtime/helpers/objectSpread2"],e["@babel/runtime/helpers/toConsumableArray"],e["fbjs/lib/areEqual"],e["@babel/runtime/helpers/defineProperty"])}(window,(function(e,r,t,n,a,o,l){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)t.d(n,a,function(r){return e[r]}.bind(null,a));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=6)}([function(r,t){r.exports=e},function(e,t){e.exports=r},function(e,r,t){"use strict";e.exports={ACTOR_CHANGE:"ActorChange",CONDITION:"Condition",CLIENT_COMPONENT:"ClientComponent",CLIENT_EDGE_TO_SERVER_OBJECT:"ClientEdgeToServerObject",CLIENT_EDGE_TO_CLIENT_OBJECT:"ClientEdgeToClientObject",CLIENT_EXTENSION:"ClientExtension",DEFER:"Defer",CONNECTION:"Connection",FLIGHT_FIELD:"FlightField",FRAGMENT:"Fragment",FRAGMENT_SPREAD:"FragmentSpread",INLINE_DATA_FRAGMENT_SPREAD:"InlineDataFragmentSpread",INLINE_DATA_FRAGMENT:"InlineDataFragment",INLINE_FRAGMENT:"InlineFragment",LINKED_FIELD:"LinkedField",LINKED_HANDLE:"LinkedHandle",LITERAL:"Literal",LIST_VALUE:"ListValue",LOCAL_ARGUMENT:"LocalArgument",MODULE_IMPORT:"ModuleImport",ALIASED_FRAGMENT_SPREAD:"AliasedFragmentSpread",ALIASED_INLINE_FRAGMENT_SPREAD:"AliasedInlineFragmentSpread",RELAY_RESOLVER:"RelayResolver",RELAY_LIVE_RESOLVER:"RelayLiveResolver",REQUIRED_FIELD:"RequiredField",OBJECT_VALUE:"ObjectValue",OPERATION:"Operation",REQUEST:"Request",ROOT_ARGUMENT:"RootArgument",SCALAR_FIELD:"ScalarField",SCALAR_HANDLE:"ScalarHandle",SPLIT_OPERATION:"SplitOperation",STREAM:"Stream",TYPE_DISCRIMINATOR:"TypeDiscriminator",UPDATABLE_QUERY:"UpdatableQuery",VARIABLE:"Variable"}},function(e,r){e.exports=t},function(e,r){e.exports=n},function(e,r,t){"use strict";var n=(0,t(1).default)(t(12)),a=t(13),o=t(2),l=t(15),i=t(0),u=o.VARIABLE,f=o.LITERAL,s=o.OBJECT_VALUE,c=o.LIST_VALUE;function d(e,r){if(e.kind===u)return function(e,r){return r.hasOwnProperty(e)||i(!1,"getVariableValue(): Undefined variable `%s`.",e),l(r[e])}(e.variableName,r);if(e.kind===f)return e.value;if(e.kind===s){var t={};return e.fields.forEach((function(e){t[e.name]=d(e,r)})),t}if(e.kind===c){var n=[];return e.items.forEach((function(e){null!=e&&n.push(d(e,r))})),n}}function p(e,r){var t={};return e.forEach((function(e){t[e.name]=d(e,r)})),t}function E(e,r){if(!r)return e;var t=[];for(var n in r)if(r.hasOwnProperty(n)){var a,o=r[n];if(null!=o)t.push(n+":"+(null!==(a=JSON.stringify(o))&&void 0!==a?a:"undefined"))}return 0===t.length?e:e+"(".concat(t.join(","),")")}var g={ACTOR_IDENTIFIER_KEY:"__actorIdentifier",CLIENT_EDGE_TRAVERSAL_PATH:"__clientEdgeTraversalPath",FRAGMENTS_KEY:"__fragments",FRAGMENT_OWNER_KEY:"__fragmentOwner",FRAGMENT_PROP_NAME_KEY:"__fragmentPropName",MODULE_COMPONENT_KEY:"__module_component",ID_KEY:"__id",REF_KEY:"__ref",REFS_KEY:"__refs",ROOT_ID:"client:root",ROOT_TYPE:"__Root",TYPENAME_KEY:"__typename",INVALIDATED_AT_KEY:"__invalidated_at",IS_WITHIN_UNMATCHED_TYPE_REFINEMENT:"__isWithinUnmatchedTypeRefinement",RELAY_RESOLVER_VALUE_KEY:"__resolverValue",RELAY_RESOLVER_INVALIDATION_KEY:"__resolverValueMayBeInvalid",RELAY_RESOLVER_SNAPSHOT_KEY:"__resolverSnapshot",RELAY_RESOLVER_ERROR_KEY:"__resolverError",RELAY_RESOLVER_OUTPUT_TYPE_RECORD_IDS:"__resolverOutputTypeRecordIDs",formatStorageKey:E,getArgumentValue:d,getArgumentValues:p,getHandleStorageKey:function(e,r){var t=e.dynamicKey,o=e.handle,l=e.key,i=e.name,u=e.args,f=e.filters,s=a(o,l,i),c=null;return u&&f&&0!==u.length&&0!==f.length&&(c=u.filter((function(e){return f.indexOf(e.name)>-1}))),t&&(c=null!=c?[t].concat((0,n.default)(c)):[t]),null===c?s:E(s,p(c,r))},getStorageKey:function(e,r){if(e.storageKey)return e.storageKey;var t=function(e){if("RelayResolver"===e.kind||"RelayLiveResolver"===e.kind){var r,t;return null==e.args?null===(t=e.fragment)||void 0===t?void 0:t.args:null==(null===(r=e.fragment)||void 0===r?void 0:r.args)?e.args:e.args.concat(e.fragment.args)}return void 0===e.args?void 0:e.args}(e),n=e.name;return t&&0!==t.length?E(n,p(t,r)):n},getStableStorageKey:function(e,r){return E(e,l(r))},getModuleComponentKey:function(e){return"".concat("__module_component_").concat(e)},getModuleOperationKey:function(e){return"".concat("__module_operation_").concat(e)}};e.exports=g},function(e,r,t){"use strict";var n=t(7),a=t(17),o=a.weakObjectWrapper,l=a.weakObjectWrapperLive;e.exports={resolverDataInjector:n,weakObjectWrapper:o,weakObjectWrapperLive:l}},function(e,r,t){"use strict";var n=t(8).readFragment,a=t(0);e.exports=function(e,r,t,o){return function(l,i){var u=n(e,l);if(null==t)return r(u,i);if(null==u){if(!0!==o)return r(null,i);a(!1,"Expected required resolver field `%` to be present. But resolvers fragment data is null/undefined.",t)}if(t in u)return!0===o&&null==u[t]&&a(!1,"Expected required resolver field `%` to be non-null."),r(u[t],i);a(!1,"Missing field `%` in resolver response.",t)}}},function(e,r,t){"use strict";var n=t(9).getFragment,a=t(10).getSelector,o=t(0),l=[];var i={};e.exports={readFragment:function(e,r){if(!l.length)throw new Error("readFragment should be called only from within a Relay Resolver function.");var t=l[l.length-1],u=n(e),f=a(u,r);null==f&&o(!1,"Expected a selector for the fragment of the resolver ".concat(u.name,", but got null.")),"SingularReaderSelector"!==f.kind&&o(!1,"Expected a singular reader selector for the fragment of the resolver ".concat(u.name,", but it was plural."));var s=t.getDataForResolverFragment(f,r),c=s.data;if(s.isMissingData)throw i;return c},withResolverContext:function(e,r){l.push(e);try{return r()}finally{l.pop()}},RESOLVER_FRAGMENT_MISSING_DATA_SENTINEL:i}},function(e,r,t){"use strict";var n=t(2),a=t(0),o=t(3);function l(e){var r=e;return"function"==typeof r?(r=r(),o(!1,"RelayGraphQLTag: node `%s` unexpectedly wrapped in a function.","Fragment"===r.kind?r.name:r.operation.name)):r.default&&(r=r.default),r}function i(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.FRAGMENT}function u(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.REQUEST}function f(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.UPDATABLE_QUERY}function s(e){var r=l(e);return"object"==typeof r&&null!==r&&r.kind===n.INLINE_DATA_FRAGMENT}function c(e){var r=l(e);return i(r)||a(!1,"GraphQLTag: Expected a fragment, got `%s`.",JSON.stringify(r)),r}e.exports={getFragment:c,getNode:l,getPaginationFragment:function(e){var r,t=c(e),n=null===(r=t.metadata)||void 0===r?void 0:r.refetch,a=null==n?void 0:n.connection;return null===n||"object"!=typeof n||null===a||"object"!=typeof a?null:t},getRefetchableFragment:function(e){var r,t=c(e),n=null===(r=t.metadata)||void 0===r?void 0:r.refetch;return null===n||"object"!=typeof n?null:t},getRequest:function(e){var r=l(e);return u(r)||a(!1,"GraphQLTag: Expected a request, got `%s`.",JSON.stringify(r)),r},getUpdatableQuery:function(e){var r=l(e);return f(r)||a(!1,"GraphQLTag: Expected a request, got `%s`.",JSON.stringify(r)),r},getInlineDataFragment:function(e){var r=l(e);return s(r)||a(!1,"GraphQLTag: Expected an inline data fragment, got `%s`.",JSON.stringify(r)),r},graphql:function(e){a(!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:i,isRequest:u,isUpdatableQuery:f,isInlineDataFragment:s}},function(e,r,t){"use strict";var n=t(11).getFragmentVariables,a=t(5),o=a.CLIENT_EDGE_TRAVERSAL_PATH,l=a.FRAGMENT_OWNER_KEY,i=a.FRAGMENTS_KEY,u=a.ID_KEY,f=a.IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,s=t(16),c=t(0),d=t(3);function p(e,r){("object"!=typeof r||null===r||Array.isArray(r))&&c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`.",e.name,JSON.stringify(r));var t=r[u],a=r[i],s=r[l],p=!0===r[f],E=r[o];if("string"==typeof t&&"object"==typeof a&&null!==a&&"object"==typeof a[e.name]&&null!==a[e.name]&&"object"==typeof s&&null!==s&&(null==E||Array.isArray(E))){var g=s,m=E,b=a[e.name];return A(e,t,n(e,g.variables,b),g,p,m)}var _=JSON.stringify(r);return _.length>499&&(_=_.substr(0,498)+"…"),d(!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,_,e.name),null}function E(e,r){var t=null;return r.forEach((function(r,n){var a=null!=r?p(e,r):null;null!=a&&(t=t||[]).push(a)})),null==t?null:{kind:"PluralReaderSelector",selectors:t}}function g(e,r){return null==r?r:e.metadata&&!0===e.metadata.plural?(Array.isArray(r)||c(!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(r),e.name),E(e,r)):(Array.isArray(r)&&c(!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(r),e.name),p(e,r))}function m(e,r){return null==r?r:e.metadata&&!0===e.metadata.plural?(Array.isArray(r)||c(!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(r),e.name),function(e,r){var t=null;return r.forEach((function(r){var n=null!=r?b(e,r):null;null!=n&&(t=t||[]).push(n)})),t}(e,r)):(Array.isArray(r)&&c(!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(r),e.name),b(e,r))}function b(e,r){("object"!=typeof r||null===r||Array.isArray(r))&&c(!1,"RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`.",e.name,JSON.stringify(r));var t=r[u];return"string"==typeof t?t:(d(!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(r),e.name,e.name),null)}function _(e,r){var t;return null==r?{}:!0===(null===(t=e.metadata)||void 0===t?void 0:t.plural)?(Array.isArray(r)||c(!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(r),e.name),y(e,r)):(Array.isArray(r)&&c(!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(r),e.name),v(e,r)||{})}function v(e,r){var t=p(e,r);return t?t.variables:null}function y(e,r){var t={};return r.forEach((function(r,n){if(null!=r){var a=v(e,r);null!=a&&Object.assign(t,a)}})),t}function R(e,r){return e.owner===r.owner&&e.dataID===r.dataID&&e.node===r.node&&s(e.variables,r.variables)}function A(e,r,t,n){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=arguments.length>5?arguments[5]:void 0;return{kind:"SingularReaderSelector",dataID:r,isWithinUnmatchedTypeRefinement:a,clientEdgeTraversalPath:null!=o?o:null,node:e,variables:t,owner:n}}e.exports={areEqualSelectors:function(e,r){return e===r||(null==e?null==r:null==r?null==e:"SingularReaderSelector"===e.kind&&"SingularReaderSelector"===r.kind?R(e,r):"PluralReaderSelector"===e.kind&&"PluralReaderSelector"===r.kind&&(e.selectors.length===r.selectors.length&&e.selectors.every((function(e,t){return R(e,r.selectors[t])}))))},createReaderSelector:A,createNormalizationSelector:function(e,r,t){return{dataID:r,node:e,variables:t}},getDataIDsFromFragment:m,getDataIDsFromObject:function(e,r){var t={};for(var n in e)if(e.hasOwnProperty(n)){var a=e[n],o=r[n];t[n]=m(a,o)}return t},getSingularSelector:p,getPluralSelector:E,getSelector:g,getSelectorsFromObject:function(e,r){var t={};for(var n in e)if(e.hasOwnProperty(n)){var a=e[n],o=r[n];t[n]=g(a,o)}return t},getVariablesFromSingularFragment:v,getVariablesFromPluralFragment:y,getVariablesFromFragment:_,getVariablesFromObject:function(e,r){var t={};for(var n in e)if(e.hasOwnProperty(n)){var a=_(e[n],r[n]);Object.assign(t,a)}return t}}},function(e,r,t){"use strict";var n=(0,t(1).default)(t(4)),a=t(5).getArgumentValues,o=t(0);e.exports={getLocalVariables:function(e,r,t){if(null==r)return e;var o=(0,n.default)({},e),l=t?a(t,e):{};return r.forEach((function(e){var r,t=null!==(r=l[e.name])&&void 0!==r?r:e.defaultValue;o[e.name]=t})),o},getFragmentVariables:function(e,r,t){return null==e.argumentDefinitions?t:(e.argumentDefinitions.forEach((function(l){if(!t.hasOwnProperty(l.name))switch(a=a||(0,n.default)({},t),l.kind){case"LocalArgument":a[l.name]=l.defaultValue;break;case"RootArgument":if(!r.hasOwnProperty(l.name)){a[l.name]=void 0;break}a[l.name]=r[l.name];break;default:o(!1,"RelayConcreteVariables: Unexpected node kind `%s` in fragment `%s`.",l.kind,e.name)}})),a||t);var a},getOperationVariables:function(e,r,t){var n={};return e.argumentDefinitions.forEach((function(e){var r=e.defaultValue;null!=t[e.name]&&(r=t[e.name]),n[e.name]=r})),null!=r&&Object.keys(r).forEach((function(e){n[e]=r[e].get()})),n}}},function(e,r){e.exports=a},function(e,r,t){"use strict";var n=t(14).DEFAULT_HANDLE_KEY,a=t(0);e.exports=function(e,r,t){return r&&r!==n?"__".concat(r,"_").concat(e):(null==t&&a(!1,"getRelayHandleKey: Expected either `fieldName` or `key` in `handle` to be provided"),"__".concat(t,"_").concat(e))}},function(e,r,t){"use strict";e.exports={DEFAULT_HANDLE_KEY:""}},function(e,r,t){"use strict";e.exports=function e(r){if(!r||"object"!=typeof r)return r;if(Array.isArray(r))return r.map(e);for(var t=Object.keys(r).sort(),n={},a=0;a<t.length;a++)n[t[a]]=e(r[t[a]]);return n}},function(e,r){e.exports=o},function(e,r,t){"use strict";var n=t(1).default,a=n(t(18)),o=n(t(4)),l=t(19),i=t(0);function u(e,r,t){return function(){for(var n=arguments.length,o=new Array(n),l=0;l<n;l++)o[l]=arguments[l];var u=e.apply(null,o);return t?(Array.isArray(u)||i(!1,"Resolver is expected to return a plural value."),u.map((function(e){return(0,a.default)({},r,e)}))):(0,a.default)({},r,u)}}e.exports={weakObjectWrapperLive:function(e,r,t){return function(){for(var n=arguments.length,a=new Array(n),f=0;f<n;f++)a[f]=arguments[f];var s=e.apply(null,a);return l(s)||i(!1,"Resolver is expected to return a LiveState value."),(0,o.default)((0,o.default)({},s),{},{read:u((function(){return s.read()}),r,t)})}},weakObjectWrapper:u}},function(e,r){e.exports=l},function(e,r,t){"use strict";e.exports=function(e){return null!=e&&"object"==typeof e&&"function"==typeof e.read&&"function"==typeof e.subscribe}}])}));
|