{"version":3,"sources":["client/HomePage.module.css","client/ShareButton.module.css","client/Downloading.module.css","../node_modules/@dekart-xyz/kepler.gl/dist/localization sync /^/.//.*$","client/WorkspacePage.module.css","client/Header.module.css","proto/dekart_pb.js","client/MembersTab.module.css","client/lib/bigQueryKeywords.js","client/lib/snowflakeKeywords.js","client/lib/datasource.js","client/lib/ref.js","client/PermanentError.js","client/StreamError.js","client/actions/message.js","client/actions/grpc.js","client/lib/api.js","client/lib/queryParams.js","client/actions/query.js","client/lib/getDatasetName.js","client/actions/dataset.js","client/lib/shouldUpdateDataset.js","client/actions/sessionStorage.js","client/actions/connection.js","client/actions/localStorage.js","client/actions/workspace.js","client/actions/user.js","client/lib/deepCompare.js","client/lib/mapConfig.js","client/actions/report.js","client/lib/shouldAddQuery.js","client/DekartMenu.js","client/actions/redirect.js","client/Header.js","client/actions/clipboard.js","client/actions/analytics.js","client/lib/tracking.js","client/AnalyticsModal.js","client/ShareButton.js","client/ForkOnboarding.js","client/ReportHeaderButtons.js","client/Downloading.js","client/DataDocumentationLink.js","client/Query.js","client/actions/file.js","client/File.js","client/Datasource.js","client/Dataset.js","client/DatasetSettingsModal.js","client/QueryParams.js","client/actions/readme.js","client/Readme.js","client/ReportPage.js","client/ConnectionModal.js","client/Onboarding.js","client/BigQueryConnectionTypeSelectorModal.js","client/HomePage.js","client/actions/usage.js","client/actions/env.js","client/SubscriptionTab.js","client/MembersTab.js","client/WorkspacePage.js","client/GrantScopesPage.js","client/App.js","client/reducers/queryReducer.js","client/actions/version.js","client/reducers/connectionReducer.js","client/reducers/userReducer.js","client/reducers/datasetReducer.js","client/reducers/storageReducer.js","client/reducers/sessionStorageReducer.js","client/reducers/readmeReducer.js","client/reducers/analyticsReducer.js","client/reducers/rootReducer.js","client/reducers/httpErrorReducer.js","client/reducers/tokenReducer.js","client/reducers/streamReducer.js","client/reducers/workspaceReducer.js","client/index.js","client/lib/screenshot.js","client/ConnectionModal.module.css","client/SubscriptionTab.module.css","client/AnalyticsModal.module.css","client/Dataset.module.css","client/QueryParams.module.css","client/Onboarding.module.css","client/DekartMenu.module.css","client/ReportHeaderButtons.module.css","client/Datasource.module.css","proto/dekart_pb_service.js","client/Readme.module.css","client/BigQueryConnectionTypeSelectorModal.module.css","client/ForkOnboarding.module.css","client/DatasetSettingsModal.module.css","client/GrantScopesPage.module.css","client/Query.module.css","client/File.module.css","client/ReportPage.module.css"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","jspb","require","goog","global","Function","exportSymbol","proto","GetReportAnalyticsRequest","opt_data","Message","initialize","this","inherits","DEBUG","COMPILED","displayName","GetReportAnalyticsResponse","AddReadmeRequest","AddReadmeResponse","RemoveReadmeRequest","RemoveReadmeResponse","AllowExportDatasetsRequest","AllowExportDatasetsResponse","CancelJobRequest","CancelJobResponse","PublishReportRequest","PublishReportResponse","GetStripePortalSessionRequest","GetStripePortalSessionResponse","UpdateWorkspaceUserRequest","UpdateWorkspaceUserResponse","GetWorkspaceRequest","GetWorkspaceResponse","repeatedFields_","CreateWorkspaceRequest","CreateWorkspaceResponse","UpdateWorkspaceRequest","UpdateWorkspaceResponse","RespondToInviteRequest","RespondToInviteResponse","GetInvitesRequest","WorkspaceInvite","GetInvitesResponse","User","GetGcpProjectListRequest","GetGcpProjectListResponse","SetDefaultConnectionRequest","SetDefaultConnectionResponse","RunAllQueriesRequest","RunAllQueriesResponse","Workspace","Subscription","CreateSubscriptionRequest","CreateSubscriptionResponse","GetConnectionListRequest","GetConnectionListResponse","GetUserStreamRequest","GetUserStreamResponse","TestConnectionRequest","TestConnectionResponse","ArchiveConnectionRequest","ArchiveConnectionResponse","UpdateConnectionRequest","UpdateConnectionResponse","CreateConnectionRequest","CreateConnectionResponse","Connection","Secret","GetUsageRequest","GetUsageResponse","SetDiscoverableRequest","SetDiscoverableResponse","RemoveDatasetRequest","RemoveDatasetResponse","StreamOptions","GetEnvRequest","GetEnvResponse","Variable","RedirectState","AuthState","ArchiveReportRequest","ArchiveReportResponse","ReportListRequest","ReportListResponse","Readme","ReportAnalytics","Report","Dataset","QueryJob","Query","File","UpdateReportRequest","UpdateReportResponse","RunQueryRequest","RunQueryResponse","UpdateDatasetNameRequest","UpdateDatasetNameResponse","UpdateDatasetConnectionRequest","UpdateDatasetConnectionResponse","CreateDatasetRequest","CreateDatasetResponse","CreateFileRequest","CreateFileResponse","CreateQueryRequest","CreateQueryResponse","ReportStreamRequest","ReportStreamResponse","ForkReportRequest","ForkReportResponse","CreateReportRequest","CreateReportResponse","QueryParam","GENERATE_TO_OBJECT","prototype","toObject","opt_includeInstance","includeInstance","msg","obj","reportId","getFieldWithDefault","$jspbMessageInstance","deserializeBinary","bytes","reader","BinaryReader","deserializeBinaryFromReader","nextField","isEndGroup","getFieldNumber","value","readString","setReportId","skipField","serializeBinary","writer","BinaryWriter","serializeBinaryToWriter","getResultBuffer","message","f","getReportId","length","writeString","setProto3StringField","analytics","getAnalytics","readMessage","setAnalytics","writeMessage","getWrapperField","setWrapperField","clearAnalytics","undefined","hasAnalytics","getField","markdown","setMarkdown","getMarkdown","allowExport","getBooleanFieldWithDefault","readBool","setAllowExport","getAllowExport","writeBool","setProto3BooleanField","jobId","setJobId","getJobId","publish","setPublish","getPublish","uiUrl","setUiUrl","getUiUrl","url","setUrl","getUrl","email","userUpdateType","role","setEmail","readEnum","setUserUpdateType","setRole","getEmail","getUserUpdateType","writeEnum","getRole","UserUpdateType","USER_UPDATE_TYPE_UNSPECIFIED","USER_UPDATE_TYPE_ADD","USER_UPDATE_TYPE_REMOVE","USER_UPDATE_TYPE_UPDATE","setProto3EnumField","workspace","getWorkspace","subscription","getSubscription","usersList","toObjectList","getUsersList","invitesList","getInvitesList","addedUsersCount","setWorkspace","setSubscription","addUsers","addInvites","readInt64","setAddedUsersCount","writeRepeatedMessage","getAddedUsersCount","writeInt64","clearWorkspace","hasWorkspace","clearSubscription","hasSubscription","getRepeatedWrapperField","setUsersList","setRepeatedWrapperField","opt_value","opt_index","addToRepeatedWrapperField","clearUsersList","setInvitesList","clearInvitesList","setProto3IntField","workspaceName","setWorkspaceName","getWorkspaceName","inviteId","accept","setInviteId","setAccept","getInviteId","getAccept","workspaceId","inviterEmail","createdAt","setWorkspaceId","setInviterEmail","setCreatedAt","getWorkspaceId","getInviterEmail","getCreatedAt","updatedAt","status","setUpdatedAt","setStatus","getUpdatedAt","getStatus","projectsList","getRepeatedField","addProjects","getProjectsList","writeRepeatedString","setProjectsList","setField","addToRepeatedField","clearProjectsList","connectionId","setConnectionId","getConnectionId","queryParamsList","getQueryParamsList","queryParamsValues","addQueryParams","setQueryParamsValues","getQueryParamsValues","setQueryParamsList","clearQueryParamsList","name","setId","setName","getId","getName","planType","customerId","stripeSubscriptionId","stripeCustomerEmail","cancelAt","itemId","setPlanType","setCustomerId","setStripeSubscriptionId","setStripeCustomerEmail","setCancelAt","setItemId","getPlanType","getCustomerId","getStripeSubscriptionId","getStripeCustomerEmail","getCancelAt","getItemId","redirectUrl","setRedirectUrl","getRedirectUrl","connectionsList","getConnectionsList","addConnections","setConnectionsList","clearConnectionsList","streamOptions","getStreamOptions","setStreamOptions","clearStreamOptions","hasStreamOptions","connectionUpdate","workspaceUpdate","setConnectionUpdate","setWorkspaceUpdate","getConnectionUpdate","getWorkspaceUpdate","connection","getConnection","setConnection","clearConnection","hasConnection","success","error","setSuccess","setError","getSuccess","getError","connectionName","bigqueryProjectId","cloudStorageBucket","isDefault","authorEmail","datasetCount","canStoreFiles","connectionType","snowflakeAccountId","snowflakeUsername","snowflakePassword","getSnowflakePassword","snowflakeWarehouse","bigqueryKey","getBigqueryKey","setConnectionName","setBigqueryProjectId","setCloudStorageBucket","setIsDefault","setAuthorEmail","setDatasetCount","setCanStoreFiles","setConnectionType","setSnowflakeAccountId","setSnowflakeUsername","setSnowflakePassword","setSnowflakeWarehouse","setBigqueryKey","getConnectionName","getBigqueryProjectId","getCloudStorageBucket","getIsDefault","getAuthorEmail","getDatasetCount","getCanStoreFiles","getConnectionType","getSnowflakeAccountId","getSnowflakeUsername","getSnowflakeWarehouse","clearSnowflakePassword","hasSnowflakePassword","clearBigqueryKey","hasBigqueryKey","clientEncrypted","serverEncrypted","setClientEncrypted","setServerEncrypted","readInt32","setLength","getClientEncrypted","getServerEncrypted","getLength","writeInt32","totalReports","totalQueries","totalFiles","totalAuthors","setTotalReports","setTotalQueries","setTotalFiles","setTotalAuthors","getTotalReports","getTotalQueries","getTotalFiles","getTotalAuthors","discoverable","allowEdit","setDiscoverable","setAllowEdit","getDiscoverable","getAllowEdit","datasetId","setDatasetId","getDatasetId","sequence","setSequence","getSequence","variablesList","getVariablesList","addVariables","type","setType","setValue","getType","getValue","Type","TYPE_UNSPECIFIED","TYPE_MAPBOX_TOKEN","TYPE_UX_DATA_DOCUMENTATION","TYPE_UX_HOMEPAGE","TYPE_ALLOW_FILE_UPLOAD","TYPE_DATASOURCE","TYPE_STORAGE","TYPE_REQUIRE_AMAZON_OIDC","TYPE_REQUIRE_IAP","TYPE_DISABLE_USAGE_STATS","TYPE_REQUIRE_GOOGLE_OAUTH","TYPE_BIGQUERY_PROJECT_ID","TYPE_CLOUD_STORAGE_BUCKET","TYPE_UX_ACCESS_ERROR_INFO_HTML","TYPE_UX_NOT_FOUND_ERROR_INFO_HTML","TYPE_UX_SAMPLE_QUERY_SQL","TYPE_AES_KEY","TYPE_AES_IV","TYPE_AUTH_ENABLED","TYPE_USER_DEFINED_CONNECTION","setVariablesList","clearVariablesList","tokenJson","sensitiveScopesGranted","setTokenJson","setSensitiveScopesGranted","getTokenJson","getSensitiveScopesGranted","action","authUrl","accessTokenToRevoke","switchAccount","sensitiveScope","loginHint","setAction","setAuthUrl","setAccessTokenToRevoke","setSwitchAccount","setSensitiveScope","setLoginHint","getAction","getAuthUrl","getAccessTokenToRevoke","getSwitchAccount","getSensitiveScope","getLoginHint","Action","ACTION_UNSPECIFIED","ACTION_REQUEST_CODE","ACTION_REQUEST_TOKEN","ACTION_REVOKE","archive","setArchive","getArchive","reportsList","getReportsList","addReports","setReportsList","clearReportsList","viewersTotal","viewers7d","viewers24h","setViewersTotal","setViewers7d","setViewers24h","getViewersTotal","getViewers7d","getViewers24h","mapConfig","title","archived","canWrite","isAuthor","isSharable","needSensitiveScope","isPlayground","isPublic","readme","getReadme","setMapConfig","setTitle","setArchived","setCanWrite","setIsAuthor","setIsSharable","setNeedSensitiveScope","setIsPlayground","setIsPublic","setReadme","getMapConfig","getTitle","getArchived","getCanWrite","getIsAuthor","getIsSharable","getNeedSensitiveScope","getIsPlayground","getIsPublic","clearReadme","hasReadme","queryId","fileId","setQueryId","setFileId","getQueryId","getFileId","queryText","jobResultId","jobError","jobDuration","totalRows","bytesProcessed","resultSize","jobStatus","dwJobId","queryParamsHash","setQueryText","setJobResultId","setJobError","setJobDuration","setTotalRows","setBytesProcessed","setResultSize","setJobStatus","setDwJobId","setQueryParamsHash","getQueryText","getJobResultId","getJobError","getJobDuration","getTotalRows","getBytesProcessed","getResultSize","getJobStatus","getDwJobId","getQueryParamsHash","JobStatus","JOB_STATUS_UNSPECIFIED","JOB_STATUS_PENDING","JOB_STATUS_RUNNING","JOB_STATUS_DONE_LEGACY","JOB_STATUS_READING_RESULTS","JOB_STATUS_DONE","querySource","querySourceId","setQuerySource","setQuerySourceId","getQuerySource","getQuerySourceId","QuerySource","QUERY_SOURCE_UNSPECIFIED","QUERY_SOURCE_INLINE","QUERY_SOURCE_STORAGE","mimeType","size","sourceId","fileStatus","uploadError","setMimeType","setSize","setSourceId","setFileStatus","setUploadError","getMimeType","getSize","getSourceId","getFileStatus","getUploadError","Status","STATUS_UNSPECIFIED","STATUS_NEW","STATUS_RECEIVED","STATUS_STORED","queryList","getQueryList","addQuery","setQueryList","clearQueryList","query","getQuery","setQuery","clearQuery","hasQuery","report","getReport","setReport","clearReport","hasReport","queriesList","getQueriesList","datasetsList","getDatasetsList","filesList","getFilesList","queryJobsList","getQueryJobsList","addQueries","addDatasets","addFiles","addQueryJobs","setQueriesList","clearQueriesList","setDatasetsList","clearDatasetsList","setFilesList","clearFilesList","setQueryJobsList","clearQueryJobsList","label","defaultValue","setLabel","setDefaultValue","getLabel","getDefaultValue","TYPE_STRING","UserStatus","USER_STATUS_UNSPECIFIED","USER_STATUS_PENDING","USER_STATUS_ACTIVE","USER_STATUS_REMOVED","USER_STATUS_REJECTED","UserRole","ROLE_UNSPECIFIED","ROLE_ADMIN","ROLE_EDITOR","ROLE_VIEWER","PlanType","TYPE_PERSONAL","TYPE_TEAM","TYPE_GROW","TYPE_MAX","ConnectionType","CONNECTION_TYPE_UNSPECIFIED","CONNECTION_TYPE_BIGQUERY","CONNECTION_TYPE_SNOWFLAKE","object","extend","bigQueryKeywords","meta","snowflakeKeywords","bigQueryCustomCompleter","getCompletions","editor","session","pos","prefix","callback","snowflakeCustomCompleter","getDatasourceMeta","datasource","style","completer","examplesUrl","sampleQuery","usageStatsId","getHostname","location","hostname","sha256","toString","slice","getStats","env","usage","variables","DATASOURCE","stats","join","getUrlRef","window","v","version","loaded","DISABLE_USAGE_STATS","PermanentError","onClick","reload","StreamError","warn","content","transitive","duration","info","err","dispatch","console","includes","setHttpError","errorDetails","trace","setStreamError","config","top","REACT_APP_API_HOST","process","host","grpcCall","method","request","reject","async","getState","token","user","headers","Headers","append","access_token","response","unary","passErr","GrpcError","metadata","Promise","grpc","onEnd","statusMessage","debug","CancelableRequest","constructor","canceled","cancel","bind","setInvokeRequest","cancelInvoke","super","grpcStream","endpoint","cb","cancelable","getStream","mes","addEventListener","grpcStreamCancel","stream","streamObj","methodName","onMessage","onError","retryCount","currentSequence","invoke","messageObj","document","hidden","onVisibilityChange","removeEventListener","setTimeout","Math","pow","ApiError","AbortError","get","signal","onProgress","xhr","XMLHttpRequest","open","setRequestHeader","responseType","onload","parseHeaders","getAllResponseHeaders","res","Response","statusText","text","then","catch","onerror","onabort","onprogress","event","abort","send","headersString","trim","split","forEach","line","parts","key","shift","getQueryParamsObjArr","queryParams","p","param","queryChanged","queries","find","q","changed","updateQueryParamsFromQueries","queryStatus","allText","k","queryParamNames","matches","match","getParameterNamesFromQuery","qp","existingParam","addedParam","push","getQueryParamsFromQuery","list","createQuery","Dekart","CreateQuery","runQuery","RunQuery","runAllQueries","RunAllQueries","cancelJob","CancelJob","downloadQuerySource","findIndex","openQueryParamSettings","closeQueryParamSettings","queryParamChanged","setQueryParamValue","valuesIn","values","paramsStr","params","URLSearchParams","set","getQueryParamsString","history","replaceState","pathname","hash","md5","getDatasetName","dataset","files","file","createDataset","CreateDataset","setActiveDataset","datasets","d","updateDatasetName","UpdateDatasetName","updateDatasetConnection","UpdateDatasetConnection","removeDataset","active","activeDataset","datasetsLeft","filter","RemoveDataset","keplerDatasetStartUpdating","keplerDatasetFinishUpdating","downloadingProgress","processDownloadError","canRun","finishDownloading","prevDatasetsList","extension","finishAddingDatasetToMap","addDatasetToMap","keplerGl","data","csv","processCsvData","json","processGeojson","addedDatasets","kepler","visState","prevDataset","prevLabel","layerOrder","concat","layersAr","layers","layer","layerIdOrder","KeplerGlSchema","getConfigToSave","dataId","filters","removeDatasetFromKepler","addDataToMap","options","keepExistingConfig","newLayersAr","newOrder","indexOf","i","reorderLayer","reportStatus","edit","toggleSidePanel","cancelDownloading","downloading","controller","downloadDataset","AbortController","openDatasetSettingsModal","closeDatasetSettingsModal","shouldUpdateDataset","SESSION_STORAGE_KEY","initialState","lastOpenedDialog","redirectWhenSaveConnection","current","sessionStorageReset","sessionStorage","removeItem","sessionStorageInit","updateSessionStorage","setItem","JSON","stringify","connectionCreated","closeConnectionDialog","projectListUpdate","getProjectList","GetGcpProjectList","editConnection","setDefaultConnection","SetDefaultConnection","connectionSaved","archiveConnection","ArchiveConnection","newConnectionScreen","show","reOpenDialog","newConnection","needSensitiveScopes","connectionListUpdate","GetConnectionList","repeat","href","saveConnection","connectionProps","prevConnection","c","secret","encryptPassword","AES_KEY","AES_IV","newBigqueryKey","UpdateConnection","CreateConnection","connectionChanged","testConnectionResponse","password","iv","keyArrayBuffer","crypto","subtle","importKey","base64ToArrayBuffer","ivArray","encoder","TextEncoder","buffer","binary","Uint8Array","len","byteLength","String","fromCharCode","btoa","arrayBufferToBase64","encrypt","encode","base64","binaryString","atob","charCodeAt","testConnection","TestConnection","LOCAL_STORAGE_KEY","sensitiveScopesGrantedOnce","localStorageReset","localStorage","localStorageInit","updateLocalStorage","redirectToCustomerPortal","GetStripePortalSession","respondToInvite","RespondToInvite","createWorkspace","CreateWorkspace","updateWorkspace","UpdateWorkspace","GetWorkspace","createSubscription","plantType","CreateSubscription","updateWorkspaceUser","UpdateWorkspaceUser","userStreamUpdate","userStream","subscribeUserStream","prevRes","GetUserStream","switchPlayground","redirect","unsubscribeUserStream","deepCompare","obj1","obj2","keys1","keys2","sort","shouldUpdateMapConfig","oldMapConfigIn","newMapConfigIn","newMapConfig","structuredClone","mapState","latitude","longitude","zoom","oldMapConfig","useCheckMapConfig","useDispatch","useSelector","state","updatingNum","useEffect","mapConfigInputStr","checkMapConfigTimer","clearTimeout","configToSaveObj","parse","setReportChanged","checkMapConfig","closeReport","GetReportStream","toggleReportEdit","fullscreen","openReport","getReportStream","reportStreamResponse","reportUpdate","prevQueriesList","prevFileList","queryJobs","prevQueryJobsList","lastChanged","lastSaved","mapConfigUpdated","newConfig","newConfigNormalized","parseSavedConfig","receiveMapConfig","receiveReportUpdateMapConfig","prevQueryState","shouldDownloadQueryText","ALLOW_FILE_UPLOAD","queryJob","job","prevQueryJobList","prevQueryJobState","shouldAddQuery","prevFileState","shouldAddFile","userDefined","subscribeReports","GetReportListStream","reportsListUpdate","unsubscribeReports","SetDiscoverable","archiveReport","ArchiveReport","newReport","newForkedReport","allowExportDatasets","AllowExportDatasets","publishReport","PublishReport","forkReport","ForkReport","createReport","CreateReport","reportTitleChange","savedReport","toggleReportFullscreen","saveMap","onSaveComplete","Date","now","configToSave","reduce","readmeProp","UpdateReport","popupOffset","WorkspaceIndicator","Item","className","styles","workspaceIndicator","disabled","LockOutlined","GlobalOutlined","DekartMenu","userDefinedConnection","authEnabled","isViewer","ref","dekartMenu","mode","theme","SubMenu","popupClassName","subMenu","MenuOutlined","to","MessageOutlined","target","rel","color","setRedirectState","redirectState","requestSensitiveScopes","returnPath","URL","authRedirect","stateBase64","apply","searchParams","getSignature","n","buttonDivider","useHistory","items","classNames","overlayClassName","userDropdown","menu","Header","buttons","homePage","UX_HOMEPAGE","header","left","middle","titleWrap","dekartLinkHolder","dekartLink","dekartTitle","Boolean","copyUrlToClipboard","successMessage","copy","setAnalyticsModalOpen","modalOpen","setAnalyticsData","getAnalyticsData","GetReportAnalytics","track","plausible","arguments","AnalyticsModal","buttonRef","useRef","loading","setLoading","useState","allowedToExport","blob","createObjectURL","a","timestamp","toISOString","replace","download","onCancel","footer","width","modalContent","statsColumn","UserOutlined","downloadButton","icon","downloadTooltip","paragraph","rows","CopyLinkButton","playgroundReport","LinkOutlined","PublishSwitchDescription","PublishSwitch","switchState","setSwitchState","checked","onChange","ViewAnalytics","viewAnalytics","BarChartOutlined","PublicPermissions","boolStatus","boolStatusIcon","boolStatusLabel","statusLabelTitle","statusLabelDescription","boolStatusControl","AllowExportData","DownloadOutlined","WorkspacePermissionsDescription","workspacePermissions","workspacePermissionsLabels","WorkspacePermissionsTitle","WorkspacePermissionsSelect","permissionValueFromReportProps","selectValue","setSelectValue","workspaceStatusSelect","newValue","reportPropsFromPermissionValue","WorkspacePermissions","workspaceStatus","workspaceStatusIcon","TeamOutlined","workspaceStatusLabel","workspaceStatusControl","ModalContent","envLoaded","ShareButton","setModalOpen","analyticsModalOpen","ghost","visible","onOk","bodyStyle","padding","modalFooter","UserAddOutlined","modalFooterSpacer","useRequireOnboarding","requireWorkspace","connections","connectionListLoaded","listLoaded","connectionTypesRequired","acc","connectionTypes","alreadyConnectedTypes","missingConnectionTypes","ForkOnboarding","requireOnboarding","setVisible","button","ForkOutlined","description","ForkButton","primary","userIsPlayground","RefreshButton","numRunningQueries","LoadingOutlined","ReloadOutlined","useReportChanged","EditModeButtons","saving","online","handler","useAutoSave","reportHeaderButtons","ExportDropdown","CloudSyncOutlined","CloudOutlined","EyeOutlined","search","goToPresent","toggleModal","EXPORT_MAP_ID","EXPORT_DATA_ID","EXPORT_IMAGE_ID","placement","goToSource","ViewModeButtons","EditOutlined","ConsoleSqlOutlined","ReportHeaderButtons","CancelDownloadingButton","DownloadingMessage","j","l","prettyBites","closeMessage","Downloading","maxDatasetSize","setMaxDatasetSize","downloaded","addingToMap","pendingConfirmationList","pendingConfirmation","setPendingConfirmation","messageHolder","useMessage","mdl","modalHolder","Modal","useModal","showDownloading","pending","confirm","round","DataDocumentationLink","UX_DATA_DOCUMENTATION","CancelButton","JobTimer","lastUpdated","durationMs","setDuration","iterator","Duration","fromMillis","jobTimer","toFormat","StatusActions","statusActions","QueryEditor","useConnectionType","ace","addCompleter","height","keyboardHandler","readOnly","editorProps","$blockScrolling","setOptions","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","highlightActiveLine","highlightGutterLine","SampleQuery","PlaygroundWarning","showPlaygroundWarning","playgroundWarning","QueryStatus","children","errorMessage","errorInfoHtml","UX_ACCESS_ERROR_INFO_HTML","UX_NOT_FOUND_ERROR_INFO_HTML","ExclamationCircleTwoTone","twoToneColor","ClockCircleTwoTone","CheckCircleTwoTone","statusHead","tooltip","spacer","dangerouslySetInnerHTML","__html","UX_SAMPLE_QUERY_SQL","dc","downloadingSource","dataDoc","showSampleQuery","SendOutlined","uploadFileProgress","total","uploadFileStateChange","readyState","uploadFile","formData","FormData","upload","timeout","multipart","createFile","CreateFile","getFileExtensionName","FileIcon","fileInfo","fileIcon","fileIconBody","fileIconExtension","getStorageName","storageName","STORAGE","FileStatus","fileToUpload","fileUploadStatus","errorStatus","processed","setFileToUpload","uploadButtonDisabled","uploadFileInfo","uploadFileName","maxCount","fileList","beforeUpload","uploadIcon","InboxOutlined","uploadHeader","uploadSubtitle","UploadOutlined","Datasource","DatasourceIcon","datasourceIcon","DatasetTypeSelector","connectionList","allowFileUpload","disabledFileUploadNote","datasetTypeSelector","block","DatasetSelector","selectedConnection","datasetSelector","selector","placeholder","connectionSelect","onSelect","connectionEditButton","MoreOutlined","ModalFooter","setSaving","numDatasets","danger","okText","okType","cancelText","DatasetSettingsModal","settings","modalBody","Label","useCanEditReport","SettingsButton","editable","settingsButton","settingsButtonDisabled","TextParameter","queryParam","textParameter","addonBefore","suffix","form","layout","onSave","QueryParams","Form","useForm","useLocation","tempDisabled","setTempDisabled","modal","modalQueryParam","applyButtonDisabled","startsWith","substring","setFieldsValue","wrapper","onSubmitCapture","preventDefault","index","DoubleRightOutlined","htmlType","getFieldsValue","removeReadme","RemoveReadme","addReadme","AddReadme","setPreview","setReadmeValue","showReadmeTab","showPreview","previewButton","preview","TabIcon","iconColor","tabIcon","backgroundColor","getOnTabEditHandler","QueryTooltip","connectionMeta","queryTooltip","toLocaleString","DatasetSection","readmeTab","showReadme","showTab","closable","TabPane","addTabPane","tab","ReadOutlined","enable","right","bottom","topRight","bottomRight","bottomLeft","topLeft","resizable","defaultSize","datasetSectionWrapper","datasetSection","tabs","activeKey","tabId","hideAdd","onEdit","tabTitle","closeIcon","getTabPane","addTab","PlusOutlined","addTabIcon","Title","setEdit","titleInput","onBlur","autoFocus","classnames","titleText","titleTextEdit","titleEditIcon","CatchKeplerError","Component","props","hasError","componentDidCatch","errorInfo","setState","render","keplerError","WarningFilled","ToggleFullscreenButton","toggleFullscreen","toggleFullscreenButton","VerticalAlignBottomOutlined","Kepler","keplerBlock","mapboxApiAccessToken","MAPBOX_TOKEN","ReportPage","useParams","item","updatedAtDate","body","keplerFlexWrapper","keplerFlex","dot","author","Footer","testDisabled","dialog","test","tested","testing","testError","testSuccess","isAdmin","testStatus","resetFields","SnowflakeConnectionModal","s","datasetUsed","passwordChanged","getFieldValue","onValuesChange","changedValues","allValues","datasetsCountAlert","required","extra","Password","visibilityToggle","onFocus","BigQueryServiceAccountConnectionModal","projects","showKey","setShowKey","nameChangeOnly","TextArea","BigQueryConnectionModal","project","showArrow","filterOption","inputValue","option","toUpperCase","ConnectionModal","Onboarding","steps","onboarding","onboardingIconWrapper","onboardingIcon","onboardingContent","onboardingTitle","onboardingSteps","BigQueryConnectionTypeSelectorModal","onClose","connectionOptions","connectionOptionsItem","Loading","ArchiveReportButton","setDisabled","deleteButton","columns","dataIndex","t","iconColumn","titleColumn","authorColumn","deleteColumn","OpenConnectionButton","SetDefault","filterColumns","getColumns","reportFilter","FirstReportOnboarding","subTitle","stepBySetLink","ConnectionTypeSelector","showCancel","bigqueryModalOpen","setBigqueryModalOpen","connectionTypeSelector","connectionSelectorBack","notSure","ApiTwoTone","ReportsHeader","reportsHeader","Group","Button","reportsHeaderTitle","rightCornerAction","archivedSwitch","archivedSwitchLabel","Reports","createReportButton","screen","reports","my","dataSource","showHeader","rowClassName","reportsRow","pagination","rowKey","OnboardingDiscoverableReports","OnboardingMyReports","FileSearchOutlined","UsergroupAddOutlined","HomePage","connectionsLoaded","setUsage","getUsage","GetUsage","setEnv","typeToName","getEnv","GetEnv","PlanTitle","price","selected","planTitle","planTitleText","planTitlePrice","planTitleDescription","level","Plan","hover","setHover","waitForRedirect","setWaitForRedirect","actionButton","hoverable","onMouseEnter","onMouseLeave","actions","Plans","plans","Text","CheckCircleOutlined","SubscriptionTab","subscriptionTab","termsLink","MembersTab","users","addUserCb","useCallback","inviteDisabled","teamTab","inviteUsers","compact","inviteUsersInput","autoComplete","pattern","onPressEnter","inviteUsersButton","userTable","u","userListRow","emailColumn","CopyOutlined","inviteButton","removeButtonColumn","RemoveButton","removing","setRemoving","removeButton","Invites","invites","inviteList","workspaceNameColumn","invite","inviteActionsColumn","acceptButton","publicDomains","suggestWorkspaceName","domain","str","charAt","CreateWorkspaceForm","onFinish","source","rules","UpdateWorkspaceForm","initialValues","WorkspaceTab","nextStep","setNextStep","workspaceTab","workspaceTabHeader","count","offset","joinRadioItem","optionType","buttonStyle","workspaceTabBody","getMembersSubTitle","isNaN","step","setStep","workspaceSteps","AppstoreTwoTone","CreditCardOutlined","WelcomeScreen","rocketIcon","notSureItems","WorkspacePage","workspacePage","getLastPage","visitedPages","page","pop","GrantScopesPage","grantScopesPage","CloudTwoTone","fontSize","FileProtectOutlined","has","redirectStateBase64","redirectStateStr","redirectStateArr","call","x","redirectStateBytes","DekartRedirectState","delete","AppRedirect","httpError","doNotAuthenticate","newReportId","sensitiveScopesNeeded","reportOpened","opened","redirectStateReceived","RedirectToSource","PageHistory","SwitchToPlayground","NotFoundPage","QuestionOutlined","ErrorPage","App","React","storageLoaded","storage","page401","sessionStorageValue","getItem","localStorageValue","loadData","exact","path","userInvite","WarningOutlined","emptyStringHash","combineReducers","newRelease","release","sessionStorageLoaded","localStorageLoaded","init","customKeplerGlReducer","keplerGlReducer","uiState","currentModal","activeSidePanel","defaultReportStatus","dataAdded","defaultReportsList","defaultUsage","defaultEnv","authType","newState","KeplerActionTypes","REGISTER_ENTRY","setUserMapboxAccessTokenUpdater","payload","mapStyle","ADD_DATA_TO_MAP","AUTH_ENABLED","redirecting","NaN","downloadingResults","wasChanged","assign","loadingNumber","store","createStore","reducer","compose","applyMiddleware","taskMiddleware","thunk","dekartMapScreenshot","unsubscribe","subscribe","exportImage","imageDataUri","setExportImageSetting","exporting","processing","mapH","mapW","ReactDOM","getElementById","proto_dekart_pb","serviceName","DekartClient","serviceHost","service","requestStream","responseStream","requestType","requestMessage","client","transport","Code","OK","trailers","close","updateReport","listeners","end","responseMessage","details","on","getReportListStream","getUserStream","getReportAnalytics","createConnection","getGcpProjectList","updateConnection","getConnectionList","getStripePortalSession"],"mappings":"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","file":"static/js/main.8dad91f4.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"homePage\":\"HomePage_homePage__1QgrG\",\"body\":\"HomePage_body__26G3u\",\"iconColumn\":\"HomePage_iconColumn__39odN\",\"dataDocs\":\"HomePage_dataDocs__2GkXT\",\"popconfirmTitle\":\"HomePage_popconfirmTitle__KSoWU\",\"popconfirmDescription\":\"HomePage_popconfirmDescription__2IKAJ\",\"deleteColumn\":\"HomePage_deleteColumn__xvFtY\",\"reportsRow\":\"HomePage_reportsRow__k2Igy\",\"deleteButton\":\"HomePage_deleteButton__2vzkV\",\"titleColumn\":\"HomePage_titleColumn__24CUm\",\"reports\":\"HomePage_reports__2yvCf\",\"headerButtons\":\"HomePage_headerButtons__2w1wr\",\"reportsHeader\":\"HomePage_reportsHeader__3wZv-\",\"archivedSwitchLabel\":\"HomePage_archivedSwitchLabel__3EB2K\",\"archivedSwitch\":\"HomePage_archivedSwitch__U69fu\",\"newReleaseTitle\":\"HomePage_newReleaseTitle__1hKmn\",\"newReleaseIcon\":\"HomePage_newReleaseIcon__2VqO5\",\"connectionSelectorBack\":\"HomePage_connectionSelectorBack__DXN6S\",\"notSure\":\"HomePage_notSure__1WhfP\",\"authorColumn\":\"HomePage_authorColumn__24WPG\",\"newRelease\":\"HomePage_newRelease__1Q-h5\",\"reportsHeaderTitle\":\"HomePage_reportsHeaderTitle__2q7eN\",\"rightCornerAction\":\"HomePage_rightCornerAction__3X3Yf\",\"stepBySetLink\":\"HomePage_stepBySetLink__3JVoL\",\"connectionTypeSelector\":\"HomePage_connectionTypeSelector__3MXnm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalFooter\":\"ShareButton_modalFooter__2_BjR\",\"modalFooterSmallSpacer\":\"ShareButton_modalFooterSmallSpacer__1b3fW\",\"modalFooterSpacer\":\"ShareButton_modalFooterSpacer__2TV-S\",\"workspaceStatusSelect\":\"ShareButton_workspaceStatusSelect__1HXWg\",\"statusLabelDescription\":\"ShareButton_statusLabelDescription__2bwDH\",\"viewAnalytics\":\"ShareButton_viewAnalytics__3USel\",\"workspaceStatusIcon\":\"ShareButton_workspaceStatusIcon__1W54o\",\"reportStatusIcon\":\"ShareButton_reportStatusIcon__2618O\",\"reportStatusDetails\":\"ShareButton_reportStatusDetails__YN_N2\",\"workspaceStatusLabel\":\"ShareButton_workspaceStatusLabel__salBL\",\"boolStatusLabel\":\"ShareButton_boolStatusLabel__3s0GM\",\"reportStatusDetailsText\":\"ShareButton_reportStatusDetailsText__1_x6g\",\"workspaceStatus\":\"ShareButton_workspaceStatus__3wrTG\",\"boolStatus\":\"ShareButton_boolStatus__TRN7g\",\"boolStatusS\":\"ShareButton_boolStatusS__1DF4k\",\"reportStatus\":\"ShareButton_reportStatus__QUbHb\",\"reportAuthStatus\":\"ShareButton_reportAuthStatus__oTeoD\",\"origin\":\"ShareButton_origin__17_3b\",\"authEnabled\":\"ShareButton_authEnabled__2Nmnq\",\"playgroundReportText\":\"ShareButton_playgroundReportText__yI8lO\",\"boolStatusIcon\":\"ShareButton_boolStatusIcon__3kuHI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cancel\":\"Downloading_cancel__25S1k\"};","var map = {\n\t\"./\": 48,\n\t\"./ca\": 821,\n\t\"./ca.js\": 821,\n\t\"./cn\": 822,\n\t\"./cn.js\": 822,\n\t\"./en\": 631,\n\t\"./en.js\": 631,\n\t\"./es\": 823,\n\t\"./es.js\": 823,\n\t\"./fi\": 824,\n\t\"./fi.js\": 824,\n\t\"./formatted-message\": 632,\n\t\"./formatted-message.js\": 632,\n\t\"./index\": 48,\n\t\"./index.js\": 48,\n\t\"./ja\": 825,\n\t\"./ja.js\": 825,\n\t\"./locales\": 180,\n\t\"./locales.js\": 180,\n\t\"./pt\": 826,\n\t\"./pt.js\": 826,\n\t\"./ru\": 827,\n\t\"./ru.js\": 827\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1297;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"workspacePage\":\"WorkspacePage_workspacePage__3SI4n\",\"demo\":\"WorkspacePage_demo__3M3Hh\",\"body\":\"WorkspacePage_body__6LI37\",\"rocketIcon\":\"WorkspacePage_rocketIcon__28FsQ\",\"workspace\":\"WorkspacePage_workspace__2Qv1V\",\"workspaceTab\":\"WorkspacePage_workspaceTab__NGeqC\",\"cancelAt\":\"WorkspacePage_cancelAt__3Wpl8\",\"workspaceTabHeader\":\"WorkspacePage_workspaceTabHeader__24slP\",\"workspaceTabBody\":\"WorkspacePage_workspaceTabBody__1IQl9\",\"acceptButton\":\"WorkspacePage_acceptButton__12dn7\",\"inviterEmail\":\"WorkspacePage_inviterEmail__2Uk9G\",\"workspaceNameColumn\":\"WorkspacePage_workspaceNameColumn__20Rel\",\"inviteActionsColumn\":\"WorkspacePage_inviteActionsColumn__2tqPO\",\"joinSelect\":\"WorkspacePage_joinSelect__1t4Sw\",\"workspaceSteps\":\"WorkspacePage_workspaceSteps__3HOwP\",\"joinRadioItem\":\"WorkspacePage_joinRadioItem__1ihXL\",\"notSure\":\"WorkspacePage_notSure__xcWIF\",\"notSureItems\":\"WorkspacePage_notSureItems__1ULAt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttons\":\"Header_buttons__3wRCV\",\"middle\":\"Header_middle__XCxii\",\"titleWrap\":\"Header_titleWrap__UwIZh\",\"left\":\"Header_left__2jP-Q\",\"workspace\":\"Header_workspace__l2iNr\",\"workspaceButton\":\"Header_workspaceButton__jubMf\",\"playgroundButton\":\"Header_playgroundButton__1fWhR\",\"playgroundTooltip\":\"Header_playgroundTooltip__2t-7V\",\"playground\":\"Header_playground__2QC6a\",\"header\":\"Header_header__2XM3F\",\"buttonDivider\":\"Header_buttonDivider__2_kV7\",\"user\":\"Header_user__49m0D\",\"userDropdown\":\"Header_userDropdown__2ZpbN\",\"top\":\"Header_top__1izp-\",\"dekartLinkHolder\":\"Header_dekartLinkHolder__1e2kM\",\"title\":\"Header_title__2TVUE\",\"dekartLink\":\"Header_dekartLink__1vl2h\",\"dekartTitle\":\"Header_dekartTitle__1uXzA\"};","// source: proto/dekart.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\ngoog.exportSymbol('proto.AddReadmeRequest', null, global);\ngoog.exportSymbol('proto.AddReadmeResponse', null, global);\ngoog.exportSymbol('proto.AllowExportDatasetsRequest', null, global);\ngoog.exportSymbol('proto.AllowExportDatasetsResponse', null, global);\ngoog.exportSymbol('proto.ArchiveConnectionRequest', null, global);\ngoog.exportSymbol('proto.ArchiveConnectionResponse', null, global);\ngoog.exportSymbol('proto.ArchiveReportRequest', null, global);\ngoog.exportSymbol('proto.ArchiveReportResponse', null, global);\ngoog.exportSymbol('proto.AuthState', null, global);\ngoog.exportSymbol('proto.AuthState.Action', null, global);\ngoog.exportSymbol('proto.CancelJobRequest', null, global);\ngoog.exportSymbol('proto.CancelJobResponse', null, global);\ngoog.exportSymbol('proto.Connection', null, global);\ngoog.exportSymbol('proto.ConnectionType', null, global);\ngoog.exportSymbol('proto.CreateConnectionRequest', null, global);\ngoog.exportSymbol('proto.CreateConnectionResponse', null, global);\ngoog.exportSymbol('proto.CreateDatasetRequest', null, global);\ngoog.exportSymbol('proto.CreateDatasetResponse', null, global);\ngoog.exportSymbol('proto.CreateFileRequest', null, global);\ngoog.exportSymbol('proto.CreateFileResponse', null, global);\ngoog.exportSymbol('proto.CreateQueryRequest', null, global);\ngoog.exportSymbol('proto.CreateQueryResponse', null, global);\ngoog.exportSymbol('proto.CreateReportRequest', null, global);\ngoog.exportSymbol('proto.CreateReportResponse', null, global);\ngoog.exportSymbol('proto.CreateSubscriptionRequest', null, global);\ngoog.exportSymbol('proto.CreateSubscriptionResponse', null, global);\ngoog.exportSymbol('proto.CreateWorkspaceRequest', null, global);\ngoog.exportSymbol('proto.CreateWorkspaceResponse', null, global);\ngoog.exportSymbol('proto.Dataset', null, global);\ngoog.exportSymbol('proto.File', null, global);\ngoog.exportSymbol('proto.File.Status', null, global);\ngoog.exportSymbol('proto.ForkReportRequest', null, global);\ngoog.exportSymbol('proto.ForkReportResponse', null, global);\ngoog.exportSymbol('proto.GetConnectionListRequest', null, global);\ngoog.exportSymbol('proto.GetConnectionListResponse', null, global);\ngoog.exportSymbol('proto.GetEnvRequest', null, global);\ngoog.exportSymbol('proto.GetEnvResponse', null, global);\ngoog.exportSymbol('proto.GetEnvResponse.Variable', null, global);\ngoog.exportSymbol('proto.GetEnvResponse.Variable.Type', null, global);\ngoog.exportSymbol('proto.GetGcpProjectListRequest', null, global);\ngoog.exportSymbol('proto.GetGcpProjectListResponse', null, global);\ngoog.exportSymbol('proto.GetInvitesRequest', null, global);\ngoog.exportSymbol('proto.GetInvitesResponse', null, global);\ngoog.exportSymbol('proto.GetReportAnalyticsRequest', null, global);\ngoog.exportSymbol('proto.GetReportAnalyticsResponse', null, global);\ngoog.exportSymbol('proto.GetStripePortalSessionRequest', null, global);\ngoog.exportSymbol('proto.GetStripePortalSessionResponse', null, global);\ngoog.exportSymbol('proto.GetUsageRequest', null, global);\ngoog.exportSymbol('proto.GetUsageResponse', null, global);\ngoog.exportSymbol('proto.GetUserStreamRequest', null, global);\ngoog.exportSymbol('proto.GetUserStreamResponse', null, global);\ngoog.exportSymbol('proto.GetWorkspaceRequest', null, global);\ngoog.exportSymbol('proto.GetWorkspaceResponse', null, global);\ngoog.exportSymbol('proto.PlanType', null, global);\ngoog.exportSymbol('proto.PublishReportRequest', null, global);\ngoog.exportSymbol('proto.PublishReportResponse', null, global);\ngoog.exportSymbol('proto.Query', null, global);\ngoog.exportSymbol('proto.Query.QuerySource', null, global);\ngoog.exportSymbol('proto.QueryJob', null, global);\ngoog.exportSymbol('proto.QueryJob.JobStatus', null, global);\ngoog.exportSymbol('proto.QueryParam', null, global);\ngoog.exportSymbol('proto.QueryParam.Type', null, global);\ngoog.exportSymbol('proto.Readme', null, global);\ngoog.exportSymbol('proto.RedirectState', null, global);\ngoog.exportSymbol('proto.RemoveDatasetRequest', null, global);\ngoog.exportSymbol('proto.RemoveDatasetResponse', null, global);\ngoog.exportSymbol('proto.RemoveReadmeRequest', null, global);\ngoog.exportSymbol('proto.RemoveReadmeResponse', null, global);\ngoog.exportSymbol('proto.Report', null, global);\ngoog.exportSymbol('proto.ReportAnalytics', null, global);\ngoog.exportSymbol('proto.ReportListRequest', null, global);\ngoog.exportSymbol('proto.ReportListResponse', null, global);\ngoog.exportSymbol('proto.ReportStreamRequest', null, global);\ngoog.exportSymbol('proto.ReportStreamResponse', null, global);\ngoog.exportSymbol('proto.RespondToInviteRequest', null, global);\ngoog.exportSymbol('proto.RespondToInviteResponse', null, global);\ngoog.exportSymbol('proto.RunAllQueriesRequest', null, global);\ngoog.exportSymbol('proto.RunAllQueriesResponse', null, global);\ngoog.exportSymbol('proto.RunQueryRequest', null, global);\ngoog.exportSymbol('proto.RunQueryResponse', null, global);\ngoog.exportSymbol('proto.Secret', null, global);\ngoog.exportSymbol('proto.SetDefaultConnectionRequest', null, global);\ngoog.exportSymbol('proto.SetDefaultConnectionResponse', null, global);\ngoog.exportSymbol('proto.SetDiscoverableRequest', null, global);\ngoog.exportSymbol('proto.SetDiscoverableResponse', null, global);\ngoog.exportSymbol('proto.StreamOptions', null, global);\ngoog.exportSymbol('proto.Subscription', null, global);\ngoog.exportSymbol('proto.TestConnectionRequest', null, global);\ngoog.exportSymbol('proto.TestConnectionResponse', null, global);\ngoog.exportSymbol('proto.UpdateConnectionRequest', null, global);\ngoog.exportSymbol('proto.UpdateConnectionResponse', null, global);\ngoog.exportSymbol('proto.UpdateDatasetConnectionRequest', null, global);\ngoog.exportSymbol('proto.UpdateDatasetConnectionResponse', null, global);\ngoog.exportSymbol('proto.UpdateDatasetNameRequest', null, global);\ngoog.exportSymbol('proto.UpdateDatasetNameResponse', null, global);\ngoog.exportSymbol('proto.UpdateReportRequest', null, global);\ngoog.exportSymbol('proto.UpdateReportResponse', null, global);\ngoog.exportSymbol('proto.UpdateWorkspaceRequest', null, global);\ngoog.exportSymbol('proto.UpdateWorkspaceResponse', null, global);\ngoog.exportSymbol('proto.UpdateWorkspaceUserRequest', null, global);\ngoog.exportSymbol('proto.UpdateWorkspaceUserRequest.UserUpdateType', null, global);\ngoog.exportSymbol('proto.UpdateWorkspaceUserResponse', null, global);\ngoog.exportSymbol('proto.User', null, global);\ngoog.exportSymbol('proto.UserRole', null, global);\ngoog.exportSymbol('proto.UserStatus', null, global);\ngoog.exportSymbol('proto.Workspace', null, global);\ngoog.exportSymbol('proto.WorkspaceInvite', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetReportAnalyticsRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetReportAnalyticsRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetReportAnalyticsRequest.displayName = 'proto.GetReportAnalyticsRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetReportAnalyticsResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetReportAnalyticsResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetReportAnalyticsResponse.displayName = 'proto.GetReportAnalyticsResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AddReadmeRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.AddReadmeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.AddReadmeRequest.displayName = 'proto.AddReadmeRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AddReadmeResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.AddReadmeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.AddReadmeResponse.displayName = 'proto.AddReadmeResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RemoveReadmeRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.RemoveReadmeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RemoveReadmeRequest.displayName = 'proto.RemoveReadmeRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RemoveReadmeResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.RemoveReadmeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RemoveReadmeResponse.displayName = 'proto.RemoveReadmeResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AllowExportDatasetsRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.AllowExportDatasetsRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.AllowExportDatasetsRequest.displayName = 'proto.AllowExportDatasetsRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AllowExportDatasetsResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.AllowExportDatasetsResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.AllowExportDatasetsResponse.displayName = 'proto.AllowExportDatasetsResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CancelJobRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CancelJobRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CancelJobRequest.displayName = 'proto.CancelJobRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CancelJobResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CancelJobResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CancelJobResponse.displayName = 'proto.CancelJobResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.PublishReportRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.PublishReportRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.PublishReportRequest.displayName = 'proto.PublishReportRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.PublishReportResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.PublishReportResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.PublishReportResponse.displayName = 'proto.PublishReportResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetStripePortalSessionRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetStripePortalSessionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetStripePortalSessionRequest.displayName = 'proto.GetStripePortalSessionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetStripePortalSessionResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetStripePortalSessionResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetStripePortalSessionResponse.displayName = 'proto.GetStripePortalSessionResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateWorkspaceUserRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateWorkspaceUserRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateWorkspaceUserRequest.displayName = 'proto.UpdateWorkspaceUserRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateWorkspaceUserResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateWorkspaceUserResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateWorkspaceUserResponse.displayName = 'proto.UpdateWorkspaceUserResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetWorkspaceRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetWorkspaceRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetWorkspaceRequest.displayName = 'proto.GetWorkspaceRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetWorkspaceResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.GetWorkspaceResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.GetWorkspaceResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetWorkspaceResponse.displayName = 'proto.GetWorkspaceResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateWorkspaceRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateWorkspaceRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateWorkspaceRequest.displayName = 'proto.CreateWorkspaceRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateWorkspaceResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateWorkspaceResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateWorkspaceResponse.displayName = 'proto.CreateWorkspaceResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateWorkspaceRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateWorkspaceRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateWorkspaceRequest.displayName = 'proto.UpdateWorkspaceRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateWorkspaceResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateWorkspaceResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateWorkspaceResponse.displayName = 'proto.UpdateWorkspaceResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RespondToInviteRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.RespondToInviteRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RespondToInviteRequest.displayName = 'proto.RespondToInviteRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RespondToInviteResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.RespondToInviteResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RespondToInviteResponse.displayName = 'proto.RespondToInviteResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetInvitesRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetInvitesRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetInvitesRequest.displayName = 'proto.GetInvitesRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.WorkspaceInvite = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.WorkspaceInvite, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.WorkspaceInvite.displayName = 'proto.WorkspaceInvite';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetInvitesResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.GetInvitesResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.GetInvitesResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetInvitesResponse.displayName = 'proto.GetInvitesResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.User = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.User, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.User.displayName = 'proto.User';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetGcpProjectListRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetGcpProjectListRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetGcpProjectListRequest.displayName = 'proto.GetGcpProjectListRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetGcpProjectListResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.GetGcpProjectListResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.GetGcpProjectListResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetGcpProjectListResponse.displayName = 'proto.GetGcpProjectListResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.SetDefaultConnectionRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.SetDefaultConnectionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.SetDefaultConnectionRequest.displayName = 'proto.SetDefaultConnectionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.SetDefaultConnectionResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.SetDefaultConnectionResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.SetDefaultConnectionResponse.displayName = 'proto.SetDefaultConnectionResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RunAllQueriesRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.RunAllQueriesRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.RunAllQueriesRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RunAllQueriesRequest.displayName = 'proto.RunAllQueriesRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RunAllQueriesResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.RunAllQueriesResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RunAllQueriesResponse.displayName = 'proto.RunAllQueriesResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Workspace = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Workspace, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.Workspace.displayName = 'proto.Workspace';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Subscription = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Subscription, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.Subscription.displayName = 'proto.Subscription';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateSubscriptionRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateSubscriptionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateSubscriptionRequest.displayName = 'proto.CreateSubscriptionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateSubscriptionResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateSubscriptionResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateSubscriptionResponse.displayName = 'proto.CreateSubscriptionResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetConnectionListRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetConnectionListRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetConnectionListRequest.displayName = 'proto.GetConnectionListRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetConnectionListResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.GetConnectionListResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.GetConnectionListResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetConnectionListResponse.displayName = 'proto.GetConnectionListResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetUserStreamRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetUserStreamRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetUserStreamRequest.displayName = 'proto.GetUserStreamRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetUserStreamResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetUserStreamResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetUserStreamResponse.displayName = 'proto.GetUserStreamResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.TestConnectionRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.TestConnectionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.TestConnectionRequest.displayName = 'proto.TestConnectionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.TestConnectionResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.TestConnectionResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.TestConnectionResponse.displayName = 'proto.TestConnectionResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ArchiveConnectionRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ArchiveConnectionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ArchiveConnectionRequest.displayName = 'proto.ArchiveConnectionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ArchiveConnectionResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ArchiveConnectionResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ArchiveConnectionResponse.displayName = 'proto.ArchiveConnectionResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateConnectionRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateConnectionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateConnectionRequest.displayName = 'proto.UpdateConnectionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateConnectionResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateConnectionResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateConnectionResponse.displayName = 'proto.UpdateConnectionResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateConnectionRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateConnectionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateConnectionRequest.displayName = 'proto.CreateConnectionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateConnectionResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateConnectionResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateConnectionResponse.displayName = 'proto.CreateConnectionResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Connection = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Connection, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.Connection.displayName = 'proto.Connection';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Secret = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Secret, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.Secret.displayName = 'proto.Secret';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetUsageRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetUsageRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetUsageRequest.displayName = 'proto.GetUsageRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetUsageResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetUsageResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetUsageResponse.displayName = 'proto.GetUsageResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.SetDiscoverableRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.SetDiscoverableRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.SetDiscoverableRequest.displayName = 'proto.SetDiscoverableRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.SetDiscoverableResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.SetDiscoverableResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.SetDiscoverableResponse.displayName = 'proto.SetDiscoverableResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RemoveDatasetRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.RemoveDatasetRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RemoveDatasetRequest.displayName = 'proto.RemoveDatasetRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RemoveDatasetResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.RemoveDatasetResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RemoveDatasetResponse.displayName = 'proto.RemoveDatasetResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.StreamOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.StreamOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.StreamOptions.displayName = 'proto.StreamOptions';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetEnvRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetEnvRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetEnvRequest.displayName = 'proto.GetEnvRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetEnvResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.GetEnvResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.GetEnvResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetEnvResponse.displayName = 'proto.GetEnvResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetEnvResponse.Variable = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.GetEnvResponse.Variable, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.GetEnvResponse.Variable.displayName = 'proto.GetEnvResponse.Variable';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RedirectState = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.RedirectState, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RedirectState.displayName = 'proto.RedirectState';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AuthState = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.AuthState, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.AuthState.displayName = 'proto.AuthState';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ArchiveReportRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ArchiveReportRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ArchiveReportRequest.displayName = 'proto.ArchiveReportRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ArchiveReportResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ArchiveReportResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ArchiveReportResponse.displayName = 'proto.ArchiveReportResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ReportListRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ReportListRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ReportListRequest.displayName = 'proto.ReportListRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ReportListResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.ReportListResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.ReportListResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ReportListResponse.displayName = 'proto.ReportListResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Readme = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Readme, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.Readme.displayName = 'proto.Readme';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ReportAnalytics = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ReportAnalytics, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ReportAnalytics.displayName = 'proto.ReportAnalytics';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Report = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.Report.repeatedFields_, null);\n};\ngoog.inherits(proto.Report, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.Report.displayName = 'proto.Report';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Dataset = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Dataset, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.Dataset.displayName = 'proto.Dataset';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.QueryJob = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.QueryJob, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.QueryJob.displayName = 'proto.QueryJob';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Query = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Query, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.Query.displayName = 'proto.Query';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.File = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.File, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.File.displayName = 'proto.File';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateReportRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.UpdateReportRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.UpdateReportRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateReportRequest.displayName = 'proto.UpdateReportRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateReportResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateReportResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateReportResponse.displayName = 'proto.UpdateReportResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RunQueryRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.RunQueryRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.RunQueryRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RunQueryRequest.displayName = 'proto.RunQueryRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.RunQueryResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.RunQueryResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.RunQueryResponse.displayName = 'proto.RunQueryResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateDatasetNameRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateDatasetNameRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateDatasetNameRequest.displayName = 'proto.UpdateDatasetNameRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateDatasetNameResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateDatasetNameResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateDatasetNameResponse.displayName = 'proto.UpdateDatasetNameResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateDatasetConnectionRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateDatasetConnectionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateDatasetConnectionRequest.displayName = 'proto.UpdateDatasetConnectionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UpdateDatasetConnectionResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UpdateDatasetConnectionResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.UpdateDatasetConnectionResponse.displayName = 'proto.UpdateDatasetConnectionResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateDatasetRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateDatasetRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateDatasetRequest.displayName = 'proto.CreateDatasetRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateDatasetResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateDatasetResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateDatasetResponse.displayName = 'proto.CreateDatasetResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateFileRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateFileRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateFileRequest.displayName = 'proto.CreateFileRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateFileResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateFileResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateFileResponse.displayName = 'proto.CreateFileResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateQueryRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateQueryRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateQueryRequest.displayName = 'proto.CreateQueryRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateQueryResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateQueryResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateQueryResponse.displayName = 'proto.CreateQueryResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ReportStreamRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ReportStreamRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ReportStreamRequest.displayName = 'proto.ReportStreamRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ReportStreamResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.ReportStreamResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.ReportStreamResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ReportStreamResponse.displayName = 'proto.ReportStreamResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ForkReportRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ForkReportRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ForkReportRequest.displayName = 'proto.ForkReportRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ForkReportResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ForkReportResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ForkReportResponse.displayName = 'proto.ForkReportResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateReportRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateReportRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateReportRequest.displayName = 'proto.CreateReportRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.CreateReportResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.CreateReportResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.CreateReportResponse.displayName = 'proto.CreateReportResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.QueryParam = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.QueryParam, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.QueryParam.displayName = 'proto.QueryParam';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetReportAnalyticsRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.GetReportAnalyticsRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetReportAnalyticsRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetReportAnalyticsRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetReportAnalyticsRequest}\n */\nproto.GetReportAnalyticsRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetReportAnalyticsRequest;\n return proto.GetReportAnalyticsRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetReportAnalyticsRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetReportAnalyticsRequest}\n */\nproto.GetReportAnalyticsRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetReportAnalyticsRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetReportAnalyticsRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetReportAnalyticsRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetReportAnalyticsRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.GetReportAnalyticsRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.GetReportAnalyticsRequest} returns this\n */\nproto.GetReportAnalyticsRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetReportAnalyticsResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.GetReportAnalyticsResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetReportAnalyticsResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetReportAnalyticsResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n analytics: (f = msg.getAnalytics()) && proto.ReportAnalytics.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetReportAnalyticsResponse}\n */\nproto.GetReportAnalyticsResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetReportAnalyticsResponse;\n return proto.GetReportAnalyticsResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetReportAnalyticsResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetReportAnalyticsResponse}\n */\nproto.GetReportAnalyticsResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.ReportAnalytics;\n reader.readMessage(value,proto.ReportAnalytics.deserializeBinaryFromReader);\n msg.setAnalytics(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetReportAnalyticsResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetReportAnalyticsResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetReportAnalyticsResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetReportAnalyticsResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAnalytics();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.ReportAnalytics.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional ReportAnalytics analytics = 1;\n * @return {?proto.ReportAnalytics}\n */\nproto.GetReportAnalyticsResponse.prototype.getAnalytics = function() {\n return /** @type{?proto.ReportAnalytics} */ (\n jspb.Message.getWrapperField(this, proto.ReportAnalytics, 1));\n};\n\n\n/**\n * @param {?proto.ReportAnalytics|undefined} value\n * @return {!proto.GetReportAnalyticsResponse} returns this\n*/\nproto.GetReportAnalyticsResponse.prototype.setAnalytics = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetReportAnalyticsResponse} returns this\n */\nproto.GetReportAnalyticsResponse.prototype.clearAnalytics = function() {\n return this.setAnalytics(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetReportAnalyticsResponse.prototype.hasAnalytics = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AddReadmeRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.AddReadmeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.AddReadmeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AddReadmeRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n markdown: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AddReadmeRequest}\n */\nproto.AddReadmeRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.AddReadmeRequest;\n return proto.AddReadmeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AddReadmeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AddReadmeRequest}\n */\nproto.AddReadmeRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setMarkdown(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AddReadmeRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.AddReadmeRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AddReadmeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AddReadmeRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getMarkdown();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.AddReadmeRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AddReadmeRequest} returns this\n */\nproto.AddReadmeRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string markdown = 2;\n * @return {string}\n */\nproto.AddReadmeRequest.prototype.getMarkdown = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AddReadmeRequest} returns this\n */\nproto.AddReadmeRequest.prototype.setMarkdown = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AddReadmeResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.AddReadmeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.AddReadmeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AddReadmeResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AddReadmeResponse}\n */\nproto.AddReadmeResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.AddReadmeResponse;\n return proto.AddReadmeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AddReadmeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AddReadmeResponse}\n */\nproto.AddReadmeResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AddReadmeResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.AddReadmeResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AddReadmeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AddReadmeResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RemoveReadmeRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.RemoveReadmeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RemoveReadmeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RemoveReadmeRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RemoveReadmeRequest}\n */\nproto.RemoveReadmeRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RemoveReadmeRequest;\n return proto.RemoveReadmeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RemoveReadmeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RemoveReadmeRequest}\n */\nproto.RemoveReadmeRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RemoveReadmeRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RemoveReadmeRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RemoveReadmeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RemoveReadmeRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.RemoveReadmeRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RemoveReadmeRequest} returns this\n */\nproto.RemoveReadmeRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RemoveReadmeResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.RemoveReadmeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RemoveReadmeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RemoveReadmeResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RemoveReadmeResponse}\n */\nproto.RemoveReadmeResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RemoveReadmeResponse;\n return proto.RemoveReadmeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RemoveReadmeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RemoveReadmeResponse}\n */\nproto.RemoveReadmeResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RemoveReadmeResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RemoveReadmeResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RemoveReadmeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RemoveReadmeResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AllowExportDatasetsRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.AllowExportDatasetsRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.AllowExportDatasetsRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AllowExportDatasetsRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n allowExport: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AllowExportDatasetsRequest}\n */\nproto.AllowExportDatasetsRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.AllowExportDatasetsRequest;\n return proto.AllowExportDatasetsRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AllowExportDatasetsRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AllowExportDatasetsRequest}\n */\nproto.AllowExportDatasetsRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setAllowExport(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AllowExportDatasetsRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.AllowExportDatasetsRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AllowExportDatasetsRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AllowExportDatasetsRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getAllowExport();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.AllowExportDatasetsRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AllowExportDatasetsRequest} returns this\n */\nproto.AllowExportDatasetsRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bool allow_export = 2;\n * @return {boolean}\n */\nproto.AllowExportDatasetsRequest.prototype.getAllowExport = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.AllowExportDatasetsRequest} returns this\n */\nproto.AllowExportDatasetsRequest.prototype.setAllowExport = function(value) {\n return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AllowExportDatasetsResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.AllowExportDatasetsResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.AllowExportDatasetsResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AllowExportDatasetsResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AllowExportDatasetsResponse}\n */\nproto.AllowExportDatasetsResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.AllowExportDatasetsResponse;\n return proto.AllowExportDatasetsResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AllowExportDatasetsResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AllowExportDatasetsResponse}\n */\nproto.AllowExportDatasetsResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AllowExportDatasetsResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.AllowExportDatasetsResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AllowExportDatasetsResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AllowExportDatasetsResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CancelJobRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.CancelJobRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CancelJobRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CancelJobRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n jobId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CancelJobRequest}\n */\nproto.CancelJobRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CancelJobRequest;\n return proto.CancelJobRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CancelJobRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CancelJobRequest}\n */\nproto.CancelJobRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setJobId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CancelJobRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CancelJobRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CancelJobRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CancelJobRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getJobId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string job_id = 1;\n * @return {string}\n */\nproto.CancelJobRequest.prototype.getJobId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.CancelJobRequest} returns this\n */\nproto.CancelJobRequest.prototype.setJobId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CancelJobResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.CancelJobResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CancelJobResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CancelJobResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CancelJobResponse}\n */\nproto.CancelJobResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CancelJobResponse;\n return proto.CancelJobResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CancelJobResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CancelJobResponse}\n */\nproto.CancelJobResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CancelJobResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CancelJobResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CancelJobResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CancelJobResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.PublishReportRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.PublishReportRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.PublishReportRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.PublishReportRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n publish: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.PublishReportRequest}\n */\nproto.PublishReportRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.PublishReportRequest;\n return proto.PublishReportRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.PublishReportRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.PublishReportRequest}\n */\nproto.PublishReportRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setPublish(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.PublishReportRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.PublishReportRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.PublishReportRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.PublishReportRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getPublish();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.PublishReportRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.PublishReportRequest} returns this\n */\nproto.PublishReportRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bool publish = 2;\n * @return {boolean}\n */\nproto.PublishReportRequest.prototype.getPublish = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.PublishReportRequest} returns this\n */\nproto.PublishReportRequest.prototype.setPublish = function(value) {\n return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.PublishReportResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.PublishReportResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.PublishReportResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.PublishReportResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.PublishReportResponse}\n */\nproto.PublishReportResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.PublishReportResponse;\n return proto.PublishReportResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.PublishReportResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.PublishReportResponse}\n */\nproto.PublishReportResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.PublishReportResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.PublishReportResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.PublishReportResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.PublishReportResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetStripePortalSessionRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.GetStripePortalSessionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetStripePortalSessionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetStripePortalSessionRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n uiUrl: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetStripePortalSessionRequest}\n */\nproto.GetStripePortalSessionRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetStripePortalSessionRequest;\n return proto.GetStripePortalSessionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetStripePortalSessionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetStripePortalSessionRequest}\n */\nproto.GetStripePortalSessionRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setUiUrl(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetStripePortalSessionRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetStripePortalSessionRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetStripePortalSessionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetStripePortalSessionRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getUiUrl();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string ui_url = 1;\n * @return {string}\n */\nproto.GetStripePortalSessionRequest.prototype.getUiUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.GetStripePortalSessionRequest} returns this\n */\nproto.GetStripePortalSessionRequest.prototype.setUiUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetStripePortalSessionResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.GetStripePortalSessionResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetStripePortalSessionResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetStripePortalSessionResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n url: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetStripePortalSessionResponse}\n */\nproto.GetStripePortalSessionResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetStripePortalSessionResponse;\n return proto.GetStripePortalSessionResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetStripePortalSessionResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetStripePortalSessionResponse}\n */\nproto.GetStripePortalSessionResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setUrl(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetStripePortalSessionResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetStripePortalSessionResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetStripePortalSessionResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetStripePortalSessionResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getUrl();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string url = 1;\n * @return {string}\n */\nproto.GetStripePortalSessionResponse.prototype.getUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.GetStripePortalSessionResponse} returns this\n */\nproto.GetStripePortalSessionResponse.prototype.setUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateWorkspaceUserRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateWorkspaceUserRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateWorkspaceUserRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateWorkspaceUserRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n email: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n userUpdateType: jspb.Message.getFieldWithDefault(msg, 2, 0),\n role: jspb.Message.getFieldWithDefault(msg, 3, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateWorkspaceUserRequest}\n */\nproto.UpdateWorkspaceUserRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateWorkspaceUserRequest;\n return proto.UpdateWorkspaceUserRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateWorkspaceUserRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateWorkspaceUserRequest}\n */\nproto.UpdateWorkspaceUserRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n case 2:\n var value = /** @type {!proto.UpdateWorkspaceUserRequest.UserUpdateType} */ (reader.readEnum());\n msg.setUserUpdateType(value);\n break;\n case 3:\n var value = /** @type {!proto.UserRole} */ (reader.readEnum());\n msg.setRole(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateWorkspaceUserRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateWorkspaceUserRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateWorkspaceUserRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateWorkspaceUserRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getUserUpdateType();\n if (f !== 0.0) {\n writer.writeEnum(\n 2,\n f\n );\n }\n f = message.getRole();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.UpdateWorkspaceUserRequest.UserUpdateType = {\n USER_UPDATE_TYPE_UNSPECIFIED: 0,\n USER_UPDATE_TYPE_ADD: 1,\n USER_UPDATE_TYPE_REMOVE: 2,\n USER_UPDATE_TYPE_UPDATE: 3\n};\n\n/**\n * optional string email = 1;\n * @return {string}\n */\nproto.UpdateWorkspaceUserRequest.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.UpdateWorkspaceUserRequest} returns this\n */\nproto.UpdateWorkspaceUserRequest.prototype.setEmail = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional UserUpdateType user_update_type = 2;\n * @return {!proto.UpdateWorkspaceUserRequest.UserUpdateType}\n */\nproto.UpdateWorkspaceUserRequest.prototype.getUserUpdateType = function() {\n return /** @type {!proto.UpdateWorkspaceUserRequest.UserUpdateType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {!proto.UpdateWorkspaceUserRequest.UserUpdateType} value\n * @return {!proto.UpdateWorkspaceUserRequest} returns this\n */\nproto.UpdateWorkspaceUserRequest.prototype.setUserUpdateType = function(value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n/**\n * optional UserRole role = 3;\n * @return {!proto.UserRole}\n */\nproto.UpdateWorkspaceUserRequest.prototype.getRole = function() {\n return /** @type {!proto.UserRole} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {!proto.UserRole} value\n * @return {!proto.UpdateWorkspaceUserRequest} returns this\n */\nproto.UpdateWorkspaceUserRequest.prototype.setRole = function(value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateWorkspaceUserResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateWorkspaceUserResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateWorkspaceUserResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateWorkspaceUserResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateWorkspaceUserResponse}\n */\nproto.UpdateWorkspaceUserResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateWorkspaceUserResponse;\n return proto.UpdateWorkspaceUserResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateWorkspaceUserResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateWorkspaceUserResponse}\n */\nproto.UpdateWorkspaceUserResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateWorkspaceUserResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateWorkspaceUserResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateWorkspaceUserResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateWorkspaceUserResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetWorkspaceRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.GetWorkspaceRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetWorkspaceRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetWorkspaceRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetWorkspaceRequest}\n */\nproto.GetWorkspaceRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetWorkspaceRequest;\n return proto.GetWorkspaceRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetWorkspaceRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetWorkspaceRequest}\n */\nproto.GetWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetWorkspaceRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetWorkspaceRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetWorkspaceRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetWorkspaceRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.GetWorkspaceResponse.repeatedFields_ = [3,4];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetWorkspaceResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.GetWorkspaceResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetWorkspaceResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetWorkspaceResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n workspace: (f = msg.getWorkspace()) && proto.Workspace.toObject(includeInstance, f),\n subscription: (f = msg.getSubscription()) && proto.Subscription.toObject(includeInstance, f),\n usersList: jspb.Message.toObjectList(msg.getUsersList(),\n proto.User.toObject, includeInstance),\n invitesList: jspb.Message.toObjectList(msg.getInvitesList(),\n proto.WorkspaceInvite.toObject, includeInstance),\n addedUsersCount: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetWorkspaceResponse}\n */\nproto.GetWorkspaceResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetWorkspaceResponse;\n return proto.GetWorkspaceResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetWorkspaceResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetWorkspaceResponse}\n */\nproto.GetWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Workspace;\n reader.readMessage(value,proto.Workspace.deserializeBinaryFromReader);\n msg.setWorkspace(value);\n break;\n case 2:\n var value = new proto.Subscription;\n reader.readMessage(value,proto.Subscription.deserializeBinaryFromReader);\n msg.setSubscription(value);\n break;\n case 3:\n var value = new proto.User;\n reader.readMessage(value,proto.User.deserializeBinaryFromReader);\n msg.addUsers(value);\n break;\n case 4:\n var value = new proto.WorkspaceInvite;\n reader.readMessage(value,proto.WorkspaceInvite.deserializeBinaryFromReader);\n msg.addInvites(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAddedUsersCount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetWorkspaceResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetWorkspaceResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetWorkspaceResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetWorkspaceResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getWorkspace();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.Workspace.serializeBinaryToWriter\n );\n }\n f = message.getSubscription();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.Subscription.serializeBinaryToWriter\n );\n }\n f = message.getUsersList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 3,\n f,\n proto.User.serializeBinaryToWriter\n );\n }\n f = message.getInvitesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 4,\n f,\n proto.WorkspaceInvite.serializeBinaryToWriter\n );\n }\n f = message.getAddedUsersCount();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional Workspace Workspace = 1;\n * @return {?proto.Workspace}\n */\nproto.GetWorkspaceResponse.prototype.getWorkspace = function() {\n return /** @type{?proto.Workspace} */ (\n jspb.Message.getWrapperField(this, proto.Workspace, 1));\n};\n\n\n/**\n * @param {?proto.Workspace|undefined} value\n * @return {!proto.GetWorkspaceResponse} returns this\n*/\nproto.GetWorkspaceResponse.prototype.setWorkspace = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetWorkspaceResponse} returns this\n */\nproto.GetWorkspaceResponse.prototype.clearWorkspace = function() {\n return this.setWorkspace(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetWorkspaceResponse.prototype.hasWorkspace = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Subscription subscription = 2;\n * @return {?proto.Subscription}\n */\nproto.GetWorkspaceResponse.prototype.getSubscription = function() {\n return /** @type{?proto.Subscription} */ (\n jspb.Message.getWrapperField(this, proto.Subscription, 2));\n};\n\n\n/**\n * @param {?proto.Subscription|undefined} value\n * @return {!proto.GetWorkspaceResponse} returns this\n*/\nproto.GetWorkspaceResponse.prototype.setSubscription = function(value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetWorkspaceResponse} returns this\n */\nproto.GetWorkspaceResponse.prototype.clearSubscription = function() {\n return this.setSubscription(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetWorkspaceResponse.prototype.hasSubscription = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * repeated User users = 3;\n * @return {!Array}\n */\nproto.GetWorkspaceResponse.prototype.getUsersList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.User, 3));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.GetWorkspaceResponse} returns this\n*/\nproto.GetWorkspaceResponse.prototype.setUsersList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.User=} opt_value\n * @param {number=} opt_index\n * @return {!proto.User}\n */\nproto.GetWorkspaceResponse.prototype.addUsers = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.User, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.GetWorkspaceResponse} returns this\n */\nproto.GetWorkspaceResponse.prototype.clearUsersList = function() {\n return this.setUsersList([]);\n};\n\n\n/**\n * repeated WorkspaceInvite invites = 4;\n * @return {!Array}\n */\nproto.GetWorkspaceResponse.prototype.getInvitesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.WorkspaceInvite, 4));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.GetWorkspaceResponse} returns this\n*/\nproto.GetWorkspaceResponse.prototype.setInvitesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n\n/**\n * @param {!proto.WorkspaceInvite=} opt_value\n * @param {number=} opt_index\n * @return {!proto.WorkspaceInvite}\n */\nproto.GetWorkspaceResponse.prototype.addInvites = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.WorkspaceInvite, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.GetWorkspaceResponse} returns this\n */\nproto.GetWorkspaceResponse.prototype.clearInvitesList = function() {\n return this.setInvitesList([]);\n};\n\n\n/**\n * optional int64 added_users_count = 5;\n * @return {number}\n */\nproto.GetWorkspaceResponse.prototype.getAddedUsersCount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.GetWorkspaceResponse} returns this\n */\nproto.GetWorkspaceResponse.prototype.setAddedUsersCount = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateWorkspaceRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateWorkspaceRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateWorkspaceRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateWorkspaceRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n workspaceName: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateWorkspaceRequest}\n */\nproto.CreateWorkspaceRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateWorkspaceRequest;\n return proto.CreateWorkspaceRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateWorkspaceRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateWorkspaceRequest}\n */\nproto.CreateWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setWorkspaceName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateWorkspaceRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateWorkspaceRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateWorkspaceRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateWorkspaceRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getWorkspaceName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string workspace_name = 1;\n * @return {string}\n */\nproto.CreateWorkspaceRequest.prototype.getWorkspaceName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.CreateWorkspaceRequest} returns this\n */\nproto.CreateWorkspaceRequest.prototype.setWorkspaceName = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateWorkspaceResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateWorkspaceResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateWorkspaceResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateWorkspaceResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateWorkspaceResponse}\n */\nproto.CreateWorkspaceResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateWorkspaceResponse;\n return proto.CreateWorkspaceResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateWorkspaceResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateWorkspaceResponse}\n */\nproto.CreateWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateWorkspaceResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateWorkspaceResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateWorkspaceResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateWorkspaceResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateWorkspaceRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateWorkspaceRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateWorkspaceRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateWorkspaceRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n workspaceName: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateWorkspaceRequest}\n */\nproto.UpdateWorkspaceRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateWorkspaceRequest;\n return proto.UpdateWorkspaceRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateWorkspaceRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateWorkspaceRequest}\n */\nproto.UpdateWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setWorkspaceName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateWorkspaceRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateWorkspaceRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateWorkspaceRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateWorkspaceRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getWorkspaceName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string workspace_name = 1;\n * @return {string}\n */\nproto.UpdateWorkspaceRequest.prototype.getWorkspaceName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.UpdateWorkspaceRequest} returns this\n */\nproto.UpdateWorkspaceRequest.prototype.setWorkspaceName = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateWorkspaceResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateWorkspaceResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateWorkspaceResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateWorkspaceResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateWorkspaceResponse}\n */\nproto.UpdateWorkspaceResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateWorkspaceResponse;\n return proto.UpdateWorkspaceResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateWorkspaceResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateWorkspaceResponse}\n */\nproto.UpdateWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateWorkspaceResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateWorkspaceResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateWorkspaceResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateWorkspaceResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RespondToInviteRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.RespondToInviteRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RespondToInviteRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RespondToInviteRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n inviteId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n accept: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RespondToInviteRequest}\n */\nproto.RespondToInviteRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RespondToInviteRequest;\n return proto.RespondToInviteRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RespondToInviteRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RespondToInviteRequest}\n */\nproto.RespondToInviteRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setInviteId(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setAccept(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RespondToInviteRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RespondToInviteRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RespondToInviteRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RespondToInviteRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getInviteId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getAccept();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string invite_id = 1;\n * @return {string}\n */\nproto.RespondToInviteRequest.prototype.getInviteId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RespondToInviteRequest} returns this\n */\nproto.RespondToInviteRequest.prototype.setInviteId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bool accept = 2;\n * @return {boolean}\n */\nproto.RespondToInviteRequest.prototype.getAccept = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.RespondToInviteRequest} returns this\n */\nproto.RespondToInviteRequest.prototype.setAccept = function(value) {\n return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RespondToInviteResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.RespondToInviteResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RespondToInviteResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RespondToInviteResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RespondToInviteResponse}\n */\nproto.RespondToInviteResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RespondToInviteResponse;\n return proto.RespondToInviteResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RespondToInviteResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RespondToInviteResponse}\n */\nproto.RespondToInviteResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RespondToInviteResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RespondToInviteResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RespondToInviteResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RespondToInviteResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetInvitesRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.GetInvitesRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetInvitesRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetInvitesRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetInvitesRequest}\n */\nproto.GetInvitesRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetInvitesRequest;\n return proto.GetInvitesRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetInvitesRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetInvitesRequest}\n */\nproto.GetInvitesRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetInvitesRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetInvitesRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetInvitesRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetInvitesRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.WorkspaceInvite.prototype.toObject = function(opt_includeInstance) {\n return proto.WorkspaceInvite.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.WorkspaceInvite} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.WorkspaceInvite.toObject = function(includeInstance, msg) {\n var f, obj = {\n workspaceId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n inviteId: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n inviterEmail: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n workspaceName: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n createdAt: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.WorkspaceInvite}\n */\nproto.WorkspaceInvite.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.WorkspaceInvite;\n return proto.WorkspaceInvite.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.WorkspaceInvite} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.WorkspaceInvite}\n */\nproto.WorkspaceInvite.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setWorkspaceId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setInviteId(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setInviterEmail(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setWorkspaceName(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreatedAt(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.WorkspaceInvite.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.WorkspaceInvite.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.WorkspaceInvite} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.WorkspaceInvite.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getWorkspaceId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getInviteId();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getInviterEmail();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getWorkspaceName();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getCreatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional string workspace_id = 1;\n * @return {string}\n */\nproto.WorkspaceInvite.prototype.getWorkspaceId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.WorkspaceInvite} returns this\n */\nproto.WorkspaceInvite.prototype.setWorkspaceId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string invite_id = 2;\n * @return {string}\n */\nproto.WorkspaceInvite.prototype.getInviteId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.WorkspaceInvite} returns this\n */\nproto.WorkspaceInvite.prototype.setInviteId = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string inviter_email = 3;\n * @return {string}\n */\nproto.WorkspaceInvite.prototype.getInviterEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.WorkspaceInvite} returns this\n */\nproto.WorkspaceInvite.prototype.setInviterEmail = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string workspace_name = 4;\n * @return {string}\n */\nproto.WorkspaceInvite.prototype.getWorkspaceName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.WorkspaceInvite} returns this\n */\nproto.WorkspaceInvite.prototype.setWorkspaceName = function(value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional int64 created_at = 5;\n * @return {number}\n */\nproto.WorkspaceInvite.prototype.getCreatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.WorkspaceInvite} returns this\n */\nproto.WorkspaceInvite.prototype.setCreatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.GetInvitesResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetInvitesResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.GetInvitesResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetInvitesResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetInvitesResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n invitesList: jspb.Message.toObjectList(msg.getInvitesList(),\n proto.WorkspaceInvite.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetInvitesResponse}\n */\nproto.GetInvitesResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetInvitesResponse;\n return proto.GetInvitesResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetInvitesResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetInvitesResponse}\n */\nproto.GetInvitesResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.WorkspaceInvite;\n reader.readMessage(value,proto.WorkspaceInvite.deserializeBinaryFromReader);\n msg.addInvites(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetInvitesResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetInvitesResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetInvitesResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetInvitesResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getInvitesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.WorkspaceInvite.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated WorkspaceInvite invites = 1;\n * @return {!Array}\n */\nproto.GetInvitesResponse.prototype.getInvitesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.WorkspaceInvite, 1));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.GetInvitesResponse} returns this\n*/\nproto.GetInvitesResponse.prototype.setInvitesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.WorkspaceInvite=} opt_value\n * @param {number=} opt_index\n * @return {!proto.WorkspaceInvite}\n */\nproto.GetInvitesResponse.prototype.addInvites = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.WorkspaceInvite, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.GetInvitesResponse} returns this\n */\nproto.GetInvitesResponse.prototype.clearInvitesList = function() {\n return this.setInvitesList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.User.prototype.toObject = function(opt_includeInstance) {\n return proto.User.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.User} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.User.toObject = function(includeInstance, msg) {\n var f, obj = {\n email: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n updatedAt: jspb.Message.getFieldWithDefault(msg, 2, 0),\n status: jspb.Message.getFieldWithDefault(msg, 3, 0),\n inviteId: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n role: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.User}\n */\nproto.User.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.User;\n return proto.User.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.User} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.User}\n */\nproto.User.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUpdatedAt(value);\n break;\n case 3:\n var value = /** @type {!proto.UserStatus} */ (reader.readEnum());\n msg.setStatus(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setInviteId(value);\n break;\n case 5:\n var value = /** @type {!proto.UserRole} */ (reader.readEnum());\n msg.setRole(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.User.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.User.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.User} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.User.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getUpdatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getStatus();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\n f = message.getInviteId();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getRole();\n if (f !== 0.0) {\n writer.writeEnum(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional string email = 1;\n * @return {string}\n */\nproto.User.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.User} returns this\n */\nproto.User.prototype.setEmail = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional int64 updated_at = 2;\n * @return {number}\n */\nproto.User.prototype.getUpdatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.User} returns this\n */\nproto.User.prototype.setUpdatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional UserStatus status = 3;\n * @return {!proto.UserStatus}\n */\nproto.User.prototype.getStatus = function() {\n return /** @type {!proto.UserStatus} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {!proto.UserStatus} value\n * @return {!proto.User} returns this\n */\nproto.User.prototype.setStatus = function(value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\n\n/**\n * optional string invite_id = 4;\n * @return {string}\n */\nproto.User.prototype.getInviteId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.User} returns this\n */\nproto.User.prototype.setInviteId = function(value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional UserRole role = 5;\n * @return {!proto.UserRole}\n */\nproto.User.prototype.getRole = function() {\n return /** @type {!proto.UserRole} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {!proto.UserRole} value\n * @return {!proto.User} returns this\n */\nproto.User.prototype.setRole = function(value) {\n return jspb.Message.setProto3EnumField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetGcpProjectListRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.GetGcpProjectListRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetGcpProjectListRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetGcpProjectListRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetGcpProjectListRequest}\n */\nproto.GetGcpProjectListRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetGcpProjectListRequest;\n return proto.GetGcpProjectListRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetGcpProjectListRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetGcpProjectListRequest}\n */\nproto.GetGcpProjectListRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetGcpProjectListRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetGcpProjectListRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetGcpProjectListRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetGcpProjectListRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.GetGcpProjectListResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetGcpProjectListResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.GetGcpProjectListResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetGcpProjectListResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetGcpProjectListResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n projectsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetGcpProjectListResponse}\n */\nproto.GetGcpProjectListResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetGcpProjectListResponse;\n return proto.GetGcpProjectListResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetGcpProjectListResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetGcpProjectListResponse}\n */\nproto.GetGcpProjectListResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.addProjects(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetGcpProjectListResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetGcpProjectListResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetGcpProjectListResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetGcpProjectListResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getProjectsList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * repeated string projects = 1;\n * @return {!Array}\n */\nproto.GetGcpProjectListResponse.prototype.getProjectsList = function() {\n return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.GetGcpProjectListResponse} returns this\n */\nproto.GetGcpProjectListResponse.prototype.setProjectsList = function(value) {\n return jspb.Message.setField(this, 1, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.GetGcpProjectListResponse} returns this\n */\nproto.GetGcpProjectListResponse.prototype.addProjects = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 1, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.GetGcpProjectListResponse} returns this\n */\nproto.GetGcpProjectListResponse.prototype.clearProjectsList = function() {\n return this.setProjectsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.SetDefaultConnectionRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.SetDefaultConnectionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.SetDefaultConnectionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.SetDefaultConnectionRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n connectionId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.SetDefaultConnectionRequest}\n */\nproto.SetDefaultConnectionRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.SetDefaultConnectionRequest;\n return proto.SetDefaultConnectionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.SetDefaultConnectionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.SetDefaultConnectionRequest}\n */\nproto.SetDefaultConnectionRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setConnectionId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.SetDefaultConnectionRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.SetDefaultConnectionRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.SetDefaultConnectionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.SetDefaultConnectionRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getConnectionId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string connection_id = 1;\n * @return {string}\n */\nproto.SetDefaultConnectionRequest.prototype.getConnectionId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.SetDefaultConnectionRequest} returns this\n */\nproto.SetDefaultConnectionRequest.prototype.setConnectionId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.SetDefaultConnectionResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.SetDefaultConnectionResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.SetDefaultConnectionResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.SetDefaultConnectionResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.SetDefaultConnectionResponse}\n */\nproto.SetDefaultConnectionResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.SetDefaultConnectionResponse;\n return proto.SetDefaultConnectionResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.SetDefaultConnectionResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.SetDefaultConnectionResponse}\n */\nproto.SetDefaultConnectionResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.SetDefaultConnectionResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.SetDefaultConnectionResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.SetDefaultConnectionResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.SetDefaultConnectionResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.RunAllQueriesRequest.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RunAllQueriesRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.RunAllQueriesRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RunAllQueriesRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RunAllQueriesRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n queryParamsList: jspb.Message.toObjectList(msg.getQueryParamsList(),\n proto.QueryParam.toObject, includeInstance),\n queryParamsValues: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RunAllQueriesRequest}\n */\nproto.RunAllQueriesRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RunAllQueriesRequest;\n return proto.RunAllQueriesRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RunAllQueriesRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RunAllQueriesRequest}\n */\nproto.RunAllQueriesRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n case 2:\n var value = new proto.QueryParam;\n reader.readMessage(value,proto.QueryParam.deserializeBinaryFromReader);\n msg.addQueryParams(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setQueryParamsValues(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RunAllQueriesRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RunAllQueriesRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RunAllQueriesRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RunAllQueriesRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getQueryParamsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n proto.QueryParam.serializeBinaryToWriter\n );\n }\n f = message.getQueryParamsValues();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.RunAllQueriesRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RunAllQueriesRequest} returns this\n */\nproto.RunAllQueriesRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * repeated QueryParam query_params = 2;\n * @return {!Array}\n */\nproto.RunAllQueriesRequest.prototype.getQueryParamsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.QueryParam, 2));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.RunAllQueriesRequest} returns this\n*/\nproto.RunAllQueriesRequest.prototype.setQueryParamsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.QueryParam=} opt_value\n * @param {number=} opt_index\n * @return {!proto.QueryParam}\n */\nproto.RunAllQueriesRequest.prototype.addQueryParams = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.QueryParam, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.RunAllQueriesRequest} returns this\n */\nproto.RunAllQueriesRequest.prototype.clearQueryParamsList = function() {\n return this.setQueryParamsList([]);\n};\n\n\n/**\n * optional string query_params_values = 3;\n * @return {string}\n */\nproto.RunAllQueriesRequest.prototype.getQueryParamsValues = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RunAllQueriesRequest} returns this\n */\nproto.RunAllQueriesRequest.prototype.setQueryParamsValues = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RunAllQueriesResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.RunAllQueriesResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RunAllQueriesResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RunAllQueriesResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RunAllQueriesResponse}\n */\nproto.RunAllQueriesResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RunAllQueriesResponse;\n return proto.RunAllQueriesResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RunAllQueriesResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RunAllQueriesResponse}\n */\nproto.RunAllQueriesResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RunAllQueriesResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RunAllQueriesResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RunAllQueriesResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RunAllQueriesResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Workspace.prototype.toObject = function(opt_includeInstance) {\n return proto.Workspace.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.Workspace} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Workspace.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Workspace}\n */\nproto.Workspace.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.Workspace;\n return proto.Workspace.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Workspace} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Workspace}\n */\nproto.Workspace.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Workspace.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.Workspace.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Workspace} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Workspace.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.Workspace.prototype.getId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Workspace} returns this\n */\nproto.Workspace.prototype.setId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.Workspace.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Workspace} returns this\n */\nproto.Workspace.prototype.setName = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Subscription.prototype.toObject = function(opt_includeInstance) {\n return proto.Subscription.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.Subscription} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Subscription.toObject = function(includeInstance, msg) {\n var f, obj = {\n planType: jspb.Message.getFieldWithDefault(msg, 2, 0),\n updatedAt: jspb.Message.getFieldWithDefault(msg, 4, 0),\n customerId: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n stripeSubscriptionId: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\n stripeCustomerEmail: jspb.Message.getFieldWithDefault(msg, 8, \"\"),\n cancelAt: jspb.Message.getFieldWithDefault(msg, 9, 0),\n itemId: jspb.Message.getFieldWithDefault(msg, 10, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Subscription}\n */\nproto.Subscription.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.Subscription;\n return proto.Subscription.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Subscription} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Subscription}\n */\nproto.Subscription.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 2:\n var value = /** @type {!proto.PlanType} */ (reader.readEnum());\n msg.setPlanType(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUpdatedAt(value);\n break;\n case 6:\n var value = /** @type {string} */ (reader.readString());\n msg.setCustomerId(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setStripeSubscriptionId(value);\n break;\n case 8:\n var value = /** @type {string} */ (reader.readString());\n msg.setStripeCustomerEmail(value);\n break;\n case 9:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCancelAt(value);\n break;\n case 10:\n var value = /** @type {string} */ (reader.readString());\n msg.setItemId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Subscription.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.Subscription.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Subscription} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Subscription.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getPlanType();\n if (f !== 0.0) {\n writer.writeEnum(\n 2,\n f\n );\n }\n f = message.getUpdatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getCustomerId();\n if (f.length > 0) {\n writer.writeString(\n 6,\n f\n );\n }\n f = message.getStripeSubscriptionId();\n if (f.length > 0) {\n writer.writeString(\n 7,\n f\n );\n }\n f = message.getStripeCustomerEmail();\n if (f.length > 0) {\n writer.writeString(\n 8,\n f\n );\n }\n f = message.getCancelAt();\n if (f !== 0) {\n writer.writeInt64(\n 9,\n f\n );\n }\n f = message.getItemId();\n if (f.length > 0) {\n writer.writeString(\n 10,\n f\n );\n }\n};\n\n\n/**\n * optional PlanType plan_type = 2;\n * @return {!proto.PlanType}\n */\nproto.Subscription.prototype.getPlanType = function() {\n return /** @type {!proto.PlanType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {!proto.PlanType} value\n * @return {!proto.Subscription} returns this\n */\nproto.Subscription.prototype.setPlanType = function(value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n/**\n * optional int64 updated_at = 4;\n * @return {number}\n */\nproto.Subscription.prototype.getUpdatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Subscription} returns this\n */\nproto.Subscription.prototype.setUpdatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional string customer_id = 6;\n * @return {string}\n */\nproto.Subscription.prototype.getCustomerId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Subscription} returns this\n */\nproto.Subscription.prototype.setCustomerId = function(value) {\n return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional string stripe_subscription_id = 7;\n * @return {string}\n */\nproto.Subscription.prototype.getStripeSubscriptionId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Subscription} returns this\n */\nproto.Subscription.prototype.setStripeSubscriptionId = function(value) {\n return jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n/**\n * optional string stripe_customer_email = 8;\n * @return {string}\n */\nproto.Subscription.prototype.getStripeCustomerEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Subscription} returns this\n */\nproto.Subscription.prototype.setStripeCustomerEmail = function(value) {\n return jspb.Message.setProto3StringField(this, 8, value);\n};\n\n\n/**\n * optional int64 cancel_at = 9;\n * @return {number}\n */\nproto.Subscription.prototype.getCancelAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Subscription} returns this\n */\nproto.Subscription.prototype.setCancelAt = function(value) {\n return jspb.Message.setProto3IntField(this, 9, value);\n};\n\n\n/**\n * optional string item_id = 10;\n * @return {string}\n */\nproto.Subscription.prototype.getItemId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Subscription} returns this\n */\nproto.Subscription.prototype.setItemId = function(value) {\n return jspb.Message.setProto3StringField(this, 10, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateSubscriptionRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateSubscriptionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateSubscriptionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateSubscriptionRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n planType: jspb.Message.getFieldWithDefault(msg, 1, 0),\n uiUrl: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateSubscriptionRequest}\n */\nproto.CreateSubscriptionRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateSubscriptionRequest;\n return proto.CreateSubscriptionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateSubscriptionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateSubscriptionRequest}\n */\nproto.CreateSubscriptionRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!proto.PlanType} */ (reader.readEnum());\n msg.setPlanType(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setUiUrl(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateSubscriptionRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateSubscriptionRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateSubscriptionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateSubscriptionRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getPlanType();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n f = message.getUiUrl();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional PlanType plan_type = 1;\n * @return {!proto.PlanType}\n */\nproto.CreateSubscriptionRequest.prototype.getPlanType = function() {\n return /** @type {!proto.PlanType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {!proto.PlanType} value\n * @return {!proto.CreateSubscriptionRequest} returns this\n */\nproto.CreateSubscriptionRequest.prototype.setPlanType = function(value) {\n return jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional string ui_url = 2;\n * @return {string}\n */\nproto.CreateSubscriptionRequest.prototype.getUiUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.CreateSubscriptionRequest} returns this\n */\nproto.CreateSubscriptionRequest.prototype.setUiUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateSubscriptionResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateSubscriptionResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateSubscriptionResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateSubscriptionResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n redirectUrl: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateSubscriptionResponse}\n */\nproto.CreateSubscriptionResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateSubscriptionResponse;\n return proto.CreateSubscriptionResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateSubscriptionResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateSubscriptionResponse}\n */\nproto.CreateSubscriptionResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setRedirectUrl(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateSubscriptionResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateSubscriptionResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateSubscriptionResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateSubscriptionResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getRedirectUrl();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string redirect_url = 1;\n * @return {string}\n */\nproto.CreateSubscriptionResponse.prototype.getRedirectUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.CreateSubscriptionResponse} returns this\n */\nproto.CreateSubscriptionResponse.prototype.setRedirectUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetConnectionListRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.GetConnectionListRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetConnectionListRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetConnectionListRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetConnectionListRequest}\n */\nproto.GetConnectionListRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetConnectionListRequest;\n return proto.GetConnectionListRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetConnectionListRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetConnectionListRequest}\n */\nproto.GetConnectionListRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetConnectionListRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetConnectionListRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetConnectionListRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetConnectionListRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.GetConnectionListResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetConnectionListResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.GetConnectionListResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetConnectionListResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetConnectionListResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n connectionsList: jspb.Message.toObjectList(msg.getConnectionsList(),\n proto.Connection.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetConnectionListResponse}\n */\nproto.GetConnectionListResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetConnectionListResponse;\n return proto.GetConnectionListResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetConnectionListResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetConnectionListResponse}\n */\nproto.GetConnectionListResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Connection;\n reader.readMessage(value,proto.Connection.deserializeBinaryFromReader);\n msg.addConnections(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetConnectionListResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetConnectionListResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetConnectionListResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetConnectionListResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getConnectionsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.Connection.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated Connection connections = 1;\n * @return {!Array}\n */\nproto.GetConnectionListResponse.prototype.getConnectionsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.Connection, 1));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.GetConnectionListResponse} returns this\n*/\nproto.GetConnectionListResponse.prototype.setConnectionsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.Connection=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Connection}\n */\nproto.GetConnectionListResponse.prototype.addConnections = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.Connection, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.GetConnectionListResponse} returns this\n */\nproto.GetConnectionListResponse.prototype.clearConnectionsList = function() {\n return this.setConnectionsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetUserStreamRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.GetUserStreamRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetUserStreamRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetUserStreamRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n streamOptions: (f = msg.getStreamOptions()) && proto.StreamOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetUserStreamRequest}\n */\nproto.GetUserStreamRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetUserStreamRequest;\n return proto.GetUserStreamRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetUserStreamRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetUserStreamRequest}\n */\nproto.GetUserStreamRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.StreamOptions;\n reader.readMessage(value,proto.StreamOptions.deserializeBinaryFromReader);\n msg.setStreamOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetUserStreamRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetUserStreamRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetUserStreamRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetUserStreamRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getStreamOptions();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.StreamOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional StreamOptions stream_options = 1;\n * @return {?proto.StreamOptions}\n */\nproto.GetUserStreamRequest.prototype.getStreamOptions = function() {\n return /** @type{?proto.StreamOptions} */ (\n jspb.Message.getWrapperField(this, proto.StreamOptions, 1));\n};\n\n\n/**\n * @param {?proto.StreamOptions|undefined} value\n * @return {!proto.GetUserStreamRequest} returns this\n*/\nproto.GetUserStreamRequest.prototype.setStreamOptions = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetUserStreamRequest} returns this\n */\nproto.GetUserStreamRequest.prototype.clearStreamOptions = function() {\n return this.setStreamOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetUserStreamRequest.prototype.hasStreamOptions = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetUserStreamResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.GetUserStreamResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetUserStreamResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetUserStreamResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n streamOptions: (f = msg.getStreamOptions()) && proto.StreamOptions.toObject(includeInstance, f),\n connectionUpdate: jspb.Message.getFieldWithDefault(msg, 2, 0),\n email: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n workspaceId: jspb.Message.getFieldWithDefault(msg, 101, \"\"),\n planType: jspb.Message.getFieldWithDefault(msg, 102, 0),\n workspaceUpdate: jspb.Message.getFieldWithDefault(msg, 103, 0),\n role: jspb.Message.getFieldWithDefault(msg, 104, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetUserStreamResponse}\n */\nproto.GetUserStreamResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetUserStreamResponse;\n return proto.GetUserStreamResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetUserStreamResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetUserStreamResponse}\n */\nproto.GetUserStreamResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.StreamOptions;\n reader.readMessage(value,proto.StreamOptions.deserializeBinaryFromReader);\n msg.setStreamOptions(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setConnectionUpdate(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n case 101:\n var value = /** @type {string} */ (reader.readString());\n msg.setWorkspaceId(value);\n break;\n case 102:\n var value = /** @type {!proto.PlanType} */ (reader.readEnum());\n msg.setPlanType(value);\n break;\n case 103:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setWorkspaceUpdate(value);\n break;\n case 104:\n var value = /** @type {!proto.UserRole} */ (reader.readEnum());\n msg.setRole(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetUserStreamResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetUserStreamResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetUserStreamResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetUserStreamResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getStreamOptions();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.StreamOptions.serializeBinaryToWriter\n );\n }\n f = message.getConnectionUpdate();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getWorkspaceId();\n if (f.length > 0) {\n writer.writeString(\n 101,\n f\n );\n }\n f = message.getPlanType();\n if (f !== 0.0) {\n writer.writeEnum(\n 102,\n f\n );\n }\n f = message.getWorkspaceUpdate();\n if (f !== 0) {\n writer.writeInt64(\n 103,\n f\n );\n }\n f = message.getRole();\n if (f !== 0.0) {\n writer.writeEnum(\n 104,\n f\n );\n }\n};\n\n\n/**\n * optional StreamOptions stream_options = 1;\n * @return {?proto.StreamOptions}\n */\nproto.GetUserStreamResponse.prototype.getStreamOptions = function() {\n return /** @type{?proto.StreamOptions} */ (\n jspb.Message.getWrapperField(this, proto.StreamOptions, 1));\n};\n\n\n/**\n * @param {?proto.StreamOptions|undefined} value\n * @return {!proto.GetUserStreamResponse} returns this\n*/\nproto.GetUserStreamResponse.prototype.setStreamOptions = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetUserStreamResponse} returns this\n */\nproto.GetUserStreamResponse.prototype.clearStreamOptions = function() {\n return this.setStreamOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetUserStreamResponse.prototype.hasStreamOptions = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional int64 connection_update = 2;\n * @return {number}\n */\nproto.GetUserStreamResponse.prototype.getConnectionUpdate = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.GetUserStreamResponse} returns this\n */\nproto.GetUserStreamResponse.prototype.setConnectionUpdate = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string email = 3;\n * @return {string}\n */\nproto.GetUserStreamResponse.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.GetUserStreamResponse} returns this\n */\nproto.GetUserStreamResponse.prototype.setEmail = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string workspace_id = 101;\n * @return {string}\n */\nproto.GetUserStreamResponse.prototype.getWorkspaceId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 101, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.GetUserStreamResponse} returns this\n */\nproto.GetUserStreamResponse.prototype.setWorkspaceId = function(value) {\n return jspb.Message.setProto3StringField(this, 101, value);\n};\n\n\n/**\n * optional PlanType plan_type = 102;\n * @return {!proto.PlanType}\n */\nproto.GetUserStreamResponse.prototype.getPlanType = function() {\n return /** @type {!proto.PlanType} */ (jspb.Message.getFieldWithDefault(this, 102, 0));\n};\n\n\n/**\n * @param {!proto.PlanType} value\n * @return {!proto.GetUserStreamResponse} returns this\n */\nproto.GetUserStreamResponse.prototype.setPlanType = function(value) {\n return jspb.Message.setProto3EnumField(this, 102, value);\n};\n\n\n/**\n * optional int64 workspace_update = 103;\n * @return {number}\n */\nproto.GetUserStreamResponse.prototype.getWorkspaceUpdate = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 103, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.GetUserStreamResponse} returns this\n */\nproto.GetUserStreamResponse.prototype.setWorkspaceUpdate = function(value) {\n return jspb.Message.setProto3IntField(this, 103, value);\n};\n\n\n/**\n * optional UserRole role = 104;\n * @return {!proto.UserRole}\n */\nproto.GetUserStreamResponse.prototype.getRole = function() {\n return /** @type {!proto.UserRole} */ (jspb.Message.getFieldWithDefault(this, 104, 0));\n};\n\n\n/**\n * @param {!proto.UserRole} value\n * @return {!proto.GetUserStreamResponse} returns this\n */\nproto.GetUserStreamResponse.prototype.setRole = function(value) {\n return jspb.Message.setProto3EnumField(this, 104, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.TestConnectionRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.TestConnectionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.TestConnectionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.TestConnectionRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n connection: (f = msg.getConnection()) && proto.Connection.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.TestConnectionRequest}\n */\nproto.TestConnectionRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.TestConnectionRequest;\n return proto.TestConnectionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.TestConnectionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.TestConnectionRequest}\n */\nproto.TestConnectionRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Connection;\n reader.readMessage(value,proto.Connection.deserializeBinaryFromReader);\n msg.setConnection(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.TestConnectionRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.TestConnectionRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.TestConnectionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.TestConnectionRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getConnection();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.Connection.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Connection connection = 1;\n * @return {?proto.Connection}\n */\nproto.TestConnectionRequest.prototype.getConnection = function() {\n return /** @type{?proto.Connection} */ (\n jspb.Message.getWrapperField(this, proto.Connection, 1));\n};\n\n\n/**\n * @param {?proto.Connection|undefined} value\n * @return {!proto.TestConnectionRequest} returns this\n*/\nproto.TestConnectionRequest.prototype.setConnection = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.TestConnectionRequest} returns this\n */\nproto.TestConnectionRequest.prototype.clearConnection = function() {\n return this.setConnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.TestConnectionRequest.prototype.hasConnection = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.TestConnectionResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.TestConnectionResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.TestConnectionResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.TestConnectionResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n success: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),\n error: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.TestConnectionResponse}\n */\nproto.TestConnectionResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.TestConnectionResponse;\n return proto.TestConnectionResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.TestConnectionResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.TestConnectionResponse}\n */\nproto.TestConnectionResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setSuccess(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setError(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.TestConnectionResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.TestConnectionResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.TestConnectionResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.TestConnectionResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getSuccess();\n if (f) {\n writer.writeBool(\n 1,\n f\n );\n }\n f = message.getError();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bool success = 1;\n * @return {boolean}\n */\nproto.TestConnectionResponse.prototype.getSuccess = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.TestConnectionResponse} returns this\n */\nproto.TestConnectionResponse.prototype.setSuccess = function(value) {\n return jspb.Message.setProto3BooleanField(this, 1, value);\n};\n\n\n/**\n * optional string error = 2;\n * @return {string}\n */\nproto.TestConnectionResponse.prototype.getError = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.TestConnectionResponse} returns this\n */\nproto.TestConnectionResponse.prototype.setError = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ArchiveConnectionRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.ArchiveConnectionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ArchiveConnectionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ArchiveConnectionRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n connectionId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ArchiveConnectionRequest}\n */\nproto.ArchiveConnectionRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ArchiveConnectionRequest;\n return proto.ArchiveConnectionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ArchiveConnectionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ArchiveConnectionRequest}\n */\nproto.ArchiveConnectionRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setConnectionId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ArchiveConnectionRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ArchiveConnectionRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ArchiveConnectionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ArchiveConnectionRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getConnectionId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string connection_id = 1;\n * @return {string}\n */\nproto.ArchiveConnectionRequest.prototype.getConnectionId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.ArchiveConnectionRequest} returns this\n */\nproto.ArchiveConnectionRequest.prototype.setConnectionId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ArchiveConnectionResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.ArchiveConnectionResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ArchiveConnectionResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ArchiveConnectionResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ArchiveConnectionResponse}\n */\nproto.ArchiveConnectionResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ArchiveConnectionResponse;\n return proto.ArchiveConnectionResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ArchiveConnectionResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ArchiveConnectionResponse}\n */\nproto.ArchiveConnectionResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ArchiveConnectionResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ArchiveConnectionResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ArchiveConnectionResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ArchiveConnectionResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateConnectionRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateConnectionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateConnectionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateConnectionRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n connection: (f = msg.getConnection()) && proto.Connection.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateConnectionRequest}\n */\nproto.UpdateConnectionRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateConnectionRequest;\n return proto.UpdateConnectionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateConnectionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateConnectionRequest}\n */\nproto.UpdateConnectionRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Connection;\n reader.readMessage(value,proto.Connection.deserializeBinaryFromReader);\n msg.setConnection(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateConnectionRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateConnectionRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateConnectionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateConnectionRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getConnection();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.Connection.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Connection connection = 1;\n * @return {?proto.Connection}\n */\nproto.UpdateConnectionRequest.prototype.getConnection = function() {\n return /** @type{?proto.Connection} */ (\n jspb.Message.getWrapperField(this, proto.Connection, 1));\n};\n\n\n/**\n * @param {?proto.Connection|undefined} value\n * @return {!proto.UpdateConnectionRequest} returns this\n*/\nproto.UpdateConnectionRequest.prototype.setConnection = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.UpdateConnectionRequest} returns this\n */\nproto.UpdateConnectionRequest.prototype.clearConnection = function() {\n return this.setConnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.UpdateConnectionRequest.prototype.hasConnection = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateConnectionResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateConnectionResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateConnectionResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateConnectionResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n connection: (f = msg.getConnection()) && proto.Connection.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateConnectionResponse}\n */\nproto.UpdateConnectionResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateConnectionResponse;\n return proto.UpdateConnectionResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateConnectionResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateConnectionResponse}\n */\nproto.UpdateConnectionResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Connection;\n reader.readMessage(value,proto.Connection.deserializeBinaryFromReader);\n msg.setConnection(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateConnectionResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateConnectionResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateConnectionResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateConnectionResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getConnection();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.Connection.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Connection connection = 1;\n * @return {?proto.Connection}\n */\nproto.UpdateConnectionResponse.prototype.getConnection = function() {\n return /** @type{?proto.Connection} */ (\n jspb.Message.getWrapperField(this, proto.Connection, 1));\n};\n\n\n/**\n * @param {?proto.Connection|undefined} value\n * @return {!proto.UpdateConnectionResponse} returns this\n*/\nproto.UpdateConnectionResponse.prototype.setConnection = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.UpdateConnectionResponse} returns this\n */\nproto.UpdateConnectionResponse.prototype.clearConnection = function() {\n return this.setConnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.UpdateConnectionResponse.prototype.hasConnection = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateConnectionRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateConnectionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateConnectionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateConnectionRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n connection: (f = msg.getConnection()) && proto.Connection.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateConnectionRequest}\n */\nproto.CreateConnectionRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateConnectionRequest;\n return proto.CreateConnectionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateConnectionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateConnectionRequest}\n */\nproto.CreateConnectionRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Connection;\n reader.readMessage(value,proto.Connection.deserializeBinaryFromReader);\n msg.setConnection(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateConnectionRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateConnectionRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateConnectionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateConnectionRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getConnection();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.Connection.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Connection connection = 1;\n * @return {?proto.Connection}\n */\nproto.CreateConnectionRequest.prototype.getConnection = function() {\n return /** @type{?proto.Connection} */ (\n jspb.Message.getWrapperField(this, proto.Connection, 1));\n};\n\n\n/**\n * @param {?proto.Connection|undefined} value\n * @return {!proto.CreateConnectionRequest} returns this\n*/\nproto.CreateConnectionRequest.prototype.setConnection = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.CreateConnectionRequest} returns this\n */\nproto.CreateConnectionRequest.prototype.clearConnection = function() {\n return this.setConnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.CreateConnectionRequest.prototype.hasConnection = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateConnectionResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateConnectionResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateConnectionResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateConnectionResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n connection: (f = msg.getConnection()) && proto.Connection.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateConnectionResponse}\n */\nproto.CreateConnectionResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateConnectionResponse;\n return proto.CreateConnectionResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateConnectionResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateConnectionResponse}\n */\nproto.CreateConnectionResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Connection;\n reader.readMessage(value,proto.Connection.deserializeBinaryFromReader);\n msg.setConnection(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateConnectionResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateConnectionResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateConnectionResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateConnectionResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getConnection();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.Connection.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Connection connection = 1;\n * @return {?proto.Connection}\n */\nproto.CreateConnectionResponse.prototype.getConnection = function() {\n return /** @type{?proto.Connection} */ (\n jspb.Message.getWrapperField(this, proto.Connection, 1));\n};\n\n\n/**\n * @param {?proto.Connection|undefined} value\n * @return {!proto.CreateConnectionResponse} returns this\n*/\nproto.CreateConnectionResponse.prototype.setConnection = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.CreateConnectionResponse} returns this\n */\nproto.CreateConnectionResponse.prototype.clearConnection = function() {\n return this.setConnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.CreateConnectionResponse.prototype.hasConnection = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Connection.prototype.toObject = function(opt_includeInstance) {\n return proto.Connection.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.Connection} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Connection.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n connectionName: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n bigqueryProjectId: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n cloudStorageBucket: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n isDefault: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),\n authorEmail: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n createdAt: jspb.Message.getFieldWithDefault(msg, 7, 0),\n updatedAt: jspb.Message.getFieldWithDefault(msg, 8, 0),\n datasetCount: jspb.Message.getFieldWithDefault(msg, 9, 0),\n canStoreFiles: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),\n connectionType: jspb.Message.getFieldWithDefault(msg, 11, 0),\n snowflakeAccountId: jspb.Message.getFieldWithDefault(msg, 12, \"\"),\n snowflakeUsername: jspb.Message.getFieldWithDefault(msg, 13, \"\"),\n snowflakePassword: (f = msg.getSnowflakePassword()) && proto.Secret.toObject(includeInstance, f),\n snowflakeWarehouse: jspb.Message.getFieldWithDefault(msg, 15, \"\"),\n bigqueryKey: (f = msg.getBigqueryKey()) && proto.Secret.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Connection}\n */\nproto.Connection.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.Connection;\n return proto.Connection.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Connection} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Connection}\n */\nproto.Connection.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setConnectionName(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setBigqueryProjectId(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setCloudStorageBucket(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsDefault(value);\n break;\n case 6:\n var value = /** @type {string} */ (reader.readString());\n msg.setAuthorEmail(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreatedAt(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUpdatedAt(value);\n break;\n case 9:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setDatasetCount(value);\n break;\n case 10:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setCanStoreFiles(value);\n break;\n case 11:\n var value = /** @type {!proto.ConnectionType} */ (reader.readEnum());\n msg.setConnectionType(value);\n break;\n case 12:\n var value = /** @type {string} */ (reader.readString());\n msg.setSnowflakeAccountId(value);\n break;\n case 13:\n var value = /** @type {string} */ (reader.readString());\n msg.setSnowflakeUsername(value);\n break;\n case 14:\n var value = new proto.Secret;\n reader.readMessage(value,proto.Secret.deserializeBinaryFromReader);\n msg.setSnowflakePassword(value);\n break;\n case 15:\n var value = /** @type {string} */ (reader.readString());\n msg.setSnowflakeWarehouse(value);\n break;\n case 16:\n var value = new proto.Secret;\n reader.readMessage(value,proto.Secret.deserializeBinaryFromReader);\n msg.setBigqueryKey(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Connection.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.Connection.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Connection} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Connection.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getConnectionName();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getBigqueryProjectId();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getCloudStorageBucket();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getIsDefault();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n f = message.getAuthorEmail();\n if (f.length > 0) {\n writer.writeString(\n 6,\n f\n );\n }\n f = message.getCreatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 7,\n f\n );\n }\n f = message.getUpdatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n f = message.getDatasetCount();\n if (f !== 0) {\n writer.writeInt64(\n 9,\n f\n );\n }\n f = message.getCanStoreFiles();\n if (f) {\n writer.writeBool(\n 10,\n f\n );\n }\n f = message.getConnectionType();\n if (f !== 0.0) {\n writer.writeEnum(\n 11,\n f\n );\n }\n f = message.getSnowflakeAccountId();\n if (f.length > 0) {\n writer.writeString(\n 12,\n f\n );\n }\n f = message.getSnowflakeUsername();\n if (f.length > 0) {\n writer.writeString(\n 13,\n f\n );\n }\n f = message.getSnowflakePassword();\n if (f != null) {\n writer.writeMessage(\n 14,\n f,\n proto.Secret.serializeBinaryToWriter\n );\n }\n f = message.getSnowflakeWarehouse();\n if (f.length > 0) {\n writer.writeString(\n 15,\n f\n );\n }\n f = message.getBigqueryKey();\n if (f != null) {\n writer.writeMessage(\n 16,\n f,\n proto.Secret.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.Connection.prototype.getId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string connection_name = 2;\n * @return {string}\n */\nproto.Connection.prototype.getConnectionName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setConnectionName = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string bigquery_project_id = 3;\n * @return {string}\n */\nproto.Connection.prototype.getBigqueryProjectId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setBigqueryProjectId = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string cloud_storage_bucket = 4;\n * @return {string}\n */\nproto.Connection.prototype.getCloudStorageBucket = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setCloudStorageBucket = function(value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional bool is_default = 5;\n * @return {boolean}\n */\nproto.Connection.prototype.getIsDefault = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setIsDefault = function(value) {\n return jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n/**\n * optional string author_email = 6;\n * @return {string}\n */\nproto.Connection.prototype.getAuthorEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setAuthorEmail = function(value) {\n return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional int64 created_at = 7;\n * @return {number}\n */\nproto.Connection.prototype.getCreatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setCreatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional int64 updated_at = 8;\n * @return {number}\n */\nproto.Connection.prototype.getUpdatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setUpdatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional int64 dataset_count = 9;\n * @return {number}\n */\nproto.Connection.prototype.getDatasetCount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setDatasetCount = function(value) {\n return jspb.Message.setProto3IntField(this, 9, value);\n};\n\n\n/**\n * optional bool can_store_files = 10;\n * @return {boolean}\n */\nproto.Connection.prototype.getCanStoreFiles = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setCanStoreFiles = function(value) {\n return jspb.Message.setProto3BooleanField(this, 10, value);\n};\n\n\n/**\n * optional ConnectionType connection_type = 11;\n * @return {!proto.ConnectionType}\n */\nproto.Connection.prototype.getConnectionType = function() {\n return /** @type {!proto.ConnectionType} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n\n/**\n * @param {!proto.ConnectionType} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setConnectionType = function(value) {\n return jspb.Message.setProto3EnumField(this, 11, value);\n};\n\n\n/**\n * optional string snowflake_account_id = 12;\n * @return {string}\n */\nproto.Connection.prototype.getSnowflakeAccountId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setSnowflakeAccountId = function(value) {\n return jspb.Message.setProto3StringField(this, 12, value);\n};\n\n\n/**\n * optional string snowflake_username = 13;\n * @return {string}\n */\nproto.Connection.prototype.getSnowflakeUsername = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setSnowflakeUsername = function(value) {\n return jspb.Message.setProto3StringField(this, 13, value);\n};\n\n\n/**\n * optional Secret snowflake_password = 14;\n * @return {?proto.Secret}\n */\nproto.Connection.prototype.getSnowflakePassword = function() {\n return /** @type{?proto.Secret} */ (\n jspb.Message.getWrapperField(this, proto.Secret, 14));\n};\n\n\n/**\n * @param {?proto.Secret|undefined} value\n * @return {!proto.Connection} returns this\n*/\nproto.Connection.prototype.setSnowflakePassword = function(value) {\n return jspb.Message.setWrapperField(this, 14, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.clearSnowflakePassword = function() {\n return this.setSnowflakePassword(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Connection.prototype.hasSnowflakePassword = function() {\n return jspb.Message.getField(this, 14) != null;\n};\n\n\n/**\n * optional string snowflake_warehouse = 15;\n * @return {string}\n */\nproto.Connection.prototype.getSnowflakeWarehouse = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.setSnowflakeWarehouse = function(value) {\n return jspb.Message.setProto3StringField(this, 15, value);\n};\n\n\n/**\n * optional Secret bigquery_key = 16;\n * @return {?proto.Secret}\n */\nproto.Connection.prototype.getBigqueryKey = function() {\n return /** @type{?proto.Secret} */ (\n jspb.Message.getWrapperField(this, proto.Secret, 16));\n};\n\n\n/**\n * @param {?proto.Secret|undefined} value\n * @return {!proto.Connection} returns this\n*/\nproto.Connection.prototype.setBigqueryKey = function(value) {\n return jspb.Message.setWrapperField(this, 16, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Connection} returns this\n */\nproto.Connection.prototype.clearBigqueryKey = function() {\n return this.setBigqueryKey(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Connection.prototype.hasBigqueryKey = function() {\n return jspb.Message.getField(this, 16) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Secret.prototype.toObject = function(opt_includeInstance) {\n return proto.Secret.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.Secret} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Secret.toObject = function(includeInstance, msg) {\n var f, obj = {\n clientEncrypted: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n serverEncrypted: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n length: jspb.Message.getFieldWithDefault(msg, 3, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Secret}\n */\nproto.Secret.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.Secret;\n return proto.Secret.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Secret} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Secret}\n */\nproto.Secret.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setClientEncrypted(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setServerEncrypted(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setLength(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Secret.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.Secret.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Secret} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Secret.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getClientEncrypted();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getServerEncrypted();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getLength();\n if (f !== 0) {\n writer.writeInt32(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional string client_encrypted = 1;\n * @return {string}\n */\nproto.Secret.prototype.getClientEncrypted = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Secret} returns this\n */\nproto.Secret.prototype.setClientEncrypted = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string server_encrypted = 2;\n * @return {string}\n */\nproto.Secret.prototype.getServerEncrypted = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Secret} returns this\n */\nproto.Secret.prototype.setServerEncrypted = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional int32 length = 3;\n * @return {number}\n */\nproto.Secret.prototype.getLength = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Secret} returns this\n */\nproto.Secret.prototype.setLength = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetUsageRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.GetUsageRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetUsageRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetUsageRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetUsageRequest}\n */\nproto.GetUsageRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetUsageRequest;\n return proto.GetUsageRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetUsageRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetUsageRequest}\n */\nproto.GetUsageRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetUsageRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetUsageRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetUsageRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetUsageRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetUsageResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.GetUsageResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetUsageResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetUsageResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n totalReports: jspb.Message.getFieldWithDefault(msg, 1, 0),\n totalQueries: jspb.Message.getFieldWithDefault(msg, 2, 0),\n totalFiles: jspb.Message.getFieldWithDefault(msg, 3, 0),\n totalAuthors: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetUsageResponse}\n */\nproto.GetUsageResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetUsageResponse;\n return proto.GetUsageResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetUsageResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetUsageResponse}\n */\nproto.GetUsageResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTotalReports(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTotalQueries(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTotalFiles(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTotalAuthors(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetUsageResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetUsageResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetUsageResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetUsageResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTotalReports();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getTotalQueries();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getTotalFiles();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getTotalAuthors();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional int64 total_reports = 1;\n * @return {number}\n */\nproto.GetUsageResponse.prototype.getTotalReports = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.GetUsageResponse} returns this\n */\nproto.GetUsageResponse.prototype.setTotalReports = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int64 total_queries = 2;\n * @return {number}\n */\nproto.GetUsageResponse.prototype.getTotalQueries = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.GetUsageResponse} returns this\n */\nproto.GetUsageResponse.prototype.setTotalQueries = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional int64 total_files = 3;\n * @return {number}\n */\nproto.GetUsageResponse.prototype.getTotalFiles = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.GetUsageResponse} returns this\n */\nproto.GetUsageResponse.prototype.setTotalFiles = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional int64 total_authors = 4;\n * @return {number}\n */\nproto.GetUsageResponse.prototype.getTotalAuthors = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.GetUsageResponse} returns this\n */\nproto.GetUsageResponse.prototype.setTotalAuthors = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.SetDiscoverableRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.SetDiscoverableRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.SetDiscoverableRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.SetDiscoverableRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n discoverable: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n allowEdit: jspb.Message.getBooleanFieldWithDefault(msg, 3, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.SetDiscoverableRequest}\n */\nproto.SetDiscoverableRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.SetDiscoverableRequest;\n return proto.SetDiscoverableRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.SetDiscoverableRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.SetDiscoverableRequest}\n */\nproto.SetDiscoverableRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setDiscoverable(value);\n break;\n case 3:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setAllowEdit(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.SetDiscoverableRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.SetDiscoverableRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.SetDiscoverableRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.SetDiscoverableRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getDiscoverable();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n f = message.getAllowEdit();\n if (f) {\n writer.writeBool(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.SetDiscoverableRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.SetDiscoverableRequest} returns this\n */\nproto.SetDiscoverableRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bool discoverable = 2;\n * @return {boolean}\n */\nproto.SetDiscoverableRequest.prototype.getDiscoverable = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.SetDiscoverableRequest} returns this\n */\nproto.SetDiscoverableRequest.prototype.setDiscoverable = function(value) {\n return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional bool allow_edit = 3;\n * @return {boolean}\n */\nproto.SetDiscoverableRequest.prototype.getAllowEdit = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.SetDiscoverableRequest} returns this\n */\nproto.SetDiscoverableRequest.prototype.setAllowEdit = function(value) {\n return jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.SetDiscoverableResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.SetDiscoverableResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.SetDiscoverableResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.SetDiscoverableResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.SetDiscoverableResponse}\n */\nproto.SetDiscoverableResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.SetDiscoverableResponse;\n return proto.SetDiscoverableResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.SetDiscoverableResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.SetDiscoverableResponse}\n */\nproto.SetDiscoverableResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.SetDiscoverableResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.SetDiscoverableResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.SetDiscoverableResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.SetDiscoverableResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RemoveDatasetRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.RemoveDatasetRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RemoveDatasetRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RemoveDatasetRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n datasetId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RemoveDatasetRequest}\n */\nproto.RemoveDatasetRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RemoveDatasetRequest;\n return proto.RemoveDatasetRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RemoveDatasetRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RemoveDatasetRequest}\n */\nproto.RemoveDatasetRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setDatasetId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RemoveDatasetRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RemoveDatasetRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RemoveDatasetRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RemoveDatasetRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDatasetId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string dataset_id = 1;\n * @return {string}\n */\nproto.RemoveDatasetRequest.prototype.getDatasetId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RemoveDatasetRequest} returns this\n */\nproto.RemoveDatasetRequest.prototype.setDatasetId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RemoveDatasetResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.RemoveDatasetResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RemoveDatasetResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RemoveDatasetResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n datasetId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RemoveDatasetResponse}\n */\nproto.RemoveDatasetResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RemoveDatasetResponse;\n return proto.RemoveDatasetResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RemoveDatasetResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RemoveDatasetResponse}\n */\nproto.RemoveDatasetResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setDatasetId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RemoveDatasetResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RemoveDatasetResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RemoveDatasetResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RemoveDatasetResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDatasetId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string dataset_id = 1;\n * @return {string}\n */\nproto.RemoveDatasetResponse.prototype.getDatasetId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RemoveDatasetResponse} returns this\n */\nproto.RemoveDatasetResponse.prototype.setDatasetId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.StreamOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.StreamOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.StreamOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.StreamOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n sequence: jspb.Message.getFieldWithDefault(msg, 1, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.StreamOptions}\n */\nproto.StreamOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.StreamOptions;\n return proto.StreamOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.StreamOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.StreamOptions}\n */\nproto.StreamOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setSequence(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.StreamOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.StreamOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.StreamOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.StreamOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getSequence();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional int64 sequence = 1;\n * @return {number}\n */\nproto.StreamOptions.prototype.getSequence = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.StreamOptions} returns this\n */\nproto.StreamOptions.prototype.setSequence = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetEnvRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.GetEnvRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetEnvRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetEnvRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetEnvRequest}\n */\nproto.GetEnvRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetEnvRequest;\n return proto.GetEnvRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetEnvRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetEnvRequest}\n */\nproto.GetEnvRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetEnvRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetEnvRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetEnvRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetEnvRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.GetEnvResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetEnvResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.GetEnvResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetEnvResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetEnvResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n variablesList: jspb.Message.toObjectList(msg.getVariablesList(),\n proto.GetEnvResponse.Variable.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetEnvResponse}\n */\nproto.GetEnvResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetEnvResponse;\n return proto.GetEnvResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetEnvResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetEnvResponse}\n */\nproto.GetEnvResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.GetEnvResponse.Variable;\n reader.readMessage(value,proto.GetEnvResponse.Variable.deserializeBinaryFromReader);\n msg.addVariables(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetEnvResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetEnvResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetEnvResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetEnvResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getVariablesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.GetEnvResponse.Variable.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetEnvResponse.Variable.prototype.toObject = function(opt_includeInstance) {\n return proto.GetEnvResponse.Variable.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.GetEnvResponse.Variable} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetEnvResponse.Variable.toObject = function(includeInstance, msg) {\n var f, obj = {\n type: jspb.Message.getFieldWithDefault(msg, 1, 0),\n value: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetEnvResponse.Variable}\n */\nproto.GetEnvResponse.Variable.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.GetEnvResponse.Variable;\n return proto.GetEnvResponse.Variable.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetEnvResponse.Variable} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetEnvResponse.Variable}\n */\nproto.GetEnvResponse.Variable.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!proto.GetEnvResponse.Variable.Type} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setValue(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetEnvResponse.Variable.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.GetEnvResponse.Variable.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetEnvResponse.Variable} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetEnvResponse.Variable.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n f = message.getValue();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.GetEnvResponse.Variable.Type = {\n TYPE_UNSPECIFIED: 0,\n TYPE_MAPBOX_TOKEN: 1,\n TYPE_UX_DATA_DOCUMENTATION: 2,\n TYPE_UX_HOMEPAGE: 3,\n TYPE_ALLOW_FILE_UPLOAD: 4,\n TYPE_DATASOURCE: 5,\n TYPE_STORAGE: 6,\n TYPE_REQUIRE_AMAZON_OIDC: 7,\n TYPE_REQUIRE_IAP: 8,\n TYPE_DISABLE_USAGE_STATS: 9,\n TYPE_REQUIRE_GOOGLE_OAUTH: 10,\n TYPE_BIGQUERY_PROJECT_ID: 11,\n TYPE_CLOUD_STORAGE_BUCKET: 12,\n TYPE_UX_ACCESS_ERROR_INFO_HTML: 13,\n TYPE_UX_NOT_FOUND_ERROR_INFO_HTML: 14,\n TYPE_UX_SAMPLE_QUERY_SQL: 15,\n TYPE_AES_KEY: 16,\n TYPE_AES_IV: 17,\n TYPE_AUTH_ENABLED: 18,\n TYPE_USER_DEFINED_CONNECTION: 19\n};\n\n/**\n * optional Type type = 1;\n * @return {!proto.GetEnvResponse.Variable.Type}\n */\nproto.GetEnvResponse.Variable.prototype.getType = function() {\n return /** @type {!proto.GetEnvResponse.Variable.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {!proto.GetEnvResponse.Variable.Type} value\n * @return {!proto.GetEnvResponse.Variable} returns this\n */\nproto.GetEnvResponse.Variable.prototype.setType = function(value) {\n return jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional string value = 2;\n * @return {string}\n */\nproto.GetEnvResponse.Variable.prototype.getValue = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.GetEnvResponse.Variable} returns this\n */\nproto.GetEnvResponse.Variable.prototype.setValue = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * repeated Variable variables = 1;\n * @return {!Array}\n */\nproto.GetEnvResponse.prototype.getVariablesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.GetEnvResponse.Variable, 1));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.GetEnvResponse} returns this\n*/\nproto.GetEnvResponse.prototype.setVariablesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.GetEnvResponse.Variable=} opt_value\n * @param {number=} opt_index\n * @return {!proto.GetEnvResponse.Variable}\n */\nproto.GetEnvResponse.prototype.addVariables = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.GetEnvResponse.Variable, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.GetEnvResponse} returns this\n */\nproto.GetEnvResponse.prototype.clearVariablesList = function() {\n return this.setVariablesList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RedirectState.prototype.toObject = function(opt_includeInstance) {\n return proto.RedirectState.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RedirectState} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RedirectState.toObject = function(includeInstance, msg) {\n var f, obj = {\n tokenJson: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n error: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n sensitiveScopesGranted: jspb.Message.getBooleanFieldWithDefault(msg, 3, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RedirectState}\n */\nproto.RedirectState.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RedirectState;\n return proto.RedirectState.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RedirectState} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RedirectState}\n */\nproto.RedirectState.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setTokenJson(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setError(value);\n break;\n case 3:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setSensitiveScopesGranted(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RedirectState.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RedirectState.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RedirectState} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RedirectState.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTokenJson();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getError();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getSensitiveScopesGranted();\n if (f) {\n writer.writeBool(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional string token_json = 1;\n * @return {string}\n */\nproto.RedirectState.prototype.getTokenJson = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RedirectState} returns this\n */\nproto.RedirectState.prototype.setTokenJson = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string error = 2;\n * @return {string}\n */\nproto.RedirectState.prototype.getError = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RedirectState} returns this\n */\nproto.RedirectState.prototype.setError = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional bool sensitive_scopes_granted = 3;\n * @return {boolean}\n */\nproto.RedirectState.prototype.getSensitiveScopesGranted = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.RedirectState} returns this\n */\nproto.RedirectState.prototype.setSensitiveScopesGranted = function(value) {\n return jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AuthState.prototype.toObject = function(opt_includeInstance) {\n return proto.AuthState.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.AuthState} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AuthState.toObject = function(includeInstance, msg) {\n var f, obj = {\n action: jspb.Message.getFieldWithDefault(msg, 1, 0),\n authUrl: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n uiUrl: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n accessTokenToRevoke: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n switchAccount: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),\n sensitiveScope: jspb.Message.getBooleanFieldWithDefault(msg, 6, false),\n loginHint: jspb.Message.getFieldWithDefault(msg, 7, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AuthState}\n */\nproto.AuthState.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.AuthState;\n return proto.AuthState.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AuthState} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AuthState}\n */\nproto.AuthState.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!proto.AuthState.Action} */ (reader.readEnum());\n msg.setAction(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setAuthUrl(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setUiUrl(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setAccessTokenToRevoke(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setSwitchAccount(value);\n break;\n case 6:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setSensitiveScope(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setLoginHint(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AuthState.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.AuthState.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AuthState} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AuthState.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAction();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n f = message.getAuthUrl();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getUiUrl();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getAccessTokenToRevoke();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getSwitchAccount();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n f = message.getSensitiveScope();\n if (f) {\n writer.writeBool(\n 6,\n f\n );\n }\n f = message.getLoginHint();\n if (f.length > 0) {\n writer.writeString(\n 7,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.AuthState.Action = {\n ACTION_UNSPECIFIED: 0,\n ACTION_REQUEST_CODE: 1,\n ACTION_REQUEST_TOKEN: 2,\n ACTION_REVOKE: 3\n};\n\n/**\n * optional Action action = 1;\n * @return {!proto.AuthState.Action}\n */\nproto.AuthState.prototype.getAction = function() {\n return /** @type {!proto.AuthState.Action} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {!proto.AuthState.Action} value\n * @return {!proto.AuthState} returns this\n */\nproto.AuthState.prototype.setAction = function(value) {\n return jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional string auth_url = 2;\n * @return {string}\n */\nproto.AuthState.prototype.getAuthUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AuthState} returns this\n */\nproto.AuthState.prototype.setAuthUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string ui_url = 3;\n * @return {string}\n */\nproto.AuthState.prototype.getUiUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AuthState} returns this\n */\nproto.AuthState.prototype.setUiUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string access_token_to_revoke = 4;\n * @return {string}\n */\nproto.AuthState.prototype.getAccessTokenToRevoke = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AuthState} returns this\n */\nproto.AuthState.prototype.setAccessTokenToRevoke = function(value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional bool switch_account = 5;\n * @return {boolean}\n */\nproto.AuthState.prototype.getSwitchAccount = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.AuthState} returns this\n */\nproto.AuthState.prototype.setSwitchAccount = function(value) {\n return jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n/**\n * optional bool sensitive_scope = 6;\n * @return {boolean}\n */\nproto.AuthState.prototype.getSensitiveScope = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.AuthState} returns this\n */\nproto.AuthState.prototype.setSensitiveScope = function(value) {\n return jspb.Message.setProto3BooleanField(this, 6, value);\n};\n\n\n/**\n * optional string login_hint = 7;\n * @return {string}\n */\nproto.AuthState.prototype.getLoginHint = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AuthState} returns this\n */\nproto.AuthState.prototype.setLoginHint = function(value) {\n return jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ArchiveReportRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.ArchiveReportRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ArchiveReportRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ArchiveReportRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n archive: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ArchiveReportRequest}\n */\nproto.ArchiveReportRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ArchiveReportRequest;\n return proto.ArchiveReportRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ArchiveReportRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ArchiveReportRequest}\n */\nproto.ArchiveReportRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setArchive(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ArchiveReportRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ArchiveReportRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ArchiveReportRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ArchiveReportRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getArchive();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.ArchiveReportRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.ArchiveReportRequest} returns this\n */\nproto.ArchiveReportRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bool archive = 2;\n * @return {boolean}\n */\nproto.ArchiveReportRequest.prototype.getArchive = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.ArchiveReportRequest} returns this\n */\nproto.ArchiveReportRequest.prototype.setArchive = function(value) {\n return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ArchiveReportResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.ArchiveReportResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ArchiveReportResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ArchiveReportResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ArchiveReportResponse}\n */\nproto.ArchiveReportResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ArchiveReportResponse;\n return proto.ArchiveReportResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ArchiveReportResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ArchiveReportResponse}\n */\nproto.ArchiveReportResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ArchiveReportResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ArchiveReportResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ArchiveReportResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ArchiveReportResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ReportListRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.ReportListRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ReportListRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ReportListRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n streamOptions: (f = msg.getStreamOptions()) && proto.StreamOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ReportListRequest}\n */\nproto.ReportListRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ReportListRequest;\n return proto.ReportListRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ReportListRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ReportListRequest}\n */\nproto.ReportListRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.StreamOptions;\n reader.readMessage(value,proto.StreamOptions.deserializeBinaryFromReader);\n msg.setStreamOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ReportListRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ReportListRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ReportListRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ReportListRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getStreamOptions();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.StreamOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional StreamOptions stream_options = 1;\n * @return {?proto.StreamOptions}\n */\nproto.ReportListRequest.prototype.getStreamOptions = function() {\n return /** @type{?proto.StreamOptions} */ (\n jspb.Message.getWrapperField(this, proto.StreamOptions, 1));\n};\n\n\n/**\n * @param {?proto.StreamOptions|undefined} value\n * @return {!proto.ReportListRequest} returns this\n*/\nproto.ReportListRequest.prototype.setStreamOptions = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ReportListRequest} returns this\n */\nproto.ReportListRequest.prototype.clearStreamOptions = function() {\n return this.setStreamOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ReportListRequest.prototype.hasStreamOptions = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.ReportListResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ReportListResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.ReportListResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ReportListResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ReportListResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportsList: jspb.Message.toObjectList(msg.getReportsList(),\n proto.Report.toObject, includeInstance),\n streamOptions: (f = msg.getStreamOptions()) && proto.StreamOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ReportListResponse}\n */\nproto.ReportListResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ReportListResponse;\n return proto.ReportListResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ReportListResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ReportListResponse}\n */\nproto.ReportListResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Report;\n reader.readMessage(value,proto.Report.deserializeBinaryFromReader);\n msg.addReports(value);\n break;\n case 2:\n var value = new proto.StreamOptions;\n reader.readMessage(value,proto.StreamOptions.deserializeBinaryFromReader);\n msg.setStreamOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ReportListResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ReportListResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ReportListResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ReportListResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.Report.serializeBinaryToWriter\n );\n }\n f = message.getStreamOptions();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.StreamOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated Report reports = 1;\n * @return {!Array}\n */\nproto.ReportListResponse.prototype.getReportsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.Report, 1));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.ReportListResponse} returns this\n*/\nproto.ReportListResponse.prototype.setReportsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.Report=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Report}\n */\nproto.ReportListResponse.prototype.addReports = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.Report, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ReportListResponse} returns this\n */\nproto.ReportListResponse.prototype.clearReportsList = function() {\n return this.setReportsList([]);\n};\n\n\n/**\n * optional StreamOptions stream_options = 2;\n * @return {?proto.StreamOptions}\n */\nproto.ReportListResponse.prototype.getStreamOptions = function() {\n return /** @type{?proto.StreamOptions} */ (\n jspb.Message.getWrapperField(this, proto.StreamOptions, 2));\n};\n\n\n/**\n * @param {?proto.StreamOptions|undefined} value\n * @return {!proto.ReportListResponse} returns this\n*/\nproto.ReportListResponse.prototype.setStreamOptions = function(value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ReportListResponse} returns this\n */\nproto.ReportListResponse.prototype.clearStreamOptions = function() {\n return this.setStreamOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ReportListResponse.prototype.hasStreamOptions = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Readme.prototype.toObject = function(opt_includeInstance) {\n return proto.Readme.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.Readme} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Readme.toObject = function(includeInstance, msg) {\n var f, obj = {\n markdown: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Readme}\n */\nproto.Readme.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.Readme;\n return proto.Readme.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Readme} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Readme}\n */\nproto.Readme.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setMarkdown(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Readme.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.Readme.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Readme} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Readme.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMarkdown();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string markdown = 1;\n * @return {string}\n */\nproto.Readme.prototype.getMarkdown = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Readme} returns this\n */\nproto.Readme.prototype.setMarkdown = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ReportAnalytics.prototype.toObject = function(opt_includeInstance) {\n return proto.ReportAnalytics.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ReportAnalytics} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ReportAnalytics.toObject = function(includeInstance, msg) {\n var f, obj = {\n viewersTotal: jspb.Message.getFieldWithDefault(msg, 1, 0),\n viewers7d: jspb.Message.getFieldWithDefault(msg, 2, 0),\n viewers24h: jspb.Message.getFieldWithDefault(msg, 3, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ReportAnalytics}\n */\nproto.ReportAnalytics.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ReportAnalytics;\n return proto.ReportAnalytics.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ReportAnalytics} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ReportAnalytics}\n */\nproto.ReportAnalytics.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setViewersTotal(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setViewers7d(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setViewers24h(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ReportAnalytics.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ReportAnalytics.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ReportAnalytics} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ReportAnalytics.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getViewersTotal();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getViewers7d();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getViewers24h();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional int64 viewers_total = 1;\n * @return {number}\n */\nproto.ReportAnalytics.prototype.getViewersTotal = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.ReportAnalytics} returns this\n */\nproto.ReportAnalytics.prototype.setViewersTotal = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int64 viewers_7d = 2;\n * @return {number}\n */\nproto.ReportAnalytics.prototype.getViewers7d = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.ReportAnalytics} returns this\n */\nproto.ReportAnalytics.prototype.setViewers7d = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional int64 viewers_24h = 3;\n * @return {number}\n */\nproto.ReportAnalytics.prototype.getViewers24h = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.ReportAnalytics} returns this\n */\nproto.ReportAnalytics.prototype.setViewers24h = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.Report.repeatedFields_ = [17];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Report.prototype.toObject = function(opt_includeInstance) {\n return proto.Report.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.Report} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Report.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n mapConfig: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n title: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n archived: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),\n canWrite: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),\n authorEmail: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n discoverable: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),\n allowEdit: jspb.Message.getBooleanFieldWithDefault(msg, 8, false),\n isAuthor: jspb.Message.getBooleanFieldWithDefault(msg, 9, false),\n createdAt: jspb.Message.getFieldWithDefault(msg, 10, 0),\n updatedAt: jspb.Message.getFieldWithDefault(msg, 11, 0),\n isSharable: jspb.Message.getBooleanFieldWithDefault(msg, 12, false),\n needSensitiveScope: jspb.Message.getBooleanFieldWithDefault(msg, 13, false),\n isPlayground: jspb.Message.getBooleanFieldWithDefault(msg, 14, false),\n isPublic: jspb.Message.getBooleanFieldWithDefault(msg, 15, false),\n allowExport: jspb.Message.getBooleanFieldWithDefault(msg, 16, false),\n queryParamsList: jspb.Message.toObjectList(msg.getQueryParamsList(),\n proto.QueryParam.toObject, includeInstance),\n readme: (f = msg.getReadme()) && proto.Readme.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Report}\n */\nproto.Report.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.Report;\n return proto.Report.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Report} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Report}\n */\nproto.Report.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setMapConfig(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setTitle(value);\n break;\n case 4:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setArchived(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setCanWrite(value);\n break;\n case 6:\n var value = /** @type {string} */ (reader.readString());\n msg.setAuthorEmail(value);\n break;\n case 7:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setDiscoverable(value);\n break;\n case 8:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setAllowEdit(value);\n break;\n case 9:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsAuthor(value);\n break;\n case 10:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreatedAt(value);\n break;\n case 11:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUpdatedAt(value);\n break;\n case 12:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsSharable(value);\n break;\n case 13:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setNeedSensitiveScope(value);\n break;\n case 14:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsPlayground(value);\n break;\n case 15:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsPublic(value);\n break;\n case 16:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setAllowExport(value);\n break;\n case 17:\n var value = new proto.QueryParam;\n reader.readMessage(value,proto.QueryParam.deserializeBinaryFromReader);\n msg.addQueryParams(value);\n break;\n case 18:\n var value = new proto.Readme;\n reader.readMessage(value,proto.Readme.deserializeBinaryFromReader);\n msg.setReadme(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Report.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.Report.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Report} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Report.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getMapConfig();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getTitle();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getArchived();\n if (f) {\n writer.writeBool(\n 4,\n f\n );\n }\n f = message.getCanWrite();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n f = message.getAuthorEmail();\n if (f.length > 0) {\n writer.writeString(\n 6,\n f\n );\n }\n f = message.getDiscoverable();\n if (f) {\n writer.writeBool(\n 7,\n f\n );\n }\n f = message.getAllowEdit();\n if (f) {\n writer.writeBool(\n 8,\n f\n );\n }\n f = message.getIsAuthor();\n if (f) {\n writer.writeBool(\n 9,\n f\n );\n }\n f = message.getCreatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 10,\n f\n );\n }\n f = message.getUpdatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 11,\n f\n );\n }\n f = message.getIsSharable();\n if (f) {\n writer.writeBool(\n 12,\n f\n );\n }\n f = message.getNeedSensitiveScope();\n if (f) {\n writer.writeBool(\n 13,\n f\n );\n }\n f = message.getIsPlayground();\n if (f) {\n writer.writeBool(\n 14,\n f\n );\n }\n f = message.getIsPublic();\n if (f) {\n writer.writeBool(\n 15,\n f\n );\n }\n f = message.getAllowExport();\n if (f) {\n writer.writeBool(\n 16,\n f\n );\n }\n f = message.getQueryParamsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 17,\n f,\n proto.QueryParam.serializeBinaryToWriter\n );\n }\n f = message.getReadme();\n if (f != null) {\n writer.writeMessage(\n 18,\n f,\n proto.Readme.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.Report.prototype.getId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string map_config = 2;\n * @return {string}\n */\nproto.Report.prototype.getMapConfig = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setMapConfig = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string title = 3;\n * @return {string}\n */\nproto.Report.prototype.getTitle = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setTitle = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional bool archived = 4;\n * @return {boolean}\n */\nproto.Report.prototype.getArchived = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setArchived = function(value) {\n return jspb.Message.setProto3BooleanField(this, 4, value);\n};\n\n\n/**\n * optional bool can_write = 5;\n * @return {boolean}\n */\nproto.Report.prototype.getCanWrite = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setCanWrite = function(value) {\n return jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n/**\n * optional string author_email = 6;\n * @return {string}\n */\nproto.Report.prototype.getAuthorEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setAuthorEmail = function(value) {\n return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional bool discoverable = 7;\n * @return {boolean}\n */\nproto.Report.prototype.getDiscoverable = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setDiscoverable = function(value) {\n return jspb.Message.setProto3BooleanField(this, 7, value);\n};\n\n\n/**\n * optional bool allow_edit = 8;\n * @return {boolean}\n */\nproto.Report.prototype.getAllowEdit = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setAllowEdit = function(value) {\n return jspb.Message.setProto3BooleanField(this, 8, value);\n};\n\n\n/**\n * optional bool is_author = 9;\n * @return {boolean}\n */\nproto.Report.prototype.getIsAuthor = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setIsAuthor = function(value) {\n return jspb.Message.setProto3BooleanField(this, 9, value);\n};\n\n\n/**\n * optional int64 created_at = 10;\n * @return {number}\n */\nproto.Report.prototype.getCreatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setCreatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 10, value);\n};\n\n\n/**\n * optional int64 updated_at = 11;\n * @return {number}\n */\nproto.Report.prototype.getUpdatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setUpdatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 11, value);\n};\n\n\n/**\n * optional bool is_sharable = 12;\n * @return {boolean}\n */\nproto.Report.prototype.getIsSharable = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setIsSharable = function(value) {\n return jspb.Message.setProto3BooleanField(this, 12, value);\n};\n\n\n/**\n * optional bool need_sensitive_scope = 13;\n * @return {boolean}\n */\nproto.Report.prototype.getNeedSensitiveScope = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 13, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setNeedSensitiveScope = function(value) {\n return jspb.Message.setProto3BooleanField(this, 13, value);\n};\n\n\n/**\n * optional bool is_playground = 14;\n * @return {boolean}\n */\nproto.Report.prototype.getIsPlayground = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setIsPlayground = function(value) {\n return jspb.Message.setProto3BooleanField(this, 14, value);\n};\n\n\n/**\n * optional bool is_public = 15;\n * @return {boolean}\n */\nproto.Report.prototype.getIsPublic = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setIsPublic = function(value) {\n return jspb.Message.setProto3BooleanField(this, 15, value);\n};\n\n\n/**\n * optional bool allow_export = 16;\n * @return {boolean}\n */\nproto.Report.prototype.getAllowExport = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 16, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.setAllowExport = function(value) {\n return jspb.Message.setProto3BooleanField(this, 16, value);\n};\n\n\n/**\n * repeated QueryParam query_params = 17;\n * @return {!Array}\n */\nproto.Report.prototype.getQueryParamsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.QueryParam, 17));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.Report} returns this\n*/\nproto.Report.prototype.setQueryParamsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 17, value);\n};\n\n\n/**\n * @param {!proto.QueryParam=} opt_value\n * @param {number=} opt_index\n * @return {!proto.QueryParam}\n */\nproto.Report.prototype.addQueryParams = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 17, opt_value, proto.QueryParam, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.clearQueryParamsList = function() {\n return this.setQueryParamsList([]);\n};\n\n\n/**\n * optional Readme readme = 18;\n * @return {?proto.Readme}\n */\nproto.Report.prototype.getReadme = function() {\n return /** @type{?proto.Readme} */ (\n jspb.Message.getWrapperField(this, proto.Readme, 18));\n};\n\n\n/**\n * @param {?proto.Readme|undefined} value\n * @return {!proto.Report} returns this\n*/\nproto.Report.prototype.setReadme = function(value) {\n return jspb.Message.setWrapperField(this, 18, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Report} returns this\n */\nproto.Report.prototype.clearReadme = function() {\n return this.setReadme(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Report.prototype.hasReadme = function() {\n return jspb.Message.getField(this, 18) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Dataset.prototype.toObject = function(opt_includeInstance) {\n return proto.Dataset.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.Dataset} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Dataset.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n reportId: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n queryId: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n createdAt: jspb.Message.getFieldWithDefault(msg, 4, 0),\n updatedAt: jspb.Message.getFieldWithDefault(msg, 5, 0),\n fileId: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n name: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\n connectionId: jspb.Message.getFieldWithDefault(msg, 8, \"\"),\n connectionType: jspb.Message.getFieldWithDefault(msg, 9, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Dataset}\n */\nproto.Dataset.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.Dataset;\n return proto.Dataset.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Dataset} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Dataset}\n */\nproto.Dataset.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setQueryId(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreatedAt(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUpdatedAt(value);\n break;\n case 6:\n var value = /** @type {string} */ (reader.readString());\n msg.setFileId(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 8:\n var value = /** @type {string} */ (reader.readString());\n msg.setConnectionId(value);\n break;\n case 9:\n var value = /** @type {!proto.ConnectionType} */ (reader.readEnum());\n msg.setConnectionType(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Dataset.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.Dataset.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Dataset} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Dataset.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getQueryId();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getCreatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getUpdatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getFileId();\n if (f.length > 0) {\n writer.writeString(\n 6,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 7,\n f\n );\n }\n f = message.getConnectionId();\n if (f.length > 0) {\n writer.writeString(\n 8,\n f\n );\n }\n f = message.getConnectionType();\n if (f !== 0.0) {\n writer.writeEnum(\n 9,\n f\n );\n }\n};\n\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.Dataset.prototype.getId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Dataset} returns this\n */\nproto.Dataset.prototype.setId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string report_id = 2;\n * @return {string}\n */\nproto.Dataset.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Dataset} returns this\n */\nproto.Dataset.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string query_id = 3;\n * @return {string}\n */\nproto.Dataset.prototype.getQueryId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Dataset} returns this\n */\nproto.Dataset.prototype.setQueryId = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional int64 created_at = 4;\n * @return {number}\n */\nproto.Dataset.prototype.getCreatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Dataset} returns this\n */\nproto.Dataset.prototype.setCreatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 updated_at = 5;\n * @return {number}\n */\nproto.Dataset.prototype.getUpdatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Dataset} returns this\n */\nproto.Dataset.prototype.setUpdatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional string file_id = 6;\n * @return {string}\n */\nproto.Dataset.prototype.getFileId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Dataset} returns this\n */\nproto.Dataset.prototype.setFileId = function(value) {\n return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional string name = 7;\n * @return {string}\n */\nproto.Dataset.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Dataset} returns this\n */\nproto.Dataset.prototype.setName = function(value) {\n return jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n/**\n * optional string connection_id = 8;\n * @return {string}\n */\nproto.Dataset.prototype.getConnectionId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Dataset} returns this\n */\nproto.Dataset.prototype.setConnectionId = function(value) {\n return jspb.Message.setProto3StringField(this, 8, value);\n};\n\n\n/**\n * optional ConnectionType connection_type = 9;\n * @return {!proto.ConnectionType}\n */\nproto.Dataset.prototype.getConnectionType = function() {\n return /** @type {!proto.ConnectionType} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {!proto.ConnectionType} value\n * @return {!proto.Dataset} returns this\n */\nproto.Dataset.prototype.setConnectionType = function(value) {\n return jspb.Message.setProto3EnumField(this, 9, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.QueryJob.prototype.toObject = function(opt_includeInstance) {\n return proto.QueryJob.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.QueryJob} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.QueryJob.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n queryId: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n queryText: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n jobResultId: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n jobError: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n jobDuration: jspb.Message.getFieldWithDefault(msg, 6, 0),\n totalRows: jspb.Message.getFieldWithDefault(msg, 7, 0),\n bytesProcessed: jspb.Message.getFieldWithDefault(msg, 8, 0),\n resultSize: jspb.Message.getFieldWithDefault(msg, 9, 0),\n createdAt: jspb.Message.getFieldWithDefault(msg, 10, 0),\n updatedAt: jspb.Message.getFieldWithDefault(msg, 11, 0),\n jobStatus: jspb.Message.getFieldWithDefault(msg, 12, 0),\n dwJobId: jspb.Message.getFieldWithDefault(msg, 13, \"\"),\n queryParamsHash: jspb.Message.getFieldWithDefault(msg, 14, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.QueryJob}\n */\nproto.QueryJob.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.QueryJob;\n return proto.QueryJob.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.QueryJob} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.QueryJob}\n */\nproto.QueryJob.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setQueryId(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setQueryText(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setJobResultId(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.setJobError(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setJobDuration(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setTotalRows(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBytesProcessed(value);\n break;\n case 9:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setResultSize(value);\n break;\n case 10:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreatedAt(value);\n break;\n case 11:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUpdatedAt(value);\n break;\n case 12:\n var value = /** @type {!proto.QueryJob.JobStatus} */ (reader.readEnum());\n msg.setJobStatus(value);\n break;\n case 13:\n var value = /** @type {string} */ (reader.readString());\n msg.setDwJobId(value);\n break;\n case 14:\n var value = /** @type {string} */ (reader.readString());\n msg.setQueryParamsHash(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.QueryJob.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.QueryJob.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.QueryJob} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.QueryJob.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getQueryId();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getQueryText();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getJobResultId();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getJobError();\n if (f.length > 0) {\n writer.writeString(\n 5,\n f\n );\n }\n f = message.getJobDuration();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\n f = message.getTotalRows();\n if (f !== 0) {\n writer.writeInt32(\n 7,\n f\n );\n }\n f = message.getBytesProcessed();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n f = message.getResultSize();\n if (f !== 0) {\n writer.writeInt64(\n 9,\n f\n );\n }\n f = message.getCreatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 10,\n f\n );\n }\n f = message.getUpdatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 11,\n f\n );\n }\n f = message.getJobStatus();\n if (f !== 0.0) {\n writer.writeEnum(\n 12,\n f\n );\n }\n f = message.getDwJobId();\n if (f.length > 0) {\n writer.writeString(\n 13,\n f\n );\n }\n f = message.getQueryParamsHash();\n if (f.length > 0) {\n writer.writeString(\n 14,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.QueryJob.JobStatus = {\n JOB_STATUS_UNSPECIFIED: 0,\n JOB_STATUS_PENDING: 1,\n JOB_STATUS_RUNNING: 2,\n JOB_STATUS_DONE_LEGACY: 3,\n JOB_STATUS_READING_RESULTS: 4,\n JOB_STATUS_DONE: 5\n};\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.QueryJob.prototype.getId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string query_id = 2;\n * @return {string}\n */\nproto.QueryJob.prototype.getQueryId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setQueryId = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string query_text = 3;\n * @return {string}\n */\nproto.QueryJob.prototype.getQueryText = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setQueryText = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string job_result_id = 4;\n * @return {string}\n */\nproto.QueryJob.prototype.getJobResultId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setJobResultId = function(value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string job_error = 5;\n * @return {string}\n */\nproto.QueryJob.prototype.getJobError = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setJobError = function(value) {\n return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional int64 job_duration = 6;\n * @return {number}\n */\nproto.QueryJob.prototype.getJobDuration = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setJobDuration = function(value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional int32 total_rows = 7;\n * @return {number}\n */\nproto.QueryJob.prototype.getTotalRows = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setTotalRows = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional int64 bytes_processed = 8;\n * @return {number}\n */\nproto.QueryJob.prototype.getBytesProcessed = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setBytesProcessed = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional int64 result_size = 9;\n * @return {number}\n */\nproto.QueryJob.prototype.getResultSize = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setResultSize = function(value) {\n return jspb.Message.setProto3IntField(this, 9, value);\n};\n\n\n/**\n * optional int64 created_at = 10;\n * @return {number}\n */\nproto.QueryJob.prototype.getCreatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setCreatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 10, value);\n};\n\n\n/**\n * optional int64 updated_at = 11;\n * @return {number}\n */\nproto.QueryJob.prototype.getUpdatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setUpdatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 11, value);\n};\n\n\n/**\n * optional JobStatus job_status = 12;\n * @return {!proto.QueryJob.JobStatus}\n */\nproto.QueryJob.prototype.getJobStatus = function() {\n return /** @type {!proto.QueryJob.JobStatus} */ (jspb.Message.getFieldWithDefault(this, 12, 0));\n};\n\n\n/**\n * @param {!proto.QueryJob.JobStatus} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setJobStatus = function(value) {\n return jspb.Message.setProto3EnumField(this, 12, value);\n};\n\n\n/**\n * optional string dw_job_id = 13;\n * @return {string}\n */\nproto.QueryJob.prototype.getDwJobId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setDwJobId = function(value) {\n return jspb.Message.setProto3StringField(this, 13, value);\n};\n\n\n/**\n * optional string query_params_hash = 14;\n * @return {string}\n */\nproto.QueryJob.prototype.getQueryParamsHash = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.QueryJob} returns this\n */\nproto.QueryJob.prototype.setQueryParamsHash = function(value) {\n return jspb.Message.setProto3StringField(this, 14, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Query.prototype.toObject = function(opt_includeInstance) {\n return proto.Query.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.Query} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Query.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n queryText: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n createdAt: jspb.Message.getFieldWithDefault(msg, 3, 0),\n updatedAt: jspb.Message.getFieldWithDefault(msg, 4, 0),\n querySource: jspb.Message.getFieldWithDefault(msg, 5, 0),\n querySourceId: jspb.Message.getFieldWithDefault(msg, 6, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Query}\n */\nproto.Query.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.Query;\n return proto.Query.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Query} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Query}\n */\nproto.Query.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setQueryText(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreatedAt(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUpdatedAt(value);\n break;\n case 5:\n var value = /** @type {!proto.Query.QuerySource} */ (reader.readEnum());\n msg.setQuerySource(value);\n break;\n case 6:\n var value = /** @type {string} */ (reader.readString());\n msg.setQuerySourceId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Query.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.Query.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Query} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Query.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getQueryText();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getCreatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getUpdatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getQuerySource();\n if (f !== 0.0) {\n writer.writeEnum(\n 5,\n f\n );\n }\n f = message.getQuerySourceId();\n if (f.length > 0) {\n writer.writeString(\n 6,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.Query.QuerySource = {\n QUERY_SOURCE_UNSPECIFIED: 0,\n QUERY_SOURCE_INLINE: 1,\n QUERY_SOURCE_STORAGE: 2\n};\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.Query.prototype.getId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Query} returns this\n */\nproto.Query.prototype.setId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string query_text = 2;\n * @return {string}\n */\nproto.Query.prototype.getQueryText = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Query} returns this\n */\nproto.Query.prototype.setQueryText = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional int64 created_at = 3;\n * @return {number}\n */\nproto.Query.prototype.getCreatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Query} returns this\n */\nproto.Query.prototype.setCreatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional int64 updated_at = 4;\n * @return {number}\n */\nproto.Query.prototype.getUpdatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Query} returns this\n */\nproto.Query.prototype.setUpdatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional QuerySource query_source = 5;\n * @return {!proto.Query.QuerySource}\n */\nproto.Query.prototype.getQuerySource = function() {\n return /** @type {!proto.Query.QuerySource} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {!proto.Query.QuerySource} value\n * @return {!proto.Query} returns this\n */\nproto.Query.prototype.setQuerySource = function(value) {\n return jspb.Message.setProto3EnumField(this, 5, value);\n};\n\n\n/**\n * optional string query_source_id = 6;\n * @return {string}\n */\nproto.Query.prototype.getQuerySourceId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Query} returns this\n */\nproto.Query.prototype.setQuerySourceId = function(value) {\n return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.File.prototype.toObject = function(opt_includeInstance) {\n return proto.File.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.File} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.File.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n mimeType: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n size: jspb.Message.getFieldWithDefault(msg, 4, 0),\n sourceId: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n createdAt: jspb.Message.getFieldWithDefault(msg, 6, 0),\n updatedAt: jspb.Message.getFieldWithDefault(msg, 7, 0),\n fileStatus: jspb.Message.getFieldWithDefault(msg, 8, 0),\n uploadError: jspb.Message.getFieldWithDefault(msg, 9, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.File}\n */\nproto.File.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.File;\n return proto.File.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.File} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.File}\n */\nproto.File.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setMimeType(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setSize(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.setSourceId(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreatedAt(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUpdatedAt(value);\n break;\n case 8:\n var value = /** @type {!proto.File.Status} */ (reader.readEnum());\n msg.setFileStatus(value);\n break;\n case 9:\n var value = /** @type {string} */ (reader.readString());\n msg.setUploadError(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.File.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.File.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.File} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.File.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getMimeType();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getSize();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getSourceId();\n if (f.length > 0) {\n writer.writeString(\n 5,\n f\n );\n }\n f = message.getCreatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\n f = message.getUpdatedAt();\n if (f !== 0) {\n writer.writeInt64(\n 7,\n f\n );\n }\n f = message.getFileStatus();\n if (f !== 0.0) {\n writer.writeEnum(\n 8,\n f\n );\n }\n f = message.getUploadError();\n if (f.length > 0) {\n writer.writeString(\n 9,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.File.Status = {\n STATUS_UNSPECIFIED: 0,\n STATUS_NEW: 1,\n STATUS_RECEIVED: 2,\n STATUS_STORED: 3\n};\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.File.prototype.getId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.File} returns this\n */\nproto.File.prototype.setId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.File.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.File} returns this\n */\nproto.File.prototype.setName = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string mime_type = 3;\n * @return {string}\n */\nproto.File.prototype.getMimeType = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.File} returns this\n */\nproto.File.prototype.setMimeType = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional int64 size = 4;\n * @return {number}\n */\nproto.File.prototype.getSize = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.File} returns this\n */\nproto.File.prototype.setSize = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional string source_id = 5;\n * @return {string}\n */\nproto.File.prototype.getSourceId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.File} returns this\n */\nproto.File.prototype.setSourceId = function(value) {\n return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional int64 created_at = 6;\n * @return {number}\n */\nproto.File.prototype.getCreatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.File} returns this\n */\nproto.File.prototype.setCreatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional int64 updated_at = 7;\n * @return {number}\n */\nproto.File.prototype.getUpdatedAt = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.File} returns this\n */\nproto.File.prototype.setUpdatedAt = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional Status file_status = 8;\n * @return {!proto.File.Status}\n */\nproto.File.prototype.getFileStatus = function() {\n return /** @type {!proto.File.Status} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {!proto.File.Status} value\n * @return {!proto.File} returns this\n */\nproto.File.prototype.setFileStatus = function(value) {\n return jspb.Message.setProto3EnumField(this, 8, value);\n};\n\n\n/**\n * optional string upload_error = 9;\n * @return {string}\n */\nproto.File.prototype.getUploadError = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.File} returns this\n */\nproto.File.prototype.setUploadError = function(value) {\n return jspb.Message.setProto3StringField(this, 9, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.UpdateReportRequest.repeatedFields_ = [4,5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateReportRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateReportRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateReportRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateReportRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n mapConfig: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n title: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n queryList: jspb.Message.toObjectList(msg.getQueryList(),\n proto.Query.toObject, includeInstance),\n queryParamsList: jspb.Message.toObjectList(msg.getQueryParamsList(),\n proto.QueryParam.toObject, includeInstance),\n readme: (f = msg.getReadme()) && proto.Readme.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateReportRequest}\n */\nproto.UpdateReportRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateReportRequest;\n return proto.UpdateReportRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateReportRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateReportRequest}\n */\nproto.UpdateReportRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setMapConfig(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setTitle(value);\n break;\n case 4:\n var value = new proto.Query;\n reader.readMessage(value,proto.Query.deserializeBinaryFromReader);\n msg.addQuery(value);\n break;\n case 5:\n var value = new proto.QueryParam;\n reader.readMessage(value,proto.QueryParam.deserializeBinaryFromReader);\n msg.addQueryParams(value);\n break;\n case 6:\n var value = new proto.Readme;\n reader.readMessage(value,proto.Readme.deserializeBinaryFromReader);\n msg.setReadme(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateReportRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateReportRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateReportRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateReportRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getMapConfig();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getTitle();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getQueryList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 4,\n f,\n proto.Query.serializeBinaryToWriter\n );\n }\n f = message.getQueryParamsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n proto.QueryParam.serializeBinaryToWriter\n );\n }\n f = message.getReadme();\n if (f != null) {\n writer.writeMessage(\n 6,\n f,\n proto.Readme.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.UpdateReportRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.UpdateReportRequest} returns this\n */\nproto.UpdateReportRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string map_config = 2;\n * @return {string}\n */\nproto.UpdateReportRequest.prototype.getMapConfig = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.UpdateReportRequest} returns this\n */\nproto.UpdateReportRequest.prototype.setMapConfig = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string title = 3;\n * @return {string}\n */\nproto.UpdateReportRequest.prototype.getTitle = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.UpdateReportRequest} returns this\n */\nproto.UpdateReportRequest.prototype.setTitle = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * repeated Query query = 4;\n * @return {!Array}\n */\nproto.UpdateReportRequest.prototype.getQueryList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.Query, 4));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.UpdateReportRequest} returns this\n*/\nproto.UpdateReportRequest.prototype.setQueryList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n\n/**\n * @param {!proto.Query=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Query}\n */\nproto.UpdateReportRequest.prototype.addQuery = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.Query, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.UpdateReportRequest} returns this\n */\nproto.UpdateReportRequest.prototype.clearQueryList = function() {\n return this.setQueryList([]);\n};\n\n\n/**\n * repeated QueryParam query_params = 5;\n * @return {!Array}\n */\nproto.UpdateReportRequest.prototype.getQueryParamsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.QueryParam, 5));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.UpdateReportRequest} returns this\n*/\nproto.UpdateReportRequest.prototype.setQueryParamsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!proto.QueryParam=} opt_value\n * @param {number=} opt_index\n * @return {!proto.QueryParam}\n */\nproto.UpdateReportRequest.prototype.addQueryParams = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.QueryParam, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.UpdateReportRequest} returns this\n */\nproto.UpdateReportRequest.prototype.clearQueryParamsList = function() {\n return this.setQueryParamsList([]);\n};\n\n\n/**\n * optional Readme readme = 6;\n * @return {?proto.Readme}\n */\nproto.UpdateReportRequest.prototype.getReadme = function() {\n return /** @type{?proto.Readme} */ (\n jspb.Message.getWrapperField(this, proto.Readme, 6));\n};\n\n\n/**\n * @param {?proto.Readme|undefined} value\n * @return {!proto.UpdateReportRequest} returns this\n*/\nproto.UpdateReportRequest.prototype.setReadme = function(value) {\n return jspb.Message.setWrapperField(this, 6, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.UpdateReportRequest} returns this\n */\nproto.UpdateReportRequest.prototype.clearReadme = function() {\n return this.setReadme(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.UpdateReportRequest.prototype.hasReadme = function() {\n return jspb.Message.getField(this, 6) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateReportResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateReportResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateReportResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateReportResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateReportResponse}\n */\nproto.UpdateReportResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateReportResponse;\n return proto.UpdateReportResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateReportResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateReportResponse}\n */\nproto.UpdateReportResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateReportResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateReportResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateReportResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateReportResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.RunQueryRequest.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RunQueryRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.RunQueryRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RunQueryRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RunQueryRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n queryId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n queryText: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n queryParamsList: jspb.Message.toObjectList(msg.getQueryParamsList(),\n proto.QueryParam.toObject, includeInstance),\n queryParamsValues: jspb.Message.getFieldWithDefault(msg, 4, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RunQueryRequest}\n */\nproto.RunQueryRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RunQueryRequest;\n return proto.RunQueryRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RunQueryRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RunQueryRequest}\n */\nproto.RunQueryRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setQueryId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setQueryText(value);\n break;\n case 3:\n var value = new proto.QueryParam;\n reader.readMessage(value,proto.QueryParam.deserializeBinaryFromReader);\n msg.addQueryParams(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setQueryParamsValues(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RunQueryRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RunQueryRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RunQueryRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RunQueryRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getQueryId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getQueryText();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getQueryParamsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 3,\n f,\n proto.QueryParam.serializeBinaryToWriter\n );\n }\n f = message.getQueryParamsValues();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional string query_id = 1;\n * @return {string}\n */\nproto.RunQueryRequest.prototype.getQueryId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RunQueryRequest} returns this\n */\nproto.RunQueryRequest.prototype.setQueryId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string query_text = 2;\n * @return {string}\n */\nproto.RunQueryRequest.prototype.getQueryText = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RunQueryRequest} returns this\n */\nproto.RunQueryRequest.prototype.setQueryText = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * repeated QueryParam query_params = 3;\n * @return {!Array}\n */\nproto.RunQueryRequest.prototype.getQueryParamsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.QueryParam, 3));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.RunQueryRequest} returns this\n*/\nproto.RunQueryRequest.prototype.setQueryParamsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.QueryParam=} opt_value\n * @param {number=} opt_index\n * @return {!proto.QueryParam}\n */\nproto.RunQueryRequest.prototype.addQueryParams = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.QueryParam, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.RunQueryRequest} returns this\n */\nproto.RunQueryRequest.prototype.clearQueryParamsList = function() {\n return this.setQueryParamsList([]);\n};\n\n\n/**\n * optional string query_params_values = 4;\n * @return {string}\n */\nproto.RunQueryRequest.prototype.getQueryParamsValues = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.RunQueryRequest} returns this\n */\nproto.RunQueryRequest.prototype.setQueryParamsValues = function(value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.RunQueryResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.RunQueryResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.RunQueryResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RunQueryResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.RunQueryResponse}\n */\nproto.RunQueryResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.RunQueryResponse;\n return proto.RunQueryResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.RunQueryResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.RunQueryResponse}\n */\nproto.RunQueryResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.RunQueryResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.RunQueryResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.RunQueryResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.RunQueryResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateDatasetNameRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateDatasetNameRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateDatasetNameRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateDatasetNameRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n datasetId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateDatasetNameRequest}\n */\nproto.UpdateDatasetNameRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateDatasetNameRequest;\n return proto.UpdateDatasetNameRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateDatasetNameRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateDatasetNameRequest}\n */\nproto.UpdateDatasetNameRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setDatasetId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateDatasetNameRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateDatasetNameRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateDatasetNameRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateDatasetNameRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDatasetId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string dataset_id = 1;\n * @return {string}\n */\nproto.UpdateDatasetNameRequest.prototype.getDatasetId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.UpdateDatasetNameRequest} returns this\n */\nproto.UpdateDatasetNameRequest.prototype.setDatasetId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.UpdateDatasetNameRequest.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.UpdateDatasetNameRequest} returns this\n */\nproto.UpdateDatasetNameRequest.prototype.setName = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateDatasetNameResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateDatasetNameResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateDatasetNameResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateDatasetNameResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateDatasetNameResponse}\n */\nproto.UpdateDatasetNameResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateDatasetNameResponse;\n return proto.UpdateDatasetNameResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateDatasetNameResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateDatasetNameResponse}\n */\nproto.UpdateDatasetNameResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateDatasetNameResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateDatasetNameResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateDatasetNameResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateDatasetNameResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateDatasetConnectionRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateDatasetConnectionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateDatasetConnectionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateDatasetConnectionRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n datasetId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n connectionId: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateDatasetConnectionRequest}\n */\nproto.UpdateDatasetConnectionRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateDatasetConnectionRequest;\n return proto.UpdateDatasetConnectionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateDatasetConnectionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateDatasetConnectionRequest}\n */\nproto.UpdateDatasetConnectionRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setDatasetId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setConnectionId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateDatasetConnectionRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateDatasetConnectionRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateDatasetConnectionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateDatasetConnectionRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDatasetId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getConnectionId();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string dataset_id = 1;\n * @return {string}\n */\nproto.UpdateDatasetConnectionRequest.prototype.getDatasetId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.UpdateDatasetConnectionRequest} returns this\n */\nproto.UpdateDatasetConnectionRequest.prototype.setDatasetId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string connection_id = 2;\n * @return {string}\n */\nproto.UpdateDatasetConnectionRequest.prototype.getConnectionId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.UpdateDatasetConnectionRequest} returns this\n */\nproto.UpdateDatasetConnectionRequest.prototype.setConnectionId = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UpdateDatasetConnectionResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.UpdateDatasetConnectionResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.UpdateDatasetConnectionResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateDatasetConnectionResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UpdateDatasetConnectionResponse}\n */\nproto.UpdateDatasetConnectionResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.UpdateDatasetConnectionResponse;\n return proto.UpdateDatasetConnectionResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UpdateDatasetConnectionResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UpdateDatasetConnectionResponse}\n */\nproto.UpdateDatasetConnectionResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UpdateDatasetConnectionResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.UpdateDatasetConnectionResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UpdateDatasetConnectionResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UpdateDatasetConnectionResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateDatasetRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateDatasetRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateDatasetRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateDatasetRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateDatasetRequest}\n */\nproto.CreateDatasetRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateDatasetRequest;\n return proto.CreateDatasetRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateDatasetRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateDatasetRequest}\n */\nproto.CreateDatasetRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateDatasetRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateDatasetRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateDatasetRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateDatasetRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.CreateDatasetRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.CreateDatasetRequest} returns this\n */\nproto.CreateDatasetRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateDatasetResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateDatasetResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateDatasetResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateDatasetResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateDatasetResponse}\n */\nproto.CreateDatasetResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateDatasetResponse;\n return proto.CreateDatasetResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateDatasetResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateDatasetResponse}\n */\nproto.CreateDatasetResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateDatasetResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateDatasetResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateDatasetResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateDatasetResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateFileRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateFileRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateFileRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateFileRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n datasetId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateFileRequest}\n */\nproto.CreateFileRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateFileRequest;\n return proto.CreateFileRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateFileRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateFileRequest}\n */\nproto.CreateFileRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setDatasetId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateFileRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateFileRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateFileRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateFileRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDatasetId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string dataset_id = 1;\n * @return {string}\n */\nproto.CreateFileRequest.prototype.getDatasetId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.CreateFileRequest} returns this\n */\nproto.CreateFileRequest.prototype.setDatasetId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateFileResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateFileResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateFileResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateFileResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n fileId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateFileResponse}\n */\nproto.CreateFileResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateFileResponse;\n return proto.CreateFileResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateFileResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateFileResponse}\n */\nproto.CreateFileResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setFileId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateFileResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateFileResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateFileResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateFileResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFileId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string file_id = 1;\n * @return {string}\n */\nproto.CreateFileResponse.prototype.getFileId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.CreateFileResponse} returns this\n */\nproto.CreateFileResponse.prototype.setFileId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateQueryRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateQueryRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateQueryRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateQueryRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n datasetId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateQueryRequest}\n */\nproto.CreateQueryRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateQueryRequest;\n return proto.CreateQueryRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateQueryRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateQueryRequest}\n */\nproto.CreateQueryRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setDatasetId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateQueryRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateQueryRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateQueryRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateQueryRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDatasetId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string dataset_id = 1;\n * @return {string}\n */\nproto.CreateQueryRequest.prototype.getDatasetId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.CreateQueryRequest} returns this\n */\nproto.CreateQueryRequest.prototype.setDatasetId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateQueryResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateQueryResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateQueryResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateQueryResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n query: (f = msg.getQuery()) && proto.Query.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateQueryResponse}\n */\nproto.CreateQueryResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateQueryResponse;\n return proto.CreateQueryResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateQueryResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateQueryResponse}\n */\nproto.CreateQueryResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Query;\n reader.readMessage(value,proto.Query.deserializeBinaryFromReader);\n msg.setQuery(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateQueryResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateQueryResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateQueryResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateQueryResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getQuery();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.Query.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Query query = 1;\n * @return {?proto.Query}\n */\nproto.CreateQueryResponse.prototype.getQuery = function() {\n return /** @type{?proto.Query} */ (\n jspb.Message.getWrapperField(this, proto.Query, 1));\n};\n\n\n/**\n * @param {?proto.Query|undefined} value\n * @return {!proto.CreateQueryResponse} returns this\n*/\nproto.CreateQueryResponse.prototype.setQuery = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.CreateQueryResponse} returns this\n */\nproto.CreateQueryResponse.prototype.clearQuery = function() {\n return this.setQuery(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.CreateQueryResponse.prototype.hasQuery = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ReportStreamRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.ReportStreamRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ReportStreamRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ReportStreamRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n report: (f = msg.getReport()) && proto.Report.toObject(includeInstance, f),\n streamOptions: (f = msg.getStreamOptions()) && proto.StreamOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ReportStreamRequest}\n */\nproto.ReportStreamRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ReportStreamRequest;\n return proto.ReportStreamRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ReportStreamRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ReportStreamRequest}\n */\nproto.ReportStreamRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Report;\n reader.readMessage(value,proto.Report.deserializeBinaryFromReader);\n msg.setReport(value);\n break;\n case 2:\n var value = new proto.StreamOptions;\n reader.readMessage(value,proto.StreamOptions.deserializeBinaryFromReader);\n msg.setStreamOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ReportStreamRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ReportStreamRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ReportStreamRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ReportStreamRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReport();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.Report.serializeBinaryToWriter\n );\n }\n f = message.getStreamOptions();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.StreamOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Report report = 1;\n * @return {?proto.Report}\n */\nproto.ReportStreamRequest.prototype.getReport = function() {\n return /** @type{?proto.Report} */ (\n jspb.Message.getWrapperField(this, proto.Report, 1));\n};\n\n\n/**\n * @param {?proto.Report|undefined} value\n * @return {!proto.ReportStreamRequest} returns this\n*/\nproto.ReportStreamRequest.prototype.setReport = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ReportStreamRequest} returns this\n */\nproto.ReportStreamRequest.prototype.clearReport = function() {\n return this.setReport(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ReportStreamRequest.prototype.hasReport = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional StreamOptions stream_options = 2;\n * @return {?proto.StreamOptions}\n */\nproto.ReportStreamRequest.prototype.getStreamOptions = function() {\n return /** @type{?proto.StreamOptions} */ (\n jspb.Message.getWrapperField(this, proto.StreamOptions, 2));\n};\n\n\n/**\n * @param {?proto.StreamOptions|undefined} value\n * @return {!proto.ReportStreamRequest} returns this\n*/\nproto.ReportStreamRequest.prototype.setStreamOptions = function(value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ReportStreamRequest} returns this\n */\nproto.ReportStreamRequest.prototype.clearStreamOptions = function() {\n return this.setStreamOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ReportStreamRequest.prototype.hasStreamOptions = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.ReportStreamResponse.repeatedFields_ = [2,4,5,6];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ReportStreamResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.ReportStreamResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ReportStreamResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ReportStreamResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n report: (f = msg.getReport()) && proto.Report.toObject(includeInstance, f),\n queriesList: jspb.Message.toObjectList(msg.getQueriesList(),\n proto.Query.toObject, includeInstance),\n streamOptions: (f = msg.getStreamOptions()) && proto.StreamOptions.toObject(includeInstance, f),\n datasetsList: jspb.Message.toObjectList(msg.getDatasetsList(),\n proto.Dataset.toObject, includeInstance),\n filesList: jspb.Message.toObjectList(msg.getFilesList(),\n proto.File.toObject, includeInstance),\n queryJobsList: jspb.Message.toObjectList(msg.getQueryJobsList(),\n proto.QueryJob.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ReportStreamResponse}\n */\nproto.ReportStreamResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ReportStreamResponse;\n return proto.ReportStreamResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ReportStreamResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ReportStreamResponse}\n */\nproto.ReportStreamResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Report;\n reader.readMessage(value,proto.Report.deserializeBinaryFromReader);\n msg.setReport(value);\n break;\n case 2:\n var value = new proto.Query;\n reader.readMessage(value,proto.Query.deserializeBinaryFromReader);\n msg.addQueries(value);\n break;\n case 3:\n var value = new proto.StreamOptions;\n reader.readMessage(value,proto.StreamOptions.deserializeBinaryFromReader);\n msg.setStreamOptions(value);\n break;\n case 4:\n var value = new proto.Dataset;\n reader.readMessage(value,proto.Dataset.deserializeBinaryFromReader);\n msg.addDatasets(value);\n break;\n case 5:\n var value = new proto.File;\n reader.readMessage(value,proto.File.deserializeBinaryFromReader);\n msg.addFiles(value);\n break;\n case 6:\n var value = new proto.QueryJob;\n reader.readMessage(value,proto.QueryJob.deserializeBinaryFromReader);\n msg.addQueryJobs(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ReportStreamResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ReportStreamResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ReportStreamResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ReportStreamResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReport();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.Report.serializeBinaryToWriter\n );\n }\n f = message.getQueriesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n proto.Query.serializeBinaryToWriter\n );\n }\n f = message.getStreamOptions();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.StreamOptions.serializeBinaryToWriter\n );\n }\n f = message.getDatasetsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 4,\n f,\n proto.Dataset.serializeBinaryToWriter\n );\n }\n f = message.getFilesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n proto.File.serializeBinaryToWriter\n );\n }\n f = message.getQueryJobsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 6,\n f,\n proto.QueryJob.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Report report = 1;\n * @return {?proto.Report}\n */\nproto.ReportStreamResponse.prototype.getReport = function() {\n return /** @type{?proto.Report} */ (\n jspb.Message.getWrapperField(this, proto.Report, 1));\n};\n\n\n/**\n * @param {?proto.Report|undefined} value\n * @return {!proto.ReportStreamResponse} returns this\n*/\nproto.ReportStreamResponse.prototype.setReport = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ReportStreamResponse} returns this\n */\nproto.ReportStreamResponse.prototype.clearReport = function() {\n return this.setReport(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ReportStreamResponse.prototype.hasReport = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated Query queries = 2;\n * @return {!Array}\n */\nproto.ReportStreamResponse.prototype.getQueriesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.Query, 2));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.ReportStreamResponse} returns this\n*/\nproto.ReportStreamResponse.prototype.setQueriesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.Query=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Query}\n */\nproto.ReportStreamResponse.prototype.addQueries = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.Query, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ReportStreamResponse} returns this\n */\nproto.ReportStreamResponse.prototype.clearQueriesList = function() {\n return this.setQueriesList([]);\n};\n\n\n/**\n * optional StreamOptions stream_options = 3;\n * @return {?proto.StreamOptions}\n */\nproto.ReportStreamResponse.prototype.getStreamOptions = function() {\n return /** @type{?proto.StreamOptions} */ (\n jspb.Message.getWrapperField(this, proto.StreamOptions, 3));\n};\n\n\n/**\n * @param {?proto.StreamOptions|undefined} value\n * @return {!proto.ReportStreamResponse} returns this\n*/\nproto.ReportStreamResponse.prototype.setStreamOptions = function(value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ReportStreamResponse} returns this\n */\nproto.ReportStreamResponse.prototype.clearStreamOptions = function() {\n return this.setStreamOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ReportStreamResponse.prototype.hasStreamOptions = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * repeated Dataset datasets = 4;\n * @return {!Array}\n */\nproto.ReportStreamResponse.prototype.getDatasetsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.Dataset, 4));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.ReportStreamResponse} returns this\n*/\nproto.ReportStreamResponse.prototype.setDatasetsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n\n/**\n * @param {!proto.Dataset=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Dataset}\n */\nproto.ReportStreamResponse.prototype.addDatasets = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.Dataset, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ReportStreamResponse} returns this\n */\nproto.ReportStreamResponse.prototype.clearDatasetsList = function() {\n return this.setDatasetsList([]);\n};\n\n\n/**\n * repeated File files = 5;\n * @return {!Array}\n */\nproto.ReportStreamResponse.prototype.getFilesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.File, 5));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.ReportStreamResponse} returns this\n*/\nproto.ReportStreamResponse.prototype.setFilesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!proto.File=} opt_value\n * @param {number=} opt_index\n * @return {!proto.File}\n */\nproto.ReportStreamResponse.prototype.addFiles = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.File, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ReportStreamResponse} returns this\n */\nproto.ReportStreamResponse.prototype.clearFilesList = function() {\n return this.setFilesList([]);\n};\n\n\n/**\n * repeated QueryJob query_jobs = 6;\n * @return {!Array}\n */\nproto.ReportStreamResponse.prototype.getQueryJobsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.QueryJob, 6));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!proto.ReportStreamResponse} returns this\n*/\nproto.ReportStreamResponse.prototype.setQueryJobsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 6, value);\n};\n\n\n/**\n * @param {!proto.QueryJob=} opt_value\n * @param {number=} opt_index\n * @return {!proto.QueryJob}\n */\nproto.ReportStreamResponse.prototype.addQueryJobs = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.QueryJob, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ReportStreamResponse} returns this\n */\nproto.ReportStreamResponse.prototype.clearQueryJobsList = function() {\n return this.setQueryJobsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ForkReportRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.ForkReportRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ForkReportRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ForkReportRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ForkReportRequest}\n */\nproto.ForkReportRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ForkReportRequest;\n return proto.ForkReportRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ForkReportRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ForkReportRequest}\n */\nproto.ForkReportRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ForkReportRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ForkReportRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ForkReportRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ForkReportRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.ForkReportRequest.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.ForkReportRequest} returns this\n */\nproto.ForkReportRequest.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ForkReportResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.ForkReportResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ForkReportResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ForkReportResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n reportId: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ForkReportResponse}\n */\nproto.ForkReportResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ForkReportResponse;\n return proto.ForkReportResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ForkReportResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ForkReportResponse}\n */\nproto.ForkReportResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setReportId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ForkReportResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.ForkReportResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ForkReportResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ForkReportResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReportId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string report_id = 1;\n * @return {string}\n */\nproto.ForkReportResponse.prototype.getReportId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.ForkReportResponse} returns this\n */\nproto.ForkReportResponse.prototype.setReportId = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateReportRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateReportRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateReportRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateReportRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateReportRequest}\n */\nproto.CreateReportRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateReportRequest;\n return proto.CreateReportRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateReportRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateReportRequest}\n */\nproto.CreateReportRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateReportRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateReportRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateReportRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateReportRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.CreateReportResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.CreateReportResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.CreateReportResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateReportResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n report: (f = msg.getReport()) && proto.Report.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.CreateReportResponse}\n */\nproto.CreateReportResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.CreateReportResponse;\n return proto.CreateReportResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.CreateReportResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.CreateReportResponse}\n */\nproto.CreateReportResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.Report;\n reader.readMessage(value,proto.Report.deserializeBinaryFromReader);\n msg.setReport(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.CreateReportResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.CreateReportResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.CreateReportResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.CreateReportResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getReport();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.Report.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Report report = 1;\n * @return {?proto.Report}\n */\nproto.CreateReportResponse.prototype.getReport = function() {\n return /** @type{?proto.Report} */ (\n jspb.Message.getWrapperField(this, proto.Report, 1));\n};\n\n\n/**\n * @param {?proto.Report|undefined} value\n * @return {!proto.CreateReportResponse} returns this\n*/\nproto.CreateReportResponse.prototype.setReport = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.CreateReportResponse} returns this\n */\nproto.CreateReportResponse.prototype.clearReport = function() {\n return this.setReport(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.CreateReportResponse.prototype.hasReport = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.QueryParam.prototype.toObject = function(opt_includeInstance) {\n return proto.QueryParam.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.QueryParam} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.QueryParam.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n label: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n type: jspb.Message.getFieldWithDefault(msg, 3, 0),\n defaultValue: jspb.Message.getFieldWithDefault(msg, 4, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.QueryParam}\n */\nproto.QueryParam.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.QueryParam;\n return proto.QueryParam.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.QueryParam} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.QueryParam}\n */\nproto.QueryParam.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setLabel(value);\n break;\n case 3:\n var value = /** @type {!proto.QueryParam.Type} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setDefaultValue(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.QueryParam.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.QueryParam.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.QueryParam} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.QueryParam.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getLabel();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\n f = message.getDefaultValue();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.QueryParam.Type = {\n TYPE_UNSPECIFIED: 0,\n TYPE_STRING: 1\n};\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.QueryParam.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.QueryParam} returns this\n */\nproto.QueryParam.prototype.setName = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string label = 2;\n * @return {string}\n */\nproto.QueryParam.prototype.getLabel = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.QueryParam} returns this\n */\nproto.QueryParam.prototype.setLabel = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional Type type = 3;\n * @return {!proto.QueryParam.Type}\n */\nproto.QueryParam.prototype.getType = function() {\n return /** @type {!proto.QueryParam.Type} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {!proto.QueryParam.Type} value\n * @return {!proto.QueryParam} returns this\n */\nproto.QueryParam.prototype.setType = function(value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\n\n/**\n * optional string default_value = 4;\n * @return {string}\n */\nproto.QueryParam.prototype.getDefaultValue = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.QueryParam} returns this\n */\nproto.QueryParam.prototype.setDefaultValue = function(value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * @enum {number}\n */\nproto.UserStatus = {\n USER_STATUS_UNSPECIFIED: 0,\n USER_STATUS_PENDING: 1,\n USER_STATUS_ACTIVE: 2,\n USER_STATUS_REMOVED: 3,\n USER_STATUS_REJECTED: 4\n};\n\n/**\n * @enum {number}\n */\nproto.UserRole = {\n ROLE_UNSPECIFIED: 0,\n ROLE_ADMIN: 1,\n ROLE_EDITOR: 2,\n ROLE_VIEWER: 3\n};\n\n/**\n * @enum {number}\n */\nproto.PlanType = {\n TYPE_UNSPECIFIED: 0,\n TYPE_PERSONAL: 1,\n TYPE_TEAM: 2,\n TYPE_GROW: 3,\n TYPE_MAX: 4\n};\n\n/**\n * @enum {number}\n */\nproto.ConnectionType = {\n CONNECTION_TYPE_UNSPECIFIED: 0,\n CONNECTION_TYPE_BIGQUERY: 1,\n CONNECTION_TYPE_SNOWFLAKE: 2\n};\n\ngoog.object.extend(exports, proto);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inviteUsers\":\"MembersTab_inviteUsers__WUz-_\",\"inviteUsersInput\":\"MembersTab_inviteUsersInput__2xoGH\",\"inviteUsersButton\":\"MembersTab_inviteUsersButton__1roPq\",\"teamTab\":\"MembersTab_teamTab__3wG6t\",\"removeButtonColumn\":\"MembersTab_removeButtonColumn__28yV9\",\"emailColumn\":\"MembersTab_emailColumn__3Xo2o\",\"inviteButton\":\"MembersTab_inviteButton__2yYpW\",\"invitesTabName\":\"MembersTab_invitesTabName__1_CI4\"};","export const bigQueryKeywords = [\n\n // // Aggregate Functions\n { name: 'COUNT', value: 'COUNT()', meta: 'function' },\n { name: 'SUM', value: 'SUM()', meta: 'function' },\n { name: 'AVG', value: 'AVG()', meta: 'function' },\n { name: 'MAX', value: 'MAX()', meta: 'function' },\n { name: 'MIN', value: 'MIN()', meta: 'function' },\n\n // String Functions\n { name: 'CONCAT', value: 'CONCAT()', meta: 'function' },\n { name: 'SUBSTR', value: 'SUBSTR()', meta: 'function' },\n { name: 'UPPER', value: 'UPPER()', meta: 'function' },\n { name: 'LOWER', value: 'LOWER()', meta: 'function' },\n { name: 'TRIM', value: 'TRIM()', meta: 'function' },\n\n // Date/Time Functions\n { name: 'CURRENT_DATE', value: 'CURRENT_DATE()', meta: 'function' },\n { name: 'CURRENT_TIMESTAMP', value: 'CURRENT_TIMESTAMP()', meta: 'function' },\n { name: 'DATE', value: 'DATE()', meta: 'function' },\n { name: 'DATETIME', value: 'DATETIME()', meta: 'function' },\n { name: 'FORMAT_TIMESTAMP', value: 'FORMAT_TIMESTAMP()', meta: 'function' },\n\n // Numeric Functions\n { name: 'ABS', value: 'ABS()', meta: 'function' },\n { name: 'CEIL', value: 'CEIL()', meta: 'function' },\n { name: 'FLOOR', value: 'FLOOR()', meta: 'function' },\n { name: 'ROUND', value: 'ROUND()', meta: 'function' },\n { name: 'SQRT', value: 'SQRT()', meta: 'function' },\n\n // GIS Functions\n { name: 'ST_GEOGPOINT', value: 'ST_GEOGPOINT()', meta: 'GIS function' },\n { name: 'ST_DISTANCE', value: 'ST_DISTANCE()', meta: 'GIS function' },\n { name: 'ST_WITHIN', value: 'ST_WITHIN()', meta: 'GIS function' },\n { name: 'ST_BUFFER', value: 'ST_BUFFER()', meta: 'GIS function' },\n { name: 'ST_AREA', value: 'ST_AREA()', meta: 'GIS function' },\n { name: 'ST_CENTROID', value: 'ST_CENTROID()', meta: 'GIS function' },\n { name: 'ST_CONTAINS', value: 'ST_CONTAINS()', meta: 'GIS function' },\n { name: 'ST_INTERSECTS', value: 'ST_INTERSECTS()', meta: 'GIS function' },\n { name: 'ST_UNION', value: 'ST_UNION()', meta: 'GIS function' },\n { name: 'ST_MAKEPOLYGON', value: 'ST_MAKEPOLYGON()', meta: 'GIS function' },\n { name: 'ST_MAKELINE', value: 'ST_MAKELINE()', meta: 'GIS function' },\n { name: 'ST_ASGEOJSON', value: 'ST_ASGEOJSON()', meta: 'GIS function' },\n\n // Analytical Functions\n { name: 'RANK', value: 'RANK()', meta: 'function' },\n { name: 'DENSE_RANK', value: 'DENSE_RANK()', meta: 'function' },\n { name: 'ROW_NUMBER', value: 'ROW_NUMBER()', meta: 'function' },\n { name: 'NTILE', value: 'NTILE()', meta: 'function' },\n\n // JSON Functions\n { name: 'JSON_EXTRACT', value: 'JSON_EXTRACT()', meta: 'function' },\n { name: 'JSON_EXTRACT_SCALAR', value: 'JSON_EXTRACT_SCALAR()', meta: 'function' },\n { name: 'TO_JSON_STRING', value: 'TO_JSON_STRING()', meta: 'function' },\n\n // ARRAY Functions\n { name: 'ARRAY', value: 'ARRAY()', meta: 'function' },\n { name: 'ARRAY_LENGTH', value: 'ARRAY_LENGTH()', meta: 'function' },\n { name: 'ARRAY_TO_STRING', value: 'ARRAY_TO_STRING()', meta: 'function' },\n { name: 'GENERATE_ARRAY', value: 'GENERATE_ARRAY()', meta: 'function' },\n\n // Struct Functions\n { name: 'STRUCT', value: 'STRUCT()', meta: 'function' },\n { name: 'CAST', value: 'CAST()', meta: 'function' }\n]\n","export const snowflakeKeywords = [\n // Reserved Keywords\n { name: 'ACCOUNT', value: 'ACCOUNT', meta: 'keyword' },\n { name: 'ALL', value: 'ALL', meta: 'keyword' },\n { name: 'ALTER', value: 'ALTER', meta: 'keyword' },\n { name: 'AND', value: 'AND', meta: 'keyword' },\n { name: 'ANY', value: 'ANY', meta: 'keyword' },\n { name: 'AS', value: 'AS', meta: 'keyword' },\n { name: 'BETWEEN', value: 'BETWEEN', meta: 'keyword' },\n { name: 'BY', value: 'BY', meta: 'keyword' },\n { name: 'CASE', value: 'CASE', meta: 'keyword' },\n { name: 'CAST', value: 'CAST', meta: 'keyword' },\n { name: 'CHECK', value: 'CHECK', meta: 'keyword' },\n { name: 'COLUMN', value: 'COLUMN', meta: 'keyword' },\n { name: 'CONNECT', value: 'CONNECT', meta: 'keyword' },\n { name: 'CONSTRAINT', value: 'CONSTRAINT', meta: 'keyword' },\n { name: 'CREATE', value: 'CREATE', meta: 'keyword' },\n { name: 'CROSS', value: 'CROSS', meta: 'keyword' },\n { name: 'CURRENT', value: 'CURRENT', meta: 'keyword' },\n { name: 'CURRENT_DATE', value: 'CURRENT_DATE', meta: 'keyword' },\n { name: 'CURRENT_TIME', value: 'CURRENT_TIME', meta: 'keyword' },\n { name: 'CURRENT_TIMESTAMP', value: 'CURRENT_TIMESTAMP', meta: 'keyword' },\n { name: 'CURRENT_USER', value: 'CURRENT_USER', meta: 'keyword' },\n { name: 'DATABASE', value: 'DATABASE', meta: 'keyword' },\n { name: 'DELETE', value: 'DELETE', meta: 'keyword' },\n { name: 'DISTINCT', value: 'DISTINCT', meta: 'keyword' },\n { name: 'DROP', value: 'DROP', meta: 'keyword' },\n { name: 'ELSE', value: 'ELSE', meta: 'keyword' },\n { name: 'EXISTS', value: 'EXISTS', meta: 'keyword' },\n { name: 'FALSE', value: 'FALSE', meta: 'keyword' },\n { name: 'FOLLOWING', value: 'FOLLOWING', meta: 'keyword' },\n { name: 'FOR', value: 'FOR', meta: 'keyword' },\n { name: 'FROM', value: 'FROM', meta: 'keyword' },\n { name: 'FULL', value: 'FULL', meta: 'keyword' },\n { name: 'GRANT', value: 'GRANT', meta: 'keyword' },\n { name: 'GROUP', value: 'GROUP', meta: 'keyword' },\n { name: 'HAVING', value: 'HAVING', meta: 'keyword' },\n { name: 'ILIKE', value: 'ILIKE', meta: 'keyword' },\n { name: 'IN', value: 'IN', meta: 'keyword' },\n { name: 'INCREMENT', value: 'INCREMENT', meta: 'keyword' },\n { name: 'INNER', value: 'INNER', meta: 'keyword' },\n { name: 'INSERT', value: 'INSERT', meta: 'keyword' },\n { name: 'INTERSECT', value: 'INTERSECT', meta: 'keyword' },\n { name: 'INTO', value: 'INTO', meta: 'keyword' },\n { name: 'IS', value: 'IS', meta: 'keyword' },\n { name: 'JOIN', value: 'JOIN', meta: 'keyword' },\n { name: 'LATERAL', value: 'LATERAL', meta: 'keyword' },\n { name: 'LEFT', value: 'LEFT', meta: 'keyword' },\n { name: 'LIKE', value: 'LIKE', meta: 'keyword' },\n { name: 'LOCALTIME', value: 'LOCALTIME', meta: 'keyword' },\n { name: 'LOCALTIMESTAMP', value: 'LOCALTIMESTAMP', meta: 'keyword' },\n { name: 'MINUS', value: 'MINUS', meta: 'keyword' },\n { name: 'NATURAL', value: 'NATURAL', meta: 'keyword' },\n { name: 'NOT', value: 'NOT', meta: 'keyword' },\n { name: 'NULL', value: 'NULL', meta: 'keyword' },\n { name: 'OF', value: 'OF', meta: 'keyword' },\n { name: 'ON', value: 'ON', meta: 'keyword' },\n { name: 'OR', value: 'OR', meta: 'keyword' },\n { name: 'ORDER', value: 'ORDER', meta: 'keyword' },\n { name: 'QUALIFY', value: 'QUALIFY', meta: 'keyword' },\n { name: 'REGEXP', value: 'REGEXP', meta: 'keyword' },\n { name: 'REVOKE', value: 'REVOKE', meta: 'keyword' },\n { name: 'RIGHT', value: 'RIGHT', meta: 'keyword' },\n { name: 'RLIKE', value: 'RLIKE', meta: 'keyword' },\n { name: 'ROW', value: 'ROW', meta: 'keyword' },\n { name: 'ROWS', value: 'ROWS', meta: 'keyword' },\n { name: 'SAMPLE', value: 'SAMPLE', meta: 'keyword' },\n { name: 'SCHEMA', value: 'SCHEMA', meta: 'keyword' },\n { name: 'SELECT', value: 'SELECT', meta: 'keyword' },\n { name: 'SET', value: 'SET', meta: 'keyword' },\n { name: 'SOME', value: 'SOME', meta: 'keyword' },\n { name: 'START', value: 'START', meta: 'keyword' },\n { name: 'TABLE', value: 'TABLE', meta: 'keyword' },\n { name: 'TABLESAMPLE', value: 'TABLESAMPLE', meta: 'keyword' },\n { name: 'THEN', value: 'THEN', meta: 'keyword' },\n { name: 'TO', value: 'TO', meta: 'keyword' },\n { name: 'TRIGGER', value: 'TRIGGER', meta: 'keyword' },\n { name: 'TRUE', value: 'TRUE', meta: 'keyword' },\n { name: 'TRY_CAST', value: 'TRY_CAST()', meta: 'keyword' },\n { name: 'UNION', value: 'UNION', meta: 'keyword' },\n { name: 'UNIQUE', value: 'UNIQUE', meta: 'keyword' },\n { name: 'UPDATE', value: 'UPDATE', meta: 'keyword' },\n { name: 'USING', value: 'USING', meta: 'keyword' },\n { name: 'VALUES', value: 'VALUES', meta: 'keyword' },\n { name: 'VIEW', value: 'VIEW', meta: 'keyword' },\n { name: 'WHEN', value: 'WHEN', meta: 'keyword' },\n { name: 'WHERE', value: 'WHERE', meta: 'keyword' },\n { name: 'WITH', value: 'WITH', meta: 'keyword' },\n { name: 'WITHIN GROUP', value: 'WITHIN GROUP', meta: 'keyword' },\n\n // General Functions\n { name: 'ABS', value: 'ABS()', meta: 'function' },\n { name: 'CEIL', value: 'CEIL()', meta: 'function' },\n { name: 'FLOOR', value: 'FLOOR()', meta: 'function' },\n { name: 'ROUND', value: 'ROUND()', meta: 'function' },\n { name: 'EXP', value: 'EXP()', meta: 'function' },\n { name: 'LOG', value: 'LOG()', meta: 'function' },\n { name: 'POWER', value: 'POWER()', meta: 'function' },\n { name: 'SQRT', value: 'SQRT()', meta: 'function' },\n\n // String Functions\n { name: 'CONCAT', value: 'CONCAT()', meta: 'function' },\n { name: 'UPPER', value: 'UPPER()', meta: 'function' },\n { name: 'LOWER', value: 'LOWER()', meta: 'function' },\n { name: 'LTRIM', value: 'LTRIM()', meta: 'function' },\n { name: 'RTRIM', value: 'RTRIM()', meta: 'function' },\n { name: 'TRIM', value: 'TRIM()', meta: 'function' },\n { name: 'SUBSTR', value: 'SUBSTR()', meta: 'function' },\n { name: 'REPLACE', value: 'REPLACE()', meta: 'function' },\n { name: 'REGEXP_REPLACE', value: 'REGEXP_REPLACE()', meta: 'function' },\n { name: 'REGEXP_LIKE', value: 'REGEXP_LIKE()', meta: 'function' },\n\n // Date/Time Functions\n { name: 'CURRENT_DATE', value: 'CURRENT_DATE()', meta: 'function' },\n { name: 'CURRENT_TIME', value: 'CURRENT_TIME()', meta: 'function' },\n { name: 'CURRENT_TIMESTAMP', value: 'CURRENT_TIMESTAMP()', meta: 'function' },\n { name: 'DATE_PART', value: 'DATE_PART()', meta: 'function' },\n { name: 'DATE_TRUNC', value: 'DATE_TRUNC()', meta: 'function' },\n { name: 'TIMESTAMPADD', value: 'TIMESTAMPADD()', meta: 'function' },\n { name: 'TIMESTAMPDIFF', value: 'TIMESTAMPDIFF()', meta: 'function' },\n\n // Geospatial (GIS) Functions\n { name: 'ST_GEOGFROMTEXT', value: 'ST_GEOGFROMTEXT()', meta: 'GIS function' },\n { name: 'ST_ASGEOJSON', value: 'ST_ASGEOJSON()', meta: 'GIS function' },\n { name: 'ST_DISTANCE', value: 'ST_DISTANCE()', meta: 'GIS function' },\n { name: 'ST_INTERSECTS', value: 'ST_INTERSECTS()', meta: 'GIS function' },\n { name: 'ST_BUFFER', value: 'ST_BUFFER()', meta: 'GIS function' },\n { name: 'ST_AREA', value: 'ST_AREA()', meta: 'GIS function' },\n { name: 'ST_CENTROID', value: 'ST_CENTROID()', meta: 'GIS function' },\n { name: 'ST_TRANSFORM', value: 'ST_TRANSFORM()', meta: 'GIS function' },\n { name: 'ST_CONTAINS', value: 'ST_CONTAINS()', meta: 'GIS function' },\n { name: 'ST_UNION', value: 'ST_UNION()', meta: 'GIS function' },\n { name: 'ST_MAKEPOINT', value: 'ST_MAKEPOINT()', meta: 'GIS function' },\n { name: 'ST_MAKELINE', value: 'ST_MAKELINE()', meta: 'GIS function' },\n { name: 'ST_MAKEPOLYGON', value: 'ST_MAKEPOLYGON()', meta: 'GIS function' },\n\n // H3 Functions\n { name: 'H3_FROMGEOGPOINT', value: 'H3_FROMGEOGPOINT()', meta: 'H3 function' },\n { name: 'H3_TOGEOGPOINT', value: 'H3_TOGEOGPOINT()', meta: 'H3 function' },\n { name: 'H3_TOCHILDREN', value: 'H3_TOCHILDREN()', meta: 'H3 function' },\n { name: 'H3_TOPARENT', value: 'H3_TOPARENT()', meta: 'H3 function' },\n { name: 'H3_TOCOORDS', value: 'H3_TOCOORDS()', meta: 'H3 function' },\n { name: 'H3_TOHEXSTRING', value: 'H3_TOHEXSTRING()', meta: 'H3 function' },\n { name: 'H3_FROMHEXSTRING', value: 'H3_FROMHEXSTRING()', meta: 'H3 function' },\n { name: 'H3_ISVALID', value: 'H3_ISVALID()', meta: 'H3 function' },\n { name: 'H3_GETRESOLUTION', value: 'H3_GETRESOLUTION()', meta: 'H3 function' },\n { name: 'H3_GETBASECELL', value: 'H3_GETBASECELL()', meta: 'H3 function' },\n { name: 'H3_DISTANCE', value: 'H3_DISTANCE()', meta: 'H3 function' },\n { name: 'H3_BOUNDARY', value: 'H3_BOUNDARY()', meta: 'H3 function' }\n]\n","import { ConnectionType } from '../../proto/dekart_pb'\nimport { bigQueryKeywords } from './bigQueryKeywords'\nimport { snowflakeKeywords } from './snowflakeKeywords'\n\nconst bigQueryCustomCompleter = {\n getCompletions (editor, session, pos, prefix, callback) {\n callback(null, bigQueryKeywords)\n }\n}\n\nconst snowflakeCustomCompleter = {\n getCompletions (editor, session, pos, prefix, callback) {\n callback(null, snowflakeKeywords)\n }\n}\n\nexport function getDatasourceMeta (datasource) {\n switch (datasource) {\n case 'SNOWFLAKE':\n case ConnectionType.CONNECTION_TYPE_SNOWFLAKE:\n return {\n name: 'Snowflake',\n style: 'snowflake',\n completer: snowflakeCustomCompleter,\n examplesUrl: 'https://dekart.xyz/docs/about/snowflake-kepler-gl-examples/',\n sampleQuery: `-- Generate 100 random latitude and longitude points\nSELECT\n ROUND(uniform(-90::float, 90::float, random()), 6) AS lat, -- Generate random latitude between -90 and 90\n ROUND(uniform(-180::float, 180::float, random()), 6) AS lon -- Generate random longitude between -180 and 180\nFROM\n TABLE(GENERATOR(ROWCOUNT => 100)); -- Create 100 rows\n`,\n usageStatsId: 3\n }\n case 'BQ':\n case ConnectionType.CONNECTION_TYPE_BIGQUERY:\n case ConnectionType.CONNECTION_TYPE_UNSPECIFIED: // legacy user connections\n return {\n name: 'BigQuery',\n style: 'bigquery',\n completer: bigQueryCustomCompleter,\n usageStatsId: 2,\n examplesUrl: 'https://dekart.xyz/docs/about/overture-maps-examples/',\n sampleQuery: `-- Select a random 0.1% sample of crimes from the Chicago crime dataset\nSELECT\n primary_type, -- Type of crime\n district, -- District where the crime occurred\n latitude, -- Latitude of the crime location\n longitude, -- Longitude of the crime location\n date -- Date of the crime\nFROM\n \\`bigquery-public-data.chicago_crime.crime\\` -- Chicago crime dataset\nWHERE\n RAND() < 0.1 / 100.0; -- Randomly select approximately 0.1% of the records\n`\n }\n case 'ATHENA':\n return {\n name: 'Athena',\n style: 'athena',\n usageStatsId: 1\n }\n default:\n return {\n name: 'Unknown',\n usageStatsId: 0\n }\n }\n}\n","import { version } from '../../../package.json'\nimport sha256 from 'crypto-js/sha256'\nimport { getDatasourceMeta } from './datasource'\n\nfunction getHostname (location) {\n switch (location.hostname) {\n case 'localhost':\n case '127.0.0.1':\n return 'localhost'\n default:\n return sha256(location.hostname).toString().slice(0, 8)\n }\n}\n\nfunction getStats (env, usage) {\n return [\n getDatasourceMeta(env.variables.DATASOURCE).usageStatsId,\n usage.stats.totalReports,\n usage.stats.totalQueries,\n usage.stats.totalFiles,\n usage.stats.totalAuthors\n ].join('-')\n}\n\nexport function getUrlRef (env, usage, location = window.location, v = version) {\n if (!env.loaded || !usage.loaded) {\n return 'dekart-unknown'\n }\n if (env.variables.DISABLE_USAGE_STATS === '1') {\n return 'dekart-stats-disabled'\n }\n return `dekart-${v}-${getHostname(location)}-${getStats(env, usage)}`\n}\n","import Button from 'antd/es/button'\n\nexport default function PermanentError ({ code, message }) {\n return (\n {message} \n )\n}\n","import Button from 'antd/es/button'\n\nexport default function StreamError ({ code, message }) {\n return (\n Stream Error (code={code}): {message} \n )\n}\n","import message from 'antd/es/message'\nimport PermanentError from '../PermanentError'\nimport StreamError from '../StreamError'\n\nconst style = {}\n\nmessage.config({ top: 100 })\n\nexport function downloading (dataset, controller) {\n return { type: downloading.name, dataset, controller }\n}\n\nexport function warn (content, transitive = true) {\n if (!transitive) {\n message.warn({\n content,\n duration: 10000,\n style\n })\n } else {\n message.warn({\n content,\n style\n })\n }\n return { type: warn.name }\n}\nexport function success (content) {\n message.success({\n content,\n style\n })\n return { type: success.name }\n}\n\nexport function info (content) {\n message.info({\n content,\n style\n })\n return { type: info.name }\n}\n\nexport function setError (err, transitive = true) {\n return (dispatch) => {\n console.error(err)\n if ([401, 403].includes(err.status)) {\n dispatch(setHttpError(err.status, `${err.message}: ${err.errorDetails}`))\n } else if (transitive) {\n message.error({\n content: err.message,\n style\n })\n } else {\n message.error({\n content: (),\n duration: 10000,\n style\n })\n }\n return { type: setError.name }\n }\n}\n\nexport function setHttpError (status, message = '') {\n if (status === 404) {\n console.trace('404')\n }\n return { type: setHttpError.name, status, message }\n}\n\nexport function setStreamError (code, msg) {\n return (dispatch) => {\n dispatch({ type: setStreamError.name })\n console.error(code)\n // https://github.com/grpc/grpc/blob/master/doc/statuscodes.md\n switch (code) {\n case 1:\n dispatch(info('Request cancelled'))\n return\n case 5:\n dispatch(setHttpError(404))\n return\n case 3:\n dispatch(setHttpError(400))\n return\n case 16:\n dispatch(setHttpError(401))\n return\n default:\n message.error({\n content: (),\n duration: 10000,\n style\n })\n }\n }\n}\n","import { grpc } from '@improbable-eng/grpc-web'\nimport { StreamOptions } from '../../proto/dekart_pb'\nimport { setError, setStreamError } from './message'\n\nconst { REACT_APP_API_HOST } = process.env\nconst host = REACT_APP_API_HOST || ''\n\nexport function grpcCall (method, request, resolve = () => {}, reject = (err) => err) {\n return async function (dispatch, getState) {\n const { token, user: { isPlayground } } = getState()\n const headers = new window.Headers()\n if (token) {\n headers.append('Authorization', `Bearer ${token.access_token}`)\n }\n if (isPlayground) {\n headers.append('X-Dekart-Playground', 'true')\n }\n try {\n const response = await unary(method, request, headers)\n resolve(response)\n } catch (err) {\n const passErr = reject(err)\n if (passErr instanceof GrpcError) {\n dispatch(setStreamError(passErr.code, passErr.message))\n } else if (passErr) {\n dispatch(setError(passErr))\n }\n }\n }\n}\n\nfunction unary (method, request, metadata = new window.Headers()) {\n return new Promise((resolve, reject) => {\n grpc.unary(method, {\n host,\n request,\n metadata,\n onEnd: response => {\n if (response.status) {\n reject(new GrpcError(response.statusMessage, response.status))\n return\n }\n resolve(response.message.toObject())\n },\n debug: true\n })\n })\n}\n\nclass CancelableRequest {\n constructor () {\n this.canceled = false\n this.cancel = this.cancel.bind(this)\n }\n\n setInvokeRequest ({ cancel }) {\n if (this.canceled) {\n throw new Error('Request already canceled')\n }\n this.cancelInvoke = cancel\n }\n\n cancel () {\n if (this.cancelInvoke) {\n this.cancelInvoke()\n }\n this.canceled = true\n }\n}\n\nclass GrpcError extends Error {\n constructor (message, code) {\n super(message)\n this.code = code\n this.name = 'GrpcError'\n }\n}\n\nexport function grpcStream (endpoint, request, cb) {\n return async (dispatch, getState) => {\n const { token, user: { isPlayground } } = getState()\n const headers = new window.Headers()\n if (token) {\n headers.append('Authorization', `Bearer ${token.access_token}`)\n }\n if (isPlayground) {\n headers.append('X-Dekart-Playground', 'true')\n }\n const cancelable = getStream(\n endpoint,\n request,\n (mes) => {\n const err = cb(mes, null)\n if (err) {\n if (err instanceof GrpcError) {\n // TODO: fix naming of streamError\n dispatch(setStreamError(err.code, err.message))\n } else {\n dispatch(setError(err))\n }\n }\n },\n (code, message) => {\n const err = cb(null, new GrpcError(message, code))\n if (err instanceof GrpcError) {\n dispatch(setStreamError(err.code, err.message))\n } else {\n dispatch(setError(err))\n }\n },\n headers\n )\n dispatch({ type: grpcStream.name, endpoint, cancelable })\n\n // avoid error on page reload\n window.addEventListener('beforeunload', () => {\n dispatch(grpcStreamCancel(endpoint))\n })\n }\n}\n\nexport function grpcStreamCancel (endpoint) {\n return (dispatch, getState) => {\n const { stream } = getState()\n const streamObj = stream[endpoint.methodName]\n if (streamObj) {\n streamObj.cancel()\n dispatch({ type: grpcStreamCancel.name, endpoint })\n }\n }\n}\n\n// getStream is a wrapper around grpc.invoke that handles reconnecting\nfunction getStream (endpoint, request, onMessage, onError, metadata = {}, cancelable = new CancelableRequest(), sequence = 0, retryCount = 0) {\n const streamOptions = new StreamOptions()\n let currentSequence = sequence\n streamOptions.setSequence(currentSequence)\n request.setStreamOptions(streamOptions)\n cancelable.setInvokeRequest(grpc.invoke(endpoint, {\n host,\n request,\n metadata,\n onMessage: (message) => {\n retryCount = 0\n if (!cancelable.canceled) {\n const messageObj = message.toObject()\n currentSequence = messageObj.streamOptions.sequence\n onMessage(messageObj)\n }\n },\n onEnd: function onEnd (code, message) {\n if (cancelable.canceled) {\n return\n }\n if (code === 0) {\n getStream(endpoint, request, onMessage, onError, metadata, cancelable, currentSequence)\n } else if (\n (code === 2) &&\n retryCount <= 4\n ) {\n if (window.document.hidden) {\n const onVisibilityChange = () => {\n window.document.removeEventListener('visibilitychange', onVisibilityChange, false)\n onEnd(code, message)\n }\n window.document.addEventListener('visibilitychange', onVisibilityChange, false)\n } else {\n retryCount++\n setTimeout(() => getStream(endpoint, request, onMessage, onError, metadata, cancelable, currentSequence, retryCount + 1), 100 * Math.pow(2, retryCount))\n }\n } else {\n cancelable.cancel()\n onError(code, message)\n }\n }\n }))\n return cancelable\n}\n","export class ApiError extends Error {\n constructor (url, status, errorDetails) {\n super(`${status} GET ${url}`)\n this.status = status\n this.errorDetails = errorDetails\n }\n}\n\nexport class AbortError extends Error {\n constructor (message) {\n super(message)\n this.name = 'AbortError'\n }\n}\n\nexport function get (endpoint, token = null, signal = null, onProgress = null) {\n return new Promise((resolve, reject) => {\n const xhr = new window.XMLHttpRequest()\n const { REACT_APP_API_HOST } = process.env\n const host = REACT_APP_API_HOST || ''\n const url = `${host}/api/v1${endpoint}`\n\n xhr.open('GET', url, true)\n\n if (token) {\n xhr.setRequestHeader('Authorization', `Bearer ${token.access_token}`)\n }\n\n xhr.responseType = 'arraybuffer'\n\n xhr.onload = () => {\n const headers = parseHeaders(xhr.getAllResponseHeaders())\n const res = new window.Response(xhr.response, {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: new window.Headers(headers)\n })\n if (xhr.status >= 200 && xhr.status < 300) {\n resolve(res)\n } else {\n res.text().then(text => {\n reject(new ApiError(url, xhr.status, text))\n }).catch(reject)\n }\n }\n\n xhr.onerror = () => {\n reject(new ApiError(url, xhr.status, xhr.statusText))\n }\n\n xhr.onabort = () => {\n reject(new AbortError('Request aborted'))\n }\n\n if (onProgress) {\n xhr.onprogress = (event) => {\n if (event.loaded) {\n onProgress(event.loaded)\n }\n }\n }\n\n if (signal) {\n signal.addEventListener('abort', () => {\n xhr.abort()\n })\n }\n\n xhr.send()\n })\n}\n\nfunction parseHeaders (headersString) {\n const headers = {}\n headersString.trim().split(/[\\r\\n]+/).forEach(line => {\n const parts = line.split(': ')\n const key = parts.shift()\n const value = parts.join(': ')\n headers[key] = value\n })\n return headers\n}\n","import { QueryParam } from '../../proto/dekart_pb'\n\nexport function getQueryParamsString (queryParams, values) {\n const params = new URLSearchParams()\n queryParams.forEach(param => {\n params.set(\n 'qp_' + param.name,\n values[param.name] === undefined ? param.defaultValue : values[param.name]\n )\n })\n return params.toString()\n}\n\nexport function getQueryParamsObjArr (queryParams) {\n return queryParams.map(p => {\n const param = new QueryParam()\n param.setName(p.name)\n param.setLabel(p.label)\n param.setDefaultValue(p.defaultValue)\n param.setType(p.type)\n return param\n })\n}\n","import { CancelJobRequest, CreateQueryRequest, QueryParam, RunAllQueriesRequest, RunQueryRequest } from '../../proto/dekart_pb'\nimport { Dekart } from '../../proto/dekart_pb_service'\nimport { get } from '../lib/api'\nimport { getQueryParamsObjArr, getQueryParamsString } from '../lib/queryParams'\nimport { grpcCall } from './grpc'\nimport { setError } from './message'\nimport { md5 } from 'js-md5'\n\nexport function queryChanged (queryId, queryText) {\n return (dispatch, getState) => {\n const query = getState().queries.find(q => q.id === queryId)\n const changed = query ? query.queryText !== queryText : true\n dispatch({ type: queryChanged.name, queryText, queryId, changed })\n dispatch(updateQueryParamsFromQueries())\n }\n}\n\n// parses query for {{name}} parameters and returns them as an array\nfunction getParameterNamesFromQuery (queryText) {\n const matches = queryText.match(/{{\\w+}}/g)\n return matches ? matches.map(match => match.slice(2, -2)) : []\n}\n\nfunction getQueryParamsFromQuery (queryParams, queryText) {\n const queryParamNames = getParameterNamesFromQuery(queryText)\n const qp = []\n queryParamNames.forEach(name => {\n const existingParam = queryParams.find(param => param.name === name)\n const addedParam = qp.find(param => param.name === name)\n if (existingParam && !addedParam) {\n qp.push(existingParam)\n return\n }\n if (!addedParam) {\n qp.push({\n name,\n type: QueryParam.Type.TYPE_STRING,\n defaultValue: ''\n })\n }\n })\n return qp\n}\n\nexport function updateQueryParamsFromQueries () {\n return async function (dispatch, getState) {\n const { queryStatus, queryParams } = getState()\n const allText = Object.keys(queryStatus).map(k => queryStatus[k].queryText).join('')\n const queryParamsList = getQueryParamsFromQuery(queryParams.list, allText)\n dispatch({ type: updateQueryParamsFromQueries.name, queryParamsList })\n }\n}\n\nexport function createQuery (datasetId) {\n return (dispatch) => {\n dispatch({ type: createQuery.name })\n const request = new CreateQueryRequest()\n request.setDatasetId(datasetId)\n dispatch(grpcCall(Dekart.CreateQuery, request))\n }\n}\n\nexport function runQuery (queryId, queryText) {\n return async (dispatch, getState) => {\n dispatch({ type: runQuery.name, queryId })\n const { queryParams } = getState()\n const request = new RunQueryRequest()\n request.setQueryId(queryId)\n request.setQueryText(queryText)\n request.setQueryParamsList(getQueryParamsObjArr(queryParams.list))\n request.setQueryParamsValues(queryParams.url)\n dispatch(grpcCall(Dekart.RunQuery, request))\n }\n}\n\nexport function runAllQueries () {\n return async (dispatch, getState) => {\n const reportId = getState().report.id\n const { queryParams } = getState()\n const request = new RunAllQueriesRequest()\n request.setReportId(reportId)\n request.setQueryParamsList(getQueryParamsObjArr(queryParams.list))\n request.setQueryParamsValues(queryParams.url)\n dispatch(grpcCall(Dekart.RunAllQueries, request))\n }\n}\n\nexport function cancelJob (jobId) {\n return async (dispatch) => {\n dispatch({ type: cancelJob.name, jobId })\n const request = new CancelJobRequest()\n request.setJobId(jobId)\n dispatch(grpcCall(Dekart.CancelJob, request))\n }\n}\n\nexport function querySource (queryId, querySourceId, queryText) {\n return { type: querySource.name, queryText, querySourceId, queryId }\n}\n\nexport function downloadQuerySource (query) {\n return async (dispatch, getState) => {\n dispatch({ type: downloadQuerySource.name, query })\n const { queries, token } = getState()\n const i = queries.findIndex(q => q.id === query.id)\n if (i < 0) {\n return\n }\n try {\n const res = await get(`/query-source/${query.id}/${query.querySourceId}.sql`, token)\n const queryText = await res.text()\n dispatch(querySource(query.id, query.querySourceId, queryText))\n } catch (err) {\n dispatch(setError(err))\n }\n }\n}\n\nexport function openQueryParamSettings (name) {\n return { type: openQueryParamSettings.name, name }\n}\n\nexport function closeQueryParamSettings () {\n return { type: closeQueryParamSettings.name }\n}\n\nexport function queryParamChanged () {\n return { type: queryParamChanged.name }\n}\n\nexport function setQueryParamValue (name, value) {\n return { type: setQueryParamValue.name, name, value }\n}\n\nexport function updateQueryParamsFromURL (search) {\n return async function (dispatch) {\n const params = new URLSearchParams(search)\n const values = {}\n params.forEach((value, key) => {\n if (key.startsWith('qp_')) {\n values[key.substring(3)] = value\n }\n })\n dispatch(setQueryParamsValues(values))\n }\n}\n\nexport function applyQueryParams () {\n return async function (dispatch, getState) {\n const { queryParams: { values } } = getState()\n dispatch(setQueryParamsValues(values))\n dispatch(runAllQueries())\n }\n}\n\nexport function setQueryParamsValues (valuesIn) {\n return async function (dispatch, getState) {\n const { queryParams } = getState()\n const values = { ...valuesIn }\n queryParams.list.forEach(param => {\n if (!valuesIn[param.name]) {\n valuesIn[param.name] = param.defaultValue\n }\n })\n const paramsStr = getQueryParamsString(queryParams.list, values)\n window.history.replaceState({}, '', `${window.location.pathname}?${paramsStr}`)\n\n const hash = md5(paramsStr)\n dispatch({ type: setQueryParamsValues.name, values, url: paramsStr, hash })\n }\n}\n","export default function getDatasetName (dataset, queries, files) {\n if (dataset.name) {\n return dataset.name\n }\n if (dataset.queryId) {\n const i = queries.findIndex(q => q.id === dataset.queryId)\n return `Query ${i + 1}`\n }\n if (dataset.fileId) {\n const file = files.find(f => f.id === dataset.fileId)\n if (file && file.name) {\n return file.name\n }\n }\n return 'New'\n}\n","import { CreateDatasetRequest, RemoveDatasetRequest, UpdateDatasetConnectionRequest, UpdateDatasetNameRequest } from '../../proto/dekart_pb'\nimport { Dekart } from '../../proto/dekart_pb_service'\nimport { grpcCall } from './grpc'\nimport { setError, success, info, warn } from './message'\nimport { addDataToMap, toggleSidePanel, reorderLayer, removeDataset as removeDatasetFromKepler } from '@dekart-xyz/kepler.gl/dist/actions'\nimport { processCsvData, processGeojson } from '@dekart-xyz/kepler.gl/dist/processors'\nimport { get } from '../lib/api'\nimport getDatasetName from '../lib/getDatasetName'\nimport { runQuery } from './query'\nimport { KeplerGlSchema } from '@dekart-xyz/kepler.gl/dist/schemas'\n\nexport function createDataset (reportId) {\n return (dispatch) => {\n dispatch({ type: createDataset.name })\n const request = new CreateDatasetRequest()\n request.setReportId(reportId)\n dispatch(grpcCall(Dekart.CreateDataset, request))\n }\n}\n\nexport function setActiveDataset (datasetId) {\n return (dispatch, getState) => {\n const { list: datasets } = getState().dataset\n const dataset = datasets.find(d => d.id === datasetId) || datasets[0]\n if (dataset) {\n dispatch({ type: setActiveDataset.name, dataset })\n }\n }\n}\n\nexport function updateDatasetName (datasetId, name) {\n return async (dispatch, getState) => {\n const { list: datasets } = getState().dataset\n const dataset = datasets.find(d => d.id === datasetId)\n if (!dataset) {\n return\n }\n dispatch({ type: updateDatasetName.name, datasetId, name })\n const request = new UpdateDatasetNameRequest()\n request.setDatasetId(datasetId)\n request.setName(name)\n dispatch(grpcCall(Dekart.UpdateDatasetName, request))\n }\n}\n\nexport function updateDatasetConnection (datasetId, connectionId) {\n return async (dispatch, getState) => {\n const { list: datasets } = getState().dataset\n const dataset = datasets.find(d => d.id === datasetId)\n if (!dataset) {\n return\n }\n dispatch({ type: updateDatasetConnection.name, datasetId })\n const request = new UpdateDatasetConnectionRequest()\n request.setDatasetId(datasetId)\n request.setConnectionId(connectionId)\n dispatch(grpcCall(Dekart.UpdateDatasetConnection, request))\n }\n}\n\nexport function removeDataset (datasetId) {\n return async (dispatch, getState) => {\n const { list: datasets, active: activeDataset } = getState().dataset\n if (activeDataset.id === datasetId) {\n // removed active query\n const datasetsLeft = datasets.filter(q => q.id !== datasetId)\n if (datasetsLeft.length === 0) {\n dispatch(setError(new Error('Cannot remove last dataset')))\n return\n }\n dispatch(setActiveDataset(datasetsLeft.id))\n }\n dispatch({ type: removeDataset.name, datasetId })\n\n const request = new RemoveDatasetRequest()\n request.setDatasetId(datasetId)\n dispatch(grpcCall(Dekart.RemoveDataset, request, (res) => {\n dispatch(success('Dataset removed'))\n }))\n }\n}\n\n// prevent saving report when dataset is being updated\nexport function keplerDatasetStartUpdating () {\n return { type: keplerDatasetStartUpdating.name }\n}\n\nexport function keplerDatasetFinishUpdating () {\n return { type: keplerDatasetFinishUpdating.name }\n}\n\nexport function downloadingProgress (dataset, loaded) {\n return { type: downloadingProgress.name, dataset, loaded }\n}\n\nexport function processDownloadError (err, dataset, label) {\n return function (dispatch, getState) {\n dispatch({ type: processDownloadError.name, dataset })\n if (err.message.includes('CSV is empty')) {\n dispatch(warn(<>{label} Result is empty))\n } else if (err.status === 410 && dataset.queryId) { // gone from dw query temporary storage\n const { canRun, queryText } = getState().queryStatus[dataset.queryId]\n if (!canRun) {\n // it's running already, do nothing\n return\n }\n // don't need to check if user can run query (report.CanWrite || report.Discoverable)\n // because report cannot be opened if it's not discoverable\n // so if user can open report, they can run query\n dispatch(info(<>{label} result expired, re-running))\n dispatch(runQuery(dataset.queryId, queryText))\n } else if (err.name === 'AbortError') {\n dispatch(setError(new Error('Download cancelled by user')))\n } else {\n dispatch(setError(err))\n }\n }\n}\n\n// result available but need to add to map still\nexport function finishDownloading (dataset, prevDatasetsList, res, extension, label) {\n return { type: finishDownloading.name, dataset, prevDatasetsList, res, extension, label }\n}\n\n// remove dataset from downloading list\nexport function finishAddingDatasetToMap (dataset) {\n return { type: finishAddingDatasetToMap.name, dataset }\n}\n\nexport function addDatasetToMap (dataset, prevDatasetsList, res, extension) {\n return async function (dispatch, getState) {\n dispatch({ type: addDatasetToMap.name, dataset })\n const { dataset: { list: datasets }, files, queries, keplerGl } = getState()\n const label = getDatasetName(dataset, queries, files)\n let data\n try {\n if (extension === 'csv') {\n const csv = await res.text()\n data = processCsvData(csv)\n } else {\n const json = await res.json()\n data = processGeojson(json)\n }\n } catch (err) {\n dispatch(processDownloadError(err, dataset, label))\n return\n }\n\n // check if dataset was already added to kepler\n const addedDatasets = getState().keplerGl.kepler?.visState.datasets || {}\n const prevDataset = prevDatasetsList.find(d => d.id in addedDatasets)\n const i = datasets.findIndex(d => d.id === dataset.id)\n if (i < 0) {\n return\n }\n try {\n if (prevDataset) {\n dispatch(keplerDatasetStartUpdating())\n const prevLabel = getDatasetName(prevDataset, queries, files)\n\n // remember layer order, because kepler will reshuffle layers after adding dataset\n const layerOrder = [].concat(getState().keplerGl.kepler.visState.layerOrder)\n const layersAr = getState().keplerGl.kepler.visState.layers.map(layer => layer.id)\n const layerIdOrder = layerOrder.map(id => layersAr[id])\n const config = KeplerGlSchema.getConfigToSave(keplerGl.kepler)\n\n // filter for specific dataset\n config.config.visState.layers = config.config.visState.layers.filter(\n layer => layer.config.dataId === dataset.id\n )\n config.config.visState.filters = config.config.visState.filters.filter(\n f => f.dataId.includes(dataset.id)\n )\n\n // update layer labels\n if (prevDataset?.name !== dataset.name) {\n config.config.visState.layers = config.config.visState.layers.map(layer => {\n if (layer.config.label === prevLabel) {\n layer.config.label = label\n }\n return layer\n })\n }\n\n dispatch(removeDatasetFromKepler(dataset.id))\n\n // add dataset with previous config\n dispatch(addDataToMap({\n datasets: {\n info: {\n label,\n id: dataset.id\n },\n data\n },\n options: { keepExistingConfig: true },\n config // https://github.com/keplergl/kepler.gl/issues/176#issuecomment-410326304\n }))\n\n // restore layer order\n const newLayersAr = getState().keplerGl.kepler.visState.layers.map(layer => layer.id)\n if (newLayersAr.length === layerIdOrder.length) {\n const newOrder = layerIdOrder.map(id => newLayersAr.indexOf(id)).filter(i => i >= 0)\n if (newOrder.length === layerIdOrder.length) {\n dispatch(reorderLayer(newOrder))\n }\n }\n dispatch(keplerDatasetFinishUpdating())\n } else {\n dispatch(addDataToMap({\n datasets: {\n info: {\n label,\n id: dataset.id\n },\n data\n }\n }))\n }\n } catch (err) {\n dispatch(setError(\n new Error(`Failed to add data to map: ${err.message}`),\n false\n ))\n return\n }\n const { reportStatus } = getState()\n if (reportStatus.edit) {\n dispatch(toggleSidePanel('layer'))\n }\n dispatch({ type: finishAddingDatasetToMap.name, dataset })\n }\n}\n\nexport function cancelDownloading () {\n return function (dispatch, getState) {\n getState().dataset.downloading.forEach(d => d.controller.abort())\n dispatch({ type: cancelDownloading.name })\n }\n}\n\nexport function downloadDataset (dataset, sourceId, extension, prevDatasetsList) {\n return async (dispatch, getState) => {\n const { files, queries } = getState()\n const label = getDatasetName(dataset, queries, files)\n const controller = new AbortController()\n dispatch({ type: downloadDataset.name, dataset, controller })\n const { token } = getState()\n try {\n const res = await get(\n `/dataset-source/${dataset.id}/${sourceId}.${extension}`,\n token,\n controller.signal,\n (loaded) => dispatch(downloadingProgress(dataset, loaded))\n )\n dispatch(finishDownloading(dataset, prevDatasetsList, res, extension, label))\n } catch (err) {\n dispatch(processDownloadError(err, dataset, label))\n }\n }\n}\n\nexport function openDatasetSettingsModal (datasetId) {\n return { type: openDatasetSettingsModal.name, datasetId }\n}\n\nexport function closeDatasetSettingsModal (datasetId) {\n return { type: closeDatasetSettingsModal.name, datasetId }\n}\n","export function shouldUpdateDataset (dataset, prevDatasetsList) {\n const prevDataset = prevDatasetsList.find(d => d.id === dataset.id)\n if (prevDataset) {\n if (prevDataset.name !== dataset.name) {\n return true\n }\n }\n return false\n}\n","\nconst SESSION_STORAGE_KEY = 'dekart-session-storage-v1'\n\nconst initialState = {\n isPlayground: false,\n lastOpenedDialog: null, // connection dialog state\n redirectWhenSaveConnection: null // { reportId, edit }\n}\n\nlet current = initialState\n\nexport default function sessionStorageReset () {\n window.sessionStorage.removeItem(SESSION_STORAGE_KEY)\n return {\n type: sessionStorageReset.name,\n current: initialState\n }\n}\n\nexport function sessionStorageInit () {\n return {\n type: sessionStorageInit.name,\n current\n }\n}\n\nexport function updateSessionStorage (key, value) {\n current[key] = value\n window.sessionStorage.setItem(SESSION_STORAGE_KEY, JSON.stringify(current))\n return {\n type: updateSessionStorage.name,\n current\n }\n}\n\nexport function loadSessionStorage () {\n return (dispatch) => {\n const sessionStorageValue = window.sessionStorage.getItem(SESSION_STORAGE_KEY)\n if (sessionStorageValue) {\n current = JSON.parse(sessionStorageValue)\n }\n dispatch(sessionStorageInit())\n }\n}\n","import { ArchiveConnectionRequest, CreateConnectionRequest, GetConnectionListRequest, Connection, TestConnectionRequest, UpdateConnectionRequest, SetDefaultConnectionRequest, GetGcpProjectListRequest, Secret, ConnectionType } from '../../proto/dekart_pb'\nimport { Dekart } from '../../proto/dekart_pb_service'\nimport { grpcCall } from './grpc'\nimport { updateSessionStorage } from './sessionStorage'\nimport { needSensitiveScopes } from './user'\n\nexport function connectionCreated ({ id, connectionName }) {\n return { type: connectionCreated.name, id, connectionName }\n}\n\nexport function closeConnectionDialog () {\n return async (dispatch) => {\n dispatch({ type: closeConnectionDialog.name })\n }\n}\n\nexport function projectListUpdate (projectsList) {\n return { type: projectListUpdate.name, projectsList }\n}\n\nexport function getProjectList () {\n return async (dispatch) => {\n dispatch({ type: getProjectList.name })\n const request = new GetGcpProjectListRequest()\n const res = await new Promise((resolve, reject) => {\n dispatch(grpcCall(Dekart.GetGcpProjectList, request, resolve, (err) => {\n if (err.code === 7) {\n // insufficient permissions for scopes\n resolve({ projectsList: [] })\n return\n }\n return err\n }))\n })\n dispatch(projectListUpdate(res.projectsList))\n }\n}\n\nexport function editConnection (id, connectionType, bigqueryKey = false) {\n return async (dispatch) => {\n dispatch({ type: editConnection.name, id, connectionType, bigqueryKey })\n dispatch(getProjectList())\n }\n}\n\nexport function selectConnection (id) {\n return { type: selectConnection.name, id }\n}\n\nexport function setDefaultConnection (id) {\n return async (dispatch) => {\n dispatch({ type: setDefaultConnection.name })\n\n const request = new SetDefaultConnectionRequest()\n request.setConnectionId(id)\n\n await new Promise((resolve) => {\n dispatch(grpcCall(Dekart.SetDefaultConnection, request, resolve))\n })\n\n dispatch(connectionSaved())\n }\n}\n\nexport function archiveConnection (id) {\n return async (dispatch) => {\n dispatch({ type: archiveConnection.name })\n\n const request = new ArchiveConnectionRequest()\n request.setConnectionId(id)\n\n await new Promise((resolve) => {\n dispatch(grpcCall(Dekart.ArchiveConnection, request, resolve))\n })\n\n dispatch(connectionSaved())\n }\n}\n\n// newConnectionScreen toggles the new connection screen with datasource selection\nexport function newConnectionScreen (show) {\n return { type: newConnectionScreen.name, show }\n}\n\n// reOpenDialog reopens the last opened dialog after permissions are granted\nexport function reOpenDialog () {\n return (dispatch, getState) => {\n const { lastOpenedDialog } = getState().connection\n if (lastOpenedDialog) {\n dispatch(updateSessionStorage('lastOpenedDialog', null))\n dispatch(newConnection(lastOpenedDialog.connectionType))\n dispatch({ type: reOpenDialog.name })\n }\n }\n}\n\n// newConnection opens a modal to create a new connection\nexport function newConnection (connectionType, bigqueryKey = false) {\n return async (dispatch, getState) => {\n const { user } = getState()\n if (connectionType === ConnectionType.CONNECTION_TYPE_BIGQUERY && !user.sensitiveScopesGranted && !bigqueryKey) {\n dispatch(updateSessionStorage('lastOpenedDialog', { connectionType })) // remember the dialog state\n dispatch(needSensitiveScopes())\n }\n // just to show the modal\n dispatch({ type: newConnection.name, connectionType, bigqueryKey })\n if (connectionType === ConnectionType.CONNECTION_TYPE_BIGQUERY && !bigqueryKey) {\n dispatch(getProjectList())\n }\n }\n}\n\nexport function connectionListUpdate (connectionsList) {\n return { type: connectionListUpdate.name, connectionsList }\n}\n\nexport function getConnectionsList () {\n return async (dispatch) => {\n dispatch({ type: getConnectionsList.name })\n\n const request = new GetConnectionListRequest()\n\n const res = await new Promise((resolve) => {\n dispatch(grpcCall(Dekart.GetConnectionList, request, resolve))\n })\n\n res.connectionsList.forEach((connection) => {\n // replace password with placeholder\n // no password is returned from the server, only the length\n if (connection.snowflakePassword?.length > 0) {\n connection.snowflakePassword = '*'.repeat(connection.snowflakePassword.length)\n }\n })\n dispatch(connectionListUpdate(res.connectionsList))\n }\n}\n\nexport function connectionSaved () {\n return function (dispatch, getState) {\n dispatch({ type: connectionSaved.name })\n const redirectWhenSaveConnection = getState().connection.redirectWhenSaveConnection\n if (redirectWhenSaveConnection) {\n dispatch(updateSessionStorage('redirectWhenSaveConnection', null))\n window.location.href = redirectWhenSaveConnection.edit ? `/reports/${redirectWhenSaveConnection.reportId}/source` : `/reports/${redirectWhenSaveConnection.reportId}`\n }\n }\n}\n\nexport function saveConnection (id, connectionType, connectionProps) {\n return async (dispatch, getState) => {\n const connection = new Connection()\n connection.setConnectionType(connectionType)\n dispatch({ type: saveConnection.name })\n if (!id) {\n // create new connection\n const request = new CreateConnectionRequest()\n if (connectionType === ConnectionType.CONNECTION_TYPE_SNOWFLAKE) {\n connection.setConnectionName(connectionProps.connectionName || 'Snowflake')\n connection.setSnowflakeAccountId(connectionProps.snowflakeAccountId)\n connection.setSnowflakeUsername(connectionProps.snowflakeUsername)\n connection.setSnowflakeWarehouse(connectionProps.snowflakeWarehouse)\n const secret = new Secret()\n secret.setClientEncrypted(await encryptPassword(connectionProps.snowflakePassword, getState().env.variables.AES_KEY, getState().env.variables.AES_IV))\n connection.setSnowflakePassword(secret)\n } else if (connectionProps.newBigqueryKey) { // bigquery service account key\n const { connectionName, cloudStorageBucket, newBigqueryKey } = connectionProps\n connection.setConnectionName(connectionName || 'BigQuery')\n connection.setCloudStorageBucket(cloudStorageBucket)\n const secret = new Secret()\n const { env: { variables: { AES_IV, AES_KEY } } } = getState()\n secret.setClientEncrypted(await encryptPassword(newBigqueryKey, AES_KEY, AES_IV))\n connection.setBigqueryKey(secret)\n } else {\n connection.setConnectionName(connectionProps.connectionName || 'BigQuery')\n connection.setBigqueryProjectId(connectionProps.bigqueryProjectId)\n connection.setCloudStorageBucket(connectionProps.cloudStorageBucket)\n }\n request.setConnection(connection)\n\n const res = await new Promise((resolve) => {\n dispatch(grpcCall(Dekart.CreateConnection, request, resolve))\n })\n\n dispatch(connectionCreated(res.connection))\n } else {\n const prevConnection = getState().connection.list.find(c => c.id === id)\n\n // update existing connection\n const request = new UpdateConnectionRequest()\n connection.setId(id)\n if (connectionType === ConnectionType.CONNECTION_TYPE_SNOWFLAKE) {\n connection.setConnectionName(connectionProps.connectionName)\n connection.setSnowflakeAccountId(connectionProps.snowflakeAccountId)\n connection.setSnowflakeUsername(connectionProps.snowflakeUsername)\n connection.setSnowflakeWarehouse(connectionProps.snowflakeWarehouse)\n if (prevConnection?.snowflakePassword !== connectionProps.snowflakePassword) {\n // update password only if it was changed, otherwise it's just a placeholder\n const secret = new Secret()\n secret.setClientEncrypted(await encryptPassword(connectionProps.snowflakePassword, getState().env.variables.AES_KEY, getState().env.variables.AES_IV))\n connection.setSnowflakePassword(secret)\n }\n } else if (prevConnection.bigqueryKey) { // bigquery service account key\n connection.setConnectionName(connectionProps.connectionName)\n connection.setCloudStorageBucket(connectionProps.cloudStorageBucket)\n if (connectionProps.newBigqueryKey) {\n // update key only if it was changed, otherwise it's just a placeholder\n const secret = new Secret()\n const { env: { variables: { AES_IV, AES_KEY } } } = getState()\n secret.setClientEncrypted(await encryptPassword(connectionProps.newBigqueryKey, AES_KEY, AES_IV))\n connection.setBigqueryKey(secret)\n }\n } else {\n connection.setConnectionName(connectionProps.connectionName)\n connection.setBigqueryProjectId(connectionProps.bigqueryProjectId)\n connection.setCloudStorageBucket(connectionProps.cloudStorageBucket)\n }\n request.setConnection(connection)\n\n await new Promise((resolve) => {\n dispatch(grpcCall(Dekart.UpdateConnection, request, resolve))\n })\n }\n\n dispatch(connectionSaved())\n }\n}\n\nexport function connectionChanged () {\n return { type: connectionChanged.name }\n}\n\nexport function testConnectionResponse ({ success, error }) {\n return { type: testConnectionResponse.name, success, error }\n}\n\nasync function encryptPassword (password, key, iv) {\n // Convert key and IV from Base64\n const keyArrayBuffer = await window.crypto.subtle.importKey(\n 'raw',\n base64ToArrayBuffer(key),\n { name: 'AES-GCM' },\n false,\n ['encrypt']\n )\n const ivArray = base64ToArrayBuffer(iv)\n\n // Encrypt the password\n const encoder = new TextEncoder()\n const encrypted = await window.crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv: new Uint8Array(ivArray)\n },\n keyArrayBuffer,\n encoder.encode(password)\n )\n\n // Convert encrypted data to Base64 for easy transmission\n const encryptedBase64 = arrayBufferToBase64(encrypted)\n return encryptedBase64\n}\n\nfunction base64ToArrayBuffer (base64) {\n const binaryString = window.atob(base64)\n const len = binaryString.length\n const bytes = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i)\n }\n return bytes.buffer\n}\n\nfunction arrayBufferToBase64 (buffer) {\n let binary = ''\n const bytes = new Uint8Array(buffer)\n const len = bytes.byteLength\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i])\n }\n return window.btoa(binary)\n}\n\nexport function testConnection (connectionType, values) {\n return async (dispatch, getState) => {\n dispatch({ type: testConnection.name })\n const { env: { variables: { AES_IV, AES_KEY } } } = getState()\n const request = new TestConnectionRequest()\n const connection = new Connection()\n connection.setConnectionType(connectionType)\n if (connectionType === ConnectionType.CONNECTION_TYPE_SNOWFLAKE) {\n const { connectionName, snowflakeAccountId, snowflakeUsername, snowflakeWarehouse, snowflakePassword } = values\n connection.setConnectionName(connectionName)\n connection.setSnowflakeAccountId(snowflakeAccountId)\n connection.setSnowflakeUsername(snowflakeUsername)\n connection.setSnowflakeWarehouse(snowflakeWarehouse)\n const secret = new Secret()\n secret.setClientEncrypted(await encryptPassword(snowflakePassword, AES_KEY, AES_IV))\n connection.setSnowflakePassword(secret)\n } else if (values.newBigqueryKey) { // bigquery service account key\n const { connectionName, cloudStorageBucket, newBigqueryKey } = values\n connection.setConnectionName(connectionName)\n connection.setCloudStorageBucket(cloudStorageBucket)\n const secret = new Secret()\n secret.setClientEncrypted(await encryptPassword(newBigqueryKey, AES_KEY, AES_IV))\n connection.setBigqueryKey(secret)\n } else { // bigquery\n const { connectionName, bigqueryProjectId, cloudStorageBucket } = values\n connection.setConnectionName(connectionName)\n connection.setBigqueryProjectId(bigqueryProjectId)\n connection.setCloudStorageBucket(cloudStorageBucket)\n }\n\n request.setConnection(connection)\n\n const res = await new Promise((resolve) => {\n dispatch(grpcCall(Dekart.TestConnection, request, resolve))\n })\n\n dispatch(testConnectionResponse(res))\n }\n}\n","\nconst LOCAL_STORAGE_KEY = 'dekart-local-storage-v1'\n\nconst initialState = {\n sensitiveScopesGrantedOnce: false,\n loginHint: null\n}\n\nlet current = initialState\n\nexport default function localStorageReset () {\n window.localStorage.removeItem(LOCAL_STORAGE_KEY)\n return {\n type: localStorageReset.name,\n current: initialState\n }\n}\n\nexport function localStorageInit () {\n return {\n type: localStorageInit.name,\n current\n }\n}\n\nexport function updateLocalStorage (key, value) {\n current[key] = value\n window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(current))\n return {\n type: updateLocalStorage.name,\n current\n }\n}\n\nexport function loadLocalStorage () {\n return (dispatch) => {\n const localStorageValue = window.localStorage.getItem(LOCAL_STORAGE_KEY)\n if (localStorageValue) {\n current = JSON.parse(localStorageValue)\n }\n dispatch(localStorageInit())\n }\n}\n","import { CreateWorkspaceRequest, CreateSubscriptionRequest, GetInvitesRequest, GetWorkspaceRequest, GetStripePortalSessionRequest, ListUsersRequest, RespondToInviteRequest, UpdateWorkspaceRequest, UpdateWorkspaceUserRequest } from '../../proto/dekart_pb'\nimport { Dekart } from '../../proto/dekart_pb_service'\nimport { grpcCall } from './grpc'\nimport { success } from './message'\n\nexport function redirectToCustomerPortal () {\n return (dispatch) => {\n dispatch({ type: redirectToCustomerPortal.name })\n const request = new GetStripePortalSessionRequest()\n request.setUiUrl(window.location.href)\n dispatch(grpcCall(Dekart.GetStripePortalSession, request, (res) => {\n window.location.href = res.url\n }))\n }\n}\n\nexport function respondToInvite (inviteId, accept) {\n return (dispatch) => {\n dispatch({ type: respondToInvite.name })\n const request = new RespondToInviteRequest()\n request.setInviteId(inviteId)\n request.setAccept(accept)\n dispatch(grpcCall(Dekart.RespondToInvite, request, () => {\n window.location.href = '/'\n }))\n }\n}\n\nexport function createWorkspace (name) {\n return (dispatch) => {\n dispatch({ type: createWorkspace.name })\n const request = new CreateWorkspaceRequest()\n request.setWorkspaceName(name)\n dispatch(grpcCall(Dekart.CreateWorkspace, request, () => {\n window.location.href = '/'\n }))\n }\n}\n\nexport function updateWorkspace (name) {\n return (dispatch) => {\n dispatch({ type: updateWorkspace.name })\n const request = new UpdateWorkspaceRequest()\n request.setWorkspaceName(name)\n dispatch(grpcCall(Dekart.UpdateWorkspace, request, () => {\n success('Workspace updated')\n }))\n }\n}\n\nexport function workspaceUpdate ({ workspace, subscription, usersList, invitesList, addedUsersCount }) {\n return {\n type: workspaceUpdate.name,\n workspace,\n subscription,\n usersList,\n invitesList,\n addedUsersCount\n }\n}\n\nexport function getWorkspace () {\n return (dispatch) => {\n dispatch({ type: getWorkspace.name })\n const request = new GetWorkspaceRequest()\n dispatch(grpcCall(Dekart.GetWorkspace, request, (response) => {\n dispatch(workspaceUpdate(response))\n }))\n }\n}\n\nexport function createSubscription (plantType) {\n return (dispatch) => {\n dispatch({ type: createSubscription.name })\n const request = new CreateSubscriptionRequest()\n request.setPlanType(plantType)\n request.setUiUrl(window.location.href)\n dispatch(grpcCall(Dekart.CreateSubscription, request, (res) => {\n if (res.redirectUrl) {\n window.location.href = res.redirectUrl\n } else {\n success('Subscription created')\n }\n }))\n }\n}\n\nexport function invitesUpdate (invitesList) {\n return {\n type: invitesUpdate.name,\n invitesList\n }\n}\n\nexport function getInvites () {\n return (dispatch) => {\n dispatch({ type: getInvites.name })\n const request = new GetInvitesRequest()\n dispatch(grpcCall(Dekart.GetInvites, request, (response) => {\n dispatch(invitesUpdate(response.invitesList))\n }))\n }\n}\n\nexport function updateWorkspaceUser (email, userUpdateType, role = 2) {\n return (dispatch) => {\n dispatch({ type: updateWorkspaceUser.name })\n const request = new UpdateWorkspaceUserRequest()\n request.setEmail(email)\n request.setUserUpdateType(userUpdateType)\n if (userUpdateType !== UpdateWorkspaceUserRequest.UserUpdateType.USER_UPDATE_TYPE_REMOVE) {\n request.setRole(role)\n }\n dispatch(grpcCall(Dekart.UpdateWorkspaceUser, request, () => {\n if (userUpdateType === UpdateWorkspaceUserRequest.UserUpdateType.USER_UPDATE_TYPE_ADD) {\n success('User invited')\n }\n if (userUpdateType === UpdateWorkspaceUserRequest.UserUpdateType.USER_UPDATE_TYPE_UPDATE) {\n success('Role updated')\n }\n }))\n }\n}\n\nexport function subscriptionUpdate (subscription) {\n return {\n type: subscriptionUpdate.name,\n subscription\n }\n}\n\nexport function getSubscription () {\n return (dispatch) => {\n dispatch({ type: getSubscription.name })\n const request = new CreateSubscriptionRequest()\n dispatch(grpcCall(Dekart.GetSubscription, request, response => {\n dispatch(subscriptionUpdate(response.subscription))\n }))\n }\n}\n\nexport function usersListUpdate (usersList) {\n return {\n type: usersListUpdate.name,\n usersList\n }\n}\n\nexport function listUsers () {\n return async (dispatch) => {\n dispatch({ type: listUsers.name })\n const request = new ListUsersRequest()\n const res = await new Promise((resolve) => {\n dispatch(grpcCall(Dekart.ListUsers, request, resolve))\n })\n dispatch(usersListUpdate(res.usersList))\n }\n}\n","import { GetUserStreamRequest } from '../../proto/dekart_pb'\nimport { Dekart } from '../../proto/dekart_pb_service'\nimport { getConnectionsList } from './connection'\nimport { grpcStream, grpcStreamCancel } from './grpc'\nimport { updateLocalStorage } from './localStorage'\nimport { updateSessionStorage } from './sessionStorage'\nimport { getWorkspace } from './workspace'\n\nexport function userStreamUpdate (userStream) {\n return {\n type: userStreamUpdate.name,\n userStream\n }\n}\n\nexport function subscribeUserStream () {\n return (dispatch) => {\n dispatch({ type: subscribeUserStream.name })\n const request = new GetUserStreamRequest()\n const prevRes = {\n connectionUpdate: 0,\n workspaceUpdate: -1\n }\n dispatch(grpcStream(Dekart.GetUserStream, request, (message, err) => {\n if (message) {\n dispatch(updateLocalStorage('loginHint', message.email))\n dispatch(userStreamUpdate(message))\n if (prevRes.workspaceUpdate !== message.workspaceUpdate) {\n prevRes.workspaceUpdate = message.workspaceUpdate\n dispatch(getWorkspace())\n }\n if (message.planType > 0) {\n // update only when subscription is active to avoid 404 errors\n if (prevRes.connectionUpdate !== message.connectionUpdate) {\n prevRes.connectionUpdate = message.connectionUpdate\n dispatch(getConnectionsList())\n }\n }\n }\n return err\n }))\n }\n}\n\nexport function switchPlayground (isPlayground, redirect = '/') {\n return (dispatch, getState) => {\n dispatch(updateSessionStorage('isPlayground', isPlayground))\n window.location.href = redirect\n }\n}\n\nexport function needSensitiveScopes () {\n return { type: needSensitiveScopes.name }\n}\n\nexport function unsubscribeUserStream () {\n return (dispatch, getState) => {\n dispatch(grpcStreamCancel(Dekart.GetUserStream))\n dispatch({ type: unsubscribeUserStream.name })\n }\n}\n","// deep compare function while ignores the order of keys in objects\nexport function deepCompare (obj1, obj2) {\n if (obj1 === obj2) return true\n\n if (typeof obj1 !== 'object' || obj1 === null || typeof obj2 !== 'object' || obj2 === null) {\n return false\n }\n\n const keys1 = Object.keys(obj1)\n const keys2 = Object.keys(obj2)\n\n if (keys1.length !== keys2.length) return false\n\n keys1.sort()\n keys2.sort()\n\n for (let i = 0; i < keys1.length; i++) {\n if (keys1[i] !== keys2[i]) return false\n if (!deepCompare(obj1[keys1[i]], obj2[keys2[i]])) return false\n }\n\n return true\n}\n","import { receiveMapConfig } from '@dekart-xyz/kepler.gl/dist/actions/actions'\nimport { KeplerGlSchema } from '@dekart-xyz/kepler.gl/dist/schemas'\nimport { setReportChanged } from '../actions/report'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useEffect } from 'react'\nimport { deepCompare } from './deepCompare'\n\n// This function is used to compare the current map config with the new map config\nexport function shouldUpdateMapConfig (oldMapConfigIn, newMapConfigIn) {\n if (newMapConfigIn.config.visState.layers.length > 0) {\n const newMapConfig = structuredClone(newMapConfigIn)\n newMapConfig.config.mapState.latitude = 0\n newMapConfig.config.mapState.longitude = 0\n newMapConfig.config.mapState.zoom = 0\n\n const oldMapConfig = structuredClone(oldMapConfigIn)\n oldMapConfig.config.mapState.latitude = 0\n oldMapConfig.config.mapState.longitude = 0\n oldMapConfig.config.mapState.zoom = 0\n\n return !deepCompare(oldMapConfig, newMapConfig)\n }\n return false\n}\n\n// Update the map config if it has changed locally\nexport function useCheckMapConfig () {\n const dispatch = useDispatch()\n const kepler = useSelector(state => state.keplerGl.kepler)\n const report = useSelector(state => state.report)\n const { mapConfig } = report || {}\n const datasets = useSelector(state => state.dataset.list)\n const updatingNum = useSelector(state => state.dataset.updatingNum)\n\n useEffect(() => {\n if (updatingNum > 0) {\n // skip checking map config while datasets are updating\n return\n }\n return checkMapConfig(kepler, mapConfig, dispatch, datasets)\n }, [kepler, mapConfig, dispatch, report, datasets, updatingNum])\n}\n\nlet checkMapConfigTimer\nfunction checkMapConfig (kepler, mapConfigInputStr, dispatch, datasets) {\n if (checkMapConfigTimer) {\n clearTimeout(checkMapConfigTimer)\n }\n checkMapConfigTimer = setTimeout(() => {\n if (kepler && mapConfigInputStr && datasets) {\n const configToSaveObj = KeplerGlSchema.getConfigToSave(kepler)\n const currentConfig = JSON.parse(mapConfigInputStr)\n if (shouldUpdateMapConfig(currentConfig, configToSaveObj)) {\n dispatch(setReportChanged())\n }\n }\n checkMapConfigTimer = null\n }, 0) // zero otherwise it may skip local update, then see that config changed and re-upload data\n return () => {\n if (checkMapConfigTimer) {\n clearTimeout(checkMapConfigTimer)\n }\n }\n}\n\nexport function receiveReportUpdateMapConfig (report, dispatch, getState) {\n const { kepler } = getState().keplerGl\n const newConfig = JSON.parse(report.mapConfig)\n const currentConfig = KeplerGlSchema.getConfigToSave(kepler)\n if (shouldUpdateMapConfig(currentConfig, newConfig)) {\n const newConfigNormalized = KeplerGlSchema.parseSavedConfig(newConfig)\n dispatch(receiveMapConfig(newConfigNormalized))\n return true\n } else {\n return false\n }\n}\n","import { KeplerGlSchema } from '@dekart-xyz/kepler.gl/dist/schemas'\nimport { removeDataset } from '@dekart-xyz/kepler.gl/dist/actions'\n\nimport { grpcCall, grpcStream, grpcStreamCancel } from './grpc'\nimport { success } from './message'\nimport { ArchiveReportRequest, CreateReportRequest, SetDiscoverableRequest, ForkReportRequest, Query, Report, ReportListRequest, UpdateReportRequest, File, ReportStreamRequest, PublishReportRequest, AllowExportDatasetsRequest, Readme } from '../../proto/dekart_pb'\nimport { Dekart } from '../../proto/dekart_pb_service'\nimport { createQuery, downloadQuerySource } from './query'\nimport { downloadDataset } from './dataset'\nimport { shouldAddQuery } from '../lib/shouldAddQuery'\nimport { shouldUpdateDataset } from '../lib/shouldUpdateDataset'\nimport { needSensitiveScopes } from './user'\nimport { getQueryParamsObjArr } from '../lib/queryParams'\nimport { receiveReportUpdateMapConfig } from '../lib/mapConfig'\n\nexport function closeReport () {\n return (dispatch) => {\n dispatch(grpcStreamCancel(Dekart.GetReportStream))\n dispatch({\n type: closeReport.name\n })\n }\n}\n\nfunction getReportStream (reportId, onMessage, onError) {\n const report = new Report()\n report.setId(reportId)\n const request = new ReportStreamRequest()\n request.setReport(report)\n return grpcStream(Dekart.GetReportStream, request, onMessage)\n}\n\nexport function toggleReportEdit (edit) {\n return function (dispatch, getState) {\n const report = getState().report\n let fullscreen = null\n if (edit) {\n fullscreen = false\n } else if (report) {\n fullscreen = !report.readme\n }\n dispatch({ type: toggleReportEdit.name, edit, fullscreen })\n }\n}\n\nexport function openReport (reportId) {\n return (dispatch, getState) => {\n const user = getState().user\n dispatch({\n type: openReport.name\n })\n dispatch(getReportStream(\n reportId,\n (reportStreamResponse, err) => {\n if (err) {\n return err\n }\n if (reportStreamResponse.report.needSensitiveScope && !user.sensitiveScopesGranted) {\n dispatch(needSensitiveScopes())\n } else {\n dispatch(reportUpdate(reportStreamResponse))\n }\n }\n ))\n }\n}\n\nfunction shouldAddFile (file, prevFileList, filesList, mapConfigUpdated) {\n if (file.fileStatus < File.Status.STATUS_STORED) {\n return false\n }\n if (!file.sourceId) {\n return false\n } else if (mapConfigUpdated) {\n return true\n }\n\n if (!prevFileList) {\n return true\n }\n\n const prevFileState = prevFileList.find(f => f.id === file.id)\n if (!prevFileState || prevFileState.fileStatus !== file.fileStatus || prevFileState.sourceId !== file.sourceId) {\n return true\n }\n}\n\nfunction shouldDownloadQueryText (query, prevQueriesList, queriesList) {\n if (query.querySource !== Query.QuerySource.QUERY_SOURCE_STORAGE) {\n return false\n }\n if (!query.querySourceId) {\n return false\n }\n if (!prevQueriesList) {\n return true\n }\n const prevQueryState = prevQueriesList.find(q => q.id === query.id)\n if (!prevQueryState || prevQueryState.querySourceId !== query.querySourceId) {\n return true\n }\n return false\n}\n\nexport function setReportChanged (changed) {\n return { type: setReportChanged.name, changed }\n}\n\nexport function reportUpdate (reportStreamResponse) {\n const { report, queriesList, datasetsList, filesList, queryJobsList } = reportStreamResponse\n return async (dispatch, getState) => {\n const {\n queries: prevQueriesList,\n dataset: { list: prevDatasetsList },\n files: prevFileList,\n env,\n connection,\n user,\n queryJobs: prevQueryJobsList,\n queryParams: { hash },\n reportStatus: { lastChanged, lastSaved }\n } = getState()\n\n if (lastChanged > lastSaved) {\n // report was changed locally, prevent remote update\n return\n }\n\n dispatch({\n type: reportUpdate.name,\n report,\n queriesList,\n prevQueriesList,\n datasetsList,\n prevDatasetsList,\n filesList,\n queryJobsList,\n hash\n })\n let mapConfigUpdated = false\n if (report.mapConfig) {\n mapConfigUpdated = receiveReportUpdateMapConfig(report, dispatch, getState)\n }\n\n if (!mapConfigUpdated) {\n // new map config reset data anyway\n prevQueriesList.forEach(query => {\n if (!queriesList.find(q => q.id === query.id)) {\n const dataset = prevDatasetsList.find(d => d.queryId === query.id)\n if (dataset) {\n dispatch(removeDataset(dataset.id))\n }\n }\n })\n prevFileList.forEach(file => {\n if (!filesList.find(f => f.id === file.id)) {\n const dataset = prevDatasetsList.find(d => d.fileId === file.id)\n if (dataset) {\n dispatch(removeDataset(dataset.id))\n }\n }\n })\n }\n\n queriesList.forEach((query) => {\n if (shouldDownloadQueryText(query, prevQueriesList, queriesList)) {\n dispatch(downloadQuerySource(query))\n }\n })\n\n const { ALLOW_FILE_UPLOAD } = env.variables\n const { queryParams } = getState()\n datasetsList.forEach((dataset) => {\n let extension = 'csv'\n if (dataset.queryId) {\n const query = queriesList.find(q => q.id === dataset.queryId)\n const queryJob = queryJobsList.find(job => job.queryId === query.id && job.queryParamsHash === queryParams.hash)\n if (shouldAddQuery(queryJob, prevQueryJobsList, mapConfigUpdated) || shouldUpdateDataset(dataset, prevDatasetsList)) {\n dispatch(downloadDataset(\n dataset,\n queryJob.jobResultId,\n extension,\n prevDatasetsList\n ))\n }\n } else if (dataset.fileId) {\n const file = filesList.find(f => f.id === dataset.fileId)\n if (shouldAddFile(file, prevFileList, filesList, mapConfigUpdated) || shouldUpdateDataset(dataset, prevDatasetsList)) {\n if (file.mimeType === 'application/geo+json') {\n extension = 'geojson'\n }\n dispatch(downloadDataset(\n dataset,\n file.sourceId,\n extension,\n prevDatasetsList\n ))\n }\n } else if ((!ALLOW_FILE_UPLOAD && !connection.userDefined) || user.isPlayground) {\n // create query right away\n dispatch(createQuery(dataset.id))\n }\n })\n }\n}\n\nexport function subscribeReports () {\n return (dispatch) => {\n dispatch({ type: subscribeReports.name })\n const request = new ReportListRequest()\n dispatch(grpcStream(Dekart.GetReportListStream, request, (message, err) => {\n if (message) {\n dispatch(reportsListUpdate(message.reportsList))\n }\n return err\n }))\n }\n}\n\nexport function unsubscribeReports () {\n return (dispatch, getState) => {\n dispatch(grpcStreamCancel(Dekart.GetReportListStream))\n dispatch({ type: unsubscribeReports.name })\n }\n}\n\nexport function reportsListUpdate (reportsList) {\n return { type: reportsListUpdate.name, reportsList }\n}\n\nexport function setDiscoverable (reportId, discoverable, allowEdit) {\n return async (dispatch) => {\n dispatch({ type: setDiscoverable.name })\n const req = new SetDiscoverableRequest()\n req.setReportId(reportId)\n req.setDiscoverable(discoverable)\n req.setAllowEdit(allowEdit)\n dispatch(grpcCall(Dekart.SetDiscoverable, req))\n }\n}\n\nexport function archiveReport (reportId, archive) {\n return async dispatch => {\n dispatch({ type: archiveReport.name, reportId })\n const req = new ArchiveReportRequest()\n req.setReportId(reportId)\n req.setArchive(archive)\n dispatch(grpcCall(Dekart.ArchiveReport, req))\n }\n}\n\nexport function newReport (id) {\n return { type: newReport.name, id }\n}\n\nexport function newForkedReport (id) {\n return { type: newForkedReport.name, id }\n}\n\nexport function allowExportDatasets (reportId, allowExport) {\n return async (dispatch) => {\n dispatch({ type: allowExportDatasets.name })\n const req = new AllowExportDatasetsRequest()\n req.setReportId(reportId)\n req.setAllowExport(allowExport)\n dispatch(grpcCall(Dekart.AllowExportDatasets, req))\n }\n}\n\nexport function publishReport (reportId, publish) {\n return async (dispatch) => {\n dispatch({ type: publishReport.name })\n const req = new PublishReportRequest()\n req.setReportId(reportId)\n req.setPublish(publish)\n dispatch(grpcCall(Dekart.PublishReport, req))\n }\n}\n\nexport function forkReport (reportId) {\n return async (dispatch) => {\n dispatch({ type: forkReport.name })\n const request = new ForkReportRequest()\n request.setReportId(reportId)\n dispatch(grpcCall(Dekart.ForkReport, request, (res) => {\n const { reportId } = res\n dispatch(newForkedReport(reportId))\n dispatch(success('Report Forked'))\n }))\n }\n}\n\nexport function createReport () {\n return async (dispatch) => {\n const request = new CreateReportRequest()\n dispatch(grpcCall(Dekart.CreateReport, request, (res) => {\n const { report } = res\n dispatch(newReport(report.id))\n dispatch(success('New Report Created'))\n }))\n }\n}\n\nexport function reportTitleChange (title) {\n return {\n type: reportTitleChange.name,\n title\n }\n}\n\nexport function savedReport (lastSaved) {\n return { type: savedReport.name, lastSaved }\n}\n\nexport function toggleReportFullscreen () {\n return { type: toggleReportFullscreen.name }\n}\n\nexport function saveMap (onSaveComplete = () => {}) {\n return async (dispatch, getState) => {\n const lastSaved = Date.now()\n dispatch({ type: saveMap.name })\n const { keplerGl, report, reportStatus, queryStatus, queryParams, readme } = getState()\n const configToSave = KeplerGlSchema.getConfigToSave(keplerGl.kepler)\n const request = new UpdateReportRequest()\n const queries = Object.keys(queryStatus).reduce((queries, id) => {\n const status = queryStatus[id]\n if (status.changed) {\n const query = new Query()\n query.setId(id)\n query.setQueryText(status.queryText)\n query.setQuerySourceId(status.querySourceId)\n queries.push(query)\n }\n return queries\n }, [])\n if (readme.markdown !== null) {\n const readmeProp = new Readme()\n readmeProp.setMarkdown(readme.markdown)\n request.setReadme(readmeProp)\n }\n request.setReportId(report.id)\n request.setMapConfig(JSON.stringify(configToSave))\n request.setTitle(reportStatus.title)\n request.setQueryList(queries)\n request.setQueryParamsList(getQueryParamsObjArr(queryParams.list))\n dispatch(grpcCall(Dekart.UpdateReport, request, () => {\n onSaveComplete()\n dispatch(savedReport(lastSaved))\n }))\n }\n}\n","export function shouldAddQuery (queryJob, prevQueryJobList, mapConfigUpdated) {\n if (!queryJob?.jobResultId) {\n return false\n } else if (mapConfigUpdated) {\n return true\n }\n if (!prevQueryJobList) {\n return true\n }\n const prevQueryJobState = prevQueryJobList.find(q => q.id === queryJob.id)\n if (!prevQueryJobState || prevQueryJobState.jobResultId !== queryJob.jobResultId) {\n return true\n }\n return false\n}\n","import Menu from 'antd/es/menu'\nimport styles from './DekartMenu.module.css'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { getUrlRef } from './lib/ref'\nimport { MenuOutlined, MessageOutlined, GlobalOutlined, LockOutlined } from '@ant-design/icons'\nimport { Link } from 'react-router-dom/cjs/react-router-dom'\nimport { createReport } from './actions/report'\nimport Tooltip from 'antd/es/tooltip'\n\nconst popupOffset = [-10, 0]\n\nfunction WorkspaceIndicator () {\n const workspaceName = useSelector(state => state.workspace?.name)\n\n const isPlayground = useSelector(state => state.user.isPlayground)\n const workspaceId = useSelector(state => state.user.stream?.workspaceId)\n if (!isPlayground && !workspaceId) {\n return null\n }\n\n if (workspaceId) {\n return (\n \n {workspaceName} Workspace\n \n )\n }\n\n if (isPlayground) {\n return (\n \n Playground Workspace\n \n )\n }\n}\n\nexport default function DekartMenu () {\n const env = useSelector(state => state.env)\n const usage = useSelector(state => state.usage)\n const userDefinedConnection = useSelector(state => state.connection.userDefined)\n const dispatch = useDispatch()\n const { authEnabled } = env\n const isPlayground = useSelector(state => state.user.isPlayground)\n const isViewer = useSelector(state => state.user.isViewer)\n const ref = getUrlRef(env, usage)\n return (\n
\n \n } key='home' active='yes'\n >\n {authEnabled\n ? (\n <>\n \n \n My Reports\n \n \n Shared reports\n \n \n )\n : (\n \n Reports\n \n )}\n {userDefinedConnection ? (Connections) : null}\n dispatch(createReport())}>New Report\n \n } key='community' active='yes'>\n \n Overture Maps GPT\n \n \n Map Examples\n \n \n Ask in Slack\n \n \n Report Issue\n \n \n \n Loving Dekart?
Help community find it.
Give us ⭐️ on GitHub!}>🩵
\n
\n
\n
\n )\n}\n","import { AuthState } from '../../proto/dekart_pb'\nimport { updateLocalStorage } from './localStorage'\n\nexport function setRedirectState (redirectState) {\n return async (dispatch) => {\n dispatch({ type: setRedirectState.name, redirectState })\n if (redirectState.getSensitiveScopesGranted()) {\n // remember that the user has granted sensitive scopes on this device once\n dispatch(updateLocalStorage('sensitiveScopesGrantedOnce', true))\n }\n }\n}\n\nexport function requestSensitiveScopes (returnPath) {\n return async (dispatch) => {\n const url = new URL(window.location.href)\n url.pathname = returnPath\n const state = new AuthState()\n state.setUiUrl(url.href)\n state.setAction(AuthState.Action.ACTION_REQUEST_CODE)\n state.setSensitiveScope(true)\n dispatch(authRedirect(state))\n }\n}\n\nconst { REACT_APP_API_HOST } = process.env // this never changes, passed during build\n\n// authRedirect will redirect the browser to the authentication endpoint\nexport function authRedirect (state) {\n return async (dispatch, getState) => {\n dispatch({ type: authRedirect.name })\n const loginHint = getState().user.loginHint\n if (loginHint) {\n state.setLoginHint(loginHint)\n }\n const req = new URL('/api/v1/authenticate', REACT_APP_API_HOST || window.location.href)\n state.setAuthUrl(req.href)\n const stateBase64 = btoa(String.fromCharCode.apply(null, state.serializeBinary()))\n req.searchParams.set('state', stateBase64)\n window.location.href = req.href\n }\n}\n","import styles from './Header.module.css'\nimport { useDispatch, useSelector } from 'react-redux'\nimport DekartMenu from './DekartMenu'\nimport { getUrlRef } from './lib/ref'\nimport Avatar from 'antd/es/avatar'\nimport Dropdown from 'antd/es/dropdown'\nimport { AuthState } from '../proto/dekart_pb'\nimport classNames from 'classnames'\nimport { useHistory } from 'react-router-dom/cjs/react-router-dom'\nimport { authRedirect } from './actions/redirect'\nimport localStorageReset from './actions/localStorage'\n\nfunction getSignature (email) {\n if (!email) {\n return '?'\n }\n const parts = email.split('@')\n if (parts.length !== 2) {\n return '?'\n }\n const nameAr = parts[0].split('.')\n return nameAr.map(n => n[0]).join('')\n}\n\nfunction User ({ buttonDivider }) {\n const token = useSelector(state => state.token)\n const history = useHistory()\n const userStream = useSelector(state => state.user.stream)\n const { authEnabled } = useSelector(state => state.env)\n const isPlayground = useSelector(state => state.user.isPlayground)\n const dispatch = useDispatch()\n if (!userStream || !authEnabled) {\n return null\n }\n const items = [{\n label: userStream && userStream.email,\n disabled: true\n }]\n if (token) {\n items.push({\n label: 'Switch account',\n onClick: () => {\n const state = new AuthState()\n state.setUiUrl(window.location.href)\n state.setAction(AuthState.Action.ACTION_REQUEST_CODE)\n state.setSwitchAccount(true)\n dispatch(authRedirect(state))\n }\n })\n items.push({\n label: 'Sign out',\n onClick: () => {\n const state = new AuthState()\n state.setUiUrl(window.location.href)\n state.setAction(AuthState.Action.ACTION_REVOKE)\n state.setAccessTokenToRevoke(token.access_token)\n dispatch(authRedirect(state))\n }\n })\n }\n return (\n
\n {\n history.push('/workspace')\n }\n }\n : undefined,\n isPlayground\n ? {\n label: 'Switch to workspace',\n onClick: () => {\n history.push('/workspace')\n }\n }\n : {\n label: 'Public playground',\n onClick: () => {\n history.push('/playground')\n }\n },\n {\n label: 'Switch account',\n onClick: () => {\n dispatch(localStorageReset())\n const state = new AuthState()\n state.setUiUrl(window.location.href)\n state.setAction(AuthState.Action.ACTION_REQUEST_CODE)\n state.setSwitchAccount(true)\n dispatch(authRedirect(state))\n }\n },\n {\n label: 'Sign out',\n onClick: () => {\n dispatch(localStorageReset())\n const state = new AuthState()\n state.setUiUrl(window.location.href)\n state.setAction(AuthState.Action.ACTION_REVOKE)\n state.setAccessTokenToRevoke(token.access_token)\n dispatch(authRedirect(state))\n }\n }\n ]\n }}\n >{getSignature(userStream && userStream.email)}\n \n
\n )\n}\n\nexport function Header ({ buttons, title, queryParams }) {\n const env = useSelector(state => state.env)\n const usage = useSelector(state => state.usage)\n let homePage\n if (env.loaded && usage.loaded) {\n homePage = env.variables.UX_HOMEPAGE + '?ref=' + getUrlRef(env, usage)\n }\n return (\n
\n
\n
\n \n
\n
\n {title ? (
{title}
) : (
)}\n
\n
{buttons || null}
\n \n
\n {queryParams &&
{queryParams}
}\n
\n )\n}\n","import { success } from './message'\nimport copy from 'copy-to-clipboard'\n\nexport function copyUrlToClipboard (url, successMessage) {\n return (dispatch) => {\n dispatch({ type: copyUrlToClipboard.name, url })\n copy(url)\n if (successMessage) {\n dispatch(success(successMessage))\n }\n }\n}\n","import { GetReportAnalyticsRequest } from '../../proto/dekart_pb'\nimport { Dekart } from '../../proto/dekart_pb_service'\nimport { grpcCall } from './grpc'\n\nexport function setAnalyticsModalOpen (modalOpen) {\n return { type: setAnalyticsModalOpen.name, modalOpen }\n}\n\nexport function setAnalyticsData (data) {\n return { type: setAnalyticsData.name, data }\n}\n\nexport function getAnalyticsData () {\n return async (dispatch, getState) => {\n dispatch({ type: getAnalyticsData.name })\n const req = new GetReportAnalyticsRequest()\n const reportId = getState().report.id\n req.setReportId(reportId)\n dispatch(grpcCall(Dekart.GetReportAnalytics, req, (res) => {\n dispatch({ type: setAnalyticsData.name, data: res.analytics })\n }))\n }\n}\n","\n// https://plausible.io/docs/custom-event-goals\nwindow.plausible = window.plausible || function () { (window.plausible.q = window.plausible.q || []).push(arguments) }\n\nexport function track (event, data) {\n if (window.plausible) {\n setTimeout(() => {\n // console.warn('Dev tracking:', event, data)\n window.plausible(event, data)\n }, 0)\n }\n}\n","import Button from 'antd/es/button'\nimport Modal from 'antd/es/modal'\nimport styles from './AnalyticsModal.module.css'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { getAnalyticsData, setAnalyticsModalOpen } from './actions/analytics'\nimport Statistic from 'antd/es/statistic'\nimport { UserOutlined, LockOutlined } from '@ant-design/icons'\nimport { PlanType } from '../proto/dekart_pb'\nimport { get } from './lib/api'\nimport { useEffect, useRef, useState } from 'react'\nimport { setError } from './actions/message'\nimport Skeleton from 'antd/es/skeleton'\n\nexport default function AnalyticsModal () {\n const { modalOpen, data: analytics } = useSelector(state => state.analytics)\n const userStream = useSelector(state => state.user.stream)\n const dispatch = useDispatch()\n const report = useSelector(state => state.report)\n const token = useSelector(state => state.token)\n const buttonRef = useRef(null)\n const [loading, setLoading] = useState(false)\n\n const allowedToExport = userStream?.planType > PlanType.TYPE_PERSONAL\n\n useEffect(() => {\n if (!userStream || !report.id || !modalOpen) {\n return\n }\n dispatch(getAnalyticsData())\n }, [report.id, userStream, dispatch, modalOpen])\n\n useEffect(() => {\n if (!analytics || !userStream || !modalOpen || !allowedToExport) {\n return\n }\n setLoading(true)\n get(`/report/${report.id}/analytics.csv`, token).then(response => response.blob())\n .then(blob => {\n const url = URL.createObjectURL(blob)\n const a = buttonRef.current\n a.href = url\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-')\n a.download = `dekart-report-viewers-${report.id}-${timestamp}.csv`\n setLoading(false)\n }).catch(err => {\n dispatch(setError(err))\n setLoading(false)\n })\n }, [modalOpen, analytics, userStream, dispatch, token, allowedToExport, report.id])\n\n if (!userStream) {\n return null\n }\n\n return (\n dispatch(setAnalyticsModalOpen(false))}\n footer={null}\n width={500}\n >\n {\n analytics\n ? (\n
\n
\n
\n } />\n
\n
\n } />\n
\n
\n } />\n
\n
\n
\n \n {!allowedToExport &&

Requires paid plan to export viewer emails.

}\n
\n
\n )\n : (\n
\n \n
\n )\n }\n \n )\n}\n","import Button from 'antd/es/button'\nimport Modal from 'antd/es/modal'\nimport { BarChartOutlined, GlobalOutlined, LockOutlined, TeamOutlined, LinkOutlined, UserAddOutlined, DownloadOutlined } from '@ant-design/icons'\nimport { useEffect, useState } from 'react'\nimport styles from './ShareButton.module.css'\nimport { useDispatch, useSelector } from 'react-redux'\nimport Switch from 'antd/es/switch'\nimport { copyUrlToClipboard } from './actions/clipboard'\nimport { allowExportDatasets, publishReport, setDiscoverable } from './actions/report'\nimport Select from 'antd/es/select'\nimport { setAnalyticsModalOpen } from './actions/analytics'\nimport { track } from './lib/tracking'\nimport AnalyticsModal from './AnalyticsModal'\n\nfunction CopyLinkButton () {\n const dispatch = useDispatch()\n const playgroundReport = useSelector(state => state.report.isPlayground)\n const isPublic = useSelector(state => state.report.isPublic)\n const discoverable = useSelector(state => state.report.discoverable)\n return (\n }\n disabled={!playgroundReport && !isPublic && !discoverable}\n title='Copy link to report'\n onClick={() => dispatch(copyUrlToClipboard(window.location.toString(), 'Report URL copied to clipboard'))}\n >Copy Link\n \n )\n}\n\nfunction PublishSwitchDescription () {\n const { isPublic, isPlayground, canWrite } = useSelector(state => state.report)\n switch (true) {\n case isPlayground:\n return <>Playground reports are always public\n case isPublic && canWrite:\n return <>This report is public. Anyone with the link can access it in read-only mode.\n case isPublic:\n return <>This report is public. Anyone with the link can access it in read-only mode. Only the author can change this setting.\n default:\n return <>This report is private. Toggling this switch will make the report, uploaded files, and query results accessible to anyone with the link in read-only mode.\n }\n}\n\nfunction PublishSwitch () {\n const { isPublic, id, isPlayground, canWrite } = useSelector(state => state.report)\n const [switchState, setSwitchState] = useState(isPublic || isPlayground)\n const dispatch = useDispatch()\n useEffect(() => {\n setSwitchState(isPublic || isPlayground)\n }, [isPublic, isPlayground])\n if (\n !canWrite || // show for authors and editors\n isPlayground // don't show for playground reports as can't change\n ) {\n return null\n }\n return (\n {\n setSwitchState(checked)\n dispatch(publishReport(id, checked))\n }}\n loading={isPlayground ? false : switchState !== isPublic}\n />\n )\n}\n\nfunction ViewAnalytics () {\n const { isPublic, canWrite, isPlayground } = useSelector(state => state.report)\n const dispatch = useDispatch()\n if (\n !canWrite || // show for authors and editors\n isPlayground // show for public reports\n ) {\n return null\n }\n return (\n
\n {\n dispatch(setAnalyticsModalOpen(true))\n track('OpenAnalyticsModal')\n }} icon={} size='small' disabled={!isPublic}\n >\n View analytics\n \n
\n )\n}\n\nfunction PublicPermissions () {\n const { isPublic, isPlayground, canWrite } = useSelector(state => state.report)\n\n if (\n !canWrite && // show for authors and editors\n !isPublic && !isPlayground // show for public reports\n ) {\n return null\n }\n return (\n
\n
\n
\n
Anyone on the internet with the link can view
\n
\n \n
\n
\n \n
\n
\n )\n}\nfunction AllowExportData () {\n const { allowExport, canWrite, id } = useSelector(state => state.report)\n const [switchState, setSwitchState] = useState(allowExport)\n const dispatch = useDispatch()\n if (\n !canWrite\n ) {\n return null\n }\n return (\n
\n
\n
\n
Allow exporting data
\n
{\n allowExport\n ? 'Users can export data from this report'\n : 'Users cannot export data from this report'\n }\n
\n
\n
\n {\n setSwitchState(checked)\n dispatch(allowExportDatasets(id, checked))\n }}\n loading={switchState !== allowExport}\n />\n
\n
\n )\n}\n\nfunction WorkspacePermissionsDescription () {\n const { isPlayground, isSharable, discoverable, allowEdit } = useSelector(state => state.report)\n switch (true) {\n case isPlayground:\n return <>Workspace permissions are disabled in Playground Mode\n case !isSharable:\n return <>⚠️ This report cannot be shared between workspace users.
💡 Create a connection with a storage bucket and generate a new report from it.\n case allowEdit:\n return <>Everyone with access to this workspace can view and edit this report\n case discoverable:\n return <>Everyone with access to this workspace can discover and refresh this report\n default:\n return <>This report is private. Only the author can see it\n }\n}\n\nconst workspacePermissions = {\n CANNOT_VIEW: 'CANNOT_VIEW',\n VIEW: 'VIEW',\n EDIT: 'EDIT'\n}\n\nconst workspacePermissionsLabels = {\n [workspacePermissions.CANNOT_VIEW]: 'Cannot view',\n [workspacePermissions.VIEW]: 'View',\n [workspacePermissions.EDIT]: 'Edit'\n}\n\nfunction WorkspacePermissionsTitle () {\n const { isPlayground, isSharable } = useSelector(state => state.report)\n if (isPlayground || !isSharable) {\n return
Workspace Sharing
\n }\n return
Anyone in workspace
\n}\n\nfunction permissionValueFromReportProps ({ discoverable, allowEdit }) {\n switch (true) {\n case discoverable && allowEdit:\n return workspacePermissions.EDIT\n case discoverable:\n return workspacePermissions.VIEW\n default:\n return workspacePermissions.CANNOT_VIEW\n }\n}\n\nfunction reportPropsFromPermissionValue (value) {\n switch (value) {\n case workspacePermissions.CANNOT_VIEW:\n return { discoverable: false, allowEdit: false }\n case workspacePermissions.VIEW:\n return { discoverable: true, allowEdit: false }\n case workspacePermissions.EDIT:\n return { discoverable: true, allowEdit: true }\n default:\n throw new Error(`Unknown permission value: ${value}`)\n }\n}\n\nfunction WorkspacePermissionsSelect () {\n const { isPublic, id, isPlayground, isAuthor, allowEdit, discoverable, isSharable } = useSelector(state => state.report)\n const dispatch = useDispatch()\n const value = permissionValueFromReportProps({ discoverable, allowEdit })\n const [selectValue, setSelectValue] = useState(value)\n\n useEffect(() => {\n setSelectValue(value)\n }, [value])\n\n if (isPlayground) {\n return \n } else if (!isSharable) {\n return \n }\n const disabled = !isAuthor\n return (\n {\n setSelectValue(newValue)\n const { discoverable, allowEdit } = reportPropsFromPermissionValue(newValue)\n dispatch(setDiscoverable(id, discoverable, allowEdit))\n }}\n options={[\n { value: workspacePermissions.CANNOT_VIEW, label: isPublic ? 'View' : workspacePermissionsLabels[workspacePermissions.CANNOT_VIEW] },\n { value: workspacePermissions.VIEW, label: isPublic ? 'Refresh' : workspacePermissionsLabels[workspacePermissions.VIEW], className: 'dekart-share-view' },\n { value: workspacePermissions.EDIT, label: workspacePermissionsLabels[workspacePermissions.EDIT] }\n ]}\n />\n )\n}\nfunction WorkspacePermissions () {\n const { canWrite, discoverable } = useSelector(state => state.report)\n if (!canWrite && !discoverable) { // show only for discoverable workspace reports\n return null\n }\n return (\n <>\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n )\n}\n\nfunction ModalContent () {\n const env = useSelector(state => state.env)\n const { loaded: envLoaded } = env\n\n if (!envLoaded) {\n return null\n }\n\n return (\n <>\n \n \n \n \n )\n}\n\nexport default function ShareButton () {\n const [modalOpen, setModalOpen] = useState(false)\n const workspaceId = useSelector(state => state.user.stream?.workspaceId)\n const { isPublic, isPlayground, discoverable } = useSelector(state => state.report)\n const analyticsModalOpen = useSelector(state => state.analytics.modalOpen)\n useEffect(() => {\n if (analyticsModalOpen) {\n setModalOpen(false)\n }\n }, [analyticsModalOpen])\n let icon = \n if (isPublic || isPlayground) {\n icon = \n } else if (discoverable) {\n icon = \n }\n return (\n <>\n setModalOpen(true)}\n />\n setModalOpen(false)}\n onCancel={() => setModalOpen(false)}\n bodyStyle={{ padding: '0px' }}\n footer={\n
\n \n {workspaceId ? : null}\n
\n \n
\n }\n >\n \n \n \n \n )\n}\n","import Button from 'antd/es/button'\nimport Tooltip from 'antd/es/tooltip'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useHistory } from 'react-router-dom/cjs/react-router-dom'\nimport { getDatasourceMeta } from './lib/datasource'\nimport { useState, useEffect } from 'react'\nimport Modal from 'antd/es/modal'\nimport Steps from 'antd/es/steps'\nimport styles from './ForkOnboarding.module.css'\nimport { updateSessionStorage } from './actions/sessionStorage'\nimport { ForkOutlined } from '@ant-design/icons'\nimport { track } from './lib/tracking'\nimport { ConnectionType } from '../proto/dekart_pb'\n\nexport function useRequireOnboarding () {\n const userStream = useSelector(state => state.user.stream)\n const workspaceId = userStream?.workspaceId\n const requireWorkspace = !workspaceId\n const { canWrite } = useSelector(state => state.report)\n const connections = useSelector(state => state.connection.list)\n const connectionListLoaded = useSelector(state => state.connection.listLoaded) || userStream?.planType === 0\n const connectionTypesRequired = useSelector(state => state.dataset.list.reduce((acc, dataset) => {\n const connectionType = dataset.connectionType === ConnectionType.CONNECTION_TYPE_UNSPECIFIED ? ConnectionType.CONNECTION_TYPE_BIGQUERY : dataset.connectionType\n if (!acc.includes(connectionType)) {\n return acc.concat(connectionType)\n }\n return acc\n }\n , []))\n if (!userStream || !connectionListLoaded || canWrite) {\n return null\n }\n const connectionTypes = connections.reduce((acc, connection) => {\n const connectionType = connection.connectionType === ConnectionType.CONNECTION_TYPE_UNSPECIFIED ? ConnectionType.CONNECTION_TYPE_BIGQUERY : connection.connectionType\n if (!acc.includes(connectionType)) {\n return acc.concat(connectionType)\n }\n return acc\n }\n , [])\n const alreadyConnectedTypes = connectionTypesRequired.filter(connectionType => connectionTypes.includes(connectionType))\n // find missing connection types\n const missingConnectionTypes = connectionTypesRequired.filter(connectionType => !connectionTypes.includes(connectionType))\n if (requireWorkspace || missingConnectionTypes.length) {\n return {\n requireWorkspace,\n missingConnectionTypes,\n alreadyConnectedTypes\n }\n }\n return null\n}\n\nexport function ForkOnboarding ({ requireOnboarding: { requireWorkspace, missingConnectionTypes, alreadyConnectedTypes }, edit }) {\n const [visible, setVisible] = useState(false)\n const dispatch = useDispatch()\n const current = requireWorkspace ? 0 : 1 + alreadyConnectedTypes.length\n const reportId = useSelector(state => state.report.id)\n const history = useHistory()\n const button = requireWorkspace\n ? (\n {\n track('CreateWorkspaceFromForkOnboarding')\n history.push('/workspace')\n }}\n >Create Free Workspace\n \n )\n : \n\n useEffect(() => {\n track('ForkOnboarding')\n }, [])\n return (\n <>\n \n } onClick={() => {\n setVisible(true)\n dispatch(updateSessionStorage('redirectWhenSaveConnection', { reportId, edit }))\n track('ForkOnboardingStart')\n }}\n >Fork This Map\n \n \n setVisible(false)}\n footer={
{button}
}\n >

Create your own copy of this map by setting up a workspace, connecting your data, and forking it to use with your own queries.

\n ({\n title: `Connect ${name}`,\n description: '15 seconds'\n }))).concat({\n title: 'Fork Map',\n description: '5 seconds'\n })}\n />\n \n \n )\n}\n","import { useHistory } from 'react-router'\nimport styles from './ReportHeaderButtons.module.css'\nimport Button from 'antd/es/button'\nimport { EyeOutlined, DownloadOutlined, CloudOutlined, EditOutlined, ConsoleSqlOutlined, ForkOutlined, ReloadOutlined, LoadingOutlined, CloudSyncOutlined } from '@ant-design/icons'\nimport { useDispatch, useSelector } from 'react-redux'\nimport ShareButton from './ShareButton'\nimport { forkReport, saveMap } from './actions/report'\nimport { runAllQueries } from './actions/query'\nimport { toggleModal } from '@dekart-xyz/kepler.gl/dist/actions/ui-state-actions'\nimport { EXPORT_DATA_ID, EXPORT_IMAGE_ID, EXPORT_MAP_ID } from '@dekart-xyz/kepler.gl/dist/constants'\nimport Dropdown from 'antd/es/dropdown'\nimport { useEffect } from 'react'\nimport { ForkOnboarding, useRequireOnboarding } from './ForkOnboarding'\n\nfunction ForkButton ({ primary }) {\n const dispatch = useDispatch()\n const { id: reportId } = useSelector(state => state.report)\n const userStream = useSelector(state => state.user.stream)\n const userIsPlayground = useSelector(state => state.user.isPlayground)\n const workspaceId = userStream?.workspaceId\n const isViewer = useSelector(state => state.user.isViewer)\n\n const disabled = isViewer\n\n const history = useHistory()\n\n let onClick = () => {\n dispatch(forkReport(reportId))\n }\n if (!workspaceId && !userIsPlayground) {\n // user has no workspace, redirect to workspace page\n onClick = () => {\n history.push('/workspace')\n }\n }\n\n if (primary && !disabled) {\n return (\n }\n disabled={disabled}\n onClick={onClick}\n >Fork this Map\n \n )\n }\n return (\n }\n disabled={disabled}\n onClick={onClick}\n id='dekart-fork-button'\n title={disabled ? 'Forking is disabled for viewers' : 'Fork this Map'}\n />\n )\n}\n\nfunction RefreshButton () {\n const { discoverable, canWrite } = useSelector(state => state.report)\n const isViewer = useSelector(state => state.user.isViewer)\n const numRunningQueries = useSelector(state => state.numRunningQueries)\n const dispatch = useDispatch()\n if ((!canWrite && !discoverable) || isViewer) {\n return null\n }\n return (\n : }\n title='Re-run all queries'\n onClick={() => {\n if (numRunningQueries) {\n return\n }\n dispatch(runAllQueries())\n }}\n />\n )\n}\n\nfunction useReportChanged () {\n const { lastChanged, lastSaved } = useSelector(state => state.reportStatus)\n return lastChanged > lastSaved\n}\n\nfunction useAutoSave () {\n const { canWrite } = useSelector(state => state.report)\n const dispatch = useDispatch()\n const { saving, online } = useSelector(state => state.reportStatus)\n const changed = useReportChanged()\n\n useEffect(() => {\n const handler = setTimeout(() => {\n if (changed && canWrite && !saving && online) {\n dispatch(saveMap())\n }\n }, 1000)\n\n return () => {\n clearTimeout(handler)\n }\n }, [canWrite, saving, changed, online, dispatch])\n}\n\nfunction goToPresent (history, id) {\n const searchParams = new URLSearchParams(window.location.search)\n history.replace(`/reports/${id}?${searchParams.toString()}`)\n}\n\nfunction EditModeButtons () {\n const dispatch = useDispatch()\n const history = useHistory()\n const { id, canWrite } = useSelector(state => state.report)\n const { saving } = useSelector(state => state.reportStatus)\n const changed = useReportChanged()\n\n useAutoSave()\n\n const requireOnboarding = useRequireOnboarding()\n\n if (requireOnboarding) {\n return (\n
\n \n
\n )\n }\n\n return (\n
\n \n \n \n {canWrite\n ? (\n <>\n \n : }\n disabled={saving}\n onClick={() => dispatch(saveMap())}\n />\n }\n // TODO shall we disable?\n // disabled={changed && canWrite && !isViewer}\n title='View Mode'\n onClick={() => goToPresent(history, id)}\n >View\n \n \n )\n : }\n
\n )\n}\n\nfunction ExportDropdown () {\n const dispatch = useDispatch()\n const { allowExport } = useSelector(state => state.report)\n\n const items = [\n {\n label: 'Export:',\n disabled: true\n },\n {\n type: 'divider'\n },\n {\n label: 'Map',\n onClick: () => {\n dispatch(toggleModal(EXPORT_MAP_ID))\n }\n },\n {\n label: 'Data',\n onClick: () => {\n dispatch(toggleModal(EXPORT_DATA_ID))\n }\n },\n {\n label: 'Image',\n onClick: () => {\n dispatch(toggleModal(EXPORT_IMAGE_ID))\n }\n }\n ]\n return (\n \n }\n />\n \n )\n}\n\n// goToSource redirects to the source view while preserving the current query params\nfunction goToSource (history, id) {\n const searchParams = new URLSearchParams(window.location.search)\n history.replace(`/reports/${id}/source?${searchParams.toString()}`)\n}\n\nfunction ViewModeButtons () {\n const history = useHistory()\n const { id, canWrite, readme } = useSelector(state => state.report)\n\n const requireOnboarding = useRequireOnboarding()\n\n if (requireOnboarding) {\n return (\n
\n \n
\n )\n }\n\n if (canWrite) {\n return (\n
\n \n \n \n \n }\n onClick={() => goToSource(history, id)}\n >Edit\n \n
\n )\n }\n\n return (\n
\n \n {!readme && ( // hide the button if there is readme, because the source view is then by default\n }\n onClick={() => goToSource(history, id)}\n title='View SQL source'\n />)}\n \n \n \n
\n )\n}\n\nexport default function ReportHeaderButtons ({ edit }) {\n if (edit) {\n return \n }\n return \n}\n","import prettyBites from 'pretty-bytes'\nimport { useDispatch, useSelector } from 'react-redux'\nimport message from 'antd/es/message'\nimport { useEffect, useState } from 'react'\nimport Button from 'antd/es/button'\nimport styles from './Downloading.module.css'\nimport Modal from 'antd/es/modal'\nimport { addDatasetToMap, cancelDownloading, processDownloadError } from './actions/dataset'\n\nfunction CancelDownloadingButton () {\n const dispatch = useDispatch()\n return \n}\n\nfunction DownloadingMessage () {\n const downloading = useSelector(state => state.dataset.downloading)\n const files = useSelector(state => state.files)\n const hash = useSelector(state => state.queryParams.hash)\n const queryJobs = useSelector(state => state.queryJobs)\n const size = downloading.reduce((size, { dataset: { queryId, fileId } }) => {\n if (queryId) {\n const job = queryJobs.find(j => j.queryId === queryId && j.queryParamsHash === hash)\n return size + job.resultSize\n }\n if (fileId) {\n const file = files.find(f => f.id === fileId)\n return size + file.size\n }\n return size\n }, 0)\n const loaded = downloading.reduce((l, { loaded }) => l + loaded, 0)\n return (\n Downloading Map Data {(() => {\n if (size > 0) {\n return `(${prettyBites(loaded)} of ${prettyBites(size)})`\n } else if (loaded > 0) {\n return `(${prettyBites(loaded)})`\n }\n return ''\n })()} \n \n )\n}\n\nlet closeMessage = null\nexport default function Downloading () {\n const [maxDatasetSize, setMaxDatasetSize] = useState(150 * 1024 * 1024)\n const downloading = useSelector(state => state.dataset.downloading)\n const downloaded = downloading.filter(d => d.res && !d.addingToMap)\n const dispatch = useDispatch()\n const pendingConfirmationList = downloading.filter(d => d.res && d.loaded > maxDatasetSize && !d.addingToMap)\n const [pendingConfirmation, setPendingConfirmation] = useState(null)\n const [msg, messageHolder] = message.useMessage()\n const [mdl, modalHolder] = Modal.useModal()\n\n // show downloading message when no pending confirmation modals\n const showDownloading = downloading.length > 0 && !pendingConfirmation\n\n // set pending confirmation when not set\n // this step is needed to prevent multiple confirmation modals\n useEffect(() => {\n if (!pendingConfirmation) {\n const pending = pendingConfirmationList[0]\n if (pending) {\n setPendingConfirmation(pending)\n }\n }\n }, [pendingConfirmation, setPendingConfirmation, pendingConfirmationList])\n\n // show downloading message\n useEffect(() => {\n if (showDownloading) {\n closeMessage = msg.loading({\n content: ,\n duration: 0\n })\n } else if (closeMessage) {\n closeMessage()\n closeMessage = null\n }\n }, [showDownloading, msg])\n\n // auto add dataset to map when no confirmation needed\n useEffect(() => {\n if (downloaded.length > 0 && pendingConfirmationList.length === 0) {\n const { dataset, prevDatasetsList, res, extension } = downloaded[0]\n dispatch(addDatasetToMap(dataset, prevDatasetsList, res, extension))\n }\n }, [downloaded, pendingConfirmationList, dispatch])\n\n // confirm loading large dataset\n useEffect(() => {\n if (pendingConfirmation) {\n const { dataset, res, extension, loaded, prevDatasetsList, label } = pendingConfirmation\n mdl.confirm({\n title: `${label} result is larger than ${prettyBites(maxDatasetSize)}`,\n content: `Dataset size is ${prettyBites(loaded)}. Loading this dataset may slow down your browser. Continue?`,\n onOk: () => {\n dispatch(addDatasetToMap(dataset, prevDatasetsList, res, extension))\n setMaxDatasetSize(Math.round(loaded * 1.2)) // do not ask for same size again\n setPendingConfirmation(null)\n },\n onCancel: () => {\n dispatch(processDownloadError(new Error(`Downloading ${label} cancelled by user`), dataset, label))\n setPendingConfirmation(null)\n }\n })\n }\n }, [pendingConfirmation, mdl, dispatch, setMaxDatasetSize, maxDatasetSize])\n\n return <>{messageHolder}{modalHolder}\n}\n","import { useSelector } from 'react-redux'\n\nexport default function DataDocumentationLink ({ className }) {\n const UX_DATA_DOCUMENTATION = useSelector(state => state.env.variables.UX_DATA_DOCUMENTATION)\n if (UX_DATA_DOCUMENTATION) {\n return (\n
\n \n Which data can I query?\n \n
\n )\n }\n return null\n}\n","import { useEffect, useState } from 'react'\nimport AceEditor from 'react-ace'\nimport { AutoSizer } from 'react-virtualized'\nimport Button from 'antd/es/button'\nimport styles from './Query.module.css'\nimport { useDispatch, useSelector } from 'react-redux'\nimport 'ace-builds/src-noconflict/mode-sql'\nimport 'ace-builds/src-noconflict/theme-sqlserver'\nimport 'ace-builds/src-noconflict/ext-language_tools'\nimport 'ace-builds/src-noconflict/keybinding-vscode'\nimport 'ace-builds/webpack-resolver'\nimport { ConnectionType, QueryJob } from '../proto/dekart_pb'\nimport { SendOutlined, CheckCircleTwoTone, ExclamationCircleTwoTone, ClockCircleTwoTone } from '@ant-design/icons'\nimport { Duration } from 'luxon'\nimport DataDocumentationLink from './DataDocumentationLink'\nimport { cancelJob, queryChanged, runQuery } from './actions/query'\nimport Tooltip from 'antd/es/tooltip'\nimport { switchPlayground } from './actions/user'\nimport { getDatasourceMeta } from './lib/datasource'\n\nfunction CancelButton ({ queryJob }) {\n const dispatch = useDispatch()\n return (\n dispatch(cancelJob(queryJob.id))}\n >Cancel\n \n )\n}\n\nfunction JobTimer ({ queryJob }) {\n const online = useSelector(state => state.reportStatus.online)\n const lastUpdated = useSelector(state => state.reportStatus.lastUpdated)\n const [durationMs, setDuration] = useState(Date.now())\n useEffect(() => {\n let cancel = false\n const iterator = () => {\n if (cancel || !online) {\n return\n }\n setDuration(queryJob.jobDuration + Date.now() - lastUpdated)\n setTimeout(iterator, 1000)\n }\n iterator()\n return () => { cancel = true }\n }, [queryJob.jobDuration, online, lastUpdated])\n if (!online) {\n return null\n }\n const duration = Duration.fromMillis(durationMs)\n return ({duration.toFormat('mm:ss')})\n}\n\nfunction StatusActions ({ queryJob }) {\n return (\n \n \n \n \n )\n}\n\nfunction QueryEditor ({ queryId, queryText, onChange, canWrite }) {\n const dataset = useSelector(state => state.dataset.list.find(q => q.queryId === queryId))\n const connection = useSelector(state => state.connection.list.find(c => c.id === dataset?.connectionId))\n const connectionType = useConnectionType(connection?.id)\n const completer = getDatasourceMeta(connectionType)?.completer\n useEffect(() => {\n if (completer) {\n const langTools = window.ace.require('ace/ext/language_tools')\n langTools.addCompleter(completer)\n }\n }, [completer])\n\n return (\n
\n \n {({ height, width }) => (\n \n )}\n \n {queryText && queryText.trim().length ? null : }\n
\n )\n}\n\nfunction PlaygroundWarning ({ jobError }) {\n const isPlayground = useSelector(state => state.user.isPlayground)\n const dispatch = useDispatch()\n let showPlaygroundWarning = false\n if (jobError && jobError.includes('Error 40') && isPlayground) {\n showPlaygroundWarning = true\n }\n if (!showPlaygroundWarning) {\n return null\n }\n return (\n
\n

You are in Playground Mode. To access private datasets create free workspace and configure connection

\n \n
\n )\n}\n\nfunction QueryStatus ({ children, query }) {\n const env = useSelector(state => state.env)\n const hash = useSelector(state => state.queryParams.hash)\n const queryJob = useSelector(state => state.queryJobs.find(job => job.queryId === query.id && job.queryParamsHash === hash))\n let message, errorMessage, action, style, tooltip, errorInfoHtml\n let icon = null\n if (queryJob?.jobError) {\n message = 'Error'\n style = styles.error\n errorMessage = queryJob.jobError\n if (env.variables.UX_ACCESS_ERROR_INFO_HTML && errorMessage.includes('Error 403')) {\n errorInfoHtml = ''\n } else if (env.variables.UX_NOT_FOUND_ERROR_INFO_HTML && errorMessage.includes('Error 404')) {\n errorInfoHtml = env.variables.UX_NOT_FOUND_ERROR_INFO_HTML\n }\n icon = \n }\n switch (queryJob?.jobStatus) {\n case QueryJob.JobStatus.JOB_STATUS_PENDING:\n icon = \n message = 'Pending'\n style = styles.info\n action = \n break\n case QueryJob.JobStatus.JOB_STATUS_RUNNING:\n icon = \n message = 'Running'\n style = styles.info\n action = \n break\n case QueryJob.JobStatus.JOB_STATUS_DONE_LEGACY:\n if (!queryJob.jobResultId) {\n message = 'Reading Result'\n style = styles.info\n icon = \n action = \n break\n }\n icon = \n message = Ready\n style = styles.success\n break\n case QueryJob.JobStatus.JOB_STATUS_READING_RESULTS:\n message = 'Reading Result'\n style = styles.info\n icon = \n action = \n break\n case QueryJob.JobStatus.JOB_STATUS_DONE:\n icon = \n message = Ready\n style = styles.success\n break\n default:\n }\n return (\n
\n
\n
\n \n {icon}\n
{message}
\n
\n
\n {action ?
{action}
: null}\n
\n {errorMessage ?
{errorMessage}
: null}\n {errorInfoHtml ?
: null}\n \n
\n {children ?
{children}
: null}\n\n
\n )\n}\n\n// custom react hook which gets connectionType\nfunction useConnectionType (connectionId) {\n const isPlayground = useSelector(state => state.user.isPlayground)\n const connectionType = useSelector(state => state.connection.list.find(c => c.id === connectionId)?.connectionType)\n return isPlayground ? ConnectionType.CONNECTION_TYPE_BIGQUERY : connectionType\n}\n\nfunction SampleQuery ({ queryId }) {\n const { UX_SAMPLE_QUERY_SQL, UX_DATA_DOCUMENTATION } = useSelector(state => state.env.variables)\n const queryStatus = useSelector(state => state.queryStatus[queryId])\n const dataset = useSelector(state => state.dataset.list.find(q => q.queryId === queryId))\n const connection = useSelector(state => state.connection.list.find(c => c.id === dataset?.connectionId))\n const connectionType = useConnectionType(connection?.id)\n\n const datasetCount = useSelector(state => state.connection.list.reduce((dc, c) => {\n return dc + c.datasetCount\n }, 0))\n const downloadingSource = queryStatus?.downloadingSource\n const dispatch = useDispatch()\n if (UX_DATA_DOCUMENTATION) {\n return \n }\n if (\n downloadingSource) {\n // do not show sample query while downloading source\n return null\n }\n let showSampleQuery = UX_SAMPLE_QUERY_SQL\n if (!showSampleQuery) {\n showSampleQuery = getDatasourceMeta(connectionType)?.sampleQuery\n }\n if (showSampleQuery && datasetCount < 2) {\n return (\n
\n Don't know where to start?
Try running public dataset query.}>\n {\n dispatch(queryChanged(queryId, showSampleQuery))\n }}\n >💡 Start with a sample query\n \n
\n
\n )\n }\n const examplesUrl = getDatasourceMeta(connectionType)?.examplesUrl\n if (examplesUrl) {\n return (\n
\n Don't know where to start?
Try running public dataset query.}>\n 💡 Start with public dataset query\n \n
\n
\n )\n }\n return null\n}\n\nexport default function Query ({ query }) {\n const { canRun, queryText } = useSelector(state => state.queryStatus[query.id])\n const { canWrite } = useSelector(state => state.report)\n const edit = useSelector(state => state.reportStatus.edit)\n const dispatch = useDispatch()\n return (\n
\n dispatch(queryChanged(query.id, value))}\n canWrite={canWrite && edit}\n />\n \n {\n canWrite && edit\n ? (\n }\n onClick={() => dispatch(runQuery(query.id, queryText))}\n >Execute\n \n )\n : null\n }\n \n
\n )\n}\n","import { CreateFileRequest } from '../../proto/dekart_pb'\nimport { Dekart } from '../../proto/dekart_pb_service'\nimport { grpcCall } from './grpc'\n\nexport function uploadFileProgress (fileId, loaded, total) {\n return {\n type: uploadFileProgress.name,\n fileId,\n loaded,\n total\n }\n}\n\nexport function uploadFileStateChange (fileId, readyState, status) {\n return {\n type: uploadFileStateChange.name,\n fileId,\n readyState,\n status\n }\n}\n\nexport function uploadFile (fileId, file) {\n return async (dispatch, getState) => {\n dispatch({ type: uploadFile.name, fileId, file })\n const formData = new window.FormData()\n formData.append('file', file)\n\n const { REACT_APP_API_HOST } = process.env\n const host = REACT_APP_API_HOST || ''\n const url = `${host}/api/v1/file/${fileId}.csv`\n\n const { token } = getState()\n\n const request = new window.XMLHttpRequest()\n\n request.upload.addEventListener('progress', (event) => {\n dispatch(uploadFileProgress(fileId, event.loaded, event.total))\n })\n request.addEventListener('readystatechange', (event) => {\n dispatch(uploadFileStateChange(fileId, request.readyState, request.status))\n })\n\n request.open('POST', url)\n\n if (token) {\n request.setRequestHeader('Authorization', `Bearer ${token.access_token}`)\n }\n\n request.timeout = 3600 * 1000 // 1 hour\n request.multipart = true\n request.send(formData)\n }\n}\n\nexport function createFile (datasetId) {\n return (dispatch) => {\n dispatch({ type: createFile.name })\n const request = new CreateFileRequest()\n request.setDatasetId(datasetId)\n dispatch(grpcCall(Dekart.CreateFile, request))\n }\n}\n","import Upload from 'antd/lib/upload/Upload'\nimport styles from './File.module.css'\nimport { InboxOutlined, UploadOutlined, CheckCircleTwoTone, ExclamationCircleTwoTone, ClockCircleTwoTone } from '@ant-design/icons'\nimport Button from 'antd/es/button'\nimport { useState } from 'react'\nimport prettyBites from 'pretty-bytes'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { uploadFile } from './actions/file'\n\nfunction getFileExtensionName (type) {\n switch (type) {\n case 'application/geo+json':\n return 'geojson'\n case 'text/csv':\n return 'csv'\n default:\n return '???'\n }\n}\n\nfunction FileIcon ({ fileInfo: { type } }) {\n return (\n
\n
\n
{getFileExtensionName(type)}
\n
\n )\n}\n\nfunction getStorageName (env) {\n let storageName = ''\n switch (env.variables.STORAGE) {\n case 'S3':\n storageName = 'S3'\n break\n case 'GCS':\n case 'USER': // only GCS is supported for user storage\n storageName = 'Cloud Storage'\n break\n default:\n storageName = 'Unknown'\n }\n return storageName\n}\n\nfunction FileStatus ({ file, fileToUpload, fileUploadStatus, children }) {\n const env = useSelector(state => state.env)\n if (!env.loaded) {\n return null\n }\n let message = ''\n let icon = null\n let style = styles.info\n const errorMessage = ''\n if (file.fileStatus > 1) {\n // file uploaded by user\n if (file.fileStatus === 2) {\n // file in temporary storage\n if (file.uploadError) {\n icon = \n message = Error uploading file: {file.uploadError}\n style = styles.error\n } else {\n message = `Moving file to ${getStorageName(env)}...`\n icon = \n }\n } else if (file.fileStatus === 3) {\n // file stored in permanent storage\n icon = \n message = Ready ({prettyBites(file.size)})\n style = styles.success\n }\n } else if (fileToUpload) {\n // file to upload selected by user\n if (fileUploadStatus) {\n // file upload in progress\n if (fileUploadStatus.readyState === 4) {\n // file upload finished\n if (fileUploadStatus.status === 200) {\n message = `Moving file to ${getStorageName(env)}...`\n icon = \n } else {\n icon = \n message = Error uploading file (status={fileUploadStatus.status})\n style = styles.error\n }\n } else {\n icon = \n message = `Uploading ${prettyBites(fileUploadStatus.loaded)} of ${prettyBites(fileUploadStatus.total)}`\n }\n } else {\n message = `${prettyBites(fileToUpload.size)} to be uploaded`\n }\n }\n return (\n
\n
\n
\n {icon}\n
{message}
\n
\n {errorMessage ?
{errorMessage}
: null}\n
\n {children ?
{children}
: null}\n
\n )\n}\n\nexport default function File ({ file }) {\n const [fileToUpload, setFileToUpload] = useState(null)\n const fileUploadStatus = useSelector(state => state.fileUploadStatus[file.id])\n const dispatch = useDispatch()\n const uploadButtonDisabled = !fileToUpload || fileUploadStatus\n let fileInfo = null\n if (file.fileStatus > 1) {\n fileInfo = {\n name: file.name,\n type: file.mimeType\n }\n } else if (fileToUpload) {\n fileInfo = {\n name: fileToUpload.name,\n type: fileToUpload.type\n }\n }\n return (\n
\n
\n {fileInfo\n ? (\n
\n \n
{fileInfo.name}
\n
\n )\n : (\n
\n {\n setFileToUpload(file)\n return false\n }}\n >\n
\n
Click or drag file to this area to upload
\n
Supported format: .csv .geojson
\n \n
\n )}\n
\n \n } disabled={uploadButtonDisabled} onClick={() => dispatch(uploadFile(file.id, fileToUpload))}\n >Upload\n \n \n
\n )\n}\n","import { useSelector } from 'react-redux'\nimport styles from './Datasource.module.css'\nimport { getDatasourceMeta } from './lib/datasource'\nimport classNames from 'classnames'\n\nexport function Datasource ({ connection }) {\n const env = useSelector(state => state.env)\n if (!env.loaded) {\n return null\n }\n const { DATASOURCE } = env.variables\n\n let { style } = getDatasourceMeta(DATASOURCE)\n\n if (connection) {\n const { connectionType } = connection\n style = getDatasourceMeta(connectionType).style\n }\n\n return (\n
\n
\n
\n )\n}\n\nexport function DatasourceIcon ({ type }) {\n return (\n \n )\n}\n","import Button from 'antd/es/button'\nimport styles from './Dataset.module.css'\nimport Select from 'antd/es/select'\nimport { useDispatch, useSelector } from 'react-redux'\nimport Query from './Query'\nimport File from './File'\nimport { createQuery } from './actions/query'\nimport { createFile } from './actions/file'\nimport Dropdown from 'antd/es/dropdown'\nimport { ConsoleSqlOutlined, UploadOutlined, MoreOutlined } from '@ant-design/icons'\nimport { Datasource } from './Datasource'\nimport { updateDatasetConnection } from './actions/dataset'\nimport { useHistory } from 'react-router-dom/cjs/react-router-dom'\n\nfunction DatasetTypeSelector ({ dataset }) {\n const dispatch = useDispatch()\n\n const userDefinedConnection = useSelector(state => state.connection.userDefined)\n const connectionList = useSelector(state => state.connection.list)\n\n const env = useSelector(state => state.env)\n const { ALLOW_FILE_UPLOAD } = env.variables\n let allowFileUpload = ALLOW_FILE_UPLOAD\n let disabledFileUploadNote = 'File upload is disabled in Dekart configuration'\n if (allowFileUpload && userDefinedConnection) {\n // check if selected connection supports file upload\n const connection = connectionList.find(c => c.id === dataset.connectionId)\n allowFileUpload = connection?.canStoreFiles\n if (!allowFileUpload) {\n disabledFileUploadNote = 'Selected connection does not support file upload'\n }\n }\n\n return (\n
\n ,\n key: 'sql'\n },\n {\n label: 'File upload',\n icon: ,\n title: !allowFileUpload ? disabledFileUploadNote : null,\n disabled: !allowFileUpload,\n key: 'file'\n }\n ],\n onClick: ({ key }) => {\n if (key === 'sql') {\n dispatch(createQuery(dataset.id))\n } else if (key === 'file') {\n dispatch(createFile(dataset.id))\n }\n }\n }}\n >\n \n \n
\n )\n}\n\nfunction DatasetSelector ({ dataset }) {\n const dispatch = useDispatch()\n const env = useSelector(state => state.env)\n const userDefinedConnection = useSelector(state => state.connection.userDefined)\n const isPlayground = useSelector(state => state.user.isPlayground)\n const connectionList = useSelector(state => state.connection.list)\n const selectedConnection = connectionList.find(c => c.id === dataset.connectionId)\n const history = useHistory()\n if (!env.loaded || isPlayground) {\n // do not render until environment is loaded\n // do not render for playground users\n return null\n }\n const { ALLOW_FILE_UPLOAD } = env.variables\n if (!ALLOW_FILE_UPLOAD && !userDefinedConnection) {\n return null\n }\n return (\n
\n
\n {userDefinedConnection\n ? (\n <>\n \n
\n {\n dispatch(updateDatasetConnection(dataset.id, value))\n }}\n options={[\n ...(connectionList.map(connection => ({\n value: connection.id,\n label: connection.connectionName\n })))\n ]}\n />}\n onClick={() => {\n history.push('/connections')\n }}\n />\n
\n \n )\n : }\n
\n {\n userDefinedConnection\n ? (\n
\n \n
\n\n )\n : null\n }\n
\n )\n}\n\nexport default function Dataset ({ dataset }) {\n let query = null\n let file = null\n const queries = useSelector(state => state.queries)\n const files = useSelector(state => state.files)\n if (dataset.queryId) {\n query = queries.find(q => q.id === dataset.queryId)\n } else if (dataset.fileId) {\n file = files.find(f => f.id === dataset.fileId)\n }\n return (\n <>\n {query ? : file ? : }\n \n )\n}\n","import Modal from 'antd/es/modal'\nimport Button from 'antd/es/button'\nimport styles from './DatasetSettingsModal.module.css'\nimport Input from 'antd/es/input'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useState, useEffect } from 'react'\nimport getDatasetName from './lib/getDatasetName'\nimport { closeDatasetSettingsModal, removeDataset, updateDatasetName } from './actions/dataset'\n\nfunction ModalFooter ({ saving, setSaving, name, datasetId }) {\n const dispatch = useDispatch()\n const numDatasets = useSelector(state => state.dataset.list.length)\n const isViewer = useSelector(state => state.user.isViewer)\n\n return (\n
\n {\n setSaving(true)\n dispatch(updateDatasetName(datasetId, name))\n }}\n >\n Save\n \n {\n dispatch(closeDatasetSettingsModal())\n Modal.confirm({\n title: 'Remove dataset from report?',\n okText: 'Yes',\n okType: 'danger',\n cancelText: 'No',\n onOk: () => dispatch(removeDataset(datasetId))\n })\n }}\n disabled={numDatasets < 2 || saving}\n >\n Delete Dataset\n \n
\n\n )\n}\n\nexport default function DatasetSettingsModal () {\n const datasetId = useSelector(state => state.dataset.settings.datasetId)\n const dataset = useSelector(state => state.dataset.list.find(d => d.id === datasetId))\n const queries = useSelector(state => state.queries)\n const files = useSelector(state => state.files)\n const visible = useSelector(state => state.dataset.settings.visible)\n\n const dispatch = useDispatch()\n\n const [name, setName] = useState(dataset?.name)\n const [saving, setSaving] = useState(false)\n\n useEffect(() => {\n setName(dataset?.name)\n }, [dataset?.name])\n\n useEffect(() => {\n if (saving && name === dataset?.name) {\n setSaving(false)\n dispatch(closeDatasetSettingsModal())\n }\n }, [saving, dataset?.name, name, dispatch])\n\n if (!visible) {\n return null\n }\n return (\n dispatch(closeDatasetSettingsModal())}\n footer={\n \n }\n >\n
\n setName(e.target.value)}\n disabled={saving}\n id='dekart-dataset-name-input'\n />\n
\n \n\n )\n}\n","import Form from 'antd/es/form'\nimport styles from './QueryParams.module.css'\nimport Input from 'antd/es/input'\nimport { MoreOutlined, DoubleRightOutlined } from '@ant-design/icons'\nimport Button from 'antd/es/button'\nimport { useDispatch, useSelector } from 'react-redux'\nimport Modal from 'antd/es/modal'\nimport { useEffect, useState } from 'react'\nimport { applyQueryParams, closeQueryParamSettings, openQueryParamSettings, queryParamChanged, setQueryParamValue, updateQueryParamsFromURL } from './actions/query'\nimport { useLocation } from 'react-router-dom'\n\nfunction Label ({ children }) {\n return (\n
\n {children}\n
\n )\n}\n\nfunction useCanEditReport () {\n const { edit } = useSelector(state => state.reportStatus)\n const { canWrite } = useSelector(state => state.report)\n return canWrite && edit\n}\n\nfunction SettingsButton ({ name }) {\n const editable = useCanEditReport()\n const dispatch = useDispatch()\n if (!editable) {\n return \n
\n )\n}\n\nexport default function QueryParams () {\n const dispatch = useDispatch()\n const [form] = Form.useForm()\n const location = useLocation()\n\n const [tempDisabled, setTempDisabled] = useState(false)\n\n const queryParamsList = useSelector(state => state.queryParams.list)\n const name = useSelector(state => state.queryParams.modal)\n const modalQueryParam = useSelector(state => state.queryParams.list.find(p => p.name === name))\n const { lastChanged, lastSaved } = useSelector(state => state.reportStatus)\n const numRunningQueries = useSelector(state => state.numRunningQueries)\n const { discoverable, canWrite } = useSelector(state => state.report)\n const isViewer = useSelector(state => state.user.isViewer)\n\n const reportChanged = lastChanged > lastSaved\n\n const applyButtonDisabled = (\n reportChanged || // report has unsaved changes\n numRunningQueries > 0 || // some queries are running\n ((!canWrite && !discoverable) || isViewer) || // user can't write or report is not discoverable\n tempDisabled // apply button was clicked\n )\n\n useEffect(() => {\n // reset tempDisabled when queries start running\n setTempDisabled(false)\n }, [numRunningQueries])\n\n useEffect(() => {\n // Handle URL parameter changes here\n dispatch(updateQueryParamsFromURL(location.search))\n }, [location, dispatch])\n\n // Set values in the modal form when it is opened\n useEffect(() => {\n if (!modalQueryParam) {\n return\n }\n const values = {\n name: modalQueryParam.name,\n label: modalQueryParam.label || modalQueryParam.name,\n defaultValue: modalQueryParam.defaultValue\n }\n form.setFieldsValue(values)\n }, [modalQueryParam, form])\n\n if (!queryParamsList.length) {\n return null\n }\n\n return (\n
\n
\n {\n e.preventDefault()\n setTempDisabled(true)\n dispatch(applyQueryParams())\n }}\n >\n {queryParamsList.map((p, index) => {\n return (\n \n )\n })}\n \n }\n htmlType='submit'\n disabled={applyButtonDisabled}\n />\n \n \n dispatch(closeQueryParamSettings(null))}\n footer={ {\n if (modalQueryParam) {\n const values = form.getFieldsValue()\n modalQueryParam.label = values.label\n modalQueryParam.defaultValue = values.defaultValue\n dispatch(queryParamChanged())\n }\n }}\n />}\n >\n \n
\n
\n )\n}\n","import { AddReadmeRequest, RemoveReadmeRequest } from '../../proto/dekart_pb'\nimport { Dekart } from '../../proto/dekart_pb_service'\nimport { track } from '../lib/tracking'\nimport { grpcCall } from './grpc'\n\nexport function removeReadme () {\n return (dispatch, getState) => {\n dispatch({ type: removeReadme.name })\n const request = new RemoveReadmeRequest()\n const reportId = getState().report.id\n request.setReportId(reportId)\n dispatch(grpcCall(Dekart.RemoveReadme, request))\n }\n}\n\nexport function addReadme () {\n return (dispatch, getState) => {\n track('AddReadme')\n const markdown = `# My Readme\n\nUse **Markdown** to document your map:\n- Summarize data sources\n- Explain query logic\n- Provide usage instructions or insights for collaborators\n\n*Click the Preview button to see the rendered version.*\n`\n dispatch({ type: addReadme.name, markdown })\n const reportId = getState().report.id\n const request = new AddReadmeRequest()\n request.setReportId(reportId)\n request.setMarkdown(markdown)\n dispatch(grpcCall(Dekart.AddReadme, request))\n }\n}\n\nexport function setPreview (show) {\n return (dispatch) => {\n dispatch({ type: setPreview.name, show })\n }\n}\n\nexport function setReadmeValue (markdown) {\n return (dispatch) => {\n dispatch({ type: setReadmeValue.name, markdown })\n }\n}\n\nexport function showReadmeTab () {\n return (dispatch) => {\n dispatch({ type: showReadmeTab.name })\n }\n}\n","import AceEditor from 'react-ace'\nimport { AutoSizer } from 'react-virtualized'\nimport styles from './Readme.module.css'\nimport Button from 'antd/es/button'\nimport Markdown from 'react-markdown'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { setPreview, setReadmeValue } from './actions/readme'\nexport default function Readme ({ readme }) {\n const { canWrite } = useSelector(state => state.report)\n const { edit } = useSelector(state => state.reportStatus)\n const showPreview = useSelector(state => state.readme.showPreview)\n const markdown = useSelector(state => state.readme.markdown)\n const dispatch = useDispatch()\n\n return (\n
\n
\n dispatch(setPreview(!showPreview))}\n >{showPreview ? (canWrite && edit ? 'Edit' : 'Markdown') : (canWrite && edit ? 'Preview' : 'View')}\n \n
\n \n {({ height, width }) => (\n showPreview\n ? (\n {markdown}\n
\n )\n : dispatch(setReadmeValue(v))}\n value={markdown}\n readOnly={!canWrite}\n editorProps={{ $blockScrolling: true }}\n setOptions={{\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n enableSnippets: true,\n highlightActiveLine: canWrite,\n highlightGutterLine: canWrite\n }}\n />\n )}\n \n
\n )\n}\n","import { useParams } from 'react-router-dom'\nimport Input from 'antd/es/input'\nimport { useEffect, useState, Component } from 'react'\nimport { KeplerGl } from '@dekart-xyz/kepler.gl/dist/components'\nimport styles from './ReportPage.module.css'\nimport { AutoSizer } from 'react-virtualized'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { EditOutlined, WarningFilled, MoreOutlined, PlusOutlined, ReadOutlined, ConsoleSqlOutlined, VerticalAlignBottomOutlined } from '@ant-design/icons'\nimport { QueryJob } from '../proto/dekart_pb'\nimport Tabs from 'antd/es/tabs'\nimport classnames from 'classnames'\nimport { Header } from './Header'\nimport ReportHeaderButtons from './ReportHeaderButtons'\nimport Downloading from './Downloading'\nimport Dataset from './Dataset'\nimport { Resizable } from 're-resizable'\nimport DatasetSettingsModal from './DatasetSettingsModal'\nimport getDatasetName from './lib/getDatasetName'\nimport { createDataset, openDatasetSettingsModal, setActiveDataset } from './actions/dataset'\nimport { closeReport, openReport, reportTitleChange, toggleReportEdit, toggleReportFullscreen } from './actions/report'\nimport { setError } from './actions/message'\nimport Tooltip from 'antd/es/tooltip'\nimport prettyBites from 'pretty-bytes'\nimport { getDatasourceMeta } from './lib/datasource'\nimport QueryParams from './QueryParams'\nimport { useCheckMapConfig } from './lib/mapConfig'\nimport Dropdown from 'antd/es/dropdown'\nimport Readme from './Readme'\nimport { addReadme, removeReadme, showReadmeTab } from './actions/readme'\nimport Modal from 'antd/es/modal'\nimport { MapControlButton } from '@dekart-xyz/kepler.gl/dist/components/common/styled-components'\n\nfunction TabIcon ({ job }) {\n let iconColor = 'transparent'\n if (job.jobError) {\n iconColor = '#F66B55'\n }\n switch (job.jobStatus) {\n case QueryJob.JobStatus.JOB_STATUS_RUNNING:\n case QueryJob.JobStatus.JOB_STATUS_PENDING:\n case QueryJob.JobStatus.JOB_STATUS_READING_RESULTS:\n iconColor = '#B8B8B8'\n break\n case QueryJob.JobStatus.JOB_STATUS_DONE:\n if (!job.jobResultId) {\n iconColor = '#B8B8B8'\n break\n }\n iconColor = '#52c41a'\n break\n default:\n // do nothing\n }\n return (\n \n )\n}\n\nfunction getOnTabEditHandler (dispatch, reportId) {\n return (datasetId, action) => {\n switch (action) {\n case 'remove': {\n if (datasetId === 'readme') {\n Modal.confirm({\n title: 'Remove readme from report?',\n okText: 'Yes',\n okType: 'danger',\n cancelText: 'No',\n onOk: () => dispatch(removeReadme())\n })\n } else {\n dispatch(openDatasetSettingsModal(datasetId))\n }\n break\n }\n default:\n // do nothing\n }\n }\n}\n\nfunction QueryTooltip ({ job, dataset }) {\n const connectionList = useSelector(state => state.connection.list)\n if (!job) {\n return null\n }\n const updatedAt = new Date(job.updatedAt * 1000)\n const connection = connectionList.find(c => c.id === dataset.connectionId)\n const connectionMeta = connection ? getDatasourceMeta(connection.connectionType) : null\n\n const processed = job.bytesProcessed ? `Processed ${prettyBites(job.bytesProcessed)}` : 'cached'\n return (\n \n {\n connection && connectionMeta ? {connection.connectionName} ({connectionMeta.name}) : null\n }\n {updatedAt.toLocaleString()}\n {processed}\n {\n job.resultSize ? Result {prettyBites(job.resultSize)} : null\n }\n \n )\n}\n\nfunction getTabPane (dataset, queries, files, status, queryJobs, closable) {\n let changed = false\n const title = getDatasetName(dataset, queries, files)\n let tabIcon = null\n let tooltip = null\n if (dataset.queryId) {\n const job = queryJobs.find(j => j.queryId === dataset.queryId)\n if (job) {\n tooltip = \n tabIcon = \n }\n changed = status.changed\n }\n const tabTitle = `${title}${changed ? '*' : ''}`\n return (\n {tabIcon}{tabTitle}}\n key={dataset.id}\n closable={closable}\n closeIcon={}\n />\n )\n}\n\nfunction DatasetSection ({ reportId }) {\n const datasets = useSelector(state => state.dataset.list)\n const queries = useSelector(state => state.queries)\n const queryJobs = useSelector(state => state.queryJobs)\n const files = useSelector(state => state.files)\n const activeDataset = useSelector(state => state.dataset.active)\n const report = useSelector(state => state.report)\n const queryStatus = useSelector(state => state.queryStatus)\n const { canWrite } = report\n const edit = useSelector(state => state.reportStatus.edit)\n const dispatch = useDispatch()\n const readmeTab = []\n const showReadme = useSelector(state => state.readme.showTab)\n const closable = Boolean(canWrite && edit)\n\n if (report.readme) {\n readmeTab.push(\n Readme\n }\n key='readme'\n closable={closable}\n />\n )\n }\n\n const items = [\n {\n label: 'Data',\n icon: ,\n onClick: () => {\n dispatch(createDataset(reportId))\n }\n },\n {\n label: 'Readme',\n icon: ,\n disabled: Boolean(report.readme),\n onClick: () => {\n dispatch(addReadme())\n }\n }\n ]\n\n useEffect(() => {\n if (report && !(activeDataset)) {\n dispatch(createDataset(reportId))\n }\n }, [reportId, report, activeDataset, dispatch])\n if (activeDataset || showReadme) {\n return (\n <>\n \n
\n
\n
\n {\n switch (tabId) {\n case 'readme':\n dispatch(showReadmeTab())\n return\n case 'add':\n return\n default:\n dispatch(setActiveDataset(tabId))\n }\n }}\n hideAdd\n onEdit={getOnTabEditHandler(dispatch, reportId)}\n >\n {readmeTab.concat(datasets.map((dataset) => getTabPane(dataset, queries, files, queryStatus, queryJobs, closable))).concat(canWrite && edit && (\n \n \n \n }\n key='add'\n closable={false}\n disabled={!canWrite}\n />)\n )}\n \n
\n {showReadme ? : }\n
\n
\n \n \n \n )\n } else {\n return null\n }\n}\n\nfunction Title () {\n const reportStatus = useSelector(state => state.reportStatus)\n const { canWrite } = useSelector(state => state.report)\n const [edit, setEdit] = useState(false)\n const dispatch = useDispatch()\n if (canWrite && reportStatus.edit && edit) {\n return (\n
\n dispatch(reportTitleChange(e.target.value))}\n onBlur={() => setEdit(false)}\n placeholder='Untitled'\n autoFocus\n disabled={!(reportStatus.edit && canWrite)}\n />\n
\n )\n } else {\n return (\n
\n reportStatus.edit && setEdit(true)}\n title='Click to edit report title'\n >{\n reportStatus.edit && canWrite ? : null\n }{reportStatus.title}\n \n
\n )\n }\n}\n\nclass CatchKeplerError extends Component {\n constructor (props) {\n super(props)\n this.state = { hasError: false }\n }\n\n componentDidCatch (error, errorInfo) {\n this.setState({ hasError: true })\n this.props.onError(error)\n }\n\n render () {\n if (this.state.hasError) {\n return (\n
\n \n
\n )\n }\n return this.props.children\n }\n}\n\nfunction ToggleFullscreenButton () {\n const dispatch = useDispatch()\n\n return (\n
\n \n dispatch(toggleReportFullscreen())}>\n \n \n \n
\n )\n}\n\nfunction Kepler () {\n const env = useSelector(state => state.env)\n const dispatch = useDispatch()\n if (!env.loaded) {\n return (\n
\n )\n }\n return (\n
\n \n \n {({ height, width }) => (\n dispatch(setError(err))}>\n \n \n )}\n \n
\n )\n}\n\nexport default function ReportPage ({ edit }) {\n const { id } = useParams()\n\n const report = useSelector(state => state.report)\n const envLoaded = useSelector(state => state.env.loaded)\n const files = useSelector(state => state.files || [])\n const queries = useSelector(state => state.queries || [])\n const fullscreen = useSelector(state => state.reportStatus.fullscreen)\n const updatedAt = [].concat(files, queries).reduce((updatedAt, item) => {\n if (item.updatedAt > updatedAt) {\n return item.updatedAt\n }\n return updatedAt\n }, 0)\n const updatedAtDate = new Date(updatedAt * 1000)\n\n const dispatch = useDispatch()\n\n useEffect(() => {\n // make sure kepler loaded before firing kepler actions\n if (!envLoaded) {\n return\n }\n dispatch(openReport(id))\n return () => dispatch(closeReport(id))\n }, [id, dispatch, envLoaded])\n\n useEffect(() => {\n dispatch(toggleReportEdit(edit))\n }, [id, edit, dispatch])\n\n useCheckMapConfig()\n\n if (!report) {\n return null\n }\n\n return (\n
\n \n )}\n queryParams={()}\n buttons={()}\n />\n
\n
\n
\n \n
\n {updatedAt ? {updatedAtDate.toLocaleString()} : null}\n {updatedAt && report.authorEmail !== 'UNKNOWN_EMAIL' ? | : null}\n {report.authorEmail !== 'UNKNOWN_EMAIL' ? {report.authorEmail} : null}\n
\n
\n
\n {!fullscreen ? : null}\n
\n
\n )\n}\n","import Form from 'antd/es/form'\nimport Input from 'antd/es/input'\nimport Modal from 'antd/es/modal'\nimport { useSelector, useDispatch } from 'react-redux'\nimport Button from 'antd/es/button'\nimport styles from './ConnectionModal.module.css'\nimport { useEffect, useState } from 'react'\nimport { archiveConnection, closeConnectionDialog, connectionChanged, reOpenDialog, saveConnection, testConnection } from './actions/connection'\nimport { CheckCircleTwoTone, ExclamationCircleTwoTone, LoadingOutlined } from '@ant-design/icons'\nimport Tooltip from 'antd/es/tooltip'\nimport AutoComplete from 'antd/es/auto-complete'\nimport Alert from 'antd/es/alert'\nimport { ConnectionType } from '../proto/dekart_pb'\nimport { DatasourceIcon } from './Datasource'\nimport { track } from './lib/tracking'\nimport TextArea from 'antd/es/input/TextArea'\n\nfunction Footer ({ form, testDisabled }) {\n const { dialog, test } = useSelector(state => state.connection)\n const { tested, testing, error: testError, success: testSuccess } = test\n const { id, loading, connectionType } = dialog\n const isAdmin = useSelector(state => state.user.isAdmin)\n const dispatch = useDispatch()\n\n useEffect(() => {\n if (testSuccess) {\n track('TestConnectionSuccess')\n }\n if (testError) {\n track('TestConnectionError')\n }\n }\n , [testSuccess, testError])\n\n return (\n
\n {\n track('TestConnection')\n dispatch(testConnection(connectionType, form.getFieldsValue()))\n }}\n >\n Test Connection\n \n {\n tested\n ?
{testError ? : }
\n : null\n }\n
\n {\n track('SaveConnection')\n dispatch(saveConnection(id, connectionType, form.getFieldsValue()))\n form.resetFields()\n }}\n >\n Save\n \n \n
\n )\n}\n\nfunction SnowflakeConnectionModal ({ form }) {\n const { dialog } = useSelector(state => state.connection)\n const { id, loading } = dialog\n const dispatch = useDispatch()\n const connection = useSelector(state => state.connection.list.find(s => s.id === id))\n const datasetUsed = connection?.datasetCount > 0\n const passwordChanged = form.getFieldValue('snowflakePassword') !== connection?.snowflakePassword\n\n return (\n Snowflake}\n onCancel={() => dispatch(closeConnectionDialog())}\n footer={
}\n >\n
\n {\n if (changedValues.snowflakeAccountId) {\n const snowflakeAccountId = changedValues.snowflakeAccountId\n form.setFieldsValue({\n snowflakeAccountId: snowflakeAccountId.replace('.', '-')\n })\n }\n dispatch(connectionChanged())\n }}\n >\n {datasetUsed ?
This connection is used in {connection.datasetCount} dataset{connection.datasetCount > 1 ? 's' : ''}.} description='Changing make cause report errors' type='warning' />
: null}\n \n \n \n Snowflake Account Identifier that your Snowflake cluster is running.\n }\n >\n \n \n \n \n \n The password for the username that you use to connect to the database.}>\n {\n if (!passwordChanged) {\n form.setFieldsValue({ snowflakePassword: '' })\n }\n }} onBlur={() => {\n if (form.getFieldValue('snowflakePassword') === '') {\n form.setFieldsValue({ snowflakePassword: connection?.snowflakePassword })\n }\n }}\n />\n \n \n \n \n \n
\n \n )\n}\nfunction BigQueryServiceAccountConnectionModal ({ form }) {\n const { dialog, projects } = useSelector(state => state.connection)\n const { id, loading } = dialog\n const dispatch = useDispatch()\n const connection = useSelector(state => state.connection.list.find(s => s.id === id))\n const [showKey, setShowKey] = useState(!connection)\n\n useEffect(() => {\n track('BigQueryServiceAccountConnectionModal')\n }, [])\n\n // only name can be changed for connections used in datasets\n const nameChangeOnly = connection?.datasetCount > 0\n\n useEffect(() => {\n const bigqueryProjectId = form.getFieldValue('bigqueryProjectId')\n if (projects && projects.length === 1 && !bigqueryProjectId) {\n form.setFieldsValue({ bigqueryProjectId: projects[0] })\n }\n }, [projects, form])\n\n return (\n BigQuery Service Account}\n onCancel={() => dispatch(closeConnectionDialog())}\n footer={
}\n >\n
\n {\n if (changedValues.bigqueryProjectId || changedValues.cloudStorageBucket || changedValues.newBigqueryKey) {\n dispatch(connectionChanged())\n }\n if (changedValues.bigqueryProjectId && !allValues.connectionName) {\n form.setFieldsValue({ connectionName: changedValues.bigqueryProjectId })\n }\n }}\n >\n {nameChangeOnly ?
This connection is used in {connection.datasetCount} dataset{connection.datasetCount > 1 ? 's' : ''}.} description='Bucket name cannot be changed' type='warning' />
: null}\n \n \n \n Keys are encrypted and cannot be displayed.\n : <>Paste the JSON key for the service account you want to use to connect to BigQuery. Read Documentation\n }\n >\n \n \n Google Cloud Storage bucket to permanently cache query results. Required to share map with other users.} name='cloudStorageBucket'>\n \n \n \n
\n \n )\n}\n\nfunction BigQueryConnectionModal ({ form }) {\n const { dialog, projects } = useSelector(state => state.connection)\n const { id, loading } = dialog\n const dispatch = useDispatch()\n const connection = useSelector(state => state.connection.list.find(s => s.id === id))\n\n useEffect(() => {\n track('BigQueryConnectionModal')\n }, [])\n\n // only name can be changed for connections used in datasets\n const nameChangeOnly = connection?.datasetCount > 0\n\n const options = (projects || []).map(project => ({ value: project, label: project }))\n const bigqueryProjectId = form.getFieldValue('bigqueryProjectId')\n\n useEffect(() => {\n if (projects && projects.length === 1 && !bigqueryProjectId) {\n form.setFieldsValue({ bigqueryProjectId: projects[0] })\n track('AutoFillBigQueryProjectId')\n }\n }, [projects, bigqueryProjectId, form])\n\n return (\n BigQuery}\n onCancel={() => dispatch(closeConnectionDialog())}\n footer={
}\n >\n
\n {\n if (changedValues.bigqueryProjectId || changedValues.cloudStorageBucket) {\n dispatch(connectionChanged())\n }\n if (changedValues.bigqueryProjectId && !allValues.connectionName) {\n form.setFieldsValue({ connectionName: changedValues.bigqueryProjectId })\n }\n }}\n >\n {nameChangeOnly ?
This connection is used in {connection.datasetCount} dataset{connection.datasetCount > 1 ? 's' : ''}.} description='Only the name can be changed.' type='warning' />
: null}\n \n \n \n {\n if (projects) {\n return projects.length ? 'Click to select you BigQuery project ID' : <>→ Ensure your account has access to the Google Cloud Project\n }\n return \n })()} required name='bigqueryProjectId'\n >\n option.value.toUpperCase().indexOf(inputValue.toUpperCase()) !== -1}\n />\n \n Google Cloud Storage bucket to permanently cache query results. Required to share map with other users.} name='cloudStorageBucket'>\n \n \n \n
\n \n )\n}\n\nexport default function ConnectionModal () {\n const { dialog } = useSelector(state => state.connection)\n const { visible, id, connectionType, bigqueryKey } = dialog\n const dispatch = useDispatch()\n\n useEffect(() => {\n dispatch(reOpenDialog())\n }, [dispatch])\n\n const connection = useSelector(state => state.connection.list.find(s => s.id === id))\n\n const [form] = Form.useForm()\n\n useEffect(() => {\n if (connection) {\n form.setFieldsValue(connection)\n }\n }, [connection, form])\n\n if (!visible) {\n return null\n }\n if (bigqueryKey) {\n return \n }\n switch (connectionType) {\n case ConnectionType.CONNECTION_TYPE_SNOWFLAKE:\n return \n case ConnectionType.CONNECTION_TYPE_BIGQUERY:\n default:\n return \n }\n}\n","import styles from './Onboarding.module.css'\n\nexport default function Onboarding ({ icon, title, steps }) {\n return (\n
\n
{icon}
\n
\n
{title}
\n
{steps}
\n
\n
\n )\n}\n","import Button from 'antd/es/button'\nimport Modal from 'antd/es/modal/Modal'\nimport styles from './BigQueryConnectionTypeSelectorModal.module.css'\nimport { newConnection } from './actions/connection'\nimport { ConnectionType } from '../proto/dekart_pb'\nimport { useDispatch } from 'react-redux'\nimport { useEffect } from 'react'\nimport { track } from './lib/tracking'\n\nexport default function BigQueryConnectionTypeSelectorModal ({ open, onClose }) {\n const dispatch = useDispatch()\n useEffect(() => {\n if (open) {\n track('OpenBigQueryConnectionTypeSelectorModal')\n }\n }, [open])\n\n return (\n \n
\n
\n

\n Use your Google Account\n

\n

\n Recommended if your account already has BigQuery access.\n

\n

\n No credentials stored in Dekart backend.\n

\n\n

\n {\n onClose()\n dispatch(newConnection(ConnectionType.CONNECTION_TYPE_BIGQUERY))\n track('ConnectWithGoogle')\n }}\n >Connect with Google\n \n

\n

\n → Which permissions required?\n

\n\n
\n
\n

\n Use Service Account\n

\n

\n Connect to BigQuery with using Service Account Key in JSON format.\n

\n

Key will encrypted and stored in Dekart backend.

\n\n

\n {\n onClose()\n dispatch(newConnection(ConnectionType.CONNECTION_TYPE_BIGQUERY, true))\n track('ConnectWithServiceAccount')\n }}\n >Configure Service Account\n \n

\n \n\n
\n
\n \n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { Header } from './Header'\nimport styles from './HomePage.module.css'\nimport Button from 'antd/es/button'\nimport Radio from 'antd/es/radio'\nimport Result from 'antd/es/result'\nimport Table from 'antd/es/table'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { PlusOutlined, FileSearchOutlined, UsergroupAddOutlined, ApiTwoTone, LockOutlined, TeamOutlined, GlobalOutlined } from '@ant-design/icons'\nimport DataDocumentationLink from './DataDocumentationLink'\nimport Switch from 'antd/es/switch'\nimport { archiveReport, subscribeReports, unsubscribeReports, createReport } from './actions/report'\nimport { editConnection, newConnection, newConnectionScreen, setDefaultConnection } from './actions/connection'\nimport ConnectionModal from './ConnectionModal'\nimport Tooltip from 'antd/es/tooltip'\nimport { useHistory } from 'react-router-dom/cjs/react-router-dom'\nimport { ConnectionType, PlanType } from '../proto/dekart_pb'\nimport Onboarding from './Onboarding'\nimport { DatasourceIcon } from './Datasource'\nimport { track } from './lib/tracking'\nimport BigQueryConnectionTypeSelectorModal from './BigQueryConnectionTypeSelectorModal'\n\nfunction Loading () {\n return null\n}\n\nfunction ArchiveReportButton ({ report }) {\n const dispatch = useDispatch()\n const [disabled, setDisabled] = useState(false)\n return (\n {\n dispatch(archiveReport(report.id, !report.archived))\n setDisabled(true)\n }}\n >{report.archived ? 'Restore' : 'Archive'}\n \n )\n}\n\nconst columns = [\n {\n dataIndex: 'icon',\n render: (t, report) => {\n if (report.isPlayground || report.isPublic) {\n return \n }\n if (report.discoverable) {\n return \n }\n return \n },\n className: styles.iconColumn\n },\n {\n dataIndex: 'title',\n render: (t, report) => {report.title},\n className: styles.titleColumn\n },\n {\n dataIndex: 'archivedTitle',\n render: (t, report) => report.title,\n className: styles.titleColumn\n },\n {\n dataIndex: 'author', // used for reports and connections\n render: (t, item) => (\n {item.authorEmail}\n
),\n className: styles.authorColumn\n },\n {\n dataIndex: 'delete',\n render: (t, report) => ,\n className: styles.deleteColumn\n },\n {\n dataIndex: 'connectionName',\n render: (t, connection) => ,\n className: styles.titleColumn\n },\n {\n dataIndex: 'connectionIcon',\n render: (t, connection) => ,\n className: styles.iconColumn\n },\n {\n dataIndex: 'setDefault',\n render: (t, connection) => ,\n className: styles.deleteColumn\n }\n]\n\nfunction SetDefault ({ connection }) {\n const dispatch = useDispatch()\n if (connection.isDefault) {\n return (\n Default\n )\n }\n return (\n \n {\n dispatch(setDefaultConnection(connection.id))\n }}\n >Set default\n \n \n )\n}\n\nfunction OpenConnectionButton ({ connection }) {\n const dispatch = useDispatch()\n return (\n {\n dispatch(editConnection(connection.id, connection.connectionType, Boolean(connection.bigqueryKey)))\n }}\n >{connection.connectionName}\n \n )\n}\n\nfunction filterColumns (filter) {\n return filter.map(f => columns.find(c => c.dataIndex === f))\n}\n\nfunction getColumns (reportFilter, archived, authEnabled) {\n if (reportFilter === 'my') {\n if (archived) {\n return filterColumns(['archivedTitle', 'delete'])\n }\n if (authEnabled) {\n return filterColumns(['icon', 'title', 'delete'])\n }\n return filterColumns(['title', 'delete'])\n } else if (reportFilter === 'connections') {\n return filterColumns(['connectionIcon', 'connectionName', 'author', 'setDefault'])\n } else {\n return filterColumns(['icon', 'title', 'author'])\n }\n}\n\nfunction FirstReportOnboarding () {\n const isPlayground = useSelector(state => state.user.isPlayground)\n const dispatch = useDispatch()\n const isViewer = useSelector(state => state.user.isViewer)\n return (\n <>\n \n \n {isPlayground\n ? (\n \n )\n : null}\n \n )}\n />\n \n \n )\n}\n\n// selects between Google Cloud and Snowflake\nfunction ConnectionTypeSelector () {\n const connectionList = useSelector(state => state.connection.list)\n const showCancel = connectionList.length > 0 // show cancel button if there are connections\n const dispatch = useDispatch()\n const [bigqueryModalOpen, setBigqueryModalOpen] = useState(false)\n useEffect(() => {\n track('ConnectionTypeSelector')\n }, [])\n return (\n <>\n
\n setBigqueryModalOpen(false)} />\n } size='large' onClick={() => {\n track('ConnectionTypeSelectorBigQuery')\n setBigqueryModalOpen(true)\n }}\n >BigQuery\n \n } size='large' onClick={() => {\n track('ConnectionTypeSelectorSnowflake')\n dispatch(newConnection(ConnectionType.CONNECTION_TYPE_SNOWFLAKE))\n }}\n >Snowflake\n \n
\n {showCancel\n ? (\n
\n \n
\n )\n : (\n
\n

or

\n \n
\n )}\n \n )\n}\n\nfunction CreateConnection () {\n return (\n <>\n }\n title='Ready to connect!'\n subTitle={<>Select your data source to start building your map.}\n extra={}\n />\n \n )\n}\n\nfunction ReportsHeader (\n { reportFilter, archived, setArchived }\n) {\n const connectionList = useSelector(state => state.connection.list)\n const reportsList = useSelector(state => state.reportsList)\n const userDefinedConnection = useSelector(state => state.connection.userDefined)\n const dispatch = useDispatch()\n const history = useHistory()\n const { isAdmin, isViewer } = useSelector(state => state.user)\n\n const userStream = useSelector(state => state.user.stream)\n if (!userStream) {\n return null\n }\n\n return (\n
\n {\n userStream.planType > PlanType.TYPE_UNSPECIFIED\n ? (\n {\n switch (e.target.value) {\n case 'my':\n history.push('/')\n break\n case 'discoverable':\n history.push('/shared')\n break\n case 'connections':\n history.push('/connections')\n break\n default:\n // do nothing\n }\n }}\n >\n My Reports\n Shared Reports\n {\n connectionList && userDefinedConnection ? Connections : null\n }\n \n\n )\n : (\n
{reportFilter === 'connections' ? 'Connection' : 'Reports'}
\n )\n }\n
\n {\n reportFilter === 'connections'\n ? (\n { dispatch(newConnectionScreen(true)) }}\n >New Connection\n \n )\n : (\n <>\n {\n reportFilter === 'my'\n ? (\n
\n
Archived
\n setArchived(checked)} />\n
\n )\n : null\n }\n \n \n )\n }\n
\n
\n\n )\n}\n\nfunction Reports ({ createReportButton, reportFilter }) {\n const [archived, setArchived] = useState(false)\n const reportsList = useSelector(state => state.reportsList)\n const { loaded: envLoaded, authEnabled } = useSelector(state => state.env)\n const connectionList = useSelector(state => state.connection.list)\n const userDefinedConnection = useSelector(state => state.connection.userDefined)\n const newConnectionScreen = useSelector(state => state.connection.screen)\n const isAdmin = useSelector(state => state.user.isAdmin)\n useEffect(() => {\n if (reportsList.archived.length === 0) {\n setArchived(false)\n }\n }, [reportsList, setArchived])\n if (!envLoaded) {\n return null\n }\n if ((userDefinedConnection && connectionList.length === 0 && isAdmin) || newConnectionScreen) {\n return (\n
\n \n
\n )\n }\n if (reportsList.my.length === 0 && reportsList.discoverable.length === 0 && reportsList.archived.length === 0) {\n return (\n
\n )\n } else {\n let dataSource = []\n if (reportFilter === 'my') {\n dataSource = archived ? reportsList.archived : reportsList.my\n } else if (reportFilter === 'connections') {\n dataSource = connectionList\n } else {\n dataSource = reportsList.discoverable\n }\n return (\n
\n \n {dataSource.length\n ? (\n \n )\n : reportFilter === 'discoverable'\n ? ()\n : ()}\n
\n )\n }\n}\n\nfunction OnboardingMyReports () {\n return (\n } title='View, manage, and organize the reports that you have created ' steps={\n
    \n
  1. Click on the \"New Report\" button in the top right corner
  2. \n
  3. Save the report and give it a relevant name.
  4. \n
  5. Your report will appear here.
  6. \n
\n }\n />\n )\n}\n\nfunction OnboardingDiscoverableReports () {\n return (\n }\n title='Shared reports helps your others to discover and reuse your reports'\n steps={\n
    \n
  1. Open the report that you want to share and click on the \"Share\" button on the top right corner of the page
  2. \n
  3. In a pop-up window select the option to make the report discoverable.
  4. \n
  5. Shared reports will appear in this tab for all users.
  6. \n
\n }\n />\n )\n}\n\nexport default function HomePage ({ reportFilter }) {\n const reportsList = useSelector(state => state.reportsList)\n const isPlayground = useSelector(state => state.user.isPlayground)\n const connectionsLoaded = useSelector(state => state.connection.listLoaded)\n const dispatch = useDispatch()\n const body = useRef()\n useEffect(() => {\n dispatch(subscribeReports())\n return () => dispatch(unsubscribeReports())\n }, [dispatch])\n return (\n
\n
\n
\n {\n reportsList.loaded && (connectionsLoaded || isPlayground)\n ? (\n <>\n \n \n \n )\n : \n }\n
\n
\n )\n}\n","import { GetUsageRequest } from '../../proto/dekart_pb'\nimport { grpcCall } from './grpc'\nimport { Dekart } from '../../proto/dekart_pb_service'\n\nexport function setUsage (stats) {\n return { type: setUsage.name, stats }\n}\n\nexport function getUsage () {\n return async dispatch => {\n dispatch({ type: getUsage.name })\n const req = new GetUsageRequest()\n dispatch(grpcCall(Dekart.GetUsage, req, (stats) => {\n dispatch(setUsage(stats))\n }))\n }\n}\n","import { GetEnvRequest, GetEnvResponse } from '../../proto/dekart_pb'\nimport { Dekart } from '../../proto/dekart_pb_service'\nimport { grpcCall } from './grpc'\n\nexport function setEnv (variables) {\n return { type: setEnv.name, variables }\n}\n\nconst typeToName = Object.keys(GetEnvResponse.Variable.Type).map(n => n.slice(5))\n\nexport function getEnv () {\n return async dispatch => {\n dispatch({ type: getEnv.name })\n const req = new GetEnvRequest()\n dispatch(grpcCall(Dekart.GetEnv, req, (res) => {\n const { variablesList } = res\n const variables = variablesList.reduce((variables, v) => {\n variables[typeToName[v.type]] = v.value\n return variables\n }, {})\n dispatch(setEnv(variables))\n }))\n }\n}\n","import Tag from 'antd/es/tag'\nimport styles from './SubscriptionTab.module.css'\nimport Title from 'antd/es/typography/Title'\nimport { useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport Button from 'antd/es/button'\nimport { createSubscription, redirectToCustomerPortal } from './actions/workspace'\nimport { PlanType } from '../proto/dekart_pb'\nimport { CheckCircleOutlined } from '@ant-design/icons'\nimport Text from 'antd/es/typography/Text'\nimport Card from 'antd/es/card'\nimport Tooltip from 'antd/es/tooltip'\n\nfunction PlanTitle ({ name, price, icon, color, description, selected }) {\n return (\n
\n
\n {name}\n
\n
\n {price}\n
\n
\n {description}\n
\n
\n )\n}\n\nfunction Plan ({ title, children, planType, cancelAt, addedUsersCount }) {\n const [hover, setHover] = useState(false)\n const userStream = useSelector(state => state.user.stream)\n const dispatch = useDispatch()\n const [waitForRedirect, setWaitForRedirect] = useState(false)\n const isAdmin = useSelector(state => state.user.isAdmin)\n let actionButton = (\n {\n setWaitForRedirect(true)\n dispatch(createSubscription(planType))\n }} ghost={hover}\n >Choose plan\n \n )\n if (planType === PlanType.TYPE_PERSONAL) {\n if (userStream.planType > PlanType.TYPE_PERSONAL) {\n actionButton = (\n \n )\n } else if (userStream.planType === PlanType.TYPE_PERSONAL) {\n actionButton = \n } else if (addedUsersCount > 1) {\n actionButton = (\n \n )\n }\n } else if (planType === userStream.planType) {\n actionButton = (\n <>\n {\n setWaitForRedirect(true)\n dispatch(redirectToCustomerPortal())\n }}\n >Manage subscription\n \n {cancelAt ? (
Cancels {(new Date(1000 * cancelAt)).toLocaleString()}
) : null}\n \n )\n }\n // const subscription = useSelector(state => state.workspace.subscription)\n return (\n setHover(true)}\n onMouseLeave={() => setHover(false)}\n title={title}\n style={{ width: 300 }}\n actions={[actionButton]}\n >{children}\n \n )\n}\n\nfunction Plans () {\n const userStream = useSelector(state => state.user.stream)\n const workspace = useSelector(state => state.workspace)\n return (\n
\n }\n planType={PlanType.TYPE_PERSONAL}\n >\n

BigQuery Connector

\n

Snowflake Connector

\n

Private and Public Maps

\n \n {userStream.planType === PlanType.TYPE_TEAM\n ? (\n Deprecated}\n />}\n planType={PlanType.TYPE_TEAM}\n cancelAt={workspace?.subscription?.cancelAt}\n >\n

Everything from Personal

\n

User Access Management

\n

 

\n \n )\n : null}\n }\n planType={PlanType.TYPE_GROW}\n cancelAt={workspace?.subscription?.cancelAt}\n >\n

Everything from Personal

\n

Unlimited Viewers

\n

User Access Management

\n \n }\n planType={PlanType.TYPE_MAX}\n cancelAt={workspace?.subscription?.cancelAt}\n >\n

Everything from Personal

\n

Unlimited editors and viewers

\n

User Access Management

\n \n
\n )\n}\n\nexport default function SubscriptionTab () {\n const userStream = useSelector(state => state.user.stream)\n if (!userStream) {\n return null\n }\n return (\n
\n \n \n
\n Not sure what plan to choose?\n

Book a call with the Dekart team — Unlock insider discounts and learn about our roadmap.

\n
\n
\n )\n}\n","import { useDispatch, useSelector } from 'react-redux'\nimport styles from './MembersTab.module.css'\nimport { useCallback, useState } from 'react'\nimport { updateWorkspaceUser } from './actions/workspace'\nimport { PlanType, UpdateWorkspaceUserRequest, UserRole } from '../proto/dekart_pb'\nimport Input from 'antd/es/input'\nimport Button from 'antd/es/button'\nimport Table from 'antd/es/table'\nimport Tag from 'antd/es/tag'\nimport { copyUrlToClipboard } from './actions/clipboard'\nimport { CopyOutlined } from '@ant-design/icons'\nimport Select from 'antd/es/select'\n\nexport default function MembersTab () {\n const users = useSelector(state => state.workspace.users)\n const addedUsersCount = useSelector(state => state.workspace.addedUsersCount)\n const userStream = useSelector(state => state.user.stream)\n const planType = userStream?.planType\n const dispatch = useDispatch()\n const [email, setEmail] = useState('')\n const isAdmin = useSelector(state => state.user.isAdmin)\n const addUserCb = useCallback(() => {\n if (email && isAdmin) {\n dispatch(updateWorkspaceUser(email, UpdateWorkspaceUserRequest.UserUpdateType.USER_UPDATE_TYPE_ADD))\n setEmail('')\n }\n }, [dispatch, email, isAdmin])\n if (!users) {\n return null\n }\n\n let inviteDisabled\n if (planType === PlanType.TYPE_TEAM) {\n inviteDisabled = !isAdmin || addedUsersCount >= 20\n } else if (planType > PlanType.TYPE_PERSONAL) {\n inviteDisabled = !isAdmin\n }\n\n return (\n
\n
\n \n setEmail(e.target.value)}\n onPressEnter={addUserCb}\n />\n Invite user\n \n \n
\n
\n u.status !== 3)}\n rowClassName={styles.userListRow}\n rowKey='email'\n columns={[\n {\n title: 'Email',\n dataIndex: 'email',\n key: 'email',\n className: styles.emailColumn\n },\n // copy invite link\n {\n title: 'Invite',\n dataIndex: 'status',\n key: 'invite',\n render: (status, u) => (\n status === 1\n ? (\n }\n className={styles.inviteButton}\n title='Copy invite link'\n type='text' onClick={() => dispatch(copyUrlToClipboard(window.location.toString() + '/invite/' + u.inviteId, 'Invite link copied to clipboard'))}\n />\n )\n : null\n )\n },\n {\n title: 'Status',\n dataIndex: 'status',\n key: 'status',\n render: (status) => {['Unknown', 'Pending', 'Active', 'Removed', 'Rejected'][status]}\n },\n {\n title: 'Role',\n dataIndex: 'role',\n key: 'role',\n render: (role, u) => (\n {\n dispatch(updateWorkspaceUser(u.email, UpdateWorkspaceUserRequest.UserUpdateType.USER_UPDATE_TYPE_UPDATE, value))\n }}\n options={[\n {\n value: UserRole.ROLE_ADMIN,\n label: 'Admin'\n },\n {\n value: UserRole.ROLE_EDITOR,\n label: 'Editor'\n },\n {\n value: UserRole.ROLE_VIEWER,\n label: 'Viewer'\n }\n\n ]}\n />\n )\n },\n {\n title: 'Active',\n dataIndex: 'active',\n className: styles.removeButtonColumn,\n render: (a, u) => (\n \n )\n }\n ]}\n />\n
\n\n
\n )\n}\n\nfunction RemoveButton ({email}) {\n const [removing, setRemoving] = useState(false)\n const dispatch = useDispatch()\n const userStream = useSelector(state => state.user.stream)\n const isAdmin = useSelector(state => state.user.isAdmin)\n return (\n {\n setRemoving(true)\n dispatch(updateWorkspaceUser(email, UpdateWorkspaceUserRequest.UserUpdateType.USER_UPDATE_TYPE_REMOVE))\n }}\n >Remove\n \n )\n}\n","import { Header } from './Header'\nimport styles from './WorkspacePage.module.css'\nimport Card from 'antd/es/card'\nimport { AppstoreTwoTone, TeamOutlined, CreditCardOutlined } from '@ant-design/icons'\nimport Title from 'antd/es/typography/Title'\nimport Button from 'antd/es/button'\nimport { useEffect, useState } from 'react'\nimport { createWorkspace, updateWorkspace, respondToInvite } from './actions/workspace'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { PlanType } from '../proto/dekart_pb'\nimport Table from 'antd/es/table'\nimport Input from 'antd/es/input'\nimport Onboarding from './Onboarding'\nimport Badge from 'antd/es/badge'\nimport Steps from 'antd/es/steps'\nimport Radio from 'antd/es/radio'\nimport Form from 'antd/es/form'\nimport SubscriptionTab from './SubscriptionTab'\nimport MembersTab from './MembersTab'\nimport Result from 'antd/es/result'\nimport { switchPlayground } from './actions/user'\nimport { useParams } from 'react-router-dom'\nimport { track } from './lib/tracking'\nimport Select from 'antd/es/select'\n\nfunction Invites () {\n const workspace = useSelector(state => state.workspace)\n const invites = workspace.invites\n const dispatch = useDispatch()\n return (\n
\n {invites.length === 0\n ? (\n }\n title='Awaiting an Invitation?'\n steps={\n
    \n
  1. Ask a current member to send an invite to your email from the User Menu → Manage Workspace.
  2. \n
  3. Once they've sent it, you'll be able to accept the invitation here.
  4. \n
\n }\n />\n )\n : (\n
\n (\n <>\n
Join {invite.workspaceName}
\n
invited by {invite.inviterEmail}
\n )\n },\n {\n title: 'Actions',\n key: 'actions',\n className: styles.inviteActionsColumn,\n render: (invite) => (\n <>\n dispatch(respondToInvite(invite.inviteId, true))}\n >Accept\n \n dispatch(respondToInvite(invite.inviteId, false))}\n >Decline\n \n )\n }\n ]}\n />\n\n
)}\n\n
\n )\n}\n\nconst publicDomains = ['gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com', 'icloud.com', 'aol.com', 'protonmail.com', 'zoho.com', 'yandex.com', 'mail.com', 'gmx.com', 'inbox.com', 'fastmail.com', 'tutanota.com', 'disroot.org', 'riseup.net', 'tuta.io', 'keemail.me', 'elude.in']\nfunction suggestWorkspaceName (email) {\n // Validate the email format\n if (!email || !email.includes('@')) {\n return ''\n }\n\n // Split the email into user handler and domain\n const [, domain] = email.split('@')\n\n // Capitalize the first letter of a string for a nicer format\n const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1)\n\n // Check if the domain is public\n if (publicDomains.includes(domain)) {\n return 'Personal'\n }\n\n // If it's a private domain, assume it's a company\n const companyName = capitalize(domain.split('.')[0]) // Use the main part of the domain\n\n return companyName\n}\n\nfunction CreateWorkspaceForm () {\n const [disabled, setDisabled] = useState(false)\n const email = useSelector(state => state.user.stream?.email)\n const dispatch = useDispatch()\n const [form] = Form.useForm()\n useEffect(() => {\n form.setFieldsValue({ name: suggestWorkspaceName(email) })\n }, [email, form])\n\n return (\n \n {\n track('CreateWorkspaceFormFinish')\n if (values.source) {\n track('CreateWorkspaceFormSource' + values.source)\n }\n setDisabled(true)\n dispatch(createWorkspace(values.name))\n }}\n >\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction UpdateWorkspaceForm () {\n const workspace = useSelector(state => state.workspace)\n const isAdmin = useSelector(state => state.user.isAdmin)\n const [disabled, setDisabled] = useState(!isAdmin)\n const dispatch = useDispatch()\n useEffect(() => {\n setDisabled(!isAdmin)\n }, [workspace, isAdmin])\n return (\n \n {\n setDisabled(true)\n dispatch(updateWorkspace(values.name))\n }}\n >\n \n \n \n \n \n \n \n \n )\n}\n\nfunction WorkspaceTab ({ nextStep, setNextStep }) {\n const userStream = useSelector(state => state.user.stream)\n const workspace = useSelector(state => state.workspace)\n const invites = workspace.invites\n if (userStream.workspaceId && userStream.workspaceId !== workspace.id) {\n return null\n }\n let form = workspace.id ? : \n if (nextStep === 'invites') {\n form = \n }\n\n let title = 'Create workspace'\n if (nextStep === 'invites') {\n title = 'Join workspace'\n } else if (workspace.id) {\n title = 'Edit workspace'\n }\n\n return (\n
\n
\n
\n {title}\n
\n {userStream.workspaceId && invites.length === 0 // user is in workspace and has no invites\n ? null\n : (\n
setNextStep(e.target.value)}\n options={[\n { label: userStream.workspaceId ? 'Edit' : 'Create', value: 'workspace' },\n { label: Join, value: 'invites' }\n ]}\n optionType='button'\n buttonStyle='solid'\n />\n
\n )}\n
\n
{form}
\n\n
\n )\n}\n\nfunction getMembersSubTitle (addedUsersCount, planType) {\n if (isNaN(addedUsersCount) || planType > PlanType.TYPE_TEAM) {\n return ''\n }\n if (planType === PlanType.TYPE_TEAM) {\n return `(${addedUsersCount} of 20)`\n }\n return '(paid plan)'\n}\n\nexport function Workspace ({ nextStep, setNextStep }) {\n const { inviteId } = useParams()\n const userStream = useSelector(state => state.user.stream)\n const addedUsersCount = useSelector(state => state.workspace.addedUsersCount)\n const workspaceId = userStream?.workspaceId\n const planType = userStream?.planType\n const [step, setStep] = useState(0)\n // move to the next step if workspaceId is set\n useEffect(() => {\n if (inviteId) {\n setStep(0)\n } else if (workspaceId) {\n if (planType > PlanType.TYPE_PERSONAL) {\n setStep(2)\n } else {\n setStep(1)\n }\n }\n }, [workspaceId, planType, setStep, inviteId])\n\n if (!userStream) {\n return null\n }\n return (\n
\n {workspaceId\n ? (\n
\n {\n setStep(current)\n }}\n className='site-navigation-steps'\n items={[\n {\n title: 'Workspace',\n icon: \n },\n {\n title: 'Plan',\n icon: ,\n disabled: !userStream.workspaceId\n },\n {\n title: 'Members',\n icon: ,\n disabled: userStream.planType <= PlanType.TYPE_PERSONAL,\n subTitle: getMembersSubTitle(addedUsersCount, planType)\n }\n ]}\n />\n
\n\n )\n : null}\n\n {([, , ])[step]}\n
\n )\n}\n\nfunction WelcomeScreen ({ setNextStep }) {\n const workspace = useSelector(state => state.workspace)\n const invites = workspace.invites\n useEffect(() => {\n track('WelcomeScreen')\n }, [])\n return (\n }\n title='Start Mapping in Seconds'\n subTitle='Set up a secure space to connect your data, and share live maps with your team.'\n extra={(\n <>\n {\n track('CreateWorkspace')\n setNextStep('workspace')\n }}\n >\n Create Workspace\n \n \n
\n
\n
→ Connect Instantly to BigQuery and Snowflake
\n
→ Create Your First Map in 30 Seconds
\n
→ No credit card required.
\n
\n \n
\n \n )}\n />\n )\n}\n\nexport default function WorkspacePage () {\n const userStream = useSelector(state => state.user.stream)\n const workspaceId = userStream?.workspaceId\n const [nextStep, setNextStep] = useState(null)\n const isPlayground = useSelector(state => state.user.isPlayground)\n const dispatch = useDispatch()\n useEffect(() => {\n if (isPlayground) {\n dispatch(switchPlayground(false, '/workspace'))\n }\n }, [isPlayground, dispatch])\n if (isPlayground) {\n return null\n }\n return (\n
\n
\n {userStream\n ? (\n
\n {workspaceId || nextStep ? : }\n
\n )\n : null}\n
\n )\n}\n","import { Header } from './Header'\nimport styles from './GrantScopesPage.module.css'\nimport Result from 'antd/es/result'\nimport Button from 'antd/es/button'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { requestSensitiveScopes } from './actions/redirect'\nimport { CloudTwoTone, FileProtectOutlined } from '@ant-design/icons'\nimport { useEffect } from 'react'\nimport { Redirect } from 'react-router-dom/cjs/react-router-dom'\nimport { track } from './lib/tracking'\n\nfunction getLastPage (visitedPages) {\n return visitedPages.current.filter(page => page !== '/grant-scopes').pop()\n}\n\nexport default function GrantScopesPage ({ visitedPages }) {\n const dispatch = useDispatch()\n const sensitiveScopesGranted = useSelector(state => state.user.sensitiveScopesGranted)\n const sensitiveScopesGrantedOnce = useSelector(state => state.user.sensitiveScopesGrantedOnce)\n\n useEffect(() => {\n if (\n sensitiveScopesGranted // user has already granted sensitive scopes\n ) {\n return\n }\n if (sensitiveScopesGrantedOnce) { // user has granted sensitive scopes once, request them right away without onboarding\n dispatch(requestSensitiveScopes(getLastPage(visitedPages)))\n }\n }\n , [dispatch, sensitiveScopesGranted, visitedPages, sensitiveScopesGrantedOnce])\n\n if (sensitiveScopesGranted) {\n // user shouldn't be here\n return \n }\n\n if (sensitiveScopesGrantedOnce) {\n // user will be automatically redirected to the auth page in useEffect above\n return null\n }\n\n return (\n
\n
\n
\n }\n title='Grant Access to Google Cloud'\n subTitle={(\n <>\n

Dekart uses BigQuery passthrough authentication and requests short-lived tokens stored only in your browser, ensuring no tokens or query results are stored on its backend.

\n \n )}\n extra={(\n {\n track('RequestSensitiveScopes')\n dispatch(requestSensitiveScopes(getLastPage(visitedPages)))\n }}\n >Continue to Google\n \n )}\n />\n

Verified by Google’s Trust & Safety Team\n

\n\n
\n
\n )\n}\n","import React, { useEffect } from 'react'\nimport {\n BrowserRouter as Router,\n Switch,\n Route,\n Redirect,\n useParams\n} from 'react-router-dom'\nimport ReportPage from './ReportPage'\nimport HomePage from './HomePage'\nimport { QuestionOutlined, WarningOutlined } from '@ant-design/icons'\nimport Result from 'antd/es/result'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { getUsage } from './actions/usage'\nimport { AuthState, RedirectState as DekartRedirectState } from '../proto/dekart_pb'\nimport { getEnv } from './actions/env'\nimport { authRedirect, setRedirectState } from './actions/redirect'\nimport { subscribeUserStream, switchPlayground, unsubscribeUserStream } from './actions/user'\nimport WorkspacePage from './WorkspacePage'\nimport GrantScopesPage from './GrantScopesPage'\nimport { loadLocalStorage } from './actions/localStorage'\nimport { useHistory, useLocation } from 'react-router-dom/cjs/react-router-dom'\nimport { Button } from 'antd'\nimport { loadSessionStorage } from './actions/sessionStorage'\n\n// RedirectState reads states passed in the URL from the server\nfunction RedirectState () {\n const dispatch = useDispatch()\n const url = new URL(window.location.href)\n const params = new URLSearchParams(url.search)\n let redirectState = null\n if (params.has('redirect_state')) {\n const redirectStateBase64 = params.get('redirect_state')\n const redirectStateStr = atob(redirectStateBase64)\n const redirectStateArr = [].map.call(redirectStateStr, x => x.charCodeAt(0))\n const redirectStateBytes = new Uint8Array(redirectStateArr)\n redirectState = DekartRedirectState.deserializeBinary(redirectStateBytes)\n }\n useEffect(() => {\n if (redirectState) {\n dispatch(setRedirectState(redirectState))\n }\n }, [redirectState, dispatch])\n if (redirectState) {\n params.delete('redirect_state')\n url.search = params.toString()\n return // apparently receives only pathname and search\n }\n return \n}\n\nfunction AppRedirect () {\n const httpError = useSelector(state => state.httpError)\n const { status, doNotAuthenticate } = httpError\n const { newReportId } = useSelector(state => state.reportStatus)\n const userStream = useSelector(state => state.user.stream)\n const isPlayground = useSelector(state => state.user.isPlayground)\n const sensitiveScopesNeeded = useSelector(state => state.user.sensitiveScopesNeeded)\n const sensitiveScopesGranted = useSelector(state => state.user.sensitiveScopesGranted)\n const sensitiveScopesGrantedOnce = useSelector(state => state.user.sensitiveScopesGrantedOnce)\n const reportOpened = useSelector(state => state.reportStatus.opened)\n const report = useSelector(state => state.report)\n const redirectStateReceived = useSelector(state => state.user.redirectStateReceived)\n const dispatch = useDispatch()\n\n useEffect(() => {\n if (status === 401 && doNotAuthenticate === false) {\n const state = new AuthState()\n state.setUiUrl(window.location.href)\n state.setAction(AuthState.Action.ACTION_REQUEST_CODE)\n state.setSensitiveScope(sensitiveScopesGranted || sensitiveScopesGrantedOnce) // if user has granted sensitive scopes on this device request token with sensitive scopes\n dispatch(authRedirect(state))\n }\n }, [status, doNotAuthenticate, dispatch, sensitiveScopesGrantedOnce, sensitiveScopesGranted])\n\n if (status === 401 && doNotAuthenticate === false) {\n // redirect to authentication endpoint from useEffect above\n return null\n }\n\n if (httpError.status) {\n return \n }\n\n if (\n userStream &&\n !userStream.planType &&\n !isPlayground &&\n !(reportOpened && !report) && // report is being loaded\n !(report?.isPlayground) && // playground report\n !(report?.isPublic) // public report\n ) {\n return \n }\n\n if (newReportId) {\n const currentUrl = new URL(window.location.href)\n const params = currentUrl.search\n return \n }\n\n if (\n redirectStateReceived && sensitiveScopesNeeded && !sensitiveScopesGranted\n ) {\n return \n }\n\n return null\n}\n\nfunction RedirectToSource () {\n const { id } = useParams()\n return \n}\n\nfunction PageHistory ({ visitedPages }) {\n const location = useLocation()\n useEffect(() => {\n visitedPages.current.push(location.pathname)\n }, [location, visitedPages])\n return null\n}\n\nfunction SwitchToPlayground () {\n const dispatch = useDispatch()\n useEffect(() => {\n dispatch(switchPlayground(true))\n }, [dispatch])\n return null\n}\n\nfunction NotFoundPage () {\n const dispatch = useDispatch()\n const userStream = useSelector(state => state.user.stream)\n const workspaceId = userStream?.workspaceId\n return (\n } title='404' subTitle={\n <>\n

Page not found

\n {(userStream && !workspaceId) // stream is loaded and user is not in workspace\n ? (\n
\n

To access private reports join workspace.

\n \n
\n )\n : null}\n \n }\n />\n )\n}\n\nfunction ErrorPage ({ icon, title, subTitle }) {\n const history = useHistory()\n return (\n \n

{subTitle}

\n
\n \n
\n \n }\n />\n )\n}\n\nexport default function App () {\n const errorMessage = useSelector(state => state.httpError.message)\n const status = useSelector(state => state.httpError.status)\n const env = useSelector(state => state.env)\n const envLoaded = env.loaded\n const userDefinedConnection = useSelector(state => state.connection.userDefined)\n const dispatch = useDispatch()\n const visitedPages = React.useRef(['/'])\n const storageLoaded = useSelector(state => state.storage.loaded)\n const page401 = window.location.pathname.startsWith('/401')\n\n useEffect(() => {\n dispatch(loadSessionStorage())\n dispatch(loadLocalStorage())\n }, [dispatch])\n\n useEffect(() => {\n if (page401 || envLoaded) {\n return\n }\n dispatch(getEnv())\n }, [dispatch, page401, envLoaded])\n\n // do not call API until storage is loaded and environment is loaded and not 401\n const loadData = storageLoaded && env.loaded && status !== 401\n\n useEffect(() => {\n if (!loadData) {\n return\n }\n dispatch(subscribeUserStream())\n dispatch(getUsage())\n return () => {\n dispatch(unsubscribeUserStream())\n }\n }, [dispatch, loadData])\n\n // do not render until storage is loaded and environment is loaded\n const startRender = loadData || page401 || status === 401\n if (!startRender) {\n return null\n }\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {userDefinedConnection ? : }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n } title='400' subTitle='Bad Request' />\n \n \n } title='403' subTitle={errorMessage || 'Forbidden'} />\n \n \n } title='401' subTitle={errorMessage || 'Unauthorized'} />\n \n \n \n \n \n \n )\n}\n","import { combineReducers } from 'redux'\nimport { Query, QueryJob } from '../../proto/dekart_pb'\nimport { downloadDataset } from '../actions/dataset'\nimport { closeQueryParamSettings, openQueryParamSettings, queryChanged, queryParamChanged, querySource, setQueryParamsValues, setQueryParamValue, updateQueryParamsFromQueries } from '../actions/query'\nimport { openReport, reportUpdate } from '../actions/report'\nimport { ActionTypes as KeplerActionTypes } from '@dekart-xyz/kepler.gl/dist/actions'\n\nexport function queries (state = [], action) {\n switch (action.type) {\n case openReport.name:\n return []\n case reportUpdate.name:\n return action.queriesList\n default:\n return state\n }\n}\n\nexport function numRunningQueries (state = 0, action) {\n switch (action.type) {\n case openReport.name:\n return 0\n case reportUpdate.name:\n return action.queryJobsList.filter(job => job.queryParamsHash === action.hash).reduce((loadingNumber, q) => {\n switch (q.jobStatus) {\n case QueryJob.JobStatus.JOB_STATUS_PENDING:\n case QueryJob.JobStatus.JOB_STATUS_RUNNING:\n case QueryJob.JobStatus.JOB_STATUS_READING_RESULTS:\n return loadingNumber + 1\n default:\n return loadingNumber\n }\n }, 0)\n default:\n return state\n }\n}\n\nexport function queryJobs (state = [], action) {\n switch (action.type) {\n case openReport.name:\n return []\n case reportUpdate.name:\n return action.queryJobsList\n default:\n return state\n }\n}\n\nexport function queryStatus (state = {}, action) {\n switch (action.type) {\n case KeplerActionTypes.ADD_DATA_TO_MAP:\n if (action.payload.datasets && action.payload.datasets.info) {\n const datasetId = action.payload.datasets.info.id\n const queryId = Object.keys(state).find((queryId) => datasetId === state[queryId].datasetId)\n return {\n ...state,\n [queryId]: {\n ...state[queryId],\n downloadingResults: false\n }\n }\n }\n return state\n case downloadDataset.name:\n return action.dataset.queryId\n ? {\n ...state,\n [action.dataset.queryId]: {\n ...state[action.dataset.queryId],\n downloadingResults: true,\n datasetId: action.dataset.id\n }\n }\n : state\n case queryChanged.name:\n return {\n ...state,\n [action.queryId]: {\n ...state[action.queryId],\n changed: action.changed,\n queryText: action.queryText\n }\n }\n case querySource.name:\n if (\n state[action.queryId] &&\n state[action.queryId].querySourceId === action.querySourceId\n ) {\n if (state[action.queryId].changed) {\n if (action.queryText === state[action.queryId].queryText) {\n return {\n ...state,\n [action.queryId]: {\n ...state[action.queryId],\n changed: false,\n downloadingSource: false\n }\n }\n } else {\n // query text changed since last saved\n return {\n ...state,\n [action.queryId]: {\n ...state[action.queryId],\n downloadingSource: false\n }\n }\n }\n } else {\n // update query text from remote state\n return {\n ...state,\n [action.queryId]: {\n ...state[action.queryId],\n queryText: action.queryText,\n downloadingSource: false\n }\n }\n }\n }\n return state\n case reportUpdate.name:\n return action.queriesList.reduce(function (queryStatus, query) {\n const queryJob = action.queryJobsList.find(job => job.queryId === query.id && job.queryParamsHash === action.hash)\n queryStatus[query.id] = {\n // can run if no job or job is done\n canRun: queryJob ? [QueryJob.JobStatus.JOB_STATUS_UNSPECIFIED, QueryJob.JobStatus.JOB_STATUS_DONE, QueryJob.JobStatus.JOB_STATUS_DONE_LEGACY].includes(queryJob.jobStatus) : true,\n downloadingResults: false,\n querySourceId: query.querySourceId,\n querySource: query.querySource,\n downloadingSource: !state[query.id] // adding query first time\n }\n const wasChanged = state[query.id] ? state[query.id].changed : false\n if (query.querySource === Query.QuerySource.QUERY_SOURCE_INLINE) {\n // if it was not changed query will update to remote state\n // otherwise compare remote state to local state\n const changed = wasChanged ? state[query.id].queryText !== query.queryText : false\n const queryText = wasChanged ? state[query.id].queryText : query.queryText\n Object.assign(queryStatus[query.id], {\n changed,\n queryText,\n downloadingSource: false\n })\n } else {\n Object.assign(queryStatus[query.id], {\n changed: wasChanged,\n queryText: state[query.id] ? state[query.id].queryText : ''\n })\n }\n return queryStatus\n }, {})\n default:\n return state\n }\n}\n\n// query parameters\n\nfunction queryParamsValues (state = {}, action) {\n switch (action.type) {\n case setQueryParamsValues.name:\n return action.values\n case setQueryParamValue.name:\n return {\n ...state,\n [action.name]: action.value\n }\n default:\n return state\n }\n}\n\nfunction queryParamsUrl (state = '', action) {\n switch (action.type) {\n case setQueryParamsValues.name:\n return action.url\n default:\n return state\n }\n}\n\nfunction queryParamsModal (state = null, action) {\n switch (action.type) {\n case openQueryParamSettings.name:\n return action.name\n case closeQueryParamSettings.name:\n return null\n case queryParamChanged.name:\n return null\n default:\n return state\n }\n}\n\nfunction queryParamsList (state = [], action) {\n switch (action.type) {\n case queryParamChanged.name:\n return state.slice()\n case openReport.name:\n return []\n case reportUpdate.name:\n return structuredClone(action.report.queryParamsList)\n case updateQueryParamsFromQueries.name:\n return action.queryParamsList\n default:\n return state\n }\n}\n\nconst emptyStringHash = 'd41d8cd98f00b204e9800998ecf8427e'\n\nfunction queryParamsHash (state = emptyStringHash, action) {\n switch (action.type) {\n case setQueryParamsValues.name:\n return action.hash\n default:\n return state\n }\n}\n\nexport const queryParams = combineReducers({\n list: queryParamsList,\n values: queryParamsValues,\n modal: queryParamsModal,\n url: queryParamsUrl,\n hash: queryParamsHash\n})\n","import { setError } from './message'\nimport { version } from '../../../package.json'\nimport semver from 'semver'\n\nexport function testVersion () {\n return async (dispatch) => {\n dispatch({ type: testVersion.name })\n try {\n const res = await window.fetch('https://api.github.com/repos/dekart-xyz/dekart/releases')\n if (!res.ok) {\n throw new Error(`Fetching releases: ${res.statusMessage}`)\n }\n const releases = await res.json()\n const validReleases = releases.filter(({ draft, prerelease }) => !draft && !prerelease).filter(({ tag_name: tagName }) => {\n if (tagName.match(/^v/)) {\n const releaseVersion = tagName.slice(1)\n if (semver.valid(releaseVersion) && semver.gt(releaseVersion, version)) {\n return true\n }\n }\n return false\n })\n if (validReleases.length) {\n dispatch(newRelease(releases[0]))\n }\n } catch (err) {\n dispatch(setError(err))\n }\n }\n}\n\nexport function newRelease (release) {\n return { type: newRelease.name, release }\n}\n","import { combineReducers } from 'redux'\nimport { userStreamUpdate } from '../actions/user'\nimport { closeConnectionDialog, connectionChanged, connectionCreated, connectionListUpdate, connectionSaved, editConnection, newConnection, newConnectionScreen, projectListUpdate, reOpenDialog, saveConnection, testConnection, testConnectionResponse } from '../actions/connection'\nimport { sessionStorageInit, updateSessionStorage } from '../actions/sessionStorage'\n\nfunction dialog (state = {\n visible: false,\n loading: true,\n id: null,\n connectionType: null,\n bigqueryKey: false\n}, action) {\n switch (action.type) {\n case closeConnectionDialog.name:\n return {\n ...state,\n visible: false\n }\n case editConnection.name:\n return {\n ...state,\n id: action.id,\n connectionType: action.connectionType,\n visible: true,\n loading: false,\n bigqueryKey: action.bigqueryKey\n }\n case newConnection.name:\n return {\n ...state,\n visible: true,\n id: null,\n loading: false,\n connectionType: action.connectionType,\n bigqueryKey: action.bigqueryKey\n }\n case connectionCreated.name:\n return {\n ...state,\n id: action.id,\n loading: false\n }\n case saveConnection.name:\n return {\n ...state,\n loading: true\n }\n case connectionSaved.name:\n return {\n ...state,\n loading: false,\n visible: false,\n id: null\n }\n default:\n return state\n }\n}\n\nfunction test (state = {\n tested: false,\n testing: false,\n success: false,\n error: ''\n}, action) {\n switch (action.type) {\n case testConnection.name:\n return {\n ...state,\n testing: true,\n success: false,\n error: ''\n }\n case testConnectionResponse.name:\n return {\n ...state,\n tested: true,\n testing: false,\n success: action.success,\n error: action.error\n }\n case connectionChanged.name:\n return {\n ...state,\n tested: false,\n success: false,\n error: ''\n }\n default:\n return state\n }\n}\n\nfunction list (state = [], action) {\n switch (action.type) {\n case connectionListUpdate.name:\n return action.connectionsList\n default:\n return state\n }\n}\n\nfunction listLoaded (state = false, action) {\n switch (action.type) {\n case connectionListUpdate.name:\n return true\n default:\n return state\n }\n}\n\n// in cloud it's always user defined, except for playground\nfunction userDefined (state = true, action) {\n switch (action.type) {\n case sessionStorageInit.name:\n // in playground it's not user defined\n if (action.current.isPlayground) {\n return false\n }\n return state\n case userStreamUpdate.name:\n if (\n !action.userStream.planType // user is not yet in workspace\n ) {\n return false\n }\n return state\n default:\n return state\n }\n}\n\nfunction projects (state = null, action) {\n switch (action.type) {\n case projectListUpdate.name:\n return action.projectsList\n default:\n return state\n }\n}\n\nfunction screen (state = false, action) {\n switch (action.type) {\n case newConnectionScreen.name:\n return action.show\n case newConnection.name:\n return false\n default:\n return state\n }\n}\n\nfunction lastOpenedDialog (state = null, action) {\n switch (action.type) {\n case sessionStorageInit.name:\n return action.current.lastOpenedDialog || null\n case reOpenDialog.name:\n return null // only open dialog once\n default:\n return state\n }\n}\n\nfunction redirectWhenSaveConnection (state = null, action) {\n switch (action.type) {\n case updateSessionStorage.name:\n case sessionStorageInit.name:\n return action.current.redirectWhenSaveConnection || null // for backward compatibility\n default:\n return state\n }\n}\n\nexport default combineReducers({\n dialog,\n test,\n list,\n userDefined,\n listLoaded,\n projects,\n screen,\n lastOpenedDialog,\n redirectWhenSaveConnection\n})\n","import { combineReducers } from 'redux'\nimport { needSensitiveScopes, userStreamUpdate } from '../actions/user'\nimport { localStorageInit } from '../actions/localStorage'\nimport { sessionStorageInit } from '../actions/sessionStorage'\nimport { setRedirectState } from '../actions/redirect'\nimport { UserRole } from '../../proto/dekart_pb'\n\nfunction stream (state = null, action) {\n switch (action.type) {\n case userStreamUpdate.name:\n return action.userStream\n default:\n return state\n }\n}\n\n// sensitiveScopesGrantedOnce combines backend and local storage state\nfunction sensitiveScopesGrantedOnce (state = false, action) {\n switch (action.type) {\n case localStorageInit.name:\n return action.current.sensitiveScopesGrantedOnce\n case setRedirectState.name: {\n if (action.redirectState.getSensitiveScopesGranted()) {\n return true\n } else {\n return state\n }\n }\n default:\n return state\n }\n}\n\nfunction sensitiveScopesGranted (state = false, action) {\n switch (action.type) {\n case setRedirectState.name: {\n if (action.redirectState.getSensitiveScopesGranted()) {\n return true\n }\n return state\n }\n default:\n return state\n }\n}\n\nfunction sensitiveScopesNeeded (state = false, action) {\n switch (action.type) {\n case needSensitiveScopes.name:\n return true\n default:\n return state\n }\n}\n\nfunction loginHint (state = null, action) {\n switch (action.type) {\n case localStorageInit.name:\n return action.current.loginHint || state\n case userStreamUpdate.name:\n return action.userStream.email\n default:\n return state\n }\n}\n\nfunction isPlayground (state = false, action) {\n switch (action.type) {\n case sessionStorageInit.name:\n // prevent returning undefined when sessionStorage was deleted\n return Boolean(action.current.isPlayground)\n default:\n return state\n }\n}\n\nfunction redirectStateReceived (state = false, action) {\n switch (action.type) {\n case setRedirectState.name:\n return true\n default:\n return state\n }\n}\n\nfunction isViewer (state = true, action) {\n switch (action.type) {\n case userStreamUpdate.name:\n return action.userStream.role === UserRole.ROLE_VIEWER\n default:\n return state\n }\n}\n\nfunction isAdmin (state = false, action) {\n switch (action.type) {\n case userStreamUpdate.name:\n return action.userStream.role === UserRole.ROLE_ADMIN\n default:\n return state\n }\n}\n\nexport default combineReducers({\n stream,\n sensitiveScopesGrantedOnce,\n sensitiveScopesNeeded,\n sensitiveScopesGranted,\n loginHint,\n isPlayground,\n redirectStateReceived,\n isViewer,\n isAdmin\n})\n","import { combineReducers } from 'redux'\nimport { addDatasetToMap, cancelDownloading, closeDatasetSettingsModal, downloadDataset, downloadingProgress, finishAddingDatasetToMap, finishDownloading, keplerDatasetFinishUpdating, keplerDatasetStartUpdating, openDatasetSettingsModal, processDownloadError, setActiveDataset } from '../actions/dataset'\nimport { openReport, reportUpdate } from '../actions/report'\n\nfunction downloading (state = [], action) {\n switch (action.type) {\n case downloadDataset.name:\n return state.concat({\n dataset: action.dataset,\n controller: action.controller,\n loaded: 0\n })\n case downloadingProgress.name:\n return state.map(d => {\n if (d.dataset.id === action.dataset.id) {\n return {\n ...d,\n loaded: action.loaded\n }\n }\n return d\n })\n case cancelDownloading.name:\n return []\n case addDatasetToMap.name:\n return state.map(d => {\n if (d.dataset.id === action.dataset.id) {\n return {\n ...d,\n addingToMap: true\n }\n }\n return d\n })\n case finishDownloading.name:\n return state.map(d => {\n if (d.dataset.id === action.dataset.id) {\n return {\n ...d,\n res: action.res,\n extension: action.extension,\n label: action.label,\n prevDatasetsList: action.prevDatasetsList\n }\n }\n return d\n })\n case finishAddingDatasetToMap.name: // dataset added to map, remove from downloading list\n case processDownloadError.name: // error occurred, remove from downloading list\n return state.filter(d => d.dataset.id !== action.dataset.id)\n default:\n return state\n }\n}\n\nfunction active (state = null, action) {\n const { datasetsList, prevDatasetsList } = action\n switch (action.type) {\n case openReport.name:\n return null\n case setActiveDataset.name:\n return action.dataset\n case reportUpdate.name:\n if (!state) {\n return datasetsList[0] || state\n }\n if (datasetsList.length > prevDatasetsList.length) {\n return datasetsList.slice(-1)[0]\n }\n return {\n ...(datasetsList.find(d => d.id === state.id) || datasetsList[0])\n }\n default:\n return state\n }\n}\n\nfunction list (state = [], action) {\n switch (action.type) {\n case openReport.name:\n return []\n case reportUpdate.name:\n return action.datasetsList\n default:\n return state\n }\n}\n\nfunction settings (state = { datasetId: null, visible: false }, action) {\n switch (action.type) {\n case openDatasetSettingsModal.name:\n return {\n datasetId: action.datasetId,\n visible: true\n }\n case closeDatasetSettingsModal.name:\n return {\n datasetId: null,\n visible: false\n }\n default:\n return state\n }\n}\n\n// Number of datasets that are currently updating on kepler\nfunction updatingNum (state = 0, action) {\n switch (action.type) {\n case keplerDatasetStartUpdating.name:\n return state + 1\n case keplerDatasetFinishUpdating.name:\n return state - 1\n default:\n return state\n }\n}\n\nexport default combineReducers({\n downloading,\n active,\n settings,\n list,\n updatingNum\n})\n","import { localStorageInit } from '../actions/localStorage'\nimport { sessionStorageInit } from '../actions/sessionStorage'\n\nconst initialState = {\n loaded: false, // both loaded\n sessionStorageLoaded: false,\n localStorageLoaded: false\n}\n\nexport default function storage (state = initialState, action) {\n switch (action.type) {\n case sessionStorageInit.name:\n return {\n ...state,\n loaded: state.localStorageLoaded, // both loaded\n sessionStorageLoaded: true\n }\n case localStorageInit.name:\n return {\n ...state,\n loaded: state.sessionStorageLoaded, // both loaded\n localStorageLoaded: true\n }\n default:\n return state\n }\n}\n","import { combineReducers } from 'redux'\nimport sessionStorageReset, { sessionStorageInit, updateSessionStorage } from '../actions/sessionStorage'\n\nfunction current (state = null, action) {\n switch (action.type) {\n case sessionStorageReset.name:\n case sessionStorageInit.name:\n return action.current\n case updateSessionStorage.name:\n return action.current\n default:\n return state\n }\n}\n\nfunction init (state = false, action) {\n switch (action.type) {\n case sessionStorageInit.name:\n return true\n default:\n return state\n }\n}\n\nexport default combineReducers({\n current,\n init\n})\n","import { combineReducers } from 'redux'\nimport { addReadme, removeReadme, setPreview, setReadmeValue, showReadmeTab } from '../actions/readme'\nimport { reportUpdate } from '../actions/report'\nimport { setActiveDataset } from '../actions/dataset'\n\nfunction showPreview (state = true, action) {\n switch (action.type) {\n case setPreview.name:\n return action.show\n case addReadme.name:\n return false\n default:\n return state\n }\n}\n\nfunction showTab (state = true, action) {\n switch (action.type) {\n case reportUpdate.name: {\n const { readme } = action.report\n return readme ? state : false\n }\n case addReadme.name:\n case showReadmeTab.name:\n return true\n case removeReadme.name:\n case setActiveDataset.name:\n return false\n default:\n return state\n }\n}\n\nfunction markdown (state = null, action) {\n switch (action.type) {\n case setReadmeValue.name:\n case addReadme.name:\n return action.markdown\n case reportUpdate.name: {\n const { readme } = action.report\n return readme && state === null ? readme.markdown : state\n }\n default:\n return state\n }\n}\n\nexport default combineReducers({\n showPreview,\n markdown,\n showTab\n})\n","import { combineReducers } from 'redux'\nimport { setAnalyticsData, setAnalyticsModalOpen } from '../actions/analytics'\nimport { closeReport, openReport } from '../actions/report'\n\nfunction data (state = null, action) {\n switch (action.type) {\n case openReport.name:\n case closeReport.name:\n return null\n case setAnalyticsData.name:\n return action.data\n default:\n return state\n }\n}\n\nfunction modalOpen (state = false, action) {\n switch (action.type) {\n case setAnalyticsModalOpen.name:\n return action.modalOpen\n default:\n return state\n }\n}\n\nexport default combineReducers({\n modalOpen,\n data\n})\n","import { combineReducers } from 'redux'\nimport { ActionTypes as KeplerActionTypes } from '@dekart-xyz/kepler.gl/dist/actions'\nimport { setUserMapboxAccessTokenUpdater } from '@dekart-xyz/kepler.gl/dist/reducers/ui-state-updaters'\nimport { openReport, reportUpdate, forkReport, saveMap, reportTitleChange, newReport, newForkedReport, unsubscribeReports, reportsListUpdate, closeReport, toggleReportEdit, setReportChanged, savedReport, toggleReportFullscreen } from '../actions/report'\nimport { setStreamError } from '../actions/message'\nimport { numRunningQueries, queries, queryJobs, queryParams, queryStatus } from './queryReducer'\nimport { setUsage } from '../actions/usage'\nimport { setEnv } from '../actions/env'\nimport { newRelease } from '../actions/version'\nimport { uploadFile, uploadFileProgress, uploadFileStateChange } from '../actions/file'\nimport keplerGlReducer from '@dekart-xyz/kepler.gl/dist/reducers'\nimport stream from './streamReducer'\nimport token from './tokenReducer'\nimport connection from './connectionReducer'\nimport user from './userReducer'\nimport workspace from './workspaceReducer'\nimport httpError from './httpErrorReducer'\nimport dataset from './datasetReducer'\nimport storage from './storageReducer'\nimport { setRedirectState } from '../actions/redirect'\nimport { queryChanged, queryParamChanged, updateQueryParamsFromQueries } from '../actions/query'\nimport sessionStorage from './sessionStorageReducer'\nimport readme from './readmeReducer'\nimport { setReadmeValue } from '../actions/readme'\nimport analytics from './analyticsReducer'\n\nconst customKeplerGlReducer = keplerGlReducer.initialState({\n uiState: {\n currentModal: null,\n activeSidePanel: null\n }\n})\n\nfunction keplerGl (state, action) {\n const newState = customKeplerGlReducer(state, action)\n switch (action.type) {\n case KeplerActionTypes.REGISTER_ENTRY:\n // set mapbox token for map export\n newState.kepler.uiState = setUserMapboxAccessTokenUpdater(newState.kepler.uiState, {\n payload: newState.kepler.mapStyle.mapboxApiAccessToken\n })\n return newState\n default:\n return newState\n }\n}\n\nfunction report (state = null, action) {\n switch (action.type) {\n case openReport.name:\n return null\n case closeReport.name:\n return null\n case reportUpdate.name:\n return action.report\n default:\n return state\n }\n}\n\nfunction files (state = [], action) {\n switch (action.type) {\n case openReport.name:\n return []\n case reportUpdate.name:\n return action.filesList\n default:\n return state\n }\n}\n\nconst defaultReportStatus = {\n dataAdded: false,\n title: null,\n edit: false, // edit UI mode (does not mean user has write access)\n online: false,\n newReportId: null,\n lastUpdated: 0,\n opened: false,\n saving: false,\n lastChanged: 0,\n lastSaved: 0,\n fullscreen: null\n}\nfunction reportStatus (state = defaultReportStatus, action) {\n switch (action.type) {\n case updateQueryParamsFromQueries.name:\n case queryParamChanged.name:\n case queryChanged.name:\n case setReadmeValue.name:\n case setReportChanged.name: {\n const lastChanged = Date.now()\n return {\n ...state,\n lastChanged\n }\n }\n case forkReport.name:\n case saveMap.name:\n return {\n ...state,\n saving: true\n }\n case reportTitleChange.name:\n return {\n ...state,\n title: action.title,\n lastChanged: Date.now()\n }\n case savedReport.name:\n return {\n ...state,\n saving: false,\n lastSaved: action.lastSaved\n }\n case toggleReportFullscreen.name:\n return {\n ...state,\n fullscreen: !state.fullscreen\n }\n case reportUpdate.name: {\n let fullscreen = state.fullscreen\n if (fullscreen === null) { // not defined yet, if defined, keep it as is\n const { readme } = action.report\n fullscreen = !(readme || state.edit)\n }\n return {\n ...state,\n online: true,\n title: action.report.title,\n lastUpdated: Date.now(),\n fullscreen\n }\n }\n case openReport.name: {\n return {\n ...defaultReportStatus,\n opened: true,\n edit: state.edit\n }\n }\n case toggleReportEdit.name: {\n return {\n ...state,\n edit: action.edit,\n fullscreen: action.fullscreen\n }\n }\n case closeReport.name:\n return defaultReportStatus\n case setStreamError.name:\n return {\n ...state,\n online: false\n }\n case KeplerActionTypes.ADD_DATA_TO_MAP:\n return {\n ...state,\n dataAdded: true\n }\n case newReport.name:\n case newForkedReport.name:\n return {\n ...state,\n newReportId: action.id\n }\n default:\n return state\n }\n}\nconst defaultReportsList = { loaded: false, reports: [] }\nfunction reportsList (state = defaultReportsList, action) {\n switch (action.type) {\n case unsubscribeReports.name:\n return defaultReportsList\n case reportsListUpdate.name:\n return {\n ...state,\n loaded: true,\n my: action.reportsList.filter(report => !report.archived && report.isAuthor),\n archived: action.reportsList.filter(report => report.archived),\n discoverable: action.reportsList.filter(report => report.discoverable && !report.archived)\n }\n default:\n return state\n }\n}\n\nconst defaultUsage = { loaded: false, stats: null }\nfunction usage (state = defaultUsage, action) {\n switch (action.type) {\n case setUsage.name:\n return {\n loaded: true,\n stats: action.stats\n }\n default:\n return state\n }\n}\n\nconst defaultEnv = { loaded: false, variables: {}, authEnabled: null, authType: 'UNSPECIFIED' }\nfunction env (state = defaultEnv, action) {\n switch (action.type) {\n case setRedirectState.name:\n return {\n ...state,\n loaded: false // reset when user auth details like token change\n }\n case setEnv.name:\n return {\n loaded: true,\n variables: action.variables,\n authEnabled: Boolean(action.variables.AUTH_ENABLED)\n }\n default:\n return state\n }\n}\n\nfunction release (state = null, action) {\n switch (action.type) {\n case newRelease.name:\n return action.release\n default:\n return state\n }\n}\n\nfunction fileUploadStatus (state = {}, action) {\n switch (action.type) {\n case uploadFile.name:\n return {\n ...state,\n [action.fileId]: {\n readyState: 0,\n loaded: 0,\n total: action.file.size,\n status: 0\n }\n }\n case uploadFileStateChange.name:\n return {\n ...state,\n [action.fileId]: {\n ...state[action.fileId],\n readyState: action.readyState,\n status: action.status\n }\n }\n case uploadFileProgress.name:\n return {\n ...state,\n [action.fileId]: {\n ...state[action.fileId],\n loaded: action.loaded\n }\n }\n default:\n return state\n }\n}\n\nexport default combineReducers({\n keplerGl,\n report,\n reportStatus,\n reportsList,\n env,\n httpError,\n release,\n files,\n fileUploadStatus,\n usage,\n connection,\n token,\n stream,\n user,\n workspace,\n dataset,\n storage,\n queries,\n queryStatus,\n queryParams,\n queryJobs,\n numRunningQueries,\n sessionStorage,\n readme,\n analytics\n})\n","import { setHttpError } from '../actions/message'\nimport { authRedirect, setRedirectState } from '../actions/redirect'\n\nexport default function httpError (state = {}, action) {\n switch (action.type) {\n case setHttpError.name: {\n if (action.status === 401 && state.doNotAuthenticate) {\n // just keep showing auth error, do not override it with other 401\n return state\n } else if (state.redirecting) {\n // do nothing as page is getting redirected and requests are getting cancelled\n return state\n } else {\n return {\n status: action.status,\n message: action.message,\n doNotAuthenticate: false\n }\n }\n }\n case authRedirect.name: {\n return {\n ...state,\n redirecting: true\n }\n }\n case setRedirectState.name: {\n const err = action.redirectState.getError()\n if (err) {\n return {\n status: 401,\n message: err,\n doNotAuthenticate: true\n }\n } else {\n return {} // reset error\n }\n }\n default:\n return state\n }\n}\n","import { setRedirectState } from '../actions/redirect'\n\nexport default function token (state = null, action) {\n switch (action.type) {\n case setRedirectState.name: {\n const tokenJson = action.redirectState.getTokenJson()\n if (tokenJson) {\n return JSON.parse(tokenJson)\n }\n return state\n }\n default:\n return state\n }\n}\n","import { grpcStream, grpcStreamCancel } from '../actions/grpc'\n\nexport default function stream (state = {}, action) {\n switch (action.type) {\n case grpcStream.name: {\n const { endpoint, cancelable } = action\n return { ...state, [endpoint.methodName]: cancelable }\n }\n case grpcStreamCancel.name: {\n const { endpoint } = action\n return { ...state, [endpoint.methodName]: null }\n }\n default:\n return state\n }\n}\n","import { workspaceUpdate } from '../actions/workspace'\n\nexport default function workspace (state = {\n id: null,\n name: null,\n subscription: null,\n users: [],\n invites: [],\n addedUsersCount: NaN\n}, action) {\n switch (action.type) {\n case workspaceUpdate.name:\n return {\n id: action.workspace ? action.workspace.id : null,\n name: action.workspace ? action.workspace.name : null,\n subscription: action.subscription || null,\n users: action.usersList || [],\n invites: action.invitesList || [],\n addedUsersCount: action.addedUsersCount\n }\n default:\n return state\n }\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport App from './App'\nimport './index.css'\nimport { createStore, applyMiddleware, compose } from 'redux'\nimport { Provider } from 'react-redux'\nimport thunk from 'redux-thunk'\n// import { createLogger } from 'redux-logger'\nimport reducer from './reducers/rootReducer'\nimport { taskMiddleware } from 'react-palm/tasks'\nimport screenshotInit from './lib/screenshot'\n\nconst store = createStore(\n reducer,\n compose(\n applyMiddleware(taskMiddleware, thunk/*, createLogger() */)\n )\n)\nscreenshotInit(store)\n\nReactDOM.render(\n \n \n \n ,\n document.getElementById('root')\n)\n","import { setExportImageSetting } from '@dekart-xyz/kepler.gl/dist/actions/ui-state-actions'\n\nexport default function screenshotInit (store) {\n // This function is called from the e2e tests.\n window.dekartMapScreenshot = () => {\n return new Promise((resolve) => {\n const unsubscribe = store.subscribe(() => {\n const { keplerGl } = store.getState()\n const {\n kepler: {\n uiState\n }\n } = keplerGl\n if (uiState) {\n const { exportImage } = uiState\n if (exportImage && exportImage.imageDataUri) {\n unsubscribe()\n resolve(exportImage)\n }\n }\n })\n const { keplerGl } = store.getState()\n const { kepler: { mapState: { width, height } } } = keplerGl\n store.dispatch(setExportImageSetting({\n exporting: true,\n processing: true,\n mapH: height,\n mapW: width\n }))\n })\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spacer\":\"ConnectionModal_spacer__3p6Ki\",\"modalFooter\":\"ConnectionModal_modalFooter__3Vo4U\",\"testStatus\":\"ConnectionModal_testStatus__3a9aB\",\"datasetsCountAlert\":\"ConnectionModal_datasetsCountAlert__1wPg_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"plans\":\"SubscriptionTab_plans__3y0It\",\"planTitle\":\"SubscriptionTab_planTitle__fe1q-\",\"planTitleText\":\"SubscriptionTab_planTitleText__3qOxW\",\"planTitleDescription\":\"SubscriptionTab_planTitleDescription__28ZEH\",\"planTitlePrice\":\"SubscriptionTab_planTitlePrice__1iraI\",\"cancelAt\":\"SubscriptionTab_cancelAt__1GSZx\",\"notSure\":\"SubscriptionTab_notSure__3VFir\",\"termsLink\":\"SubscriptionTab_termsLink__2_r6L\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"stats\":\"AnalyticsModal_stats__2HiRZ\",\"statsColumn\":\"AnalyticsModal_statsColumn__AIsbt\",\"downloadButton\":\"AnalyticsModal_downloadButton__2Q_R2\",\"downloadTooltip\":\"AnalyticsModal_downloadTooltip__2AugQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"datasetSelector\":\"Dataset_datasetSelector__2BJS_\",\"selectorButtons\":\"Dataset_selectorButtons__zkQZt\",\"selector\":\"Dataset_selector__2RSxu\",\"datasource\":\"Dataset_datasource__CeDA5\",\"connectionSelect\":\"Dataset_connectionSelect__2ph79\",\"connectionEditButton\":\"Dataset_connectionEditButton__3beaA\",\"status\":\"Dataset_status__icSGj\",\"spacer\":\"Dataset_spacer__1d_BP\",\"modalFooter\":\"Dataset_modalFooter__1c0i6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"queryParams\":\"QueryParams_queryParams__11KSI\",\"wrapper\":\"QueryParams_wrapper__3T2Vz\",\"settingsButton\":\"QueryParams_settingsButton__2PFTQ\",\"textParameter\":\"QueryParams_textParameter__2YmTG\",\"label\":\"QueryParams_label__2EBW6\",\"settingsButtonDisabled\":\"QueryParams_settingsButtonDisabled__2uI64\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"onboarding\":\"Onboarding_onboarding__1rREg\",\"onboardingIcon\":\"Onboarding_onboardingIcon__3FVZc\",\"onboardingSteps\":\"Onboarding_onboardingSteps__2JOd7\",\"onboardingTitle\":\"Onboarding_onboardingTitle__1g0ld\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dekartLink\":\"DekartMenu_dekartLink__1ahtM\",\"dekartMenu\":\"DekartMenu_dekartMenu__157Nl\",\"subMenu\":\"DekartMenu_subMenu__2ko8X\",\"dekartIcon\":\"DekartMenu_dekartIcon__nmqfk\",\"workspaceIndicator\":\"DekartMenu_workspaceIndicator__3oPv_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reportHeaderButtons\":\"ReportHeaderButtons_reportHeaderButtons__3bMbx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"datasource\":\"Datasource_datasource__3OU9N\",\"bigquery\":\"Datasource_bigquery__u0a56\",\"snowflake\":\"Datasource_snowflake__2_g8M\",\"athena\":\"Datasource_athena__2a8Nv\",\"datasourceIcon\":\"Datasource_datasourceIcon__3WddL\"};","// package: \n// file: proto/dekart.proto\n\nvar proto_dekart_pb = require(\"../proto/dekart_pb\");\nvar grpc = require(\"@improbable-eng/grpc-web\").grpc;\n\nvar Dekart = (function () {\n function Dekart() {}\n Dekart.serviceName = \"Dekart\";\n return Dekart;\n}());\n\nDekart.CreateReport = {\n methodName: \"CreateReport\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.CreateReportRequest,\n responseType: proto_dekart_pb.CreateReportResponse\n};\n\nDekart.ForkReport = {\n methodName: \"ForkReport\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.ForkReportRequest,\n responseType: proto_dekart_pb.ForkReportResponse\n};\n\nDekart.UpdateReport = {\n methodName: \"UpdateReport\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.UpdateReportRequest,\n responseType: proto_dekart_pb.UpdateReportResponse\n};\n\nDekart.ArchiveReport = {\n methodName: \"ArchiveReport\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.ArchiveReportRequest,\n responseType: proto_dekart_pb.ArchiveReportResponse\n};\n\nDekart.SetDiscoverable = {\n methodName: \"SetDiscoverable\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.SetDiscoverableRequest,\n responseType: proto_dekart_pb.SetDiscoverableResponse\n};\n\nDekart.PublishReport = {\n methodName: \"PublishReport\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.PublishReportRequest,\n responseType: proto_dekart_pb.PublishReportResponse\n};\n\nDekart.AllowExportDatasets = {\n methodName: \"AllowExportDatasets\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.AllowExportDatasetsRequest,\n responseType: proto_dekart_pb.AllowExportDatasetsResponse\n};\n\nDekart.AddReadme = {\n methodName: \"AddReadme\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.AddReadmeRequest,\n responseType: proto_dekart_pb.AddReadmeResponse\n};\n\nDekart.RemoveReadme = {\n methodName: \"RemoveReadme\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.RemoveReadmeRequest,\n responseType: proto_dekart_pb.RemoveReadmeResponse\n};\n\nDekart.CreateDataset = {\n methodName: \"CreateDataset\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.CreateDatasetRequest,\n responseType: proto_dekart_pb.CreateDatasetResponse\n};\n\nDekart.RemoveDataset = {\n methodName: \"RemoveDataset\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.RemoveDatasetRequest,\n responseType: proto_dekart_pb.RemoveDatasetResponse\n};\n\nDekart.UpdateDatasetName = {\n methodName: \"UpdateDatasetName\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.UpdateDatasetNameRequest,\n responseType: proto_dekart_pb.UpdateDatasetNameResponse\n};\n\nDekart.UpdateDatasetConnection = {\n methodName: \"UpdateDatasetConnection\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.UpdateDatasetConnectionRequest,\n responseType: proto_dekart_pb.UpdateDatasetConnectionResponse\n};\n\nDekart.CreateFile = {\n methodName: \"CreateFile\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.CreateFileRequest,\n responseType: proto_dekart_pb.CreateFileResponse\n};\n\nDekart.CreateQuery = {\n methodName: \"CreateQuery\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.CreateQueryRequest,\n responseType: proto_dekart_pb.CreateQueryResponse\n};\n\nDekart.RunQuery = {\n methodName: \"RunQuery\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.RunQueryRequest,\n responseType: proto_dekart_pb.RunQueryResponse\n};\n\nDekart.RunAllQueries = {\n methodName: \"RunAllQueries\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.RunAllQueriesRequest,\n responseType: proto_dekart_pb.RunAllQueriesResponse\n};\n\nDekart.CancelJob = {\n methodName: \"CancelJob\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.CancelJobRequest,\n responseType: proto_dekart_pb.CancelJobResponse\n};\n\nDekart.GetEnv = {\n methodName: \"GetEnv\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.GetEnvRequest,\n responseType: proto_dekart_pb.GetEnvResponse\n};\n\nDekart.GetReportStream = {\n methodName: \"GetReportStream\",\n service: Dekart,\n requestStream: false,\n responseStream: true,\n requestType: proto_dekart_pb.ReportStreamRequest,\n responseType: proto_dekart_pb.ReportStreamResponse\n};\n\nDekart.GetReportListStream = {\n methodName: \"GetReportListStream\",\n service: Dekart,\n requestStream: false,\n responseStream: true,\n requestType: proto_dekart_pb.ReportListRequest,\n responseType: proto_dekart_pb.ReportListResponse\n};\n\nDekart.GetUserStream = {\n methodName: \"GetUserStream\",\n service: Dekart,\n requestStream: false,\n responseStream: true,\n requestType: proto_dekart_pb.GetUserStreamRequest,\n responseType: proto_dekart_pb.GetUserStreamResponse\n};\n\nDekart.GetUsage = {\n methodName: \"GetUsage\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.GetUsageRequest,\n responseType: proto_dekart_pb.GetUsageResponse\n};\n\nDekart.GetReportAnalytics = {\n methodName: \"GetReportAnalytics\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.GetReportAnalyticsRequest,\n responseType: proto_dekart_pb.GetReportAnalyticsResponse\n};\n\nDekart.CreateConnection = {\n methodName: \"CreateConnection\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.CreateConnectionRequest,\n responseType: proto_dekart_pb.CreateConnectionResponse\n};\n\nDekart.GetGcpProjectList = {\n methodName: \"GetGcpProjectList\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.GetGcpProjectListRequest,\n responseType: proto_dekart_pb.GetGcpProjectListResponse\n};\n\nDekart.UpdateConnection = {\n methodName: \"UpdateConnection\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.UpdateConnectionRequest,\n responseType: proto_dekart_pb.UpdateConnectionResponse\n};\n\nDekart.ArchiveConnection = {\n methodName: \"ArchiveConnection\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.ArchiveConnectionRequest,\n responseType: proto_dekart_pb.ArchiveConnectionResponse\n};\n\nDekart.GetConnectionList = {\n methodName: \"GetConnectionList\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.GetConnectionListRequest,\n responseType: proto_dekart_pb.GetConnectionListResponse\n};\n\nDekart.TestConnection = {\n methodName: \"TestConnection\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.TestConnectionRequest,\n responseType: proto_dekart_pb.TestConnectionResponse\n};\n\nDekart.SetDefaultConnection = {\n methodName: \"SetDefaultConnection\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.SetDefaultConnectionRequest,\n responseType: proto_dekart_pb.SetDefaultConnectionResponse\n};\n\nDekart.RespondToInvite = {\n methodName: \"RespondToInvite\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.RespondToInviteRequest,\n responseType: proto_dekart_pb.RespondToInviteResponse\n};\n\nDekart.CreateSubscription = {\n methodName: \"CreateSubscription\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.CreateSubscriptionRequest,\n responseType: proto_dekart_pb.CreateSubscriptionResponse\n};\n\nDekart.GetStripePortalSession = {\n methodName: \"GetStripePortalSession\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.GetStripePortalSessionRequest,\n responseType: proto_dekart_pb.GetStripePortalSessionResponse\n};\n\nDekart.CreateWorkspace = {\n methodName: \"CreateWorkspace\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.CreateWorkspaceRequest,\n responseType: proto_dekart_pb.CreateWorkspaceResponse\n};\n\nDekart.UpdateWorkspace = {\n methodName: \"UpdateWorkspace\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.UpdateWorkspaceRequest,\n responseType: proto_dekart_pb.UpdateWorkspaceResponse\n};\n\nDekart.GetWorkspace = {\n methodName: \"GetWorkspace\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.GetWorkspaceRequest,\n responseType: proto_dekart_pb.GetWorkspaceResponse\n};\n\nDekart.UpdateWorkspaceUser = {\n methodName: \"UpdateWorkspaceUser\",\n service: Dekart,\n requestStream: false,\n responseStream: false,\n requestType: proto_dekart_pb.UpdateWorkspaceUserRequest,\n responseType: proto_dekart_pb.UpdateWorkspaceUserResponse\n};\n\nexports.Dekart = Dekart;\n\nfunction DekartClient(serviceHost, options) {\n this.serviceHost = serviceHost;\n this.options = options || {};\n}\n\nDekartClient.prototype.createReport = function createReport(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.CreateReport, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.forkReport = function forkReport(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.ForkReport, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.updateReport = function updateReport(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.UpdateReport, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.archiveReport = function archiveReport(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.ArchiveReport, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.setDiscoverable = function setDiscoverable(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.SetDiscoverable, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.publishReport = function publishReport(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.PublishReport, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.allowExportDatasets = function allowExportDatasets(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.AllowExportDatasets, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.addReadme = function addReadme(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.AddReadme, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.removeReadme = function removeReadme(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.RemoveReadme, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.createDataset = function createDataset(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.CreateDataset, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.removeDataset = function removeDataset(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.RemoveDataset, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.updateDatasetName = function updateDatasetName(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.UpdateDatasetName, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.updateDatasetConnection = function updateDatasetConnection(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.UpdateDatasetConnection, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.createFile = function createFile(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.CreateFile, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.createQuery = function createQuery(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.CreateQuery, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.runQuery = function runQuery(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.RunQuery, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.runAllQueries = function runAllQueries(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.RunAllQueries, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.cancelJob = function cancelJob(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.CancelJob, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.getEnv = function getEnv(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.GetEnv, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.getReportStream = function getReportStream(requestMessage, metadata) {\n var listeners = {\n data: [],\n end: [],\n status: []\n };\n var client = grpc.invoke(Dekart.GetReportStream, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onMessage: function (responseMessage) {\n listeners.data.forEach(function (handler) {\n handler(responseMessage);\n });\n },\n onEnd: function (status, statusMessage, trailers) {\n listeners.status.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners.end.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners = null;\n }\n });\n return {\n on: function (type, handler) {\n listeners[type].push(handler);\n return this;\n },\n cancel: function () {\n listeners = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.getReportListStream = function getReportListStream(requestMessage, metadata) {\n var listeners = {\n data: [],\n end: [],\n status: []\n };\n var client = grpc.invoke(Dekart.GetReportListStream, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onMessage: function (responseMessage) {\n listeners.data.forEach(function (handler) {\n handler(responseMessage);\n });\n },\n onEnd: function (status, statusMessage, trailers) {\n listeners.status.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners.end.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners = null;\n }\n });\n return {\n on: function (type, handler) {\n listeners[type].push(handler);\n return this;\n },\n cancel: function () {\n listeners = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.getUserStream = function getUserStream(requestMessage, metadata) {\n var listeners = {\n data: [],\n end: [],\n status: []\n };\n var client = grpc.invoke(Dekart.GetUserStream, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onMessage: function (responseMessage) {\n listeners.data.forEach(function (handler) {\n handler(responseMessage);\n });\n },\n onEnd: function (status, statusMessage, trailers) {\n listeners.status.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners.end.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners = null;\n }\n });\n return {\n on: function (type, handler) {\n listeners[type].push(handler);\n return this;\n },\n cancel: function () {\n listeners = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.getUsage = function getUsage(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.GetUsage, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.getReportAnalytics = function getReportAnalytics(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.GetReportAnalytics, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.createConnection = function createConnection(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.CreateConnection, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.getGcpProjectList = function getGcpProjectList(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.GetGcpProjectList, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.updateConnection = function updateConnection(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.UpdateConnection, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.archiveConnection = function archiveConnection(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.ArchiveConnection, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.getConnectionList = function getConnectionList(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.GetConnectionList, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.testConnection = function testConnection(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.TestConnection, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.setDefaultConnection = function setDefaultConnection(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.SetDefaultConnection, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.respondToInvite = function respondToInvite(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.RespondToInvite, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.createSubscription = function createSubscription(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.CreateSubscription, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.getStripePortalSession = function getStripePortalSession(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.GetStripePortalSession, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.createWorkspace = function createWorkspace(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.CreateWorkspace, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.updateWorkspace = function updateWorkspace(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.UpdateWorkspace, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.getWorkspace = function getWorkspace(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.GetWorkspace, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nDekartClient.prototype.updateWorkspaceUser = function updateWorkspaceUser(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Dekart.UpdateWorkspaceUser, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nexports.DekartClient = DekartClient;\n\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"readme\":\"Readme_readme__KJvaO\",\"previewButton\":\"Readme_previewButton__2Mz_Q\",\"preview\":\"Readme_preview__1Rz7C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"connectionOptions\":\"BigQueryConnectionTypeSelectorModal_connectionOptions__3q3CK\",\"connectionOptionsItem\":\"BigQueryConnectionTypeSelectorModal_connectionOptionsItem__LpCeb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalFooter\":\"ForkOnboarding_modalFooter__1Zn1U\",\"description\":\"ForkOnboarding_description__ElKaV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalFooter\":\"DatasetSettingsModal_modalFooter__17fjv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grantScopesPage\":\"GrantScopesPage_grantScopesPage__20eYv\",\"body\":\"GrantScopesPage_body__1mdbZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"query\":\"Query_query__2MQKC\",\"editor\":\"Query_editor__2c8BV\",\"status\":\"Query_status__26wD1\",\"playgroundWarning\":\"Query_playgroundWarning__2kvpH\",\"errorInfoHtml\":\"Query_errorInfoHtml__1VKp5\",\"statusHead\":\"Query_statusHead__1bYDx\",\"button\":\"Query_button__1nrFA\",\"icon\":\"Query_icon__3DNz_\",\"spacer\":\"Query_spacer__ZBKtt\",\"tooltip\":\"Query_tooltip__1h-mH\",\"message\":\"Query_message__1NzYx\",\"queryStatus\":\"Query_queryStatus__uYP82\",\"success\":\"Query_success__3bqpU\",\"error\":\"Query_error__39WZo\",\"errorMessage\":\"Query_errorMessage__3Z6e9\",\"jobTimer\":\"Query_jobTimer__3Q-w0\",\"dataDoc\":\"Query_dataDoc__XJHOC\",\"sampleQuery\":\"Query_sampleQuery__1he8j\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"file\":\"File_file__2QWUP\",\"fileInfo\":\"File_fileInfo__3tvjX\",\"uploadFileInfo\":\"File_uploadFileInfo__3M4lk\",\"upload\":\"File_upload__1c10-\",\"uploadSubtitle\":\"File_uploadSubtitle__3TBCW\",\"uploadHeader\":\"File_uploadHeader__1EuEk\",\"uploadIcon\":\"File_uploadIcon__2Itk8\",\"uploadFileProgress\":\"File_uploadFileProgress__6IS01\",\"uploadFileName\":\"File_uploadFileName__1GuNZ\",\"fileIcon\":\"File_fileIcon__2FoE8\",\"fileIconExtension\":\"File_fileIconExtension__2glRV\",\"fileIconBody\":\"File_fileIconBody__Xyb-9\",\"fileStatus\":\"File_fileStatus__14ltG\",\"success\":\"File_success__GrQrN\",\"error\":\"File_error__1Wpb6\",\"errorMessage\":\"File_errorMessage__110fo\",\"button\":\"File_button__2TXZL\",\"icon\":\"File_icon__3btGZ\",\"message\":\"File_message__1owYL\",\"statusHead\":\"File_statusHead__2Qn4W\",\"status\":\"File_status__nrAi8\",\"errorStatus\":\"File_errorStatus__nOhvB\",\"processed\":\"File_processed__1lX1s\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"report\":\"ReportPage_report__1_g9b\",\"titleInput\":\"ReportPage_titleInput__3zNlC\",\"title\":\"ReportPage_title__3rUrx\",\"titleText\":\"ReportPage_titleText__1Ja59\",\"titleEditIcon\":\"ReportPage_titleEditIcon__3czb_\",\"titleTextEdit\":\"ReportPage_titleTextEdit__31qVg\",\"body\":\"ReportPage_body__2QcuU\",\"meta\":\"ReportPage_meta__foK8k\",\"tabs\":\"ReportPage_tabs__yRZLj\",\"resizable\":\"ReportPage_resizable__3xD6A\",\"datasetSectionWrapper\":\"ReportPage_datasetSectionWrapper__2oez-\",\"datasetSection\":\"ReportPage_datasetSection__3KXH3\",\"keplerBlock\":\"ReportPage_keplerBlock__3Dtpu\",\"queryTooltip\":\"ReportPage_queryTooltip__xLw0C\",\"keplerFlex\":\"ReportPage_keplerFlex__3S4dg\",\"keplerFlexWrapper\":\"ReportPage_keplerFlexWrapper__2M1fb\",\"toggleFullscreenButton\":\"ReportPage_toggleFullscreenButton__LDFzY\",\"toggleFullscreen\":\"ReportPage_toggleFullscreen__np0AP\",\"readOnly\":\"ReportPage_readOnly__2q-bO\",\"tabIcon\":\"ReportPage_tabIcon__33QnT\",\"query\":\"ReportPage_query__2vZ5m\",\"keplerError\":\"ReportPage_keplerError__1nqAP\",\"addTabIcon\":\"ReportPage_addTabIcon__283fL\",\"addTab\":\"ReportPage_addTab__3fZwm\",\"addTabPane\":\"ReportPage_addTabPane__2Goo9\"};"],"sourceRoot":""}