@plumile/backoffice-react 0.1.158 → 0.1.159
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/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js +0 -1
- package/lib/esm/components/backoffice/list/RowFlagsCell.css.js +1 -0
- package/lib/esm/index.js +27 -27
- package/lib/esm/node_modules/relay-test-utils/lib/RelayMockPayloadGenerator.js +1 -1
- package/lib/esm/node_modules/relay-test-utils/lib/RelayMockPayloadGenerator.js.map +1 -1
- package/lib/esm/relay/environment.js +292 -109
- package/lib/esm/relay/environment.js.map +1 -1
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/relay/environment.d.ts +49 -0
- package/lib/types/relay/environment.d.ts.map +1 -1
- package/package.json +11 -11
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* empty css */
|
|
2
1
|
/* empty css */
|
|
3
2
|
//#region src/components/backoffice/filters/backofficeFilterAction.css.ts
|
|
4
3
|
var e = "hwnq700 txvbqbfqq txvbqbey txvbqbls4 txvbqb19gp txvbqbjm4 txvbqbwvi txvbqb2tz txvbqb28o txvbqb2sj txvbqb1d9 txvbqb1b83 txvbqb1bhb txvbqbv txvbqb3f txvbqb7h txvbqb75 txvbqb7t txvbqb1eol txvbqb1czh txvbqb1dth qbwcue0 txvbqb1ffs txvbqb1ga0", t = "txvbqb19fm txvbqbjl1";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* empty css */
|
|
1
2
|
/* empty css */
|
|
2
3
|
//#region src/components/backoffice/list/RowFlagsCell.css.ts
|
|
3
4
|
var e = "txvbqb10m7 txvbqb11js txvbqb12h0 txvbqbxt3 txvbqbls4", t = "txvbqbfqq txvbqbey txvbqbls4 txvbqbi8n txvbqb19uf", n = "qbwcuex qbwcuer txvbqbfqq txvbqbey txvbqbls4 txvbqbh6d txvbqbo4m qbwcue11 qbwcuev txvbqb19h2 txvbqbjmh txvbqbvat txvbqbub2";
|
package/lib/esm/index.js
CHANGED
|
@@ -38,36 +38,36 @@ import { BackofficeRightPageLayout as H } from "./components/backoffice/layout/b
|
|
|
38
38
|
import { BackofficeOverviewLayout as U } from "./components/backoffice/overview/BackofficeOverviewLayout.js";
|
|
39
39
|
import { BackofficeFilterableCell as W } from "./components/backoffice/shared/BackofficeFilterableCell.js";
|
|
40
40
|
import { BackofficeEntityLink as G } from "./components/backoffice/refs/BackofficeEntityLink.js";
|
|
41
|
-
import { BackofficeLazyEntityCount as
|
|
42
|
-
import { BackofficeRelatedCountLink as
|
|
43
|
-
import { BackofficeTabbedDetailShell as
|
|
44
|
-
import { BackofficeFormattedCurrency as
|
|
45
|
-
import { BackofficeFormattedNumber as
|
|
41
|
+
import { BackofficeLazyEntityCount as K } from "./components/backoffice/refs/BackofficeLazyEntityCount.js";
|
|
42
|
+
import { BackofficeRelatedCountLink as q } from "./components/backoffice/refs/BackofficeRelatedCountLink.js";
|
|
43
|
+
import { BackofficeTabbedDetailShell as J } from "./components/backoffice/scaffolds/BackofficeTabbedDetailShell.js";
|
|
44
|
+
import { BackofficeFormattedCurrency as Y } from "./components/backoffice/shared/BackofficeFormattedCurrency.js";
|
|
45
|
+
import { BackofficeFormattedNumber as ee } from "./components/backoffice/shared/BackofficeFormattedNumber.js";
|
|
46
46
|
import { BackofficeInlineFilterRow as X } from "./components/backoffice/shared/BackofficeInlineFilterRow.js";
|
|
47
47
|
import { BackofficeToolsDocPanel as Z } from "./components/backoffice/tools/BackofficeToolsDocPanel.js";
|
|
48
48
|
import { BackofficeToolsErrorFallback as Q } from "./components/backoffice/tools/BackofficeToolsErrorFallback.js";
|
|
49
49
|
import { BackofficeToolsJsonForm as $ } from "./components/backoffice/tools/BackofficeToolsJsonForm.js";
|
|
50
50
|
import { BackofficeToolsQueryBoundary as te } from "./components/backoffice/tools/BackofficeToolsQueryBoundary.js";
|
|
51
51
|
import { parseToolJson as ne } from "./components/backoffice/tools/parseToolJson.js";
|
|
52
|
-
import { configureRelayEnvironment as re, getEnvironment as ie, getNetwork as ae, getRelayTransportSnapshot as oe, reconnectRelayWebSocket as se,
|
|
53
|
-
import { base64UrlToBuffer as
|
|
54
|
-
import { createUseAuth as
|
|
55
|
-
import { useBackofficeListUrlState as
|
|
56
|
-
import { useConditionalSubscription as
|
|
57
|
-
import
|
|
58
|
-
import
|
|
59
|
-
import { useRefetchNeededReload as
|
|
60
|
-
import { createI18nInstance as
|
|
61
|
-
import { backofficeReactI18nResources as
|
|
62
|
-
import { useReviewStatusLabel as
|
|
63
|
-
import { RelayProvider as
|
|
64
|
-
import { BackofficeProvider as
|
|
65
|
-
import { createBackofficeLazyValue as
|
|
66
|
-
import { decodeBase64ToUtf8 as
|
|
67
|
-
import { formatFileSize as
|
|
68
|
-
import { resolveVisibleDetailPages as
|
|
69
|
-
import { createInlineDataReader as
|
|
70
|
-
import { appendNodeToConnections as
|
|
71
|
-
import { identityView as
|
|
72
|
-
import { useCursorResumableSubscription as
|
|
73
|
-
export { o as AcceptInvitationScreen, e as AuthRefreshNotice, v as BackofficeBillingUsageChart, w as BackofficeDetailBadgeRow, G as BackofficeEntityLink, O as BackofficeEntitySummaryHeader, k as BackofficeEnumLabel, g as BackofficeErrorBoundary, R as BackofficeFilterAction, W as BackofficeFilterableCell,
|
|
52
|
+
import { configureRelayEnvironment as re, getEnvironment as ie, getNetwork as ae, getRelayTransportSnapshot as oe, reconnectRelayWebSocket as se, refreshRelayWebSocketAuthentication as ce, resetRelayStore as le, subscribeRelayTransport as ue } from "./relay/environment.js";
|
|
53
|
+
import { base64UrlToBuffer as de, bufferToBase64Url as fe, mapWebAuthnRegistrationError as pe, parseSignCount as me } from "./modules/webauthn.js";
|
|
54
|
+
import { createUseAuth as he } from "./hooks/useAuth.js";
|
|
55
|
+
import { useBackofficeListUrlState as ge } from "./hooks/useBackofficeListUrlState.js";
|
|
56
|
+
import { useConditionalSubscription as _e } from "./hooks/useConditionalSubscription.js";
|
|
57
|
+
import ve from "./hooks/useCopyToClipboard.js";
|
|
58
|
+
import ye from "./hooks/useInfiniteConnection.js";
|
|
59
|
+
import { useRefetchNeededReload as be } from "./hooks/useRefetchNeededReload.js";
|
|
60
|
+
import { createI18nInstance as xe } from "./i18n/createI18nInstance.js";
|
|
61
|
+
import { backofficeReactI18nResources as Se, withBackofficeReactI18nResources as Ce } from "./i18n/resources.js";
|
|
62
|
+
import { useReviewStatusLabel as we } from "./i18n/useReviewStatusLabel.js";
|
|
63
|
+
import { RelayProvider as Te } from "./relay/RelayProvider.js";
|
|
64
|
+
import { BackofficeProvider as Ee } from "./provider/BackofficeProvider.js";
|
|
65
|
+
import { createBackofficeLazyValue as De } from "./provider/lazyValue.js";
|
|
66
|
+
import { decodeBase64ToUtf8 as Oe, encodeUtf8ToBase64 as ke } from "./modules/base64.js";
|
|
67
|
+
import { formatFileSize as Ae } from "./modules/formatFileSize.js";
|
|
68
|
+
import { resolveVisibleDetailPages as je } from "./pages/detail/pageResolution.js";
|
|
69
|
+
import { createInlineDataReader as Me } from "./relay/createInlineReader.js";
|
|
70
|
+
import { appendNodeToConnections as Ne } from "./relay/connectionUtils.js";
|
|
71
|
+
import { identityView as Pe } from "./relay/identityView.js";
|
|
72
|
+
import { useCursorResumableSubscription as Fe } from "./subscriptions/useCursorResumableSubscription.js";
|
|
73
|
+
export { o as AcceptInvitationScreen, e as AuthRefreshNotice, v as BackofficeBillingUsageChart, w as BackofficeDetailBadgeRow, G as BackofficeEntityLink, O as BackofficeEntitySummaryHeader, k as BackofficeEnumLabel, g as BackofficeErrorBoundary, R as BackofficeFilterAction, W as BackofficeFilterableCell, Y as BackofficeFormattedCurrency, ee as BackofficeFormattedNumber, z as BackofficeHubTemplate, X as BackofficeInlineFilterRow, S as BackofficeInlineLink, K as BackofficeLazyEntityCount, A as BackofficeLifecycleTimelineSection, B as BackofficeLink, V as BackofficeLinkLabel, U as BackofficeOverviewLayout, Ee as BackofficeProvider, j as BackofficeReferenceValue, q as BackofficeRelatedCountLink, M as BackofficeRelationGrid, M as BackofficeRelationsSummaryGrid, H as BackofficeRightPageLayout, N as BackofficeStatusGroup, D as BackofficeStatusMetaBadge, J as BackofficeTabbedDetailShell, P as BackofficeTokenUsageBreakdown, Z as BackofficeToolsDocPanel, Q as BackofficeToolsErrorFallback, $ as BackofficeToolsJsonForm, te as BackofficeToolsQueryBoundary, F as BackofficeUsageCostBreakdown, T as EntityFilterValue, E as EntityFilterValueText, h as EntityIdFilterField, _ as EntityIdPickerDialog, i as LoginFlow, s as PasswordResetCompleteScreen, c as PasswordResetRequestScreen, Te as RelayProvider, n as TotpQrCode, l as VerifyEmailScreen, Ne as appendNodeToConnections, Se as backofficeReactI18nResources, de as base64UrlToBuffer, fe as bufferToBase64Url, C as buildDataTableColumns, r as buildTotpOtpAuthUri, re as configureRelayEnvironment, I as createBackofficeEntityLinkProps, De as createBackofficeLazyValue, xe as createI18nInstance, Me as createInlineDataReader, he as createUseAuth, Oe as decodeBase64ToUtf8, ke as encodeUtf8ToBase64, Ae as formatFileSize, L as formatListAsMarkdown, ie as getEnvironment, ae as getNetwork, oe as getRelayTransportSnapshot, Pe as identityView, pe as mapWebAuthnRegistrationError, me as parseSignCount, ne as parseToolJson, se as reconnectRelayWebSocket, ce as refreshRelayWebSocketAuthentication, u as requireField, d as requireLinkedRecordId, le as resetRelayStore, f as resolveAgentStartOutcome, b as resolveBackofficeLink, y as resolveBackofficeTargetIcon, p as resolveMutationOutcome, je as resolveVisibleDetailPages, ue as subscribeRelayTransport, a as synchronizeAuthStatusQuery, t as useAuthRefreshStateSnapshot, m as useBackofficeConfig, x as useBackofficeLink, ge as useBackofficeListUrlState, _e as useConditionalSubscription, ve as useCopyToClipboard, Fe as useCursorResumableSubscription, ye as useInfiniteConnection, be as useRefetchNeededReload, we as useReviewStatusLabel, Ce as withBackofficeReactI18nResources };
|
|
@@ -47,7 +47,7 @@ var c = /* @__PURE__ */ e(((e, c) => {
|
|
|
47
47
|
return t(e, n);
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
|
-
var K =
|
|
50
|
+
var K = /*#__PURE__*/ function() {
|
|
51
51
|
function e(e) {
|
|
52
52
|
this._variables = e.variables, this._mockResolvers = (0, f.default)((0, f.default)({}, V), e.mockResolvers ?? {}), this._selectionMetadata = e.selectionMetadata ?? {}, this._resolveValue = W(this._mockResolvers), this._mockClientData = e.mockClientData ?? !1, this._generateDeferredPayload = e.generateDeferredPayload ?? !1, this._deferredPayloads = [];
|
|
53
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelayMockPayloadGenerator.js","names":[],"sources":["../../../../../../../node_modules/relay-test-utils/lib/RelayMockPayloadGenerator.js"],"sourcesContent":["'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _objectSpread3 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _excluded = [\"generateDeferredPayload\"];\nvar invariant = require('invariant');\nvar _require = require('relay-runtime'),\n __internal = _require.__internal,\n RelayConcreteNode = _require.RelayConcreteNode,\n TYPENAME_KEY = _require.TYPENAME_KEY,\n getModuleComponentKey = _require.getModuleComponentKey,\n getModuleOperationKey = _require.getModuleOperationKey;\nvar ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,\n CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,\n CLIENT_EDGE_TO_CLIENT_OBJECT = RelayConcreteNode.CLIENT_EDGE_TO_CLIENT_OBJECT,\n CLIENT_EXTENSION = RelayConcreteNode.CLIENT_EXTENSION,\n CONDITION = RelayConcreteNode.CONDITION,\n CONNECTION = RelayConcreteNode.CONNECTION,\n DEFER = RelayConcreteNode.DEFER,\n FRAGMENT_SPREAD = RelayConcreteNode.FRAGMENT_SPREAD,\n INLINE_FRAGMENT = RelayConcreteNode.INLINE_FRAGMENT,\n LINKED_FIELD = RelayConcreteNode.LINKED_FIELD,\n LINKED_HANDLE = RelayConcreteNode.LINKED_HANDLE,\n MODULE_IMPORT = RelayConcreteNode.MODULE_IMPORT,\n RELAY_RESOLVER = RelayConcreteNode.RELAY_RESOLVER,\n RELAY_LIVE_RESOLVER = RelayConcreteNode.RELAY_LIVE_RESOLVER,\n SCALAR_FIELD = RelayConcreteNode.SCALAR_FIELD,\n SCALAR_HANDLE = RelayConcreteNode.SCALAR_HANDLE,\n STREAM = RelayConcreteNode.STREAM,\n TYPE_DISCRIMINATOR = RelayConcreteNode.TYPE_DISCRIMINATOR;\nfunction createIdGenerator() {\n var id = 0;\n return function () {\n return ++id;\n };\n}\nvar DEFAULT_MOCK_RESOLVERS = {\n ID: function ID(context, generateId) {\n return \"<\".concat(context.parentType != null && context.parentType !== DEFAULT_MOCK_TYPENAME ? context.parentType + '-' : '', \"mock-id-\").concat(generateId(), \">\");\n },\n Boolean: function Boolean() {\n return false;\n },\n Int: function Int() {\n return 42;\n },\n Float: function Float() {\n return 4.2;\n }\n};\nvar DEFAULT_MOCK_TYPENAME = '__MockObject';\nfunction valueResolver(generateId, mockResolvers, typeName, context) {\n var plural = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var defaultValue = arguments.length > 5 ? arguments[5] : undefined;\n var generateValue = function generateValue(possibleDefaultValue) {\n var mockValue;\n var mockResolver = typeName != null && mockResolvers != null ? mockResolvers[typeName] : null;\n if (mockResolver != null) {\n mockValue = mockResolver(context, generateId);\n }\n if (mockValue === undefined) {\n var _ref, _context$alias;\n mockValue = possibleDefaultValue !== null && possibleDefaultValue !== void 0 ? possibleDefaultValue : typeName === 'ID' ? DEFAULT_MOCK_RESOLVERS.ID(context, generateId) : \"<mock-value-for-field-\\\"\".concat((_ref = (_context$alias = context.alias) !== null && _context$alias !== void 0 ? _context$alias : context.name) !== null && _ref !== void 0 ? _ref : 'undefined', \"\\\">\");\n }\n return mockValue;\n };\n return plural === true ? generateMockList(Array.isArray(defaultValue) ? defaultValue : Array(1).fill(), generateValue) : generateValue(defaultValue);\n}\nfunction createValueResolver(mockResolvers) {\n var generateId = createIdGenerator();\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return valueResolver.apply(void 0, [generateId, mockResolvers].concat(args));\n };\n}\nfunction generateMockList(placeholderArray, generateListItem) {\n return placeholderArray.map(function (possibleDefaultValue, index) {\n return generateListItem(possibleDefaultValue, index);\n });\n}\nvar RelayMockPayloadGenerator = /*#__PURE__*/function () {\n function RelayMockPayloadGenerator(options) {\n var _options$mockResolver, _options$selectionMet, _options$mockClientDa, _options$generateDefe;\n this._variables = options.variables;\n this._mockResolvers = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, DEFAULT_MOCK_RESOLVERS), (_options$mockResolver = options.mockResolvers) !== null && _options$mockResolver !== void 0 ? _options$mockResolver : {});\n this._selectionMetadata = (_options$selectionMet = options.selectionMetadata) !== null && _options$selectionMet !== void 0 ? _options$selectionMet : {};\n this._resolveValue = createValueResolver(this._mockResolvers);\n this._mockClientData = (_options$mockClientDa = options.mockClientData) !== null && _options$mockClientDa !== void 0 ? _options$mockClientDa : false;\n this._generateDeferredPayload = (_options$generateDefe = options.generateDeferredPayload) !== null && _options$generateDefe !== void 0 ? _options$generateDefe : false;\n this._deferredPayloads = [];\n }\n var _proto = RelayMockPayloadGenerator.prototype;\n _proto.generate = function generate(selections, operationType) {\n var defaultValues = this._getDefaultValuesForObject(operationType, null, null, [], {});\n var data = this._traverse({\n selections: selections,\n typeName: operationType,\n isAbstractType: false,\n name: null,\n alias: null,\n args: null\n }, [], null, defaultValues);\n return [{\n data: data\n }].concat((0, _toConsumableArray2[\"default\"])(this._deferredPayloads));\n };\n _proto._traverse = function _traverse(traversable, path, prevData, defaultValues) {\n var selections = traversable.selections,\n typeName = traversable.typeName,\n isAbstractType = traversable.isAbstractType;\n return this._traverseSelections(selections, typeName, isAbstractType, path, prevData, defaultValues);\n };\n _proto._traverseSelections = function _traverseSelections(selections, typeName, isAbstractType, path, prevData, defaultValues) {\n var _this = this;\n var mockData = prevData !== null && prevData !== void 0 ? prevData : {};\n selections.forEach(function (selection) {\n switch (selection.kind) {\n case SCALAR_FIELD:\n {\n mockData = _this._mockScalar(selection, typeName, path, mockData, defaultValues);\n break;\n }\n case CONNECTION:\n {\n mockData = _this._traverseSelections([selection.edges, selection.pageInfo], typeName, isAbstractType, path, prevData, defaultValues);\n break;\n }\n case LINKED_FIELD:\n {\n mockData = _this._mockLink(selection, path, mockData, defaultValues);\n break;\n }\n case CONDITION:\n var conditionValue = _this._getVariableValue(selection.condition);\n if (conditionValue === selection.passingValue) {\n mockData = _this._traverseSelections(selection.selections, typeName, isAbstractType, path, mockData, defaultValues);\n }\n break;\n case CLIENT_EXTENSION:\n if (!_this._mockClientData) {\n break;\n }\n mockData = _this._traverseSelections(selection.selections, typeName, isAbstractType, path, mockData, defaultValues);\n break;\n case DEFER:\n case STREAM:\n {\n var isDeferreable = selection[\"if\"] == null || _this._variables[selection[\"if\"]];\n if (_this._generateDeferredPayload && isDeferreable) {\n var deferredData = _this._traverseSelections(selection.selections, typeName, isAbstractType, path, {}, defaultValues);\n _this._deferredPayloads.push({\n path: (0, _toConsumableArray2[\"default\"])(path),\n label: selection.label,\n data: deferredData\n });\n break;\n }\n mockData = _this._traverseSelections(selection.selections, typeName, isAbstractType, path, mockData, defaultValues);\n break;\n }\n case CLIENT_COMPONENT:\n {\n mockData = _this._traverseSelections(selection.fragment.selections, typeName, isAbstractType, path, mockData, defaultValues);\n break;\n }\n case FRAGMENT_SPREAD:\n {\n var prevVariables = _this._variables;\n _this._variables = __internal.getLocalVariables(_this._variables, selection.fragment.argumentDefinitions, selection.args);\n mockData = _this._traverseSelections(selection.fragment.selections, typeName, isAbstractType, path, mockData, defaultValues);\n _this._variables = prevVariables;\n break;\n }\n case INLINE_FRAGMENT:\n {\n var _abstractKey = selection.abstractKey;\n if (_abstractKey != null) {\n var shouldMockFragment = (defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues[_abstractKey]) === undefined || !!(defaultValues !== null && defaultValues !== void 0 && defaultValues[_abstractKey]);\n if (!shouldMockFragment) {\n break;\n }\n if (mockData != null) {\n mockData[_abstractKey] = true;\n }\n mockData = _this._traverseSelections(selection.selections, typeName, isAbstractType, path, mockData, defaultValues);\n break;\n }\n if (mockData != null && (mockData[TYPENAME_KEY] == null || mockData[TYPENAME_KEY] === DEFAULT_MOCK_TYPENAME)) {\n var _defaultValues$TYPENA;\n mockData[TYPENAME_KEY] = (_defaultValues$TYPENA = defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues[TYPENAME_KEY]) !== null && _defaultValues$TYPENA !== void 0 ? _defaultValues$TYPENA : selection.type;\n }\n if (isAbstractType === true && mockData != null && mockData[TYPENAME_KEY] === typeName) {\n mockData[TYPENAME_KEY] = selection.type;\n }\n if (mockData != null && mockData[TYPENAME_KEY] === selection.type) {\n var defaults = _this._getDefaultValuesForObject(selection.type, path[path.length - 1], null, path);\n var defaultsForAbstractType = typeName !== selection.type ? _this._getDefaultValuesForObject(typeName, path[path.length - 1], null, path) : defaults;\n var defaultValuesForSelection = defaults;\n if (defaultValuesForSelection === undefined) {\n defaultValuesForSelection = defaultsForAbstractType;\n }\n if (defaultValuesForSelection === undefined) {\n defaultValuesForSelection = defaultValues;\n }\n if (defaultValuesForSelection === null) {\n mockData = null;\n break;\n }\n mockData = _this._traverseSelections(selection.selections, selection.type, isAbstractType, path, mockData, defaultValuesForSelection);\n if (mockData[TYPENAME_KEY] != null) {\n mockData[TYPENAME_KEY] = selection.type;\n }\n if (mockData.id != null && defaults != null && defaults.id != null) {\n mockData.id = defaults.id;\n }\n }\n break;\n }\n case MODULE_IMPORT:\n if (defaultValues != null) {\n var _objectSpread2;\n if (defaultValues.__typename !== typeName) {\n break;\n }\n var operation = defaultValues.__module_operation;\n !(typeof operation === 'object' && operation !== null && operation.kind === 'SplitOperation' && Array.isArray(operation.selections) && typeof operation.name === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayMockPayloadGenerator(): Unexpected default value for ' + 'a field `__module_operation` in the mock resolver for ' + '@module dependency. Provided value is \"%s\" and we\\'re ' + 'expecting an object of a type `NormalizationSplitOperation`. ' + 'Please adjust mock resolver for the type \"%s\". ' + 'Typically it should require a file \"%s$normalization.graphql\".', JSON.stringify(operation), typeName, selection.fragmentName) : invariant(false) : void 0;\n var splitOperation = operation;\n var documentName = selection.documentName;\n if (mockData == null) {\n mockData = {};\n }\n mockData = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, mockData), {}, (_objectSpread2 = {}, (0, _defineProperty2[\"default\"])(_objectSpread2, TYPENAME_KEY, typeName), (0, _defineProperty2[\"default\"])(_objectSpread2, getModuleOperationKey(documentName), operation.name), (0, _defineProperty2[\"default\"])(_objectSpread2, getModuleComponentKey(documentName), defaultValues.__module_component), _objectSpread2), _this._traverseSelections(splitOperation.selections, typeName, false, path, null, defaultValues));\n }\n break;\n case TYPE_DISCRIMINATOR:\n var abstractKey = selection.abstractKey;\n if (mockData != null) {\n mockData[abstractKey] = true;\n }\n break;\n case SCALAR_HANDLE:\n case LINKED_HANDLE:\n break;\n case ACTOR_CHANGE:\n throw new Error('ActorChange fields are not yet supported.');\n case RELAY_LIVE_RESOLVER:\n case RELAY_RESOLVER:\n if (selection.fragment) {\n mockData = _this._traverseSelections(selection.fragment.selections, typeName, isAbstractType, path, mockData, defaultValues);\n }\n break;\n case CLIENT_EDGE_TO_CLIENT_OBJECT:\n mockData = _this._traverseSelections([selection.backingField], typeName, isAbstractType, path, mockData, defaultValues);\n break;\n default:\n selection;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayMockPayloadGenerator(): Unexpected AST kind `%s`.', selection.kind) : invariant(false) : void 0;\n }\n });\n return mockData;\n };\n _proto._getCorrectDefaultEnum = function _getCorrectDefaultEnum(enumValues, value, path, applicationName) {\n if (value === undefined) {\n return value;\n }\n if (value === null) {\n return value;\n }\n var valueToValidate = Array.isArray(value) ? value.map(function (v) {\n return String(v).toUpperCase();\n }) : [String(value).toUpperCase()];\n var enumValuesNormalized = enumValues.map(function (s) {\n return s.toUpperCase();\n });\n var correctValues = valueToValidate.filter(function (v) {\n return enumValuesNormalized.includes(v);\n });\n if (correctValues.length !== valueToValidate.length) {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayMockPayloadGenerator: Invalid value \"%s\" provided for enum ' + 'field \"%s\" via MockResolver.' + 'Expected one of the following values: %s.', value, \"\".concat(path.join('.'), \".\").concat(applicationName), enumValues.map(function (v) {\n return \"\\\"\".concat(v, \"\\\"\");\n }).join(', ')) : invariant(false) : void 0;\n }\n var correctSpellingValues = valueToValidate.map(function (v) {\n var correctSpellingEnumIndex = enumValuesNormalized.indexOf(String(v).toUpperCase());\n return enumValues[correctSpellingEnumIndex];\n });\n return Array.isArray(value) ? correctSpellingValues : correctSpellingValues[0];\n };\n _proto._mockScalar = function _mockScalar(field, typeName, path, mockData, defaultValues) {\n var _field$alias;\n var data = mockData !== null && mockData !== void 0 ? mockData : {};\n var applicationName = (_field$alias = field.alias) !== null && _field$alias !== void 0 ? _field$alias : field.name;\n if (data.hasOwnProperty(applicationName) && field.name !== TYPENAME_KEY) {\n return data;\n }\n var value;\n if (field.name === TYPENAME_KEY) {\n value = typeName !== null && typeName !== void 0 ? typeName : DEFAULT_MOCK_TYPENAME;\n }\n var selectionPath = [].concat((0, _toConsumableArray2[\"default\"])(path), [applicationName]);\n var _this$_getScalarField = this._getScalarFieldTypeDetails(field, typeName, selectionPath),\n type = _this$_getScalarField.type,\n plural = _this$_getScalarField.plural,\n enumValues = _this$_getScalarField.enumValues;\n if (defaultValues != null && defaultValues.hasOwnProperty(applicationName)) {\n value = defaultValues[applicationName];\n if (enumValues != null) {\n value = this._getCorrectDefaultEnum(enumValues, value, path, applicationName);\n }\n if (value !== undefined && plural && !Array.isArray(value)) {\n value = [value];\n }\n }\n if (value === undefined) {\n var defaultValue = enumValues != null ? enumValues[0] : undefined;\n value = this._resolveValue(type, {\n parentType: typeName,\n name: field.name,\n alias: field.alias,\n path: selectionPath,\n args: this._getFieldArgs(field)\n }, plural, defaultValue);\n }\n data[applicationName] = value;\n return data;\n };\n _proto._mockLink = function _mockLink(field, path, prevData, defaultValues) {\n var _this2 = this;\n var _field$alias2, _this$_getTypeDetails, _field$concreteType;\n var applicationName = (_field$alias2 = field.alias) !== null && _field$alias2 !== void 0 ? _field$alias2 : field.name;\n var data = prevData !== null && prevData !== void 0 ? prevData : {};\n var args = this._getFieldArgs(field);\n var selectionPath = [].concat((0, _toConsumableArray2[\"default\"])(path), [applicationName]);\n var typeFromSelection = (_this$_getTypeDetails = this._getTypeDetailsForPath(selectionPath)) !== null && _this$_getTypeDetails !== void 0 ? _this$_getTypeDetails : {\n type: DEFAULT_MOCK_TYPENAME\n };\n var defaults;\n if (defaultValues != null && typeof defaultValues[applicationName] === 'object') {\n defaults = defaultValues[applicationName];\n }\n if (defaults === null) {\n data[applicationName] = null;\n return data;\n }\n var typeName = (_field$concreteType = field.concreteType) !== null && _field$concreteType !== void 0 ? _field$concreteType : defaults != null && typeof defaults[TYPENAME_KEY] === 'string' ? defaults[TYPENAME_KEY] : typeFromSelection.type;\n var isAbstractType = field.concreteType == null && typeName === typeFromSelection.type;\n var generateDataForField = function generateDataForField(possibleDefaultValue, index) {\n var _index$toString, _this$_getDefaultValu, _field$concreteType2;\n var fieldPath = field.plural ? [].concat((0, _toConsumableArray2[\"default\"])(selectionPath), [(_index$toString = index === null || index === void 0 ? void 0 : index.toString(10)) !== null && _index$toString !== void 0 ? _index$toString : '0']) : selectionPath;\n var fieldDefaultValue = (_this$_getDefaultValu = _this2._getDefaultValuesForObject((_field$concreteType2 = field.concreteType) !== null && _field$concreteType2 !== void 0 ? _field$concreteType2 : typeFromSelection.type, field.name, field.alias, fieldPath, args)) !== null && _this$_getDefaultValu !== void 0 ? _this$_getDefaultValu : possibleDefaultValue;\n if (fieldDefaultValue === null) {\n return null;\n }\n return _this2._traverse({\n selections: field.selections,\n typeName: typeName,\n isAbstractType: isAbstractType,\n name: field.name,\n alias: field.alias,\n args: args\n }, fieldPath, typeof data[applicationName] === 'object' ? data[applicationName] : null, fieldDefaultValue);\n };\n data[applicationName] = field.kind === 'LinkedField' && field.plural ? generateMockList(Array.isArray(defaults) ? defaults : Array(1).fill(), generateDataForField) : generateDataForField(defaults);\n return data;\n };\n _proto._getVariableValue = function _getVariableValue(name) {\n !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayMockPayloadGenerator(): Undefined variable `%s`.', name) : invariant(false) : void 0;\n return this._variables[name];\n };\n _proto._getDefaultValuesForObject = function _getDefaultValuesForObject(typeName, fieldName, fieldAlias, path, args) {\n var data;\n if (typeName != null && this._mockResolvers[typeName] != null) {\n data = this._resolveValue(typeName, {\n parentType: null,\n name: fieldName,\n alias: fieldAlias,\n args: args,\n path: path\n }, false);\n }\n if (typeof data === 'object') {\n return data;\n }\n };\n _proto._getFieldArgs = function _getFieldArgs(field) {\n var _this3 = this;\n var args = {};\n if (field.args != null) {\n field.args.forEach(function (arg) {\n args[arg.name] = _this3._getArgValue(arg);\n });\n }\n return args;\n };\n _proto._getArgValue = function _getArgValue(arg) {\n var _this4 = this;\n switch (arg.kind) {\n case 'Literal':\n return arg.value;\n case 'Variable':\n return this._getVariableValue(arg.variableName);\n case 'ObjectValue':\n {\n var value = {};\n arg.fields.forEach(function (field) {\n value[field.name] = _this4._getArgValue(field);\n });\n return value;\n }\n case 'ListValue':\n {\n var _value = [];\n arg.items.forEach(function (item) {\n _value.push(item != null ? _this4._getArgValue(item) : null);\n });\n return _value;\n }\n }\n };\n _proto._getScalarFieldTypeDetails = function _getScalarFieldTypeDetails(field, typeName, selectionPath) {\n var _this$_getTypeDetails2;\n return (_this$_getTypeDetails2 = this._getTypeDetailsForPath(selectionPath)) !== null && _this$_getTypeDetails2 !== void 0 ? _this$_getTypeDetails2 : {\n type: field.name === 'id' ? 'ID' : 'String',\n plural: false,\n enumValues: null,\n nullable: false\n };\n };\n _proto._getTypeDetailsForPath = function _getTypeDetailsForPath(path) {\n return this._selectionMetadata[path.filter(function (field) {\n return isNaN(parseInt(field, 10));\n }).join('.')];\n };\n return RelayMockPayloadGenerator;\n}();\nfunction generateData(node, variables, mockResolvers, selectionMetadata, options) {\n var mockGenerator = new RelayMockPayloadGenerator({\n variables: variables,\n mockResolvers: mockResolvers,\n selectionMetadata: selectionMetadata,\n mockClientData: options === null || options === void 0 ? void 0 : options.mockClientData,\n generateDeferredPayload: options === null || options === void 0 ? void 0 : options.generateDeferredPayload\n });\n var operationType;\n if (node.name.endsWith('Mutation')) {\n operationType = 'Mutation';\n } else if (node.name.endsWith('Subscription')) {\n operationType = 'Subscription';\n } else {\n operationType = 'Query';\n }\n return mockGenerator.generate(node.selections, operationType);\n}\nfunction getSelectionMetadataFromOperation(operation) {\n var _operation$request$no;\n var selectionTypeInfo = (_operation$request$no = operation.request.node.params.metadata) === null || _operation$request$no === void 0 ? void 0 : _operation$request$no.relayTestingSelectionTypeInfo;\n if (selectionTypeInfo != null && !Array.isArray(selectionTypeInfo) && typeof selectionTypeInfo === 'object') {\n var selectionMetadata = {};\n Object.keys(selectionTypeInfo).forEach(function (path) {\n var item = selectionTypeInfo[path];\n if (item != null && !Array.isArray(item) && typeof item === 'object') {\n if (typeof item.type === 'string' && typeof item.plural === 'boolean' && typeof item.nullable === 'boolean' && (item.enumValues === null || Array.isArray(item.enumValues))) {\n selectionMetadata[path] = {\n type: item.type,\n plural: item.plural,\n nullable: item.nullable,\n enumValues: Array.isArray(item.enumValues) ? item.enumValues.map(String) : null\n };\n }\n }\n });\n return selectionMetadata;\n }\n return null;\n}\nfunction generateDataForOperation(operation, mockResolvers, options) {\n var concreteOperation = operation.request.node.operation;\n var _generateData = generateData(concreteOperation, operation.request.variables, mockResolvers !== null && mockResolvers !== void 0 ? mockResolvers : null, getSelectionMetadataFromOperation(operation), (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, options), {}, {\n generateDeferredPayload: false\n })),\n initialPayload = _generateData[0];\n return initialPayload;\n}\nfunction generateWithDefer(operation, mockResolvers, options) {\n var _ref2 = options !== null && options !== void 0 ? options : {},\n _ref2$generateDeferre = _ref2.generateDeferredPayload,\n generateDeferredPayload = _ref2$generateDeferre === void 0 ? false : _ref2$generateDeferre,\n otherOptions = (0, _objectWithoutPropertiesLoose2[\"default\"])(_ref2, _excluded);\n var concreteOperation = operation.request.node.operation;\n var payloads = generateData(concreteOperation, operation.request.variables, mockResolvers !== null && mockResolvers !== void 0 ? mockResolvers : null, getSelectionMetadataFromOperation(operation), (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, otherOptions), {}, {\n generateDeferredPayload: generateDeferredPayload\n }));\n if (!generateDeferredPayload) {\n return payloads[0];\n }\n return payloads;\n}\nmodule.exports = {\n generate: generateDataForOperation,\n generateWithDefer: generateWithDefer\n};"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RelayMockPayloadGenerator.js","names":[],"sources":["../../../../../../../node_modules/relay-test-utils/lib/RelayMockPayloadGenerator.js"],"sourcesContent":["'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _objectSpread3 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _excluded = [\"generateDeferredPayload\"];\nvar invariant = require('invariant');\nvar _require = require('relay-runtime'),\n __internal = _require.__internal,\n RelayConcreteNode = _require.RelayConcreteNode,\n TYPENAME_KEY = _require.TYPENAME_KEY,\n getModuleComponentKey = _require.getModuleComponentKey,\n getModuleOperationKey = _require.getModuleOperationKey;\nvar ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,\n CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,\n CLIENT_EDGE_TO_CLIENT_OBJECT = RelayConcreteNode.CLIENT_EDGE_TO_CLIENT_OBJECT,\n CLIENT_EXTENSION = RelayConcreteNode.CLIENT_EXTENSION,\n CONDITION = RelayConcreteNode.CONDITION,\n CONNECTION = RelayConcreteNode.CONNECTION,\n DEFER = RelayConcreteNode.DEFER,\n FRAGMENT_SPREAD = RelayConcreteNode.FRAGMENT_SPREAD,\n INLINE_FRAGMENT = RelayConcreteNode.INLINE_FRAGMENT,\n LINKED_FIELD = RelayConcreteNode.LINKED_FIELD,\n LINKED_HANDLE = RelayConcreteNode.LINKED_HANDLE,\n MODULE_IMPORT = RelayConcreteNode.MODULE_IMPORT,\n RELAY_RESOLVER = RelayConcreteNode.RELAY_RESOLVER,\n RELAY_LIVE_RESOLVER = RelayConcreteNode.RELAY_LIVE_RESOLVER,\n SCALAR_FIELD = RelayConcreteNode.SCALAR_FIELD,\n SCALAR_HANDLE = RelayConcreteNode.SCALAR_HANDLE,\n STREAM = RelayConcreteNode.STREAM,\n TYPE_DISCRIMINATOR = RelayConcreteNode.TYPE_DISCRIMINATOR;\nfunction createIdGenerator() {\n var id = 0;\n return function () {\n return ++id;\n };\n}\nvar DEFAULT_MOCK_RESOLVERS = {\n ID: function ID(context, generateId) {\n return \"<\".concat(context.parentType != null && context.parentType !== DEFAULT_MOCK_TYPENAME ? context.parentType + '-' : '', \"mock-id-\").concat(generateId(), \">\");\n },\n Boolean: function Boolean() {\n return false;\n },\n Int: function Int() {\n return 42;\n },\n Float: function Float() {\n return 4.2;\n }\n};\nvar DEFAULT_MOCK_TYPENAME = '__MockObject';\nfunction valueResolver(generateId, mockResolvers, typeName, context) {\n var plural = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var defaultValue = arguments.length > 5 ? arguments[5] : undefined;\n var generateValue = function generateValue(possibleDefaultValue) {\n var mockValue;\n var mockResolver = typeName != null && mockResolvers != null ? mockResolvers[typeName] : null;\n if (mockResolver != null) {\n mockValue = mockResolver(context, generateId);\n }\n if (mockValue === undefined) {\n var _ref, _context$alias;\n mockValue = possibleDefaultValue !== null && possibleDefaultValue !== void 0 ? possibleDefaultValue : typeName === 'ID' ? DEFAULT_MOCK_RESOLVERS.ID(context, generateId) : \"<mock-value-for-field-\\\"\".concat((_ref = (_context$alias = context.alias) !== null && _context$alias !== void 0 ? _context$alias : context.name) !== null && _ref !== void 0 ? _ref : 'undefined', \"\\\">\");\n }\n return mockValue;\n };\n return plural === true ? generateMockList(Array.isArray(defaultValue) ? defaultValue : Array(1).fill(), generateValue) : generateValue(defaultValue);\n}\nfunction createValueResolver(mockResolvers) {\n var generateId = createIdGenerator();\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return valueResolver.apply(void 0, [generateId, mockResolvers].concat(args));\n };\n}\nfunction generateMockList(placeholderArray, generateListItem) {\n return placeholderArray.map(function (possibleDefaultValue, index) {\n return generateListItem(possibleDefaultValue, index);\n });\n}\nvar RelayMockPayloadGenerator = /*#__PURE__*/function () {\n function RelayMockPayloadGenerator(options) {\n var _options$mockResolver, _options$selectionMet, _options$mockClientDa, _options$generateDefe;\n this._variables = options.variables;\n this._mockResolvers = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, DEFAULT_MOCK_RESOLVERS), (_options$mockResolver = options.mockResolvers) !== null && _options$mockResolver !== void 0 ? _options$mockResolver : {});\n this._selectionMetadata = (_options$selectionMet = options.selectionMetadata) !== null && _options$selectionMet !== void 0 ? _options$selectionMet : {};\n this._resolveValue = createValueResolver(this._mockResolvers);\n this._mockClientData = (_options$mockClientDa = options.mockClientData) !== null && _options$mockClientDa !== void 0 ? _options$mockClientDa : false;\n this._generateDeferredPayload = (_options$generateDefe = options.generateDeferredPayload) !== null && _options$generateDefe !== void 0 ? _options$generateDefe : false;\n this._deferredPayloads = [];\n }\n var _proto = RelayMockPayloadGenerator.prototype;\n _proto.generate = function generate(selections, operationType) {\n var defaultValues = this._getDefaultValuesForObject(operationType, null, null, [], {});\n var data = this._traverse({\n selections: selections,\n typeName: operationType,\n isAbstractType: false,\n name: null,\n alias: null,\n args: null\n }, [], null, defaultValues);\n return [{\n data: data\n }].concat((0, _toConsumableArray2[\"default\"])(this._deferredPayloads));\n };\n _proto._traverse = function _traverse(traversable, path, prevData, defaultValues) {\n var selections = traversable.selections,\n typeName = traversable.typeName,\n isAbstractType = traversable.isAbstractType;\n return this._traverseSelections(selections, typeName, isAbstractType, path, prevData, defaultValues);\n };\n _proto._traverseSelections = function _traverseSelections(selections, typeName, isAbstractType, path, prevData, defaultValues) {\n var _this = this;\n var mockData = prevData !== null && prevData !== void 0 ? prevData : {};\n selections.forEach(function (selection) {\n switch (selection.kind) {\n case SCALAR_FIELD:\n {\n mockData = _this._mockScalar(selection, typeName, path, mockData, defaultValues);\n break;\n }\n case CONNECTION:\n {\n mockData = _this._traverseSelections([selection.edges, selection.pageInfo], typeName, isAbstractType, path, prevData, defaultValues);\n break;\n }\n case LINKED_FIELD:\n {\n mockData = _this._mockLink(selection, path, mockData, defaultValues);\n break;\n }\n case CONDITION:\n var conditionValue = _this._getVariableValue(selection.condition);\n if (conditionValue === selection.passingValue) {\n mockData = _this._traverseSelections(selection.selections, typeName, isAbstractType, path, mockData, defaultValues);\n }\n break;\n case CLIENT_EXTENSION:\n if (!_this._mockClientData) {\n break;\n }\n mockData = _this._traverseSelections(selection.selections, typeName, isAbstractType, path, mockData, defaultValues);\n break;\n case DEFER:\n case STREAM:\n {\n var isDeferreable = selection[\"if\"] == null || _this._variables[selection[\"if\"]];\n if (_this._generateDeferredPayload && isDeferreable) {\n var deferredData = _this._traverseSelections(selection.selections, typeName, isAbstractType, path, {}, defaultValues);\n _this._deferredPayloads.push({\n path: (0, _toConsumableArray2[\"default\"])(path),\n label: selection.label,\n data: deferredData\n });\n break;\n }\n mockData = _this._traverseSelections(selection.selections, typeName, isAbstractType, path, mockData, defaultValues);\n break;\n }\n case CLIENT_COMPONENT:\n {\n mockData = _this._traverseSelections(selection.fragment.selections, typeName, isAbstractType, path, mockData, defaultValues);\n break;\n }\n case FRAGMENT_SPREAD:\n {\n var prevVariables = _this._variables;\n _this._variables = __internal.getLocalVariables(_this._variables, selection.fragment.argumentDefinitions, selection.args);\n mockData = _this._traverseSelections(selection.fragment.selections, typeName, isAbstractType, path, mockData, defaultValues);\n _this._variables = prevVariables;\n break;\n }\n case INLINE_FRAGMENT:\n {\n var _abstractKey = selection.abstractKey;\n if (_abstractKey != null) {\n var shouldMockFragment = (defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues[_abstractKey]) === undefined || !!(defaultValues !== null && defaultValues !== void 0 && defaultValues[_abstractKey]);\n if (!shouldMockFragment) {\n break;\n }\n if (mockData != null) {\n mockData[_abstractKey] = true;\n }\n mockData = _this._traverseSelections(selection.selections, typeName, isAbstractType, path, mockData, defaultValues);\n break;\n }\n if (mockData != null && (mockData[TYPENAME_KEY] == null || mockData[TYPENAME_KEY] === DEFAULT_MOCK_TYPENAME)) {\n var _defaultValues$TYPENA;\n mockData[TYPENAME_KEY] = (_defaultValues$TYPENA = defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues[TYPENAME_KEY]) !== null && _defaultValues$TYPENA !== void 0 ? _defaultValues$TYPENA : selection.type;\n }\n if (isAbstractType === true && mockData != null && mockData[TYPENAME_KEY] === typeName) {\n mockData[TYPENAME_KEY] = selection.type;\n }\n if (mockData != null && mockData[TYPENAME_KEY] === selection.type) {\n var defaults = _this._getDefaultValuesForObject(selection.type, path[path.length - 1], null, path);\n var defaultsForAbstractType = typeName !== selection.type ? _this._getDefaultValuesForObject(typeName, path[path.length - 1], null, path) : defaults;\n var defaultValuesForSelection = defaults;\n if (defaultValuesForSelection === undefined) {\n defaultValuesForSelection = defaultsForAbstractType;\n }\n if (defaultValuesForSelection === undefined) {\n defaultValuesForSelection = defaultValues;\n }\n if (defaultValuesForSelection === null) {\n mockData = null;\n break;\n }\n mockData = _this._traverseSelections(selection.selections, selection.type, isAbstractType, path, mockData, defaultValuesForSelection);\n if (mockData[TYPENAME_KEY] != null) {\n mockData[TYPENAME_KEY] = selection.type;\n }\n if (mockData.id != null && defaults != null && defaults.id != null) {\n mockData.id = defaults.id;\n }\n }\n break;\n }\n case MODULE_IMPORT:\n if (defaultValues != null) {\n var _objectSpread2;\n if (defaultValues.__typename !== typeName) {\n break;\n }\n var operation = defaultValues.__module_operation;\n !(typeof operation === 'object' && operation !== null && operation.kind === 'SplitOperation' && Array.isArray(operation.selections) && typeof operation.name === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayMockPayloadGenerator(): Unexpected default value for ' + 'a field `__module_operation` in the mock resolver for ' + '@module dependency. Provided value is \"%s\" and we\\'re ' + 'expecting an object of a type `NormalizationSplitOperation`. ' + 'Please adjust mock resolver for the type \"%s\". ' + 'Typically it should require a file \"%s$normalization.graphql\".', JSON.stringify(operation), typeName, selection.fragmentName) : invariant(false) : void 0;\n var splitOperation = operation;\n var documentName = selection.documentName;\n if (mockData == null) {\n mockData = {};\n }\n mockData = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, mockData), {}, (_objectSpread2 = {}, (0, _defineProperty2[\"default\"])(_objectSpread2, TYPENAME_KEY, typeName), (0, _defineProperty2[\"default\"])(_objectSpread2, getModuleOperationKey(documentName), operation.name), (0, _defineProperty2[\"default\"])(_objectSpread2, getModuleComponentKey(documentName), defaultValues.__module_component), _objectSpread2), _this._traverseSelections(splitOperation.selections, typeName, false, path, null, defaultValues));\n }\n break;\n case TYPE_DISCRIMINATOR:\n var abstractKey = selection.abstractKey;\n if (mockData != null) {\n mockData[abstractKey] = true;\n }\n break;\n case SCALAR_HANDLE:\n case LINKED_HANDLE:\n break;\n case ACTOR_CHANGE:\n throw new Error('ActorChange fields are not yet supported.');\n case RELAY_LIVE_RESOLVER:\n case RELAY_RESOLVER:\n if (selection.fragment) {\n mockData = _this._traverseSelections(selection.fragment.selections, typeName, isAbstractType, path, mockData, defaultValues);\n }\n break;\n case CLIENT_EDGE_TO_CLIENT_OBJECT:\n mockData = _this._traverseSelections([selection.backingField], typeName, isAbstractType, path, mockData, defaultValues);\n break;\n default:\n selection;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayMockPayloadGenerator(): Unexpected AST kind `%s`.', selection.kind) : invariant(false) : void 0;\n }\n });\n return mockData;\n };\n _proto._getCorrectDefaultEnum = function _getCorrectDefaultEnum(enumValues, value, path, applicationName) {\n if (value === undefined) {\n return value;\n }\n if (value === null) {\n return value;\n }\n var valueToValidate = Array.isArray(value) ? value.map(function (v) {\n return String(v).toUpperCase();\n }) : [String(value).toUpperCase()];\n var enumValuesNormalized = enumValues.map(function (s) {\n return s.toUpperCase();\n });\n var correctValues = valueToValidate.filter(function (v) {\n return enumValuesNormalized.includes(v);\n });\n if (correctValues.length !== valueToValidate.length) {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayMockPayloadGenerator: Invalid value \"%s\" provided for enum ' + 'field \"%s\" via MockResolver.' + 'Expected one of the following values: %s.', value, \"\".concat(path.join('.'), \".\").concat(applicationName), enumValues.map(function (v) {\n return \"\\\"\".concat(v, \"\\\"\");\n }).join(', ')) : invariant(false) : void 0;\n }\n var correctSpellingValues = valueToValidate.map(function (v) {\n var correctSpellingEnumIndex = enumValuesNormalized.indexOf(String(v).toUpperCase());\n return enumValues[correctSpellingEnumIndex];\n });\n return Array.isArray(value) ? correctSpellingValues : correctSpellingValues[0];\n };\n _proto._mockScalar = function _mockScalar(field, typeName, path, mockData, defaultValues) {\n var _field$alias;\n var data = mockData !== null && mockData !== void 0 ? mockData : {};\n var applicationName = (_field$alias = field.alias) !== null && _field$alias !== void 0 ? _field$alias : field.name;\n if (data.hasOwnProperty(applicationName) && field.name !== TYPENAME_KEY) {\n return data;\n }\n var value;\n if (field.name === TYPENAME_KEY) {\n value = typeName !== null && typeName !== void 0 ? typeName : DEFAULT_MOCK_TYPENAME;\n }\n var selectionPath = [].concat((0, _toConsumableArray2[\"default\"])(path), [applicationName]);\n var _this$_getScalarField = this._getScalarFieldTypeDetails(field, typeName, selectionPath),\n type = _this$_getScalarField.type,\n plural = _this$_getScalarField.plural,\n enumValues = _this$_getScalarField.enumValues;\n if (defaultValues != null && defaultValues.hasOwnProperty(applicationName)) {\n value = defaultValues[applicationName];\n if (enumValues != null) {\n value = this._getCorrectDefaultEnum(enumValues, value, path, applicationName);\n }\n if (value !== undefined && plural && !Array.isArray(value)) {\n value = [value];\n }\n }\n if (value === undefined) {\n var defaultValue = enumValues != null ? enumValues[0] : undefined;\n value = this._resolveValue(type, {\n parentType: typeName,\n name: field.name,\n alias: field.alias,\n path: selectionPath,\n args: this._getFieldArgs(field)\n }, plural, defaultValue);\n }\n data[applicationName] = value;\n return data;\n };\n _proto._mockLink = function _mockLink(field, path, prevData, defaultValues) {\n var _this2 = this;\n var _field$alias2, _this$_getTypeDetails, _field$concreteType;\n var applicationName = (_field$alias2 = field.alias) !== null && _field$alias2 !== void 0 ? _field$alias2 : field.name;\n var data = prevData !== null && prevData !== void 0 ? prevData : {};\n var args = this._getFieldArgs(field);\n var selectionPath = [].concat((0, _toConsumableArray2[\"default\"])(path), [applicationName]);\n var typeFromSelection = (_this$_getTypeDetails = this._getTypeDetailsForPath(selectionPath)) !== null && _this$_getTypeDetails !== void 0 ? _this$_getTypeDetails : {\n type: DEFAULT_MOCK_TYPENAME\n };\n var defaults;\n if (defaultValues != null && typeof defaultValues[applicationName] === 'object') {\n defaults = defaultValues[applicationName];\n }\n if (defaults === null) {\n data[applicationName] = null;\n return data;\n }\n var typeName = (_field$concreteType = field.concreteType) !== null && _field$concreteType !== void 0 ? _field$concreteType : defaults != null && typeof defaults[TYPENAME_KEY] === 'string' ? defaults[TYPENAME_KEY] : typeFromSelection.type;\n var isAbstractType = field.concreteType == null && typeName === typeFromSelection.type;\n var generateDataForField = function generateDataForField(possibleDefaultValue, index) {\n var _index$toString, _this$_getDefaultValu, _field$concreteType2;\n var fieldPath = field.plural ? [].concat((0, _toConsumableArray2[\"default\"])(selectionPath), [(_index$toString = index === null || index === void 0 ? void 0 : index.toString(10)) !== null && _index$toString !== void 0 ? _index$toString : '0']) : selectionPath;\n var fieldDefaultValue = (_this$_getDefaultValu = _this2._getDefaultValuesForObject((_field$concreteType2 = field.concreteType) !== null && _field$concreteType2 !== void 0 ? _field$concreteType2 : typeFromSelection.type, field.name, field.alias, fieldPath, args)) !== null && _this$_getDefaultValu !== void 0 ? _this$_getDefaultValu : possibleDefaultValue;\n if (fieldDefaultValue === null) {\n return null;\n }\n return _this2._traverse({\n selections: field.selections,\n typeName: typeName,\n isAbstractType: isAbstractType,\n name: field.name,\n alias: field.alias,\n args: args\n }, fieldPath, typeof data[applicationName] === 'object' ? data[applicationName] : null, fieldDefaultValue);\n };\n data[applicationName] = field.kind === 'LinkedField' && field.plural ? generateMockList(Array.isArray(defaults) ? defaults : Array(1).fill(), generateDataForField) : generateDataForField(defaults);\n return data;\n };\n _proto._getVariableValue = function _getVariableValue(name) {\n !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayMockPayloadGenerator(): Undefined variable `%s`.', name) : invariant(false) : void 0;\n return this._variables[name];\n };\n _proto._getDefaultValuesForObject = function _getDefaultValuesForObject(typeName, fieldName, fieldAlias, path, args) {\n var data;\n if (typeName != null && this._mockResolvers[typeName] != null) {\n data = this._resolveValue(typeName, {\n parentType: null,\n name: fieldName,\n alias: fieldAlias,\n args: args,\n path: path\n }, false);\n }\n if (typeof data === 'object') {\n return data;\n }\n };\n _proto._getFieldArgs = function _getFieldArgs(field) {\n var _this3 = this;\n var args = {};\n if (field.args != null) {\n field.args.forEach(function (arg) {\n args[arg.name] = _this3._getArgValue(arg);\n });\n }\n return args;\n };\n _proto._getArgValue = function _getArgValue(arg) {\n var _this4 = this;\n switch (arg.kind) {\n case 'Literal':\n return arg.value;\n case 'Variable':\n return this._getVariableValue(arg.variableName);\n case 'ObjectValue':\n {\n var value = {};\n arg.fields.forEach(function (field) {\n value[field.name] = _this4._getArgValue(field);\n });\n return value;\n }\n case 'ListValue':\n {\n var _value = [];\n arg.items.forEach(function (item) {\n _value.push(item != null ? _this4._getArgValue(item) : null);\n });\n return _value;\n }\n }\n };\n _proto._getScalarFieldTypeDetails = function _getScalarFieldTypeDetails(field, typeName, selectionPath) {\n var _this$_getTypeDetails2;\n return (_this$_getTypeDetails2 = this._getTypeDetailsForPath(selectionPath)) !== null && _this$_getTypeDetails2 !== void 0 ? _this$_getTypeDetails2 : {\n type: field.name === 'id' ? 'ID' : 'String',\n plural: false,\n enumValues: null,\n nullable: false\n };\n };\n _proto._getTypeDetailsForPath = function _getTypeDetailsForPath(path) {\n return this._selectionMetadata[path.filter(function (field) {\n return isNaN(parseInt(field, 10));\n }).join('.')];\n };\n return RelayMockPayloadGenerator;\n}();\nfunction generateData(node, variables, mockResolvers, selectionMetadata, options) {\n var mockGenerator = new RelayMockPayloadGenerator({\n variables: variables,\n mockResolvers: mockResolvers,\n selectionMetadata: selectionMetadata,\n mockClientData: options === null || options === void 0 ? void 0 : options.mockClientData,\n generateDeferredPayload: options === null || options === void 0 ? void 0 : options.generateDeferredPayload\n });\n var operationType;\n if (node.name.endsWith('Mutation')) {\n operationType = 'Mutation';\n } else if (node.name.endsWith('Subscription')) {\n operationType = 'Subscription';\n } else {\n operationType = 'Query';\n }\n return mockGenerator.generate(node.selections, operationType);\n}\nfunction getSelectionMetadataFromOperation(operation) {\n var _operation$request$no;\n var selectionTypeInfo = (_operation$request$no = operation.request.node.params.metadata) === null || _operation$request$no === void 0 ? void 0 : _operation$request$no.relayTestingSelectionTypeInfo;\n if (selectionTypeInfo != null && !Array.isArray(selectionTypeInfo) && typeof selectionTypeInfo === 'object') {\n var selectionMetadata = {};\n Object.keys(selectionTypeInfo).forEach(function (path) {\n var item = selectionTypeInfo[path];\n if (item != null && !Array.isArray(item) && typeof item === 'object') {\n if (typeof item.type === 'string' && typeof item.plural === 'boolean' && typeof item.nullable === 'boolean' && (item.enumValues === null || Array.isArray(item.enumValues))) {\n selectionMetadata[path] = {\n type: item.type,\n plural: item.plural,\n nullable: item.nullable,\n enumValues: Array.isArray(item.enumValues) ? item.enumValues.map(String) : null\n };\n }\n }\n });\n return selectionMetadata;\n }\n return null;\n}\nfunction generateDataForOperation(operation, mockResolvers, options) {\n var concreteOperation = operation.request.node.operation;\n var _generateData = generateData(concreteOperation, operation.request.variables, mockResolvers !== null && mockResolvers !== void 0 ? mockResolvers : null, getSelectionMetadataFromOperation(operation), (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, options), {}, {\n generateDeferredPayload: false\n })),\n initialPayload = _generateData[0];\n return initialPayload;\n}\nfunction generateWithDefer(operation, mockResolvers, options) {\n var _ref2 = options !== null && options !== void 0 ? options : {},\n _ref2$generateDeferre = _ref2.generateDeferredPayload,\n generateDeferredPayload = _ref2$generateDeferre === void 0 ? false : _ref2$generateDeferre,\n otherOptions = (0, _objectWithoutPropertiesLoose2[\"default\"])(_ref2, _excluded);\n var concreteOperation = operation.request.node.operation;\n var payloads = generateData(concreteOperation, operation.request.variables, mockResolvers !== null && mockResolvers !== void 0 ? mockResolvers : null, getSelectionMetadataFromOperation(operation), (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, otherOptions), {}, {\n generateDeferredPayload: generateDeferredPayload\n }));\n if (!generateDeferredPayload) {\n return payloads[0];\n }\n return payloads;\n}\nmodule.exports = {\n generate: generateDataForOperation,\n generateWithDefer: generateWithDefer\n};"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,58 +1,60 @@
|
|
|
1
1
|
import { isDevEnv as e } from "./envHelpers.js";
|
|
2
2
|
import { Environment as t, Network as n, Observable as r, RecordSource as i, Store as a } from "relay-runtime";
|
|
3
|
-
import { createClient as o } from "graphql-ws";
|
|
4
3
|
//#region src/relay/environment.ts
|
|
5
|
-
var
|
|
4
|
+
var o = "/api/graphql", s = "/api/ws", c, l, u, d, f = "graphql-transport-ws", p = 5e3, m = 1e4, h = 10, g = 500, _ = {
|
|
6
5
|
generation: 0,
|
|
7
6
|
reason: null,
|
|
8
7
|
status: "idle"
|
|
9
|
-
},
|
|
10
|
-
function
|
|
11
|
-
var
|
|
12
|
-
e() && (
|
|
8
|
+
}, v = /* @__PURE__ */ new Set();
|
|
9
|
+
function y() {}
|
|
10
|
+
var b = y;
|
|
11
|
+
e() && (b = (e) => {
|
|
13
12
|
console.log("relayFieldLogger: ", e);
|
|
14
13
|
});
|
|
15
|
-
var
|
|
14
|
+
var x = (e) => {
|
|
16
15
|
if (typeof e != "object" || !e) return null;
|
|
17
16
|
let { id: t } = e;
|
|
18
17
|
return typeof t != "string" || t.trim() === "" ? null : t;
|
|
19
|
-
},
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
generation:
|
|
18
|
+
}, S = (e, t) => d?.(e, t) ?? x(e, t);
|
|
19
|
+
function C(e, t) {
|
|
20
|
+
_ = {
|
|
21
|
+
generation: _.generation + 1,
|
|
23
22
|
reason: t,
|
|
24
23
|
status: e
|
|
25
24
|
};
|
|
26
|
-
for (let e of
|
|
25
|
+
for (let e of v) e();
|
|
27
26
|
}
|
|
28
|
-
function
|
|
29
|
-
if (
|
|
27
|
+
function w() {
|
|
28
|
+
if (l != null) {
|
|
30
29
|
try {
|
|
31
|
-
|
|
32
|
-
e instanceof Promise && e.catch(() => {});
|
|
30
|
+
l.dispose();
|
|
33
31
|
} catch {}
|
|
34
|
-
|
|
32
|
+
l = void 0;
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
|
-
function
|
|
38
|
-
return
|
|
35
|
+
function T() {
|
|
36
|
+
return _;
|
|
39
37
|
}
|
|
40
|
-
function
|
|
41
|
-
return
|
|
42
|
-
|
|
38
|
+
function E(e) {
|
|
39
|
+
return v.add(e), () => {
|
|
40
|
+
v.delete(e);
|
|
43
41
|
};
|
|
44
42
|
}
|
|
45
|
-
function
|
|
46
|
-
|
|
43
|
+
function D(e = {}) {
|
|
44
|
+
w(), C("reconnecting", e.reason ?? "manual_reconnect");
|
|
45
|
+
}
|
|
46
|
+
async function O(e = {}) {
|
|
47
|
+
let t = l;
|
|
48
|
+
t?.hasActiveConnection() && (await t.refreshAuthentication() || D({ reason: e.reason ?? "auth_refresh_fallback" }));
|
|
47
49
|
}
|
|
48
|
-
function
|
|
50
|
+
function k(e = {}) {
|
|
49
51
|
let { httpUrl: t, wsUrl: n, logEvents: r, getDataId: i, getAuthHeaders: a } = e;
|
|
50
|
-
typeof t == "string" && t !== "" && (
|
|
52
|
+
typeof t == "string" && t !== "" && (o = t), typeof n == "string" && n !== "" && (s = n), r != null && (b = r ? (e) => {
|
|
51
53
|
console.log("relayFieldLogger: ", e);
|
|
52
|
-
} :
|
|
54
|
+
} : y), d = i, u = a, w(), c = void 0, C("configured", "configure");
|
|
53
55
|
}
|
|
54
|
-
function
|
|
55
|
-
let e =
|
|
56
|
+
function A() {
|
|
57
|
+
let e = s;
|
|
56
58
|
if (e.startsWith("ws")) return e;
|
|
57
59
|
if (e.startsWith("http")) return e.replace(/^http/, "ws");
|
|
58
60
|
if (e.startsWith("/")) {
|
|
@@ -62,53 +64,236 @@ function T() {
|
|
|
62
64
|
}
|
|
63
65
|
return e;
|
|
64
66
|
}
|
|
65
|
-
function
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
67
|
+
function j(...t) {
|
|
68
|
+
e() && console.log("[RelayNetwork]", ...t);
|
|
69
|
+
}
|
|
70
|
+
async function M() {
|
|
71
|
+
return u == null ? {} : u();
|
|
72
|
+
}
|
|
73
|
+
var N = class {
|
|
74
|
+
url;
|
|
75
|
+
socket = null;
|
|
76
|
+
connectPromise = null;
|
|
77
|
+
disposed = !1;
|
|
78
|
+
acknowledged = !1;
|
|
79
|
+
retryCount = 0;
|
|
80
|
+
nextId = 1;
|
|
81
|
+
keepAliveTimer = null;
|
|
82
|
+
subscriptions = /* @__PURE__ */ new Map();
|
|
83
|
+
pendingAuthUpdate = null;
|
|
84
|
+
constructor(e) {
|
|
85
|
+
this.url = e;
|
|
86
|
+
}
|
|
87
|
+
hasActiveConnection() {
|
|
88
|
+
return this.socket?.readyState === WebSocket.OPEN && this.acknowledged;
|
|
89
|
+
}
|
|
90
|
+
dispose() {
|
|
91
|
+
this.disposed = !0, this.resolvePendingAuthUpdate(!1), this.stopKeepAlive();
|
|
92
|
+
let { socket: e } = this;
|
|
93
|
+
this.socket = null, this.connectPromise = null, this.acknowledged = !1, e != null && e.readyState !== WebSocket.CLOSED && e.close(1e3, "Normal Closure");
|
|
94
|
+
}
|
|
95
|
+
subscribe(e, t) {
|
|
96
|
+
let n = String(this.nextId);
|
|
97
|
+
return this.nextId += 1, this.subscriptions.set(n, {
|
|
98
|
+
payload: e,
|
|
99
|
+
sink: t
|
|
100
|
+
}), this.connectAndSubscribe(n).catch((e) => {
|
|
101
|
+
j("subscription websocket connect failed", e), this.scheduleReconnect();
|
|
102
|
+
}), () => {
|
|
103
|
+
this.unsubscribe(n);
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
async refreshAuthentication() {
|
|
107
|
+
if (!this.hasActiveConnection()) return !0;
|
|
108
|
+
let { socket: e } = this;
|
|
109
|
+
if (e == null) return !0;
|
|
110
|
+
if (this.pendingAuthUpdate != null) return !1;
|
|
111
|
+
let t;
|
|
112
|
+
try {
|
|
113
|
+
t = await M();
|
|
114
|
+
} catch {
|
|
115
|
+
return !1;
|
|
116
|
+
}
|
|
117
|
+
return Object.keys(t).length === 0 ? !1 : new Promise((e) => {
|
|
118
|
+
let n = setTimeout(() => {
|
|
119
|
+
this.pendingAuthUpdate = null, e(!1);
|
|
120
|
+
}, p);
|
|
121
|
+
this.pendingAuthUpdate = {
|
|
122
|
+
resolve: e,
|
|
123
|
+
timeout: n
|
|
124
|
+
}, this.send({
|
|
125
|
+
type: "connection_auth_update",
|
|
126
|
+
payload: t
|
|
82
127
|
});
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
async connectAndSubscribe(e) {
|
|
131
|
+
let t = this.hasActiveConnection();
|
|
132
|
+
if (await this.ensureConnected(), !t) return;
|
|
133
|
+
let n = this.subscriptions.get(e);
|
|
134
|
+
n != null && this.send({
|
|
135
|
+
id: e,
|
|
136
|
+
type: "subscribe",
|
|
137
|
+
payload: n.payload
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
async ensureConnected() {
|
|
141
|
+
if (!this.hasActiveConnection()) {
|
|
142
|
+
if (this.connectPromise != null) {
|
|
143
|
+
await this.connectPromise;
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
this.connectPromise = this.openSocket();
|
|
86
147
|
try {
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
|
|
148
|
+
await this.connectPromise;
|
|
149
|
+
} finally {
|
|
150
|
+
this.connectPromise = null;
|
|
90
151
|
}
|
|
91
152
|
}
|
|
92
|
-
}
|
|
153
|
+
}
|
|
154
|
+
async openSocket() {
|
|
155
|
+
if (this.disposed) throw Error("WebSocket client is disposed");
|
|
156
|
+
await new Promise((e, t) => {
|
|
157
|
+
let n = !1, r = () => {
|
|
158
|
+
n || (n = !0, e());
|
|
159
|
+
}, i = (e) => {
|
|
160
|
+
n || (n = !0, t(e));
|
|
161
|
+
}, a = new WebSocket(this.url, f);
|
|
162
|
+
this.socket = a, this.acknowledged = !1, a.onopen = () => {
|
|
163
|
+
M().catch(() => ({})).then((e) => {
|
|
164
|
+
if (a.readyState === WebSocket.OPEN) {
|
|
165
|
+
if (Object.keys(e).length > 0) {
|
|
166
|
+
this.send({
|
|
167
|
+
type: "connection_init",
|
|
168
|
+
payload: e
|
|
169
|
+
});
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
this.send({ type: "connection_init" });
|
|
173
|
+
}
|
|
174
|
+
}).catch((e) => {
|
|
175
|
+
i(e);
|
|
176
|
+
});
|
|
177
|
+
}, a.onerror = () => {
|
|
178
|
+
i(/* @__PURE__ */ Error("GraphQL subscription websocket error"));
|
|
179
|
+
}, a.onmessage = (e) => {
|
|
180
|
+
this.handleMessage(e.data, r, i);
|
|
181
|
+
}, a.onclose = () => {
|
|
182
|
+
i(/* @__PURE__ */ Error("GraphQL subscription websocket closed")), this.handleClose();
|
|
183
|
+
};
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
handleMessage(e, t, n) {
|
|
187
|
+
let r;
|
|
188
|
+
try {
|
|
189
|
+
r = JSON.parse(String(e));
|
|
190
|
+
} catch {
|
|
191
|
+
n(/* @__PURE__ */ Error("Invalid GraphQL websocket message")), this.socket?.close(4400, "Invalid websocket message");
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
switch (r.type) {
|
|
195
|
+
case "connection_ack":
|
|
196
|
+
this.acknowledged = !0, this.retryCount = 0, this.startKeepAlive(), t(), this.resubscribeActiveOperations();
|
|
197
|
+
return;
|
|
198
|
+
case "connection_auth_update_ack":
|
|
199
|
+
this.resolvePendingAuthUpdate(!0);
|
|
200
|
+
return;
|
|
201
|
+
case "next":
|
|
202
|
+
this.subscriptions.get(r.id)?.sink.next(r.payload);
|
|
203
|
+
return;
|
|
204
|
+
case "error":
|
|
205
|
+
r.id == null ? this.resolvePendingAuthUpdate(!1) : this.failSubscription(r.id, r.payload);
|
|
206
|
+
return;
|
|
207
|
+
case "complete":
|
|
208
|
+
this.completeSubscription(r.id);
|
|
209
|
+
return;
|
|
210
|
+
case "ping":
|
|
211
|
+
this.send({
|
|
212
|
+
type: "pong",
|
|
213
|
+
payload: r.payload
|
|
214
|
+
});
|
|
215
|
+
return;
|
|
216
|
+
case "pong": return;
|
|
217
|
+
default: n(/* @__PURE__ */ Error("Unsupported GraphQL websocket message")), this.socket?.close(4400, "Unsupported websocket message");
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
handleClose() {
|
|
221
|
+
this.acknowledged = !1, this.socket = null, this.connectPromise = null, this.stopKeepAlive(), this.resolvePendingAuthUpdate(!1), !this.disposed && this.subscriptions.size > 0 && this.scheduleReconnect();
|
|
222
|
+
}
|
|
223
|
+
scheduleReconnect() {
|
|
224
|
+
if (this.retryCount >= h) {
|
|
225
|
+
let e = /* @__PURE__ */ Error("GraphQL subscription websocket retry exhausted");
|
|
226
|
+
for (let t of [...this.subscriptions.keys()]) this.failSubscription(t, e);
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
let e = Math.min(8e3, g * 2 ** this.retryCount) + Math.random() * 200;
|
|
230
|
+
this.retryCount += 1, setTimeout(() => {
|
|
231
|
+
this.disposed || this.subscriptions.size === 0 || this.ensureConnected().catch((e) => {
|
|
232
|
+
this.scheduleReconnect(), j("subscription websocket reconnect failed", e);
|
|
233
|
+
});
|
|
234
|
+
}, e);
|
|
235
|
+
}
|
|
236
|
+
resubscribeActiveOperations() {
|
|
237
|
+
for (let [e, t] of this.subscriptions) this.send({
|
|
238
|
+
id: e,
|
|
239
|
+
type: "subscribe",
|
|
240
|
+
payload: t.payload
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
unsubscribe(e) {
|
|
244
|
+
this.subscriptions.delete(e) && this.socket?.readyState === WebSocket.OPEN && this.send({
|
|
245
|
+
id: e,
|
|
246
|
+
type: "complete"
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
failSubscription(e, t) {
|
|
250
|
+
let n = this.subscriptions.get(e);
|
|
251
|
+
n != null && (this.subscriptions.delete(e), n.sink.error(t));
|
|
252
|
+
}
|
|
253
|
+
completeSubscription(e) {
|
|
254
|
+
let t = this.subscriptions.get(e);
|
|
255
|
+
t != null && (this.subscriptions.delete(e), t.sink.complete());
|
|
256
|
+
}
|
|
257
|
+
startKeepAlive() {
|
|
258
|
+
this.stopKeepAlive(), this.keepAliveTimer = setInterval(() => {
|
|
259
|
+
this.socket?.readyState === WebSocket.OPEN && this.send({ type: "ping" });
|
|
260
|
+
}, m);
|
|
261
|
+
}
|
|
262
|
+
stopKeepAlive() {
|
|
263
|
+
this.keepAliveTimer != null && (clearInterval(this.keepAliveTimer), this.keepAliveTimer = null);
|
|
264
|
+
}
|
|
265
|
+
resolvePendingAuthUpdate(e) {
|
|
266
|
+
let t = this.pendingAuthUpdate;
|
|
267
|
+
t != null && (clearTimeout(t.timeout), this.pendingAuthUpdate = null, t.resolve(e));
|
|
268
|
+
}
|
|
269
|
+
send(e) {
|
|
270
|
+
let { socket: t } = this;
|
|
271
|
+
t?.readyState === WebSocket.OPEN && t.send(JSON.stringify(e));
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
function P() {
|
|
275
|
+
if (l != null) return l;
|
|
276
|
+
if (typeof window > "u") throw Error("GraphQL subscriptions unavailable in non-browser environment");
|
|
277
|
+
return l = new N(A()), l;
|
|
93
278
|
}
|
|
94
|
-
function
|
|
279
|
+
function F(e) {
|
|
95
280
|
return typeof File < "u" && e instanceof File || typeof Blob < "u" && e instanceof Blob;
|
|
96
281
|
}
|
|
97
|
-
function
|
|
98
|
-
if (
|
|
282
|
+
function I(e, t, n) {
|
|
283
|
+
if (F(e)) return n.push({
|
|
99
284
|
path: t,
|
|
100
285
|
file: e
|
|
101
286
|
}), null;
|
|
102
|
-
if (Array.isArray(e)) return e.map((e, r) =>
|
|
287
|
+
if (Array.isArray(e)) return e.map((e, r) => I(e, `${t}.${r}`, n));
|
|
103
288
|
if (typeof e == "object" && e) {
|
|
104
289
|
let r = {};
|
|
105
|
-
for (let [i, a] of Object.entries(e)) r[i] =
|
|
290
|
+
for (let [i, a] of Object.entries(e)) r[i] = I(a, `${t}.${i}`, n);
|
|
106
291
|
return r;
|
|
107
292
|
}
|
|
108
293
|
return e;
|
|
109
294
|
}
|
|
110
|
-
function
|
|
111
|
-
let n = [], r =
|
|
295
|
+
function L(e, t) {
|
|
296
|
+
let n = [], r = I(t, "variables", n), i = new FormData(), a = {
|
|
112
297
|
query: e,
|
|
113
298
|
variables: r
|
|
114
299
|
};
|
|
@@ -120,91 +305,88 @@ function k(e, t) {
|
|
|
120
305
|
i.append(String(t), e.file);
|
|
121
306
|
}), i;
|
|
122
307
|
}
|
|
123
|
-
var
|
|
308
|
+
var R = {
|
|
124
309
|
maxAttempts: 3,
|
|
125
310
|
baseDelayMs: 300,
|
|
126
311
|
maxDelayMs: 4e3,
|
|
127
312
|
fetchTimeoutMs: 6e5
|
|
128
313
|
};
|
|
129
|
-
async function
|
|
314
|
+
async function z(e) {
|
|
130
315
|
await new Promise((t) => {
|
|
131
316
|
setTimeout(() => {
|
|
132
317
|
t();
|
|
133
318
|
}, e);
|
|
134
319
|
});
|
|
135
320
|
}
|
|
136
|
-
function
|
|
321
|
+
function B(e, t) {
|
|
137
322
|
let n = Math.min(t.maxDelayMs, t.baseDelayMs * 2 ** e);
|
|
138
323
|
return n + Math.random() * .2 * n;
|
|
139
324
|
}
|
|
140
|
-
function
|
|
325
|
+
function V(e) {
|
|
141
326
|
return e === 408 || e === 429 || e >= 500 && e < 600;
|
|
142
327
|
}
|
|
143
|
-
function
|
|
328
|
+
function H(e) {
|
|
144
329
|
return e instanceof TypeError || e instanceof Error && e.name === "AbortError";
|
|
145
330
|
}
|
|
146
|
-
function
|
|
147
|
-
e() && console.log("[RelayNetwork]", ...t);
|
|
148
|
-
}
|
|
149
|
-
async function I(e, t, n, r) {
|
|
331
|
+
async function U(e, t, n, r) {
|
|
150
332
|
let i = e.text;
|
|
151
333
|
if (i == null) throw Error("Missing GraphQL query text");
|
|
152
334
|
let a = i;
|
|
153
|
-
async function
|
|
335
|
+
async function s(e) {
|
|
154
336
|
let n = new AbortController(), r = setTimeout(() => {
|
|
155
337
|
n.abort();
|
|
156
|
-
},
|
|
338
|
+
}, R.fetchTimeoutMs);
|
|
157
339
|
try {
|
|
158
340
|
let r, i = {};
|
|
159
|
-
if (
|
|
160
|
-
Object.assign(i, await
|
|
341
|
+
if (u != null) try {
|
|
342
|
+
Object.assign(i, await u());
|
|
161
343
|
} catch {}
|
|
162
344
|
(() => {
|
|
163
345
|
try {
|
|
164
346
|
let e = [t];
|
|
165
347
|
for (; e.length > 0;) {
|
|
166
348
|
let t = e.pop();
|
|
167
|
-
if (
|
|
349
|
+
if (F(t)) return !0;
|
|
168
350
|
Array.isArray(t) ? e.push(...t) : typeof t == "object" && t && e.push(...Object.values(t));
|
|
169
351
|
}
|
|
170
352
|
} catch {}
|
|
171
353
|
return !1;
|
|
172
|
-
})() ? r =
|
|
354
|
+
})() ? r = L(a, t) : (i["Content-Type"] = "application/json", r = JSON.stringify({
|
|
173
355
|
query: a,
|
|
174
356
|
variables: t
|
|
175
357
|
}));
|
|
176
|
-
let
|
|
358
|
+
let s = await fetch(o, {
|
|
177
359
|
method: "POST",
|
|
178
360
|
body: r,
|
|
179
361
|
headers: i,
|
|
180
362
|
credentials: "include",
|
|
181
363
|
signal: n.signal
|
|
182
364
|
});
|
|
183
|
-
if (!
|
|
184
|
-
if (e <
|
|
185
|
-
let t = await
|
|
186
|
-
throw Error(`GraphQL HTTP error ${
|
|
365
|
+
if (!s.ok) {
|
|
366
|
+
if (e < R.maxAttempts - 1 && V(s.status)) throw Error(`Retryable HTTP status ${s.status}`);
|
|
367
|
+
let t = await s.text().catch(() => "");
|
|
368
|
+
throw Error(`GraphQL HTTP error ${s.status}: ${t}`);
|
|
187
369
|
}
|
|
188
|
-
let c = await
|
|
189
|
-
return Array.isArray(c.errors) && c.errors.length > 0 &&
|
|
370
|
+
let c = await s.json();
|
|
371
|
+
return Array.isArray(c.errors) && c.errors.length > 0 && j("GraphQL errors", c.errors), c;
|
|
190
372
|
} finally {
|
|
191
373
|
clearTimeout(r);
|
|
192
374
|
}
|
|
193
375
|
}
|
|
194
|
-
for (let e = 0; e <
|
|
195
|
-
return await
|
|
376
|
+
for (let e = 0; e < R.maxAttempts; e += 1) try {
|
|
377
|
+
return await s(e);
|
|
196
378
|
} catch (t) {
|
|
197
|
-
let n = e ===
|
|
198
|
-
if (!(
|
|
199
|
-
await
|
|
379
|
+
let n = e === R.maxAttempts - 1;
|
|
380
|
+
if (!(H(t) || t instanceof Error && t.message.includes("Retryable HTTP status")) || n) throw j("GraphQL fetch error", t), t;
|
|
381
|
+
await z(B(e, R));
|
|
200
382
|
}
|
|
201
383
|
throw Error("Exhausted retries without returning a result");
|
|
202
384
|
}
|
|
203
|
-
function
|
|
204
|
-
return
|
|
385
|
+
function W(e, t) {
|
|
386
|
+
return j("subscription:start", e.name, t), r.create((n) => {
|
|
205
387
|
let r = e.text;
|
|
206
388
|
if (r == null || r === "") return n.error(/* @__PURE__ */ Error("Subscription operation text is empty")), () => {};
|
|
207
|
-
let i =
|
|
389
|
+
let i = P().subscribe({
|
|
208
390
|
query: r,
|
|
209
391
|
variables: t,
|
|
210
392
|
operationName: e.name
|
|
@@ -225,31 +407,32 @@ function L(e, t) {
|
|
|
225
407
|
};
|
|
226
408
|
});
|
|
227
409
|
}
|
|
228
|
-
function
|
|
229
|
-
return n.create(
|
|
410
|
+
function G() {
|
|
411
|
+
return n.create(U, W);
|
|
230
412
|
}
|
|
231
|
-
function
|
|
232
|
-
return
|
|
233
|
-
getDataID:
|
|
234
|
-
relayFieldLogger:
|
|
235
|
-
network:
|
|
413
|
+
function K() {
|
|
414
|
+
return c ??= new t({
|
|
415
|
+
getDataID: S,
|
|
416
|
+
relayFieldLogger: b,
|
|
417
|
+
network: G(),
|
|
236
418
|
store: new a(new i())
|
|
237
|
-
}),
|
|
419
|
+
}), c;
|
|
238
420
|
}
|
|
239
|
-
function
|
|
240
|
-
let e =
|
|
421
|
+
function q() {
|
|
422
|
+
let e = K(), t = new i();
|
|
241
423
|
e.getStore().publish(t), e.getStore().notify();
|
|
242
424
|
}
|
|
243
|
-
var
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
425
|
+
var J = {
|
|
426
|
+
RelayWebSocketClient: N,
|
|
427
|
+
buildFormData: L,
|
|
428
|
+
calcBackoff: B,
|
|
429
|
+
collectFiles: I,
|
|
430
|
+
getDataId: S,
|
|
431
|
+
isNetworkError: H,
|
|
432
|
+
isRetryableStatus: V,
|
|
433
|
+
isUploadable: F
|
|
251
434
|
};
|
|
252
435
|
//#endregion
|
|
253
|
-
export {
|
|
436
|
+
export { J as __test, k as configureRelayEnvironment, K as getEnvironment, G as getNetwork, T as getRelayTransportSnapshot, D as reconnectRelayWebSocket, O as refreshRelayWebSocketAuthentication, q as resetRelayStore, E as subscribeRelayTransport };
|
|
254
437
|
|
|
255
438
|
//# sourceMappingURL=environment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","names":[],"sources":["../../../src/relay/environment.ts"],"sourcesContent":["import {\n Environment,\n Network,\n Observable,\n RecordSource,\n Store,\n type FetchFunction,\n type SubscribeFunction,\n type RelayFieldLogger,\n} from 'relay-runtime';\nimport { createClient, type Client } from 'graphql-ws';\nimport { isDevEnv } from './envHelpers.js';\n\nlet graphqlHttpEndpoint = '/api/graphql';\nlet graphqlWsEndpoint = '/api/ws';\n\n// (anonymousEnvironment reserved if needed later for public access / logout scenarios)\n// Removed until actually required to avoid lint errors.\n// let anonymousEnvironment: Environment | undefined;\nlet environment: Environment | undefined;\nlet wsClient: Client | undefined;\nlet getAuthHeaders:\n | (() => Record<string, string> | Promise<Record<string, string>>)\n | undefined;\nlet customDataIdResolver:\n | ((fieldValue: unknown, typeName: string) => string | null)\n | undefined;\n\nexport type RelayTransportStatus = 'idle' | 'configured' | 'reconnecting';\n\nexport interface RelayTransportSnapshot {\n generation: number;\n reason: string | null;\n status: RelayTransportStatus;\n}\n\nexport interface RelayReconnectOptions {\n reason?: string;\n}\n\ntype RelayTransportListener = () => void;\n\nlet relayTransportSnapshot: RelayTransportSnapshot = {\n generation: 0,\n reason: null,\n status: 'idle',\n};\nconst relayTransportListeners = new Set<RelayTransportListener>();\n\n/**\n * No-op Relay field logger used to satisfy @required(action: LOG).\n */\nfunction noopRelayFieldLogger(): void {}\n\nlet relayFieldLogger: RelayFieldLogger = noopRelayFieldLogger;\n\nif (isDevEnv()) {\n relayFieldLogger = (event) => {\n // eslint-disable-next-line no-console\n console.log('relayFieldLogger: ', event);\n };\n}\n\nconst defaultGetDataId: (\n fieldValue: unknown,\n typeName: string,\n) => string | null = (fieldValue) => {\n if (fieldValue == null || typeof fieldValue !== 'object') {\n return null;\n }\n const { id } = fieldValue as { id?: unknown };\n if (typeof id !== 'string' || id.trim() === '') {\n return null;\n }\n return id;\n};\n\nconst getDataId = (fieldValue: unknown, typeName: string): string | null => {\n const customId = customDataIdResolver?.(fieldValue, typeName);\n if (customId != null) {\n return customId;\n }\n return defaultGetDataId(fieldValue, typeName);\n};\n\n/**\n * Notify subscribers that the Relay transport state changed.\n */\nfunction emitRelayTransportChange(\n status: RelayTransportStatus,\n reason: string | null,\n): void {\n relayTransportSnapshot = {\n generation: relayTransportSnapshot.generation + 1,\n reason,\n status,\n };\n for (const listener of relayTransportListeners) {\n listener();\n }\n}\n\n/**\n * Dispose the active websocket client and ignore shutdown failures.\n */\nfunction disposeWsClient(): void {\n if (wsClient == null) {\n return;\n }\n try {\n const result = wsClient.dispose();\n if (result instanceof Promise) {\n result.catch(() => {\n // ignore dispose rejections\n });\n }\n } catch {\n // ignore errors during dispose\n }\n wsClient = undefined;\n}\n\n/**\n * Return the current Relay transport state used by subscription hooks.\n */\nexport function getRelayTransportSnapshot(): RelayTransportSnapshot {\n return relayTransportSnapshot;\n}\n\n/**\n * Subscribe to Relay transport changes.\n */\nexport function subscribeRelayTransport(\n listener: RelayTransportListener,\n): () => void {\n relayTransportListeners.add(listener);\n return () => {\n relayTransportListeners.delete(listener);\n };\n}\n\n/**\n * Force the websocket transport to reconnect and notify mounted subscriptions.\n */\nexport function reconnectRelayWebSocket(\n options: RelayReconnectOptions = {},\n): void {\n disposeWsClient();\n emitRelayTransportChange(\n 'reconnecting',\n options.reason ?? 'manual_reconnect',\n );\n}\n\nexport interface RelayEnvironmentConfiguration {\n httpUrl?: string;\n wsUrl?: string;\n logEvents?: boolean;\n getDataId?: (fieldValue: unknown, typeName: string) => string | null;\n getAuthHeaders?: () =>\n | Record<string, string>\n | Promise<Record<string, string>>;\n}\n\n/**\n * Configure the endpoints and logging behavior used by the shared Relay environment.\n */\nexport function configureRelayEnvironment(\n options: RelayEnvironmentConfiguration = {},\n): void {\n const {\n httpUrl,\n wsUrl,\n logEvents,\n getDataId: nextGetDataId,\n getAuthHeaders: nextGetAuthHeaders,\n } = options;\n\n if (typeof httpUrl === 'string' && httpUrl !== '') {\n graphqlHttpEndpoint = httpUrl;\n }\n\n if (typeof wsUrl === 'string' && wsUrl !== '') {\n graphqlWsEndpoint = wsUrl;\n }\n\n if (logEvents != null) {\n if (logEvents) {\n relayFieldLogger = (event) => {\n // eslint-disable-next-line no-console\n console.log('relayFieldLogger: ', event);\n };\n } else {\n relayFieldLogger = noopRelayFieldLogger;\n }\n }\n\n customDataIdResolver = nextGetDataId;\n getAuthHeaders = nextGetAuthHeaders;\n\n disposeWsClient();\n environment = undefined;\n emitRelayTransportChange('configured', 'configure');\n}\n\n/**\n * Resolve the websocket endpoint into an absolute URL suitable for graphql-ws.\n */\nfunction resolveWebsocketUrl(): string {\n const endpoint = graphqlWsEndpoint;\n\n if (endpoint.startsWith('ws')) {\n return endpoint;\n }\n\n if (endpoint.startsWith('http')) {\n return endpoint.replace(/^http/, 'ws');\n }\n\n if (endpoint.startsWith('/')) {\n if (typeof window === 'undefined') {\n return endpoint;\n }\n let protocol = 'ws:';\n if (window.location.protocol === 'https:') {\n protocol = 'wss:';\n }\n return `${protocol}//${window.location.host}${endpoint}`;\n }\n\n return endpoint;\n}\n\n/**\n * Build or get a singleton graphql-ws client with basic auto-reconnect.\n * The graphql-ws library already supports lazy connections and we add retry logic.\n */\nfunction getWsClient(): Client {\n if (wsClient != null) {\n return wsClient;\n }\n if (typeof window === 'undefined') {\n throw new Error(\n 'GraphQL subscriptions unavailable in non-browser environment',\n );\n }\n\n const url = resolveWebsocketUrl();\n\n // Exponential backoff parameters\n const maxAttempts = 10;\n const baseDelayMs = 500;\n\n wsClient = createClient({\n url,\n keepAlive: 10_000,\n lazy: true,\n retryAttempts: maxAttempts,\n shouldRetry() {\n return true;\n },\n async retryWait(retries) {\n // retries starts at 0\n const delay =\n Math.min(8000, baseDelayMs * 2 ** retries) + Math.random() * 200;\n await new Promise<void>((resolve) => {\n setTimeout(() => {\n resolve();\n }, delay);\n });\n },\n connectionParams: async () => {\n if (getAuthHeaders == null) {\n return {};\n }\n try {\n return await getAuthHeaders();\n } catch {\n return {};\n }\n },\n });\n\n return wsClient;\n}\n\n/**\n * Get organization slug from current window location\n */\n// export function getOrganizationSlug(): string | null {\n// const { pathname } = window.location;\n// const slug = pathname.split('/')[1];\n// if (slug == null) {\n// return null;\n// }\n\n// return slug;\n// }\n\n// -------------------------\n// Upload detection helpers\n// -------------------------\n/** Test if a value is an uploadable (File/Blob) */\nfunction isUploadable(value: unknown): value is File | Blob {\n return (\n (typeof File !== 'undefined' && value instanceof File) ||\n (typeof Blob !== 'undefined' && value instanceof Blob)\n );\n}\n\ninterface FileRef {\n path: string; // JSON pointer-like (e.g. variables.input.file)\n file: File | Blob;\n}\n\n/** Recursively clone a structure replacing files with null and collecting them */\nfunction collectFiles(value: unknown, path: string, acc: FileRef[]): unknown {\n if (isUploadable(value)) {\n acc.push({ path, file: value });\n return null; // placeholder per multipart spec\n }\n if (Array.isArray(value)) {\n return value.map((v, i) => {\n return collectFiles(v, `${path}.${i}`, acc);\n });\n }\n if (value != null && typeof value === 'object') {\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n out[k] = collectFiles(v, `${path}.${k}`, acc);\n }\n return out;\n }\n return value; // primitives unchanged\n}\n\n/** Build GraphQL multipart form-data payload */\nfunction buildFormData(\n query: string,\n variables: Record<string, unknown>,\n): FormData {\n const files: FileRef[] = [];\n // Deep clone variables while replacing files with null\n const clonedVars = collectFiles(variables, 'variables', files) as Record<\n string,\n unknown\n >;\n\n const form = new FormData();\n const operations = { query, variables: clonedVars };\n form.append('operations', JSON.stringify(operations));\n\n const map: Record<string, string[]> = {};\n files.forEach((ref, idx) => {\n map[idx] = [ref.path];\n });\n form.append('map', JSON.stringify(map));\n files.forEach((ref, idx) => {\n form.append(String(idx), ref.file);\n });\n return form;\n}\n\n// -------------------------\n// Retry / timeout helpers\n// -------------------------\ninterface RetryOptions {\n maxAttempts: number; // total attempts including initial\n baseDelayMs: number;\n maxDelayMs: number;\n fetchTimeoutMs: number;\n}\n\nconst RETRY_OPTIONS: RetryOptions = {\n maxAttempts: 3,\n baseDelayMs: 300,\n maxDelayMs: 4000,\n fetchTimeoutMs: 600_000, // 10 minutes (parité avec ancien middleware)\n};\n\n/** Sleep helper with Promise */\nasync function sleep(ms: number): Promise<void> {\n await new Promise<void>((res) => {\n setTimeout(() => {\n res();\n }, ms);\n });\n}\n\n/** Exponential backoff with jitter */\nfunction calcBackoff(attempt: number, opts: RetryOptions): number {\n const exp = Math.min(opts.maxDelayMs, opts.baseDelayMs * 2 ** attempt);\n return exp + Math.random() * 0.2 * exp; // jitter 0-20%\n}\n\n/** Determine if an HTTP status is retryable */\nfunction isRetryableStatus(status: number): boolean {\n return status === 408 || status === 429 || (status >= 500 && status < 600);\n}\n\n/** Determine if an error should be treated as transient network issue */\nfunction isNetworkError(err: unknown): boolean {\n return (\n err instanceof TypeError ||\n (err instanceof Error && err.name === 'AbortError')\n );\n}\n\n// -------------------------\n// fetchFn implementation\n// -------------------------\ninterface GraphQLResponseErrorItem {\n [key: string]: unknown;\n message: string;\n}\n\ninterface GraphQLResponseShape<T = unknown> {\n data?: T;\n errors?: GraphQLResponseErrorItem[];\n extensions?: Record<string, unknown>;\n}\n\n/** Debug log helper (no-op en production) */\nfunction debugLog(...args: unknown[]): void {\n if (isDevEnv()) {\n // eslint-disable-next-line no-console\n console.log('[RelayNetwork]', ...args);\n }\n}\n\n/** Fetch GraphQL (with retry + upload) */\nasync function fetchFn(\n request: { text: string | null | undefined },\n variables: Record<string, unknown>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _cacheConfig: unknown,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _uploadables: unknown,\n): Promise<GraphQLResponseShape> {\n const queryText: string | null | undefined = request.text; // no persisted queries here (yet)\n if (queryText == null) {\n throw new Error('Missing GraphQL query text');\n }\n const safeQueryText: string = queryText; // narrowed non-null\n\n /** Execute one network attempt */\n async function execOnce(attempt: number): Promise<GraphQLResponseShape> {\n const controller = new AbortController();\n const timeout = setTimeout(() => {\n controller.abort();\n }, RETRY_OPTIONS.fetchTimeoutMs);\n try {\n let body: BodyInit;\n const headers: Record<string, string> = {};\n if (getAuthHeaders != null) {\n try {\n Object.assign(headers, await getAuthHeaders());\n } catch {\n // ignore auth header failures\n }\n }\n const hasFiles = ((): boolean => {\n try {\n const stack: unknown[] = [variables];\n while (stack.length > 0) {\n const v = stack.pop();\n if (isUploadable(v)) {\n return true;\n }\n if (Array.isArray(v)) {\n stack.push(...v);\n } else if (v != null && typeof v === 'object') {\n stack.push(...Object.values(v as Record<string, unknown>));\n }\n }\n } catch {\n // ignore traversal errors\n }\n return false;\n })();\n\n if (hasFiles) {\n body = buildFormData(safeQueryText, variables);\n } else {\n headers['Content-Type'] = 'application/json';\n body = JSON.stringify({ query: safeQueryText, variables });\n }\n\n const response = await fetch(graphqlHttpEndpoint, {\n method: 'POST',\n body,\n headers,\n credentials: 'include',\n signal: controller.signal,\n });\n\n if (!response.ok) {\n if (\n attempt < RETRY_OPTIONS.maxAttempts - 1 &&\n isRetryableStatus(response.status)\n ) {\n throw new Error(`Retryable HTTP status ${response.status}`);\n }\n const text = await response.text().catch(() => {\n return '';\n });\n throw new Error(`GraphQL HTTP error ${response.status}: ${text}`);\n }\n\n const json: GraphQLResponseShape = await response.json();\n if (Array.isArray(json.errors) && json.errors.length > 0) {\n debugLog('GraphQL errors', json.errors);\n }\n return json;\n } finally {\n clearTimeout(timeout);\n }\n }\n\n for (let attempt = 0; attempt < RETRY_OPTIONS.maxAttempts; attempt += 1) {\n try {\n return await execOnce(attempt);\n } catch (err) {\n const last = attempt === RETRY_OPTIONS.maxAttempts - 1;\n const retryable =\n isNetworkError(err) ||\n (err instanceof Error && err.message.includes('Retryable HTTP status'));\n if (!retryable || last) {\n debugLog('GraphQL fetch error', err);\n throw err;\n }\n const delay = calcBackoff(attempt, RETRY_OPTIONS);\n await sleep(delay);\n }\n }\n throw new Error('Exhausted retries without returning a result');\n}\n\n// -------------------------\n// subscribeFn implementation (wrap existing logic in Relay Observable)\n// -------------------------\n/** Subscription function bridging graphql-ws client to Relay */\nfunction subscribeFn(\n operation: { text: string | null | undefined; name: string },\n variables: Record<string, unknown>,\n): Observable<unknown> {\n debugLog('subscription:start', operation.name, variables);\n return Observable.create<unknown>((sink) => {\n const query = operation.text;\n if (query == null || query === '') {\n sink.error(new Error('Subscription operation text is empty'));\n return () => {\n // noop\n };\n }\n const client = getWsClient();\n const dispose = client.subscribe(\n { query, variables, operationName: operation.name },\n {\n next: (data) => {\n sink.next(data);\n },\n error: (err) => {\n let errorObj: Error;\n if (err instanceof Error) {\n errorObj = err;\n } else {\n errorObj = new Error('Subscription error');\n }\n sink.error(errorObj);\n },\n complete: () => {\n sink.complete();\n },\n },\n );\n return () => {\n dispose();\n };\n });\n}\n\n/**\n * Create native Relay network layer (fetch + subscribe)\n */\nexport function getNetwork(): ReturnType<typeof Network.create> {\n return Network.create(\n fetchFn as FetchFunction,\n subscribeFn as SubscribeFunction,\n );\n}\n\n/**\n * Get anonymous relay environment\n */\nexport function getEnvironment(): Environment {\n environment ??= new Environment({\n getDataID: getDataId,\n relayFieldLogger,\n network: getNetwork(),\n store: new Store(new RecordSource()),\n });\n\n return environment;\n}\n\n/**\n * Reset the Relay store by creating a new empty source\n */\nexport function resetRelayStore(): void {\n const environment = getEnvironment();\n\n // Create a new store with an empty source\n const source = new RecordSource();\n\n // Replace the data in the store with our empty source\n environment.getStore().publish(source);\n\n // Notify subscribers that the data has changed\n environment.getStore().notify();\n}\n\nexport const __test = {\n buildFormData,\n calcBackoff,\n collectFiles,\n getDataId,\n isNetworkError,\n isRetryableStatus,\n isUploadable,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"environment.js","names":[],"sources":["../../../src/relay/environment.ts"],"sourcesContent":["import {\n Environment,\n Network,\n Observable,\n RecordSource,\n Store,\n type FetchFunction,\n type SubscribeFunction,\n type RelayFieldLogger,\n} from 'relay-runtime';\nimport { isDevEnv } from './envHelpers.js';\n\nlet graphqlHttpEndpoint = '/api/graphql';\nlet graphqlWsEndpoint = '/api/ws';\n\n// (anonymousEnvironment reserved if needed later for public access / logout scenarios)\n// Removed until actually required to avoid lint errors.\n// let anonymousEnvironment: Environment | undefined;\nlet environment: Environment | undefined;\nlet wsClient: RelayWebSocketClient | undefined;\nlet getAuthHeaders:\n | (() => Record<string, string> | Promise<Record<string, string>>)\n | undefined;\nlet customDataIdResolver:\n | ((fieldValue: unknown, typeName: string) => string | null)\n | undefined;\n\nexport type RelayTransportStatus = 'idle' | 'configured' | 'reconnecting';\n\nexport interface RelayTransportSnapshot {\n generation: number;\n reason: string | null;\n status: RelayTransportStatus;\n}\n\nexport interface RelayReconnectOptions {\n reason?: string;\n}\n\nexport interface RelayAuthRefreshOptions {\n reason?: string;\n}\n\ntype RelayTransportListener = () => void;\n\ntype GraphqlWsPayload = Record<string, unknown>;\n\ntype GraphqlWsMessage =\n | { type: 'connection_ack'; payload?: unknown }\n | { type: 'connection_auth_update_ack'; payload?: unknown }\n | { id: string; type: 'next'; payload: unknown }\n | { id?: string; type: 'error'; payload: unknown }\n | { id: string; type: 'complete' }\n | { type: 'ping'; payload?: unknown }\n | { type: 'pong'; payload?: unknown };\n\ntype SubscriptionSink = {\n next: (value: unknown) => void;\n error: (error: unknown) => void;\n complete: () => void;\n};\n\ntype ActiveSubscription = {\n payload: {\n query: string;\n variables: Record<string, unknown>;\n operationName: string;\n };\n sink: SubscriptionSink;\n};\n\nconst GRAPHQL_TRANSPORT_WS_PROTOCOL = 'graphql-transport-ws';\nconst AUTH_UPDATE_TIMEOUT_MS = 5_000;\nconst WS_KEEP_ALIVE_MS = 10_000;\nconst WS_MAX_RETRY_ATTEMPTS = 10;\nconst WS_BASE_RETRY_DELAY_MS = 500;\n\nlet relayTransportSnapshot: RelayTransportSnapshot = {\n generation: 0,\n reason: null,\n status: 'idle',\n};\nconst relayTransportListeners = new Set<RelayTransportListener>();\n\n/**\n * No-op Relay field logger used to satisfy @required(action: LOG).\n */\nfunction noopRelayFieldLogger(): void {}\n\nlet relayFieldLogger: RelayFieldLogger = noopRelayFieldLogger;\n\nif (isDevEnv()) {\n relayFieldLogger = (event) => {\n // eslint-disable-next-line no-console\n console.log('relayFieldLogger: ', event);\n };\n}\n\nconst defaultGetDataId: (\n fieldValue: unknown,\n typeName: string,\n) => string | null = (fieldValue) => {\n if (fieldValue == null || typeof fieldValue !== 'object') {\n return null;\n }\n const { id } = fieldValue as { id?: unknown };\n if (typeof id !== 'string' || id.trim() === '') {\n return null;\n }\n return id;\n};\n\nconst getDataId = (fieldValue: unknown, typeName: string): string | null => {\n const customId = customDataIdResolver?.(fieldValue, typeName);\n if (customId != null) {\n return customId;\n }\n return defaultGetDataId(fieldValue, typeName);\n};\n\n/**\n * Notify subscribers that the Relay transport state changed.\n */\nfunction emitRelayTransportChange(\n status: RelayTransportStatus,\n reason: string | null,\n): void {\n relayTransportSnapshot = {\n generation: relayTransportSnapshot.generation + 1,\n reason,\n status,\n };\n for (const listener of relayTransportListeners) {\n listener();\n }\n}\n\n/**\n * Dispose the active websocket client and ignore shutdown failures.\n */\nfunction disposeWsClient(): void {\n if (wsClient == null) {\n return;\n }\n try {\n wsClient.dispose();\n } catch {\n // ignore errors during dispose\n }\n wsClient = undefined;\n}\n\n/**\n * Return the current Relay transport state used by subscription hooks.\n */\nexport function getRelayTransportSnapshot(): RelayTransportSnapshot {\n return relayTransportSnapshot;\n}\n\n/**\n * Subscribe to Relay transport changes.\n */\nexport function subscribeRelayTransport(\n listener: RelayTransportListener,\n): () => void {\n relayTransportListeners.add(listener);\n return () => {\n relayTransportListeners.delete(listener);\n };\n}\n\n/**\n * Force the websocket transport to reconnect and notify mounted subscriptions.\n */\nexport function reconnectRelayWebSocket(\n options: RelayReconnectOptions = {},\n): void {\n disposeWsClient();\n emitRelayTransportChange(\n 'reconnecting',\n options.reason ?? 'manual_reconnect',\n );\n}\n\n/**\n * Refresh the active websocket authentication without recreating subscriptions.\n */\nexport async function refreshRelayWebSocketAuthentication(\n options: RelayAuthRefreshOptions = {},\n): Promise<void> {\n const client = wsClient;\n if (!client?.hasActiveConnection()) {\n return;\n }\n\n const refreshed = await client.refreshAuthentication();\n if (!refreshed) {\n reconnectRelayWebSocket({\n reason: options.reason ?? 'auth_refresh_fallback',\n });\n }\n}\n\nexport interface RelayEnvironmentConfiguration {\n httpUrl?: string;\n wsUrl?: string;\n logEvents?: boolean;\n getDataId?: (fieldValue: unknown, typeName: string) => string | null;\n getAuthHeaders?: () =>\n | Record<string, string>\n | Promise<Record<string, string>>;\n}\n\n/**\n * Configure the endpoints and logging behavior used by the shared Relay environment.\n */\nexport function configureRelayEnvironment(\n options: RelayEnvironmentConfiguration = {},\n): void {\n const {\n httpUrl,\n wsUrl,\n logEvents,\n getDataId: nextGetDataId,\n getAuthHeaders: nextGetAuthHeaders,\n } = options;\n\n if (typeof httpUrl === 'string' && httpUrl !== '') {\n graphqlHttpEndpoint = httpUrl;\n }\n\n if (typeof wsUrl === 'string' && wsUrl !== '') {\n graphqlWsEndpoint = wsUrl;\n }\n\n if (logEvents != null) {\n if (logEvents) {\n relayFieldLogger = (event) => {\n // eslint-disable-next-line no-console\n console.log('relayFieldLogger: ', event);\n };\n } else {\n relayFieldLogger = noopRelayFieldLogger;\n }\n }\n\n customDataIdResolver = nextGetDataId;\n getAuthHeaders = nextGetAuthHeaders;\n\n disposeWsClient();\n environment = undefined;\n emitRelayTransportChange('configured', 'configure');\n}\n\n/**\n * Resolve the websocket endpoint into an absolute URL suitable for graphql-ws.\n */\nfunction resolveWebsocketUrl(): string {\n const endpoint = graphqlWsEndpoint;\n\n if (endpoint.startsWith('ws')) {\n return endpoint;\n }\n\n if (endpoint.startsWith('http')) {\n return endpoint.replace(/^http/, 'ws');\n }\n\n if (endpoint.startsWith('/')) {\n if (typeof window === 'undefined') {\n return endpoint;\n }\n let protocol = 'ws:';\n if (window.location.protocol === 'https:') {\n protocol = 'wss:';\n }\n return `${protocol}//${window.location.host}${endpoint}`;\n }\n\n return endpoint;\n}\n\n/** Debug log helper (no-op en production) */\nfunction debugLog(...args: unknown[]): void {\n if (isDevEnv()) {\n // eslint-disable-next-line no-console\n console.log('[RelayNetwork]', ...args);\n }\n}\n\n/** Resolve authentication headers for Relay HTTP and websocket transports. */\nasync function resolveAuthHeaders(): Promise<Record<string, string>> {\n if (getAuthHeaders == null) {\n return {};\n }\n return getAuthHeaders();\n}\n\nclass RelayWebSocketClient {\n private socket: WebSocket | null = null;\n\n private connectPromise: Promise<void> | null = null;\n\n private disposed = false;\n\n private acknowledged = false;\n\n private retryCount = 0;\n\n private nextId = 1;\n\n private keepAliveTimer: ReturnType<typeof setInterval> | null = null;\n\n private readonly subscriptions = new Map<string, ActiveSubscription>();\n\n private pendingAuthUpdate: {\n resolve: (value: boolean) => void;\n timeout: ReturnType<typeof setTimeout>;\n } | null = null;\n\n public constructor(private readonly url: string) {}\n\n public hasActiveConnection(): boolean {\n return this.socket?.readyState === WebSocket.OPEN && this.acknowledged;\n }\n\n public dispose(): void {\n this.disposed = true;\n this.resolvePendingAuthUpdate(false);\n this.stopKeepAlive();\n const { socket } = this;\n this.socket = null;\n this.connectPromise = null;\n this.acknowledged = false;\n if (socket != null && socket.readyState !== WebSocket.CLOSED) {\n socket.close(1000, 'Normal Closure');\n }\n }\n\n public subscribe(\n payload: ActiveSubscription['payload'],\n sink: SubscriptionSink,\n ): () => void {\n const id = String(this.nextId);\n this.nextId += 1;\n this.subscriptions.set(id, { payload, sink });\n this.connectAndSubscribe(id).catch((error: unknown) => {\n debugLog('subscription websocket connect failed', error);\n this.scheduleReconnect();\n });\n\n return () => {\n this.unsubscribe(id);\n };\n }\n\n public async refreshAuthentication(): Promise<boolean> {\n if (!this.hasActiveConnection()) {\n return true;\n }\n const { socket } = this;\n if (socket == null) {\n return true;\n }\n if (this.pendingAuthUpdate != null) {\n return false;\n }\n\n let payload: Record<string, string>;\n try {\n payload = await resolveAuthHeaders();\n } catch {\n return false;\n }\n if (Object.keys(payload).length === 0) {\n return false;\n }\n\n return new Promise<boolean>((resolve) => {\n const timeout = setTimeout(() => {\n this.pendingAuthUpdate = null;\n resolve(false);\n }, AUTH_UPDATE_TIMEOUT_MS);\n this.pendingAuthUpdate = { resolve, timeout };\n this.send({\n type: 'connection_auth_update',\n payload,\n });\n });\n }\n\n private async connectAndSubscribe(id: string): Promise<void> {\n const wasConnected = this.hasActiveConnection();\n await this.ensureConnected();\n if (!wasConnected) {\n return;\n }\n const subscription = this.subscriptions.get(id);\n if (subscription == null) {\n return;\n }\n this.send({\n id,\n type: 'subscribe',\n payload: subscription.payload,\n });\n }\n\n private async ensureConnected(): Promise<void> {\n if (this.hasActiveConnection()) {\n return;\n }\n if (this.connectPromise != null) {\n await this.connectPromise;\n return;\n }\n\n this.connectPromise = this.openSocket();\n try {\n await this.connectPromise;\n } finally {\n this.connectPromise = null;\n }\n }\n\n private async openSocket(): Promise<void> {\n if (this.disposed) {\n throw new Error('WebSocket client is disposed');\n }\n\n await new Promise<void>((resolve, reject) => {\n let settled = false;\n const resolveConnected = (): void => {\n if (settled) {\n return;\n }\n settled = true;\n resolve();\n };\n const rejectConnection = (error: unknown): void => {\n if (settled) {\n return;\n }\n settled = true;\n reject(error);\n };\n const socket = new WebSocket(this.url, GRAPHQL_TRANSPORT_WS_PROTOCOL);\n this.socket = socket;\n this.acknowledged = false;\n\n socket.onopen = () => {\n resolveAuthHeaders()\n .catch(() => {\n return {};\n })\n .then((payload) => {\n if (socket.readyState !== WebSocket.OPEN) {\n return;\n }\n if (Object.keys(payload).length > 0) {\n this.send({ type: 'connection_init', payload });\n return;\n }\n this.send({ type: 'connection_init' });\n })\n .catch((error: unknown) => {\n rejectConnection(error);\n });\n };\n\n socket.onerror = () => {\n rejectConnection(new Error('GraphQL subscription websocket error'));\n };\n\n socket.onmessage = (event) => {\n this.handleMessage(event.data, resolveConnected, rejectConnection);\n };\n\n socket.onclose = () => {\n rejectConnection(new Error('GraphQL subscription websocket closed'));\n this.handleClose();\n };\n });\n }\n\n private handleMessage(\n data: unknown,\n connected: () => void,\n rejected: (error: unknown) => void,\n ): void {\n let message: GraphqlWsMessage;\n try {\n message = JSON.parse(String(data)) as GraphqlWsMessage;\n } catch {\n rejected(new Error('Invalid GraphQL websocket message'));\n this.socket?.close(4400, 'Invalid websocket message');\n return;\n }\n\n switch (message.type) {\n case 'connection_ack':\n this.acknowledged = true;\n this.retryCount = 0;\n this.startKeepAlive();\n connected();\n this.resubscribeActiveOperations();\n return;\n case 'connection_auth_update_ack':\n this.resolvePendingAuthUpdate(true);\n return;\n case 'next':\n this.subscriptions.get(message.id)?.sink.next(message.payload);\n return;\n case 'error':\n if (message.id != null) {\n this.failSubscription(message.id, message.payload);\n } else {\n this.resolvePendingAuthUpdate(false);\n }\n return;\n case 'complete':\n this.completeSubscription(message.id);\n return;\n case 'ping':\n this.send({ type: 'pong', payload: message.payload });\n return;\n case 'pong':\n return;\n default:\n rejected(new Error('Unsupported GraphQL websocket message'));\n this.socket?.close(4400, 'Unsupported websocket message');\n }\n }\n\n private handleClose(): void {\n this.acknowledged = false;\n this.socket = null;\n this.connectPromise = null;\n this.stopKeepAlive();\n this.resolvePendingAuthUpdate(false);\n if (!this.disposed && this.subscriptions.size > 0) {\n this.scheduleReconnect();\n }\n }\n\n private scheduleReconnect(): void {\n if (this.retryCount >= WS_MAX_RETRY_ATTEMPTS) {\n const error = new Error('GraphQL subscription websocket retry exhausted');\n for (const id of [...this.subscriptions.keys()]) {\n this.failSubscription(id, error);\n }\n return;\n }\n const delay =\n Math.min(8_000, WS_BASE_RETRY_DELAY_MS * 2 ** this.retryCount) +\n Math.random() * 200;\n this.retryCount += 1;\n setTimeout(() => {\n if (this.disposed || this.subscriptions.size === 0) {\n return;\n }\n this.ensureConnected().catch((error: unknown) => {\n this.scheduleReconnect();\n debugLog('subscription websocket reconnect failed', error);\n });\n }, delay);\n }\n\n private resubscribeActiveOperations(): void {\n for (const [id, subscription] of this.subscriptions) {\n this.send({\n id,\n type: 'subscribe',\n payload: subscription.payload,\n });\n }\n }\n\n private unsubscribe(id: string): void {\n const hadSubscription = this.subscriptions.delete(id);\n if (hadSubscription && this.socket?.readyState === WebSocket.OPEN) {\n this.send({ id, type: 'complete' });\n }\n }\n\n private failSubscription(id: string, error: unknown): void {\n const subscription = this.subscriptions.get(id);\n if (subscription == null) {\n return;\n }\n this.subscriptions.delete(id);\n subscription.sink.error(error);\n }\n\n private completeSubscription(id: string): void {\n const subscription = this.subscriptions.get(id);\n if (subscription == null) {\n return;\n }\n this.subscriptions.delete(id);\n subscription.sink.complete();\n }\n\n private startKeepAlive(): void {\n this.stopKeepAlive();\n this.keepAliveTimer = setInterval(() => {\n if (this.socket?.readyState === WebSocket.OPEN) {\n this.send({ type: 'ping' });\n }\n }, WS_KEEP_ALIVE_MS);\n }\n\n private stopKeepAlive(): void {\n if (this.keepAliveTimer != null) {\n clearInterval(this.keepAliveTimer);\n this.keepAliveTimer = null;\n }\n }\n\n private resolvePendingAuthUpdate(value: boolean): void {\n const pending = this.pendingAuthUpdate;\n if (pending == null) {\n return;\n }\n clearTimeout(pending.timeout);\n this.pendingAuthUpdate = null;\n pending.resolve(value);\n }\n\n private send(message: GraphqlWsPayload): void {\n const { socket } = this;\n if (socket?.readyState !== WebSocket.OPEN) {\n return;\n }\n socket.send(JSON.stringify(message));\n }\n}\n\n/**\n * Build or get a singleton graphql-transport-ws client with auth refresh support.\n */\nfunction getWsClient(): RelayWebSocketClient {\n if (wsClient != null) {\n return wsClient;\n }\n if (typeof window === 'undefined') {\n throw new Error(\n 'GraphQL subscriptions unavailable in non-browser environment',\n );\n }\n\n const url = resolveWebsocketUrl();\n wsClient = new RelayWebSocketClient(url);\n\n return wsClient;\n}\n\n/**\n * Get organization slug from current window location\n */\n// export function getOrganizationSlug(): string | null {\n// const { pathname } = window.location;\n// const slug = pathname.split('/')[1];\n// if (slug == null) {\n// return null;\n// }\n\n// return slug;\n// }\n\n// -------------------------\n// Upload detection helpers\n// -------------------------\n/** Test if a value is an uploadable (File/Blob) */\nfunction isUploadable(value: unknown): value is File | Blob {\n return (\n (typeof File !== 'undefined' && value instanceof File) ||\n (typeof Blob !== 'undefined' && value instanceof Blob)\n );\n}\n\ninterface FileRef {\n path: string; // JSON pointer-like (e.g. variables.input.file)\n file: File | Blob;\n}\n\n/** Recursively clone a structure replacing files with null and collecting them */\nfunction collectFiles(value: unknown, path: string, acc: FileRef[]): unknown {\n if (isUploadable(value)) {\n acc.push({ path, file: value });\n return null; // placeholder per multipart spec\n }\n if (Array.isArray(value)) {\n return value.map((v, i) => {\n return collectFiles(v, `${path}.${i}`, acc);\n });\n }\n if (value != null && typeof value === 'object') {\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n out[k] = collectFiles(v, `${path}.${k}`, acc);\n }\n return out;\n }\n return value; // primitives unchanged\n}\n\n/** Build GraphQL multipart form-data payload */\nfunction buildFormData(\n query: string,\n variables: Record<string, unknown>,\n): FormData {\n const files: FileRef[] = [];\n // Deep clone variables while replacing files with null\n const clonedVars = collectFiles(variables, 'variables', files) as Record<\n string,\n unknown\n >;\n\n const form = new FormData();\n const operations = { query, variables: clonedVars };\n form.append('operations', JSON.stringify(operations));\n\n const map: Record<string, string[]> = {};\n files.forEach((ref, idx) => {\n map[idx] = [ref.path];\n });\n form.append('map', JSON.stringify(map));\n files.forEach((ref, idx) => {\n form.append(String(idx), ref.file);\n });\n return form;\n}\n\n// -------------------------\n// Retry / timeout helpers\n// -------------------------\ninterface RetryOptions {\n maxAttempts: number; // total attempts including initial\n baseDelayMs: number;\n maxDelayMs: number;\n fetchTimeoutMs: number;\n}\n\nconst RETRY_OPTIONS: RetryOptions = {\n maxAttempts: 3,\n baseDelayMs: 300,\n maxDelayMs: 4000,\n fetchTimeoutMs: 600_000, // 10 minutes (parité avec ancien middleware)\n};\n\n/** Sleep helper with Promise */\nasync function sleep(ms: number): Promise<void> {\n await new Promise<void>((res) => {\n setTimeout(() => {\n res();\n }, ms);\n });\n}\n\n/** Exponential backoff with jitter */\nfunction calcBackoff(attempt: number, opts: RetryOptions): number {\n const exp = Math.min(opts.maxDelayMs, opts.baseDelayMs * 2 ** attempt);\n return exp + Math.random() * 0.2 * exp; // jitter 0-20%\n}\n\n/** Determine if an HTTP status is retryable */\nfunction isRetryableStatus(status: number): boolean {\n return status === 408 || status === 429 || (status >= 500 && status < 600);\n}\n\n/** Determine if an error should be treated as transient network issue */\nfunction isNetworkError(err: unknown): boolean {\n return (\n err instanceof TypeError ||\n (err instanceof Error && err.name === 'AbortError')\n );\n}\n\n// -------------------------\n// fetchFn implementation\n// -------------------------\ninterface GraphQLResponseErrorItem {\n [key: string]: unknown;\n message: string;\n}\n\ninterface GraphQLResponseShape<T = unknown> {\n data?: T;\n errors?: GraphQLResponseErrorItem[];\n extensions?: Record<string, unknown>;\n}\n\n/** Fetch GraphQL (with retry + upload) */\nasync function fetchFn(\n request: { text: string | null | undefined },\n variables: Record<string, unknown>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _cacheConfig: unknown,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _uploadables: unknown,\n): Promise<GraphQLResponseShape> {\n const queryText: string | null | undefined = request.text; // no persisted queries here (yet)\n if (queryText == null) {\n throw new Error('Missing GraphQL query text');\n }\n const safeQueryText: string = queryText; // narrowed non-null\n\n /** Execute one network attempt */\n async function execOnce(attempt: number): Promise<GraphQLResponseShape> {\n const controller = new AbortController();\n const timeout = setTimeout(() => {\n controller.abort();\n }, RETRY_OPTIONS.fetchTimeoutMs);\n try {\n let body: BodyInit;\n const headers: Record<string, string> = {};\n if (getAuthHeaders != null) {\n try {\n Object.assign(headers, await getAuthHeaders());\n } catch {\n // ignore auth header failures\n }\n }\n const hasFiles = ((): boolean => {\n try {\n const stack: unknown[] = [variables];\n while (stack.length > 0) {\n const v = stack.pop();\n if (isUploadable(v)) {\n return true;\n }\n if (Array.isArray(v)) {\n stack.push(...v);\n } else if (v != null && typeof v === 'object') {\n stack.push(...Object.values(v as Record<string, unknown>));\n }\n }\n } catch {\n // ignore traversal errors\n }\n return false;\n })();\n\n if (hasFiles) {\n body = buildFormData(safeQueryText, variables);\n } else {\n headers['Content-Type'] = 'application/json';\n body = JSON.stringify({ query: safeQueryText, variables });\n }\n\n const response = await fetch(graphqlHttpEndpoint, {\n method: 'POST',\n body,\n headers,\n credentials: 'include',\n signal: controller.signal,\n });\n\n if (!response.ok) {\n if (\n attempt < RETRY_OPTIONS.maxAttempts - 1 &&\n isRetryableStatus(response.status)\n ) {\n throw new Error(`Retryable HTTP status ${response.status}`);\n }\n const text = await response.text().catch(() => {\n return '';\n });\n throw new Error(`GraphQL HTTP error ${response.status}: ${text}`);\n }\n\n const json: GraphQLResponseShape = await response.json();\n if (Array.isArray(json.errors) && json.errors.length > 0) {\n debugLog('GraphQL errors', json.errors);\n }\n return json;\n } finally {\n clearTimeout(timeout);\n }\n }\n\n for (let attempt = 0; attempt < RETRY_OPTIONS.maxAttempts; attempt += 1) {\n try {\n return await execOnce(attempt);\n } catch (err) {\n const last = attempt === RETRY_OPTIONS.maxAttempts - 1;\n const retryable =\n isNetworkError(err) ||\n (err instanceof Error && err.message.includes('Retryable HTTP status'));\n if (!retryable || last) {\n debugLog('GraphQL fetch error', err);\n throw err;\n }\n const delay = calcBackoff(attempt, RETRY_OPTIONS);\n await sleep(delay);\n }\n }\n throw new Error('Exhausted retries without returning a result');\n}\n\n// -------------------------\n// subscribeFn implementation (wrap existing logic in Relay Observable)\n// -------------------------\n/** Subscription function bridging graphql-ws client to Relay */\nfunction subscribeFn(\n operation: { text: string | null | undefined; name: string },\n variables: Record<string, unknown>,\n): Observable<unknown> {\n debugLog('subscription:start', operation.name, variables);\n return Observable.create<unknown>((sink) => {\n const query = operation.text;\n if (query == null || query === '') {\n sink.error(new Error('Subscription operation text is empty'));\n return () => {\n // noop\n };\n }\n const client = getWsClient();\n const dispose = client.subscribe(\n { query, variables, operationName: operation.name },\n {\n next: (data) => {\n sink.next(data);\n },\n error: (err) => {\n let errorObj: Error;\n if (err instanceof Error) {\n errorObj = err;\n } else {\n errorObj = new Error('Subscription error');\n }\n sink.error(errorObj);\n },\n complete: () => {\n sink.complete();\n },\n },\n );\n return () => {\n dispose();\n };\n });\n}\n\n/**\n * Create native Relay network layer (fetch + subscribe)\n */\nexport function getNetwork(): ReturnType<typeof Network.create> {\n return Network.create(\n fetchFn as FetchFunction,\n subscribeFn as SubscribeFunction,\n );\n}\n\n/**\n * Get anonymous relay environment\n */\nexport function getEnvironment(): Environment {\n environment ??= new Environment({\n getDataID: getDataId,\n relayFieldLogger,\n network: getNetwork(),\n store: new Store(new RecordSource()),\n });\n\n return environment;\n}\n\n/**\n * Reset the Relay store by creating a new empty source\n */\nexport function resetRelayStore(): void {\n const environment = getEnvironment();\n\n // Create a new store with an empty source\n const source = new RecordSource();\n\n // Replace the data in the store with our empty source\n environment.getStore().publish(source);\n\n // Notify subscribers that the data has changed\n environment.getStore().notify();\n}\n\nexport const __test = {\n RelayWebSocketClient,\n buildFormData,\n calcBackoff,\n collectFiles,\n getDataId,\n isNetworkError,\n isRetryableStatus,\n isUploadable,\n};\n"],"mappings":"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"}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -71,7 +71,7 @@ export { EntityIdPickerDialog } from './components/backoffice/pickers/EntityIdPi
|
|
|
71
71
|
export { createInlineDataReader } from './relay/createInlineReader.js';
|
|
72
72
|
export { appendNodeToConnections, type AppendNodeToConnectionsOptions, } from './relay/connectionUtils.js';
|
|
73
73
|
export { RelayProvider } from './relay/RelayProvider.js';
|
|
74
|
-
export { configureRelayEnvironment, getEnvironment, getNetwork, getRelayTransportSnapshot, reconnectRelayWebSocket, resetRelayStore, subscribeRelayTransport, type RelayReconnectOptions, type RelayTransportSnapshot, type RelayTransportStatus, } from './relay/environment.js';
|
|
74
|
+
export { configureRelayEnvironment, getEnvironment, getNetwork, getRelayTransportSnapshot, reconnectRelayWebSocket, refreshRelayWebSocketAuthentication, resetRelayStore, subscribeRelayTransport, type RelayAuthRefreshOptions, type RelayReconnectOptions, type RelayTransportSnapshot, type RelayTransportStatus, } from './relay/environment.js';
|
|
75
75
|
export { identityView } from './relay/identityView.js';
|
|
76
76
|
export { requireField, requireLinkedRecordId, resolveAgentStartOutcome, resolveMutationOutcome, } from './relay/mutationResult.js';
|
|
77
77
|
export { useCursorResumableSubscription, type CursorSubscriptionControls, type UseCursorResumableSubscriptionArgs, } from './subscriptions/useCursorResumableSubscription.js';
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,27 @@ export interface RelayTransportSnapshot {
|
|
|
8
8
|
export interface RelayReconnectOptions {
|
|
9
9
|
reason?: string;
|
|
10
10
|
}
|
|
11
|
+
export interface RelayAuthRefreshOptions {
|
|
12
|
+
reason?: string;
|
|
13
|
+
}
|
|
11
14
|
type RelayTransportListener = () => void;
|
|
15
|
+
type SubscriptionSink = {
|
|
16
|
+
next: (value: unknown) => void;
|
|
17
|
+
error: (error: unknown) => void;
|
|
18
|
+
complete: () => void;
|
|
19
|
+
};
|
|
20
|
+
type ActiveSubscription = {
|
|
21
|
+
payload: {
|
|
22
|
+
query: string;
|
|
23
|
+
variables: Record<string, unknown>;
|
|
24
|
+
operationName: string;
|
|
25
|
+
};
|
|
26
|
+
sink: SubscriptionSink;
|
|
27
|
+
};
|
|
12
28
|
export declare function getRelayTransportSnapshot(): RelayTransportSnapshot;
|
|
13
29
|
export declare function subscribeRelayTransport(listener: RelayTransportListener): () => void;
|
|
14
30
|
export declare function reconnectRelayWebSocket(options?: RelayReconnectOptions): void;
|
|
31
|
+
export declare function refreshRelayWebSocketAuthentication(options?: RelayAuthRefreshOptions): Promise<void>;
|
|
15
32
|
export interface RelayEnvironmentConfiguration {
|
|
16
33
|
httpUrl?: string;
|
|
17
34
|
wsUrl?: string;
|
|
@@ -20,6 +37,37 @@ export interface RelayEnvironmentConfiguration {
|
|
|
20
37
|
getAuthHeaders?: () => Record<string, string> | Promise<Record<string, string>>;
|
|
21
38
|
}
|
|
22
39
|
export declare function configureRelayEnvironment(options?: RelayEnvironmentConfiguration): void;
|
|
40
|
+
declare class RelayWebSocketClient {
|
|
41
|
+
private readonly url;
|
|
42
|
+
private socket;
|
|
43
|
+
private connectPromise;
|
|
44
|
+
private disposed;
|
|
45
|
+
private acknowledged;
|
|
46
|
+
private retryCount;
|
|
47
|
+
private nextId;
|
|
48
|
+
private keepAliveTimer;
|
|
49
|
+
private readonly subscriptions;
|
|
50
|
+
private pendingAuthUpdate;
|
|
51
|
+
constructor(url: string);
|
|
52
|
+
hasActiveConnection(): boolean;
|
|
53
|
+
dispose(): void;
|
|
54
|
+
subscribe(payload: ActiveSubscription['payload'], sink: SubscriptionSink): () => void;
|
|
55
|
+
refreshAuthentication(): Promise<boolean>;
|
|
56
|
+
private connectAndSubscribe;
|
|
57
|
+
private ensureConnected;
|
|
58
|
+
private openSocket;
|
|
59
|
+
private handleMessage;
|
|
60
|
+
private handleClose;
|
|
61
|
+
private scheduleReconnect;
|
|
62
|
+
private resubscribeActiveOperations;
|
|
63
|
+
private unsubscribe;
|
|
64
|
+
private failSubscription;
|
|
65
|
+
private completeSubscription;
|
|
66
|
+
private startKeepAlive;
|
|
67
|
+
private stopKeepAlive;
|
|
68
|
+
private resolvePendingAuthUpdate;
|
|
69
|
+
private send;
|
|
70
|
+
}
|
|
23
71
|
declare function isUploadable(value: unknown): value is File | Blob;
|
|
24
72
|
interface FileRef {
|
|
25
73
|
path: string;
|
|
@@ -40,6 +88,7 @@ export declare function getNetwork(): ReturnType<typeof Network.create>;
|
|
|
40
88
|
export declare function getEnvironment(): Environment;
|
|
41
89
|
export declare function resetRelayStore(): void;
|
|
42
90
|
export declare const __test: {
|
|
91
|
+
RelayWebSocketClient: typeof RelayWebSocketClient;
|
|
43
92
|
buildFormData: typeof buildFormData;
|
|
44
93
|
calcBackoff: typeof calcBackoff;
|
|
45
94
|
collectFiles: typeof collectFiles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/relay/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EAOR,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/relay/environment.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumile/backoffice-react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.159",
|
|
4
4
|
"description": "React provider and pages for Kronex backoffice",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -179,11 +179,11 @@
|
|
|
179
179
|
"tslib": "^2.8.1"
|
|
180
180
|
},
|
|
181
181
|
"devDependencies": {
|
|
182
|
-
"@plumile/auth": "^0.1.
|
|
183
|
-
"@plumile/backoffice-core": "^0.1.
|
|
184
|
-
"@plumile/filter-query": "^0.1.
|
|
185
|
-
"@plumile/router": "^0.1.
|
|
186
|
-
"@plumile/ui": "^0.1.
|
|
182
|
+
"@plumile/auth": "^0.1.159",
|
|
183
|
+
"@plumile/backoffice-core": "^0.1.159",
|
|
184
|
+
"@plumile/filter-query": "^0.1.159",
|
|
185
|
+
"@plumile/router": "^0.1.159",
|
|
186
|
+
"@plumile/ui": "^0.1.159",
|
|
187
187
|
"@types/react": "19.2.15",
|
|
188
188
|
"@types/react-dom": "19.2.3",
|
|
189
189
|
"@types/relay-runtime": "20.1.1",
|
|
@@ -196,11 +196,11 @@
|
|
|
196
196
|
"typescript": "6.0.3"
|
|
197
197
|
},
|
|
198
198
|
"peerDependencies": {
|
|
199
|
-
"@plumile/auth": "^0.1.
|
|
200
|
-
"@plumile/backoffice-core": "^0.1.
|
|
201
|
-
"@plumile/filter-query": "^0.1.
|
|
202
|
-
"@plumile/router": "^0.1.
|
|
203
|
-
"@plumile/ui": "^0.1.
|
|
199
|
+
"@plumile/auth": "^0.1.158",
|
|
200
|
+
"@plumile/backoffice-core": "^0.1.158",
|
|
201
|
+
"@plumile/filter-query": "^0.1.158",
|
|
202
|
+
"@plumile/router": "^0.1.158",
|
|
203
|
+
"@plumile/ui": "^0.1.158",
|
|
204
204
|
"i18next": "^26.3.0",
|
|
205
205
|
"react": "^19.2.6",
|
|
206
206
|
"react-dom": "^19.2.6",
|