(function() { function tKey(key) { return typeof t === 'function' ? t(key) : key; } var defaults = { currentStep: 1, wizardProtocol: 'rest', wizardMode: 'create', wizardEditId: null, wizardWorkspaceId: null, wizardCurrentOperation: null, wizardCurrentVersion: null, wizardProtoUpload: null, wizardDescriptorSetUpload: null, wizardSoapWsdlUpload: null, wizardSoapXsdUpload: null, wizardTestResponsePreview: null, grpcDescriptorServices: [], soapServiceCatalog: [], wizardProtocolCapabilities: null, wizardSecrets: [], wizardAuthProfiles: [], selectedUpstreamId: null, editingUpstreamId: null, protoParsed: null, selectedRpcMethod: null, }; Object.keys(defaults).forEach(function(key) { if (typeof window[key] !== 'undefined') { return; } var value = defaults[key]; if (Array.isArray(value)) { window[key] = value.slice(); return; } if (value && typeof value === 'object') { window[key] = Object.assign({}, value); return; } window[key] = value; }); function defaultProtocolCapabilities() { return { rest: { supports_execution_modes: ['unary', 'window', 'session', 'async_job'], supports_transport_behaviors: ['request_response', 'server_stream', 'deferred_result'], }, graphql: { supports_execution_modes: ['unary'], supports_transport_behaviors: ['request_response'], }, grpc: { supports_execution_modes: ['unary', 'window', 'session', 'async_job'], supports_transport_behaviors: ['request_response', 'server_stream'], }, websocket: { supports_execution_modes: ['window', 'session', 'async_job'], supports_transport_behaviors: ['server_stream', 'stateful_session', 'deferred_result'], }, soap: { supports_execution_modes: ['unary', 'async_job'], supports_transport_behaviors: ['request_response', 'server_stream', 'deferred_result'], }, }; } function currentProtocolCapabilities() { var capabilities = window.wizardProtocolCapabilities || defaultProtocolCapabilities(); return capabilities[window.wizardProtocol] || capabilities.rest; } async function loadProtocolCapabilities() { if (!window.wizardWorkspaceId || !window.CrankApi || typeof window.CrankApi.getProtocolCapabilities !== 'function') { window.wizardProtocolCapabilities = defaultProtocolCapabilities(); return window.wizardProtocolCapabilities; } try { var response = await window.CrankApi.getProtocolCapabilities(window.wizardWorkspaceId); var mapped = {}; (response.items || []).forEach(function(item) { mapped[item.protocol] = item; }); window.wizardProtocolCapabilities = mapped; } catch (_error) { window.wizardProtocolCapabilities = defaultProtocolCapabilities(); } return window.wizardProtocolCapabilities; } function step3Labels() { return { rest: tKey('wizard.step3.rest.label'), graphql: tKey('wizard.step3.graphql.label'), grpc: tKey('wizard.step3.grpc.label'), websocket: tKey('wizard.step3.websocket.label'), soap: tKey('wizard.step3.soap.label'), }; } window.CrankWizardState = { state: window, defaultProtocolCapabilities: defaultProtocolCapabilities, currentProtocolCapabilities: currentProtocolCapabilities, loadProtocolCapabilities: loadProtocolCapabilities, step3Labels: step3Labels, }; }());