{"version":3,"sources":["components/FishFail/index.tsx","services/Api.ts","services/MSAL.ts","services/Auth.ts","store/Audits/index.ts","store/Audits/types.ts","utils/mapArrayToObject.ts","store/Devices/index.ts","store/Devices/types.ts","utils/jsonUtil.ts","store/Emails/types.ts","store/Emails/index.ts","store/Jobs/index.ts","store/Jobs/types.ts","store/KubernetesCertificates/index.ts","store/KubernetesCertificates/types.ts","store/Licenses/index.ts","store/Licenses/types.ts","store/Links/index.ts","store/Links/types.ts","utils/fileUtil.ts","utils/dateUtil.ts","store/Orgs/index.ts","store/Orgs/types.ts","store/Providers/index.ts","store/Providers/types.ts","store/Reports/index.ts","store/Reports/types.ts","models/api/AuthInterop.ts","store/System/index.ts","store/System/types.ts","store/index.ts","components/SideNav.tsx","components/Layout.tsx","components/Linklist/index.tsx","containers/Audits/index.tsx","components/Copy/index.tsx","components/DownloadButton/Index.tsx","components/Pager/index.tsx","components/PagedTable.tsx","components/AuditsTable/index.tsx","containers/AuditsAll/index.tsx","containers/AuditsCurrent/index.tsx","containers/AuditsFailed/index.tsx","components/PreWrapper/index.tsx","components/Tabs/index.tsx","containers/DeviceDetail/index.tsx","components/Spinner.tsx","components/SummaryTable/index.tsx","containers/Devices/index.tsx","components/ContentFrame/index.tsx","components/EmailPreview/index.tsx","components/EmailsTable/index.tsx","containers/Emails/index.tsx","models/api/License.ts","components/LicenseEditModal/index.tsx","containers/Home/index.tsx","containers/Jobs/index.tsx","containers/LiteOrgsReport/index.tsx","components/OrgCollectionModal/index.tsx","components/OrgEditModal/index.tsx","components/OrgSummaryTable/index.tsx","components/KubeCertModal/index.tsx","components/DataSourceModal/index.tsx","containers/OrgDetail/index.tsx","containers/Orgs/index.tsx","containers/Reports/index.tsx","containers/Users/index.tsx","components/AuthInteropEditModal/index.tsx","containers/AuthInterop/index.tsx","root.tsx","index.tsx","configureStore.ts","components/Pager/styles.module.scss","containers/Devices/styles.module.scss","containers/OrgDetail/styles.module.scss","containers/Orgs/styles.module.scss","containers/DeviceDetail/styles.module.scss","components/Tabs/styles.module.scss","containers/LiteOrgsReport/styles.module.scss","components/DownloadButton/styles.module.scss","components/AuditsTable/styles.module.scss","containers/Home/styles.module.scss","components/FishFail/styles.module.scss","components/Linklist/styles.module.scss","components/Copy/styles.module.scss","components/PreWrapper/styles.module.scss","components/SummaryTable/styles.module.scss"],"names":["FishFail","props","state","currentError","errorInfo","this","setState","className","classes","container","width","height","viewBox","xmlns","fill","fillRule","d","toString","componentStack","children","React","ApiClient","auth","get","url","options","request","method","post","body","put","patch","del","responseType","headers","getAuthorizationHeader","JSON","stringify","ajax","LoginRequest","scopes","redirectUri","window","location","origin","MsalInstance","Msal","clientId","authority","cache","cacheLocation","storeAuthStateInCookie","Auth","login","bind","logout","isAuthenticated","authResult","localStorage","setItem","idToken","rawIdToken","expiresOn","getTime","name","account","email","userName","aadId","accountIdentifier","sessionStorage","getItem","loginPopup","loginResponse","api","Authorization","forEach","res","response","setSession","console","error","status","message","history","replace","removeItem","expiresAt","parse","Date","getToken","split","p","currentScopes","getPermissions","find","v","includes","initialState","latestAuditById","latestAuditByIdError","latestAuditByIdLoading","fetchAudits","params","type","payload","clearAudits","nextPage","prevPage","firstPage","lastPage","auditsEpics","action$","state$","ofType","pipe","switchMap","action","queryString","map","data","takeUntil","catchError","of","xhr","value","audits","pagination","links","encodeURIComponent","orgId","audit","mapArrayToObject","array","o","a","id","deserializeDevice","meta","deviceIds","devicesById","isDeviceOffline","relatedEntities","orgs","isLoading","logsByDevice","logsByDeviceLoading","logsByDeviceError","settingLevelByDevice","settingLevelByDeviceError","settingVersionByDevice","settingVersionByDeviceError","settingEnabledByDevice","settingEnabledByDeviceError","devicesEpics","deviceId","results","flatMap","version","level","enabled","deserializeKeys","item","keys","key","deserializeEmail","s","emailDetailById","emailDetailByIdLoading","emailDetailByIdError","fetchEmails","fetchEmailDetail","clearEmails","sendEmail","to","emailsEpics","debounceTime","emails","deserializeJob","jobsEpics","certsById","certsByIdLoading","certsByIdError","certsByIdSaving","certsByIdSavingError","certsByIdDeleting","certsByIdDeletingError","validationById","validationByIdLoading","validationByIdError","kubeCertsEpics","cert","publicKey","btoa","undefined","privateKey","licensesById","licensesByIdError","licensesByIdLoading","licensesByIdSaving","licensesByIdSavingError","licensesEpics","license","linksEpics","mergeMap","isProvider","exportToCsv","filename","rows","csvContent","row","Object","values","join","blob","Blob","link","document","createElement","download","URL","createObjectURL","setAttribute","appendChild","click","removeChild","getDateToFileName","date","getFullYear","getMonth","padStart","getDate","getHours","getMinutes","getSeconds","convertDateToStandardFormat","dataInput","deserializePermission","deserializeSetting","deserializeAudience","deserializeSettingDictionary","dict","newDict","audiencesById","audiencesByIdError","audiencesByIdLoading","deleteProgress","fieldsById","fieldsByIdError","fieldsByIdLoading","isSavingById","licenseIdsById","orgsById","orgsByIdLoading","permissionsById","permissionsByIdError","permissionsByIdLoading","settingsById","settingsByIdError","settingsByIdLoading","fetchLicenses","fetchFields","setCollectionByAttribute","field","saveOrg","org","startEdit","endEdit","editOrg","orgsEpics","task","result","filter","licensesResult","schedulesResult","broadcastsResult","usersResult","profilesResult","orgResult","tenantId","orgName","concat","audiences","items","permissions","settings","providersEpics","providers","reportsEpics","AllRegionsOptions","label","AllScopesOptions","convertAuthInteropRowToId","username","region","sortScopesByPower","orderedScopeList","m","scopesCopy","sort","b","indexOf","authInteropUserById","authInteropUsersLoading","authInteropUsersError","authInteropUserByIdSaving","authInteropUserByIdSavingError","authInteropUserByIdDeleting","authInteropUserByIdDeletingError","authInteropAnalysis","authInteropAnalysisLoading","authInteropAnalysisError","systemEpics","reducers","devices","cutoff","moment","subtract","lastHeartBeat","getFrom","isOffline","ISO_8601","isBefore","versionsLoading","versionsError","versions","isSending","sendError","licenses","reduce","c","creating","creatingError","licensingLinkIsLoading","licensingLink","licensingLinkError","impersonationLinkIsLoading","impersonationLink","impersonationLinkError","orgIds","modes","l","latestAudits","isExporting","antreaOrgId","collectionByAttributeSaving","collectionByAttributeError","savingError","dirtyOrg","settingsIsSaving","settingsSavingError","reports","liteOrgsLoading","liteOrgs","liteOrgsError","jobs","kubeCerts","loadingAll","loadingAllError","f","OrgId","system","newUsersPostLoad","r","rootEpic","combineEpics","SideNav","Radium","navList","path","navItem","subNav","length","subNavItem","activeSub","activeSubIndex","disabled","justClicked","i","cx","getState","href","ref","style","onMouseOut","n","hide","active","upgrade","onClick","e","preventDefault","icon","notifications","left","transform","styles","StyleUtil","viewWrapper","maxWidth","marginLeft","marginRight","header","alignItems","borderBottom","colors","blue","display","flexDirection","justifyContent","userContainer","color","fontSize","position","userGreeting","verticalAlign","userPhoto","Layout","pathname","getNavList","role","renderHeader","renderBreadcrumb","lastAuthenticationError","profile","getProfile","title","sections","nav","Linklist","linkList","Audits","Copy","timeout","handleSuccess","copied","setTimeout","clearTimeout","text","data-clipboard-text","onSuccess","copy","green","DownloadButton","exportData","canClick","Pager","isDisabled","page","toLocaleString","pageCount","itemCount","count","displayString","firstEnabled","first","prevEnabled","prev","nextEnabled","next","lastEnabled","last","PagedTable","customFilters","placeholder","onQueryChange","queryValue","table","pagerProps","downloadButtonProps","tables","header_noFlex","onChange","noPadding","columns","hidden","createdAt","finishedAt","auditRecordCount","recordCount","index","Table","DataTable","AuditsTable","types","onTypesChange","select","vals","multi","loading","dateFormatter","renderDetail","detailTable","startedAt","now","from","AuditsAll","connect","connector","AuditsCurrent","AuditsFailed","PreWrapper","preWrapper","Tabs","tabs","activeKey","tab","logTableColumns","datetime","custom","raw","LogTable","ownProps","match","logs","fetchLogs","cachedLogsKey","cachedLogs","pageLength","handleDownload","log","selectedLogIndex","entries","el","filterString","filterLevel","activeView","nextProps","textToHighlight","autoEscape","searchWords","toLowerCase","lowerLog","chunk","time","rest","getHighlightedText","format","String","getFilteredLogs","slice","Math","ceil","headerAction","headerActionText","renderFilters","noDataMessage","getFilteredPagedLogs","getPagerProps","filterContainer","filterDrop","currentTarget","filterView","Spinner","SummaryTable","summaryTable","colSpan","isCopyable","DevicesTable","sortable","heartbeat","center","checkmark","fetchDevices","q","fetchVersions","showAll","setLevel","setVersion","setEnabled","handleSelect","ids","newIds","selectedDevices","handleDeselect","filterByOrg","filterOrgs","filterByVersion","filterVersions","setDevicesToUpgrade","devicesToUpgrade","upgradeSent","upgradeVersion","upgradeShowAllVersions","exportDevicesToCSV","getDevicesMapped","device","isCsm","doesUserHaveScope","Boolean","push","logPromptDevice","logLevel","red","disablePromptDevice","query","search","orgsParam","showDisabled","prototype","hasOwnProperty","call","levels","levelMap","k","getLevelFromDevice","isToTable","resolveDeviceToTable","resolveDeviceToCsv","orgFilterOptions","Set","localeCompare","htmlFor","checked","getRowStyle","tr_invalid","selected","onSelect","onDeselect","actions","onAction","renderUpgradeModal","renderLogLevelModal","renderDisconnectModal","finishedUpgrading","errorUpgrading","onClose","modals","newPadding","wrapperClass","showVersionsCheck","showVersionsLabel","buttonContainer","size","spacedBtn","iconName","isSetting","ContentFrame","frame","drawContent","content","contentDocument","open","write","close","S","templatePreview","backgroundColor","border","marginTop","padding","templatePreviewHeaders","marginBottom","templatePreviewHeaderLabel","fontWeight","lineHeight","textTransform","templatePreviewHeaderValue","templatePreviewFrame","borderTop","EmailPreview","headerOrder","prettyNameMap","fromname","replyto","subject","EmailsTable","event","idToSend","toAddress","emailSent","onExpandRow","renderSendModal","sendEmailError","Emails","GetInitialLicense","validityStart","toISOString","validityEnd","add","features","startingModeValue","mapLicenseToName","FeatureMap","PaidLicense","AllowAnalyzeMode","AllowPilotMode","AllowRunMode","AllowDirectory","AllowProfileValidation","AllowCollections","AllowReadOnlyModeSwitch","mapFeatureToName","feature","getLicenseTimeRemaining","timeRemaining","startDate","endDate","diff","timeRemainingDuration","duration","dayCount","floor","as","getCombinedOrgLicense","liveLicenses","hasBasicLicense","licenseType","maxLicensedUsers","licensedUsers","allFeatures","Array","isArray","oldestEnd","sortedLicenseExpirations","valueOf","reverse","antreaUserId","softName","LicenseTypes","trial","displayName","dropdownValue","lite","standard","premium","LicenseEditModal","onCancel","onSave","onEdit","isCreating","dirtyLicense","getLicenseType","sortedA","sortedB","finder","initialFormControls","formControls","setFormControls","newHeader","dirty","onSubmit","fields","hFields","dropdown","required","dropdownOptions","mode","onLicenseDropdownChange","hintText","fromNow","autocompleteMulti","onLocalEdit","x","number","linkIsLoading","linkError","clearLicensingLink","fetchLicensingLink","createNewLicense","renderCreateLicenseModal","renderLinkModal","closeModal","linkContainer","linkWrapper","target","rel","JobsTable","jobOriginator","jobType","taskProgress","taskStatus","fetchJobs","taskInput","taskResult","j","jobId","LiteOrgsReport","fetchLiteOrgsReport","orgCountByStatusObject","orgCountByOnboardingStatus","orgCountByAdminObject","orgCountByAdminConsent","formatDate","dateString","dataPoints","createdByDate","names","chartData","lastDate","cumulative","dataPoint","h1","chart","margin","top","right","bottom","stroke","strokeDasharray","dataKey","yAxisId","orientation","orange","dy","textAnchor","statsTable","totalOrgCount","round","averageUserCount","totalUserCount","attributesNotEligibleForCollections","OrgCollectionModal","fieldsError","orgFields","fieldsLoading","collectionByAttributePromptFieldValue","onFieldSelect","currentCollectionsField","autocomplete","validationText","val","resource","field1","saving","OrgEditModal","isSaving","readOnly","OrgSummaryTable","latestAudit","combinedLicense","audienceId","settingProperty","settingValue","KubeCertModal","isSaveErrored","isDeleting","onValidate","validationData","onDelete","currentCert","startedDelete","secretName","Name","domainName","DomainName","dirtyCert","setDirtyCert","validationErrorMessage","validationInError","validated","errorReason","validationSupportedDomains","validDomains","saveText","disableSave","longText","OnlineDataSources","OnpremDataSources","DataSourceModal","dataSourceSaving","handleDataSourceChange","dataSourceChangeError","selectedDataSource","currentDataSource","defaultDataSource","AudiencesTable","accounts","definition","LicensesTable","userCount","PermissionsTable","audience","fieldNames","SettingsTable","inheritanceEnabled","ProvidersTable","providerName","auditsError","auditsIsLoading","auditsPagination","emailsError","emailsIsLoading","emailsPagination","licensesCreating","licensesCreatingError","providersError","providersIsLoading","providersPagination","providersRelatedEntities","settingsSaving","kubeCertsById","kubeCertsByIdError","kubeCertsByIdLoading","kubeValidationById","kubeValidationByIdError","kubeValidationByIdLoading","kubeCertsByIdSaving","kubeCertsByIdSavingError","kubeCertsByIdDeleting","kubeCertsByIdDeletingError","auditsFirstPage","auditsLastPage","auditsNextPage","auditsPrevPage","clearImpersonationLink","clearProviders","emailsFirstPage","emailsLastPage","emailsNextPage","emailsPrevPage","fetchAudiences","fetchLatestAudit","fetchImpersonationLink","fetchOrg","fetchPermissions","fetchProviders","fetchSettings","providersFirstPage","providersLastPage","providersNextPage","providersPrevPage","saveSettings","createLicense","saveLicense","fetchCert","saveCert","validateCert","deleteCert","OrgDetail","settingForm","settingFieldGetterMap","global_mode","handleSettingEdit","showCollectionModal","closeCollectionModal","showDataSourceModal","submittedNewDataSource","closeDataSourceModal","showKubeCertModal","closeKubeCertModal","createSetting","newSetting","editSetting","setting","dirtySettings","newDirtySettings","safeValue","dataSource","settingsToSave","masterAudienceId","property","auditTypes","renderAudiences","renderLicenses","renderProviders","renderPermissions","renderSettings","renderAudits","renderEmails","renderImpersonationModal","renderEditModal","renderEditLicenseModal","renderCollectionModal","renderDataSourceModal","renderSettingsEditModal","renderCreateSettingModal","renderKubeCertModal","defaultSortBy","getAudienceAccountCount","preservedLicense","shouldDisableEdit","getName","antreaUser","emailString","address","perm","entityId","permissionGroup","entityDisplayName","entityEmail","getAudienceName","config","src","alt","textAlign","clearable","orgSettings","collectionSetting","fieldName","auditSourceSetting","isErrored","saveError","deleteError","validation","renderErrorModal","audienceOptions","selectedAudiences","selectedAudience","audienceIds","audienceFields","audienceSettings","settingProperties","prop","parsedSettingValue","toggle","parsedVal","valKeys","form","settingProp","OrgsTable","readOnlyMode","fetchOrgs","startDelete","endDelete","exportOrgs","selectOrg","promptDeleteOrg","deleteOrgInputValue","deleteOrgPromptId","closeDeleteOrg","changeFilters","filters","newFilters","getParamsFromFilters","handleQueryChange","filterQ","filterByLicense","filterLicenses","filterByMode","filterModes","filterByType","filterTypes","handleExpandRow","collectionByAttributePromptId","defaultSortDir","shouldDisableDelete","renderActiveModal","renderDeleteModal","deleteDone","deleteList","Reports","Users","UserTypeOptions","AuthInteropEditModal","isEditing","dirtyUser","userCategory","dropdownMulti","scopeList","authUsers","authUsersLoading","authUsersError","saveErrorById","isDeletingById","deleteErrorById","analysis","analysisLoading","analysisError","fetchUsers","saveUser","cancelSave","deleteUser","fetchAnalysis","category","AuthInterop","showAnalysisReport","loadAnalysisReport","renderListSection","fontFamily","overflowX","confirm","groupBy","hot","Route","exact","component","Home","Devices","DeviceDetail","Orgs","Jobs","baseUrl","getElementsByTagName","getAttribute","createBrowserHistory","basename","dest","getElementById","intialReduxState","store","Api","epicMiddleware","createEpicMiddleware","dependencies","enhancers","BehaviorSubject","compose","applyMiddleware","routerMiddleware","createStore","createStoreWithMiddleware","allReducers","combineReducers","assign","routing","routerReducer","buildRootReducer","run","configureStore","ReactDOM","StyleRoot","module","exports"],"mappings":"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","file":"static/js/main.8108c892.chunk.js","sourcesContent":["import * as React from 'react';\n\nimport classes from './styles.module.scss';\n\ninterface State {\n currentError: any;\n errorInfo: any;\n}\n\nexport class FishFail extends React.Component<{}, State> {\n static getDerivedStateFromError(currentError) {\n return { currentError };\n }\n\n constructor(props) {\n super(props);\n this.state = { currentError: null, errorInfo: null };\n }\n\n componentDidCatch(currentError, errorInfo) {\n this.setState({\n currentError,\n errorInfo,\n });\n }\n\n render() {\n if (!!this.state.currentError) {\n return (\n
\n \n \n \n \n \n \n \n \n

There was an unexpected error...

\n

If this keeps happening, let Ted know.

\n
\n
\n
\n

Technical Stuff:

\n

{this.state.currentError && this.state.currentError.toString()}

\n

{this.state.errorInfo && this.state.errorInfo.componentStack}

\n
\n );\n }\n\n return this.props.children;\n }\n}\n","import { ajax, AjaxRequest } from 'rxjs/ajax';\n\ninterface Auth {\n getAuthorizationHeader(): { Authorization: string };\n}\n\nexport default class ApiClient {\n private auth: Auth;\n\n constructor(auth: Auth) {\n this.auth = auth;\n }\n\n public get = (url: string, options: AjaxRequest = {}) => this.request({ ...options, url, method: 'GET' });\n public post = (url: string, body?: any, options: AjaxRequest = {}) =>\n this.request({ ...options, url, body, method: 'POST' });\n public put = (url: string, body?: any, options: AjaxRequest = {}) =>\n this.request({ ...options, url, body, method: 'PUT' });\n public patch = (url: string, body?: any, options: AjaxRequest = {}) =>\n this.request({ ...options, url, body, method: 'PATCH' });\n public del = (url: string, options: AjaxRequest = {}) => this.request({ ...options, url, method: 'DELETE' });\n\n private request(options: AjaxRequest) {\n options.responseType = 'json';\n options.headers = {\n ...this.auth.getAuthorizationHeader(),\n 'Content-Type': 'application/json',\n ...(options.headers || {}),\n };\n\n if (options.body != null) {\n options.body = JSON.stringify(options.body);\n }\n\n return ajax(options);\n }\n}\n","import * as Msal from 'msal';\n\nconst msalConfig: Msal.Configuration = {\n auth: {\n clientId: 'bd94e1d7-c0e4-47f4-9dbb-c03be578c314',\n authority: 'https://login.microsoftonline.com/9b74026c-bf52-4d2b-bc80-5e7e6d0570f8',\n },\n cache: {\n cacheLocation: 'sessionStorage',\n storeAuthStateInCookie: false,\n },\n};\n\nexport const LoginRequest: Msal.AuthenticationParameters = {\n scopes: ['openid', 'profile', 'User.Read'],\n redirectUri: window.location.origin,\n};\n\nexport const MsalInstance = new Msal.UserAgentApplication(msalConfig);\n","import { history } from '../';\nimport { MsalInstance, LoginRequest } from './MSAL';\nimport { AuthResponse } from 'msal';\nimport ApiClient from './Api';\n\nconst ACCESS_TOKEN = 'access_token';\nconst ID_TOKEN = 'id_token';\nconst PROFILE = 'profile';\nconst EXPIRES_AT = 'expires_at';\nconst SCOPES = 'scopes';\nconst LAST_ERROR = 'last_error';\n\ninterface Profile {\n name: string;\n email: string;\n aadId: string;\n}\n\ntype SupportedScopes =\n | 'read'\n | 'read-emails'\n | 'create-license'\n | 'manage-devices'\n | 'impersonate-user'\n | 'edit-org'\n | 'delete-org'\n | 'developer'\n | 'god';\n\nexport default class Auth {\n constructor() {\n this.login = this.login.bind(this);\n this.logout = this.logout.bind(this);\n this.isAuthenticated = this.isAuthenticated.bind(this);\n }\n\n private setSession(authResult: AuthResponse) {\n localStorage.setItem(ID_TOKEN, authResult.idToken.rawIdToken);\n localStorage.setItem(EXPIRES_AT, JSON.stringify(authResult.expiresOn.getTime()));\n localStorage.setItem(\n PROFILE,\n JSON.stringify({\n name: authResult.account.name,\n email: authResult.account.userName,\n aadId: authResult.account.accountIdentifier,\n } as Profile),\n );\n // localStorage.setItem(SCOPES, '');\n sessionStorage.setItem(LAST_ERROR, '');\n }\n\n get lastAuthenticationError() {\n return sessionStorage.getItem(LAST_ERROR);\n }\n\n public async login() {\n const loginResponse = await MsalInstance.loginPopup(LoginRequest);\n if (loginResponse) {\n // Fetch scopes from backend\n try {\n const api = new ApiClient({\n getAuthorizationHeader: () => {\n return { Authorization: `Bearer ${loginResponse.idToken.rawIdToken}` };\n },\n });\n await api.get('/api/authinterop/').forEach(res => {\n if (res.response) {\n this.setSession(loginResponse);\n localStorage.setItem(SCOPES, res.response.scopes);\n sessionStorage.setItem(LAST_ERROR, '');\n }\n });\n } catch (err) {\n console.error('Error while fetching scopes from server', err);\n if (err.status === 401) {\n sessionStorage.setItem(LAST_ERROR, 'Login error: User not found or not authorized');\n } else {\n sessionStorage.setItem(LAST_ERROR, 'Login error: ' + err.message);\n }\n return this.logout();\n }\n\n // we don't really handle inline logins yet\n history.replace('/');\n }\n }\n\n public logout() {\n // Clear access token and ID token from local storage\n localStorage.removeItem(ACCESS_TOKEN);\n localStorage.removeItem(ID_TOKEN);\n localStorage.removeItem(PROFILE);\n localStorage.removeItem(EXPIRES_AT);\n localStorage.removeItem(SCOPES);\n\n // Navigate to the home route\n history.replace('/');\n }\n\n public isAuthenticated() {\n // Check whether the current time is past the access token's expiry time\n const expiresAt = JSON.parse(localStorage.getItem(EXPIRES_AT));\n return new Date().getTime() < expiresAt;\n }\n\n public getToken() {\n if (!this.isAuthenticated()) {\n this.logout();\n return null;\n }\n\n return localStorage.getItem(ID_TOKEN);\n }\n\n public getAuthorizationHeader() {\n return { Authorization: `Bearer ${this.getToken()}` };\n }\n\n public getPermissions(): SupportedScopes[] {\n const scopes = localStorage.getItem(SCOPES);\n if (!scopes) {\n return [];\n }\n\n const splitScopes = scopes.split(' ');\n\n return splitScopes as SupportedScopes[];\n }\n\n public getProfile(): Profile {\n const p = localStorage.getItem(PROFILE);\n if (!p) {\n return null;\n }\n\n return JSON.parse(p);\n }\n\n public static doesUserHaveScope(...scopes: SupportedScopes[]): boolean {\n const auth = new Auth();\n const currentScopes = auth.getPermissions();\n\n return !!scopes.find(v => currentScopes.includes(v));\n }\n}\n","import * as queryString from 'query-string';\nimport { HyperEpic } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { Action, Audit, AuditsParams, State } from '../../models';\nimport * as actions from './actions';\nimport * as types from './types';\n\ntype AuditsState = State['audits'];\n\nconst initialState = {\n latestAuditById: {},\n latestAuditByIdError: {},\n latestAuditByIdLoading: {},\n} as AuditsState;\n\nexport default function(state: AuditsState = initialState, action: actions.Action): AuditsState {\n switch (action.type) {\n case types.FETCH_AUDITS:\n case types.FETCH_AUDITS_PAGE:\n return {\n ...state,\n isLoading: true,\n };\n case types.FETCH_AUDITS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n audits: action.payload.items,\n pagination: action.payload.pagination,\n relatedEntities: action.payload.relatedEntities,\n error: null,\n };\n case types.FETCH_AUDITS_FAIL:\n return {\n ...state,\n isLoading: false,\n error: action.payload || true,\n };\n case types.FETCH_AUDITS_CANCEL:\n case types.CLEAR_AUDITS:\n return {\n ...state,\n pagination: null,\n audits: null,\n error: null,\n isLoading: false,\n };\n case types.FETCH_LATEST_AUDIT:\n return {\n ...state,\n latestAuditByIdLoading: {\n ...state.latestAuditByIdLoading,\n [action.payload]: true,\n },\n latestAuditByIdError: {\n ...state.latestAuditByIdError,\n [action.payload]: null,\n },\n };\n case types.FETCH_LATEST_AUDIT_SUCCESS:\n return {\n ...state,\n latestAuditByIdLoading: {\n ...state.latestAuditByIdLoading,\n [action.payload.orgId]: false,\n },\n latestAuditById: {\n ...state.latestAuditById,\n [action.payload.orgId]: action.payload.audit,\n },\n };\n case types.FETCH_LATEST_AUDIT_FAIL:\n return {\n ...state,\n latestAuditByIdLoading: {\n ...state.latestAuditByIdLoading,\n [action.payload.orgId]: false,\n },\n latestAuditByIdError: {\n ...state.latestAuditByIdError,\n [action.payload.orgId]: action.payload.error,\n },\n };\n case types.FETCH_LATEST_AUDIT_CANCEL:\n return {\n ...state,\n latestAuditByIdLoading: {\n ...state.latestAuditByIdLoading,\n [action.payload]: false,\n },\n };\n default:\n return state;\n }\n}\n\n// action creators\nexport const fetchAudits = (params: AuditsParams): actions.FetchAudits => ({\n type: types.FETCH_AUDITS,\n payload: params,\n});\nexport const clearAudits = (): actions.ClearAudits => ({ type: types.CLEAR_AUDITS });\n\nexport const nextPage = (): actions.FetchAuditsPage => ({\n type: types.FETCH_AUDITS_PAGE,\n payload: 'next',\n});\nexport const prevPage = (): actions.FetchAuditsPage => ({\n type: types.FETCH_AUDITS_PAGE,\n payload: 'prev',\n});\nexport const firstPage = (): actions.FetchAuditsPage => ({\n type: types.FETCH_AUDITS_PAGE,\n payload: 'first',\n});\nexport const lastPage = (): actions.FetchAuditsPage => ({\n type: types.FETCH_AUDITS_PAGE,\n payload: 'last',\n});\n\nexport const fetchLatestAudit = (orgId: string): actions.FetchLatestAudit => ({\n type: types.FETCH_LATEST_AUDIT,\n payload: orgId,\n});\n\n// epics\nconst fetchAuditsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_AUDITS).pipe(\n switchMap((action: actions.FetchAudits) =>\n api.get(`/api/audits?${queryString.stringify(action.payload as any)}`).pipe(\n map(data => ({\n type: types.FETCH_AUDITS_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_AUDITS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_AUDITS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchAuditsPageEpic: HyperEpic = (\n action$,\n state$,\n { api },\n) =>\n action$.ofType(types.FETCH_AUDITS_PAGE).pipe(\n switchMap((action: actions.FetchAuditsPage) =>\n api.get(state$.value.audits.pagination.links[action.payload]).pipe(\n map(({ response: payload }) => ({\n type: types.FETCH_AUDITS_SUCCESS,\n payload,\n })),\n takeUntil(action$.ofType(types.FETCH_AUDITS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_AUDITS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchLatestAuditEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_LATEST_AUDIT).pipe(\n switchMap((action: actions.FetchLatestAudit) =>\n api.get(`/api/audits/latest?orgId=${encodeURIComponent(action.payload)}`).pipe(\n map<{ response: Audit }, actions.FetchLatestAuditSuccess>(data => ({\n type: types.FETCH_LATEST_AUDIT_SUCCESS,\n payload: {\n orgId: action.payload,\n audit: data.response,\n },\n })),\n takeUntil(action$.ofType(types.FETCH_LATEST_AUDIT_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_LATEST_AUDIT_FAIL,\n payload: {\n orgId: action.payload,\n error: error.xhr.response,\n },\n }),\n ),\n ),\n ),\n );\n\nexport const auditsEpics = [fetchAuditsEpic, fetchAuditsPageEpic, fetchLatestAuditEpic];\n","export const FETCH_AUDITS = 'FETCH_AUDITS' as 'FETCH_AUDITS';\nexport const FETCH_AUDITS_SUCCESS = 'FETCH_AUDITS_SUCCESS' as 'FETCH_AUDITS_SUCCESS';\nexport const FETCH_AUDITS_FAIL = 'FETCH_AUDITS_FAIL' as 'FETCH_AUDITS_FAIL';\nexport const FETCH_AUDITS_CANCEL = 'FETCH_AUDITS_CANCEL' as 'FETCH_AUDITS_CANCEL';\nexport const CLEAR_AUDITS = 'CLEAR_AUDITS' as 'CLEAR_AUDITS';\n\nexport const FETCH_LATEST_AUDIT = 'FETCH_LATEST_AUDIT' as 'FETCH_LATEST_AUDIT';\nexport const FETCH_LATEST_AUDIT_SUCCESS = 'FETCH_LATEST_AUDIT_SUCCESS' as 'FETCH_LATEST_AUDIT_SUCCESS';\nexport const FETCH_LATEST_AUDIT_FAIL = 'FETCH_LATEST_AUDIT_FAIL' as 'FETCH_LATEST_AUDIT_FAIL';\nexport const FETCH_LATEST_AUDIT_CANCEL = 'FETCH_LATEST_AUDIT_CANCEL' as 'FETCH_LATEST_AUDIT_CANCEL';\n\nexport const FETCH_AUDITS_PAGE = 'FETCH_AUDITS_PAGE' as 'FETCH_AUDITS_PAGE';\n","export function mapArrayToObject(array: T[]): { [id: string]: T } {\n const o = {};\n if (!array) {\n return o;\n }\n\n for (const a of array) {\n o[a.id] = a;\n }\n\n return o;\n}\n","import { getFrom } from '@hyperfish/fishfood';\nimport moment from 'moment';\nimport * as queryString from 'query-string';\nimport { HyperEpic } from 'redux-observable';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, switchMap, takeUntil, flatMap } from 'rxjs/operators';\n\nimport { Action, State } from '../../models';\nimport { mapArrayToObject } from '../../utils/mapArrayToObject';\nimport * as actions from './actions';\nimport * as types from './types';\n\ntype DevicesState = State['devices'];\ntype Device = DevicesState['devicesById']['foo'];\n\n// helpers\nfunction deserializeDevice(d: Device): Device {\n try {\n d.meta = JSON.parse(d.meta as any);\n } finally {\n /* NO OP */\n }\n\n return d;\n}\n\nfunction serializeDevice(d: Device) {\n try {\n d.meta = JSON.stringify(d.meta) as any;\n } finally {\n /* NO OP */\n }\n\n return d;\n}\n\nconst initialState = {\n deviceIds: null,\n devicesById: {},\n isDeviceOffline: {},\n relatedEntities: { orgs: {} },\n isLoading: false,\n error: null,\n\n logsByDevice: {},\n logsByDeviceLoading: {},\n logsByDeviceError: {},\n\n settingLevelByDevice: {},\n settingLevelByDeviceError: {},\n\n settingVersionByDevice: {},\n settingVersionByDeviceError: {},\n\n settingEnabledByDevice: {},\n settingEnabledByDeviceError: {},\n} as DevicesState;\n\nexport default function(state: DevicesState = initialState, action: actions.Action): DevicesState {\n switch (action.type) {\n case types.FETCH_DEVICES:\n return {\n ...state,\n isLoading: true,\n };\n case types.FETCH_DEVICES_SUCCESS: {\n const deviceIds = action.payload.devices.map(({ id }) => id);\n const devicesById = mapArrayToObject(action.payload.devices.map(deserializeDevice));\n\n const isDeviceOffline = {};\n const cutoff = moment().subtract(15, 'minutes');\n for (const id of deviceIds) {\n const d = devicesById[id];\n const lastHeartBeat = getFrom(d.meta)('heartbeat')('timestamp').value;\n const isOffline = lastHeartBeat == null || moment(lastHeartBeat, moment.ISO_8601).isBefore(cutoff);\n isDeviceOffline[d.id] = isOffline;\n }\n\n return {\n ...state,\n isLoading: false,\n deviceIds,\n devicesById,\n isDeviceOffline,\n relatedEntities: { ...state.relatedEntities, orgs: action.payload.relatedEntities.orgs },\n error: null,\n };\n }\n case types.FETCH_DEVICES_FAIL:\n return {\n ...state,\n isLoading: false,\n error: action.payload,\n };\n case types.FETCH_DEVICES_CANCEL:\n return {\n ...state,\n isLoading: false,\n };\n\n case types.FETCH_LOGS:\n return {\n ...state,\n logsByDeviceLoading: { ...state.logsByDeviceLoading, [action.payload.deviceId]: true },\n };\n case types.FETCH_LOGS_SUCCESS:\n return {\n ...state,\n logsByDeviceLoading: { ...state.logsByDeviceLoading, [action.payload.deviceId]: false },\n logsByDevice: { ...state.logsByDevice, [action.payload.deviceId]: action.payload.results },\n logsByDeviceError: { ...state.logsByDeviceError, [action.payload.deviceId]: null },\n };\n case types.FETCH_LOGS_FAIL:\n return {\n ...state,\n logsByDeviceLoading: { ...state.logsByDeviceLoading, [action.payload.deviceId]: false },\n logsByDeviceError: { ...state.logsByDeviceError, [action.payload.deviceId]: action.payload.error || true },\n };\n case types.FETCH_LOGS_CANCEL:\n return {\n ...state,\n logsByDeviceLoading: { ...state.logsByDeviceLoading, [action.payload.deviceId]: false },\n };\n case types.CLEAR_LOGS:\n return {\n ...state,\n logsByDevice: { ...state.logsByDevice, [action.payload.deviceId]: null },\n };\n\n case types.FETCH_DEVICE_VERSIONS:\n return {\n ...state,\n versionsLoading: true,\n };\n case types.FETCH_DEVICE_VERSIONS_SUCCESS:\n return {\n ...state,\n versionsLoading: false,\n versionsError: null,\n versions: action.payload,\n };\n case types.FETCH_DEVICE_VERSIONS_FAIL:\n return {\n ...state,\n versionsLoading: false,\n versionsError: action.payload,\n };\n case types.FETCH_DEVICE_VERSIONS_CANCEL:\n return {\n ...state,\n versionsLoading: false,\n };\n\n case types.SET_LEVEL:\n return {\n ...state,\n settingLevelByDevice: { ...state.settingLevelByDevice, [action.payload.deviceId]: true },\n settingLevelByDeviceError: { ...state.settingLevelByDeviceError, [action.payload.deviceId]: null },\n };\n case types.SET_LEVEL_SUCCESS:\n return {\n ...state,\n settingLevelByDevice: { ...state.settingLevelByDevice, [action.payload.deviceId]: false },\n };\n case types.SET_LEVEL_FAIL:\n return {\n ...state,\n settingLevelByDevice: { ...state.settingLevelByDevice, [action.payload.deviceId]: false },\n settingLevelByDeviceError: {\n ...state.settingLevelByDeviceError,\n [action.payload.deviceId]: action.payload.error || true,\n },\n };\n case types.SET_LEVEL_CANCEL:\n return {\n ...state,\n settingLevelByDevice: { ...state.settingLevelByDevice, [action.payload.deviceId]: false },\n };\n\n case types.SET_VERSION:\n return {\n ...state,\n settingVersionByDevice: { ...state.settingVersionByDevice, [action.payload.deviceId]: true },\n settingVersionByDeviceError: { ...state.settingVersionByDeviceError, [action.payload.deviceId]: null },\n };\n case types.SET_VERSION_SUCCESS:\n return {\n ...state,\n settingVersionByDevice: { ...state.settingVersionByDevice, [action.payload.deviceId]: false },\n };\n case types.SET_VERSION_FAIL:\n return {\n ...state,\n settingVersionByDevice: { ...state.settingVersionByDevice, [action.payload.deviceId]: false },\n settingVersionByDeviceError: {\n ...state.settingVersionByDeviceError,\n [action.payload.deviceId]: action.payload.error || true,\n },\n };\n case types.SET_VERSION_CANCEL:\n return {\n ...state,\n settingVersionByDevice: { ...state.settingVersionByDevice, [action.payload.deviceId]: false },\n };\n\n case types.SET_ENABLED:\n return {\n ...state,\n settingEnabledByDevice: { ...state.settingEnabledByDevice, [action.payload.deviceId]: true },\n settingEnabledByDeviceError: { ...state.settingEnabledByDeviceError, [action.payload.deviceId]: null },\n };\n case types.SET_ENABLED_SUCCESS:\n return {\n ...state,\n settingEnabledByDevice: { ...state.settingEnabledByDevice, [action.payload.id]: false },\n devicesById: { ...state.devicesById, [action.payload.id]: deserializeDevice(action.payload) },\n };\n case types.SET_ENABLED_FAIL:\n return {\n ...state,\n settingEnabledByDevice: { ...state.settingEnabledByDevice, [action.payload.deviceId]: false },\n settingEnabledByDeviceError: {\n ...state.settingEnabledByDeviceError,\n [action.payload.deviceId]: action.payload.error || true,\n },\n };\n case types.SET_ENABLED_CANCEL:\n return {\n ...state,\n settingEnabledByDevice: { ...state.settingEnabledByDevice, [action.payload.deviceId]: false },\n };\n default:\n return state;\n }\n}\n\n// action creators\nexport const fetchDevices = (q?: string): actions.FetchDevicesAction => ({ type: types.FETCH_DEVICES });\nexport const fetchLogs = (deviceId: string): actions.FetchLogs => ({ type: types.FETCH_LOGS, payload: { deviceId } });\nexport const fetchVersions = (showAll = false): actions.FetchDeviceVersionsAction => ({\n type: types.FETCH_DEVICE_VERSIONS,\n payload: { showAll },\n});\nexport const setVersion = (deviceId: string, version: string): actions.SetVersion => ({\n type: types.SET_VERSION,\n payload: { deviceId, version },\n});\nexport const setLevel = (deviceId: string, level: string): actions.SetLevel => ({\n type: types.SET_LEVEL,\n payload: { deviceId, level },\n});\nexport const setEnabled = (deviceId: string, enabled: boolean): actions.SetEnabled => ({\n type: types.SET_ENABLED,\n payload: { deviceId, enabled },\n});\n\n// epics\nconst fetchDevicesEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_DEVICES).pipe(\n switchMap((action: actions.FetchDevicesAction) =>\n api.get(`/api/devices`).pipe(\n map(data => ({\n type: types.FETCH_DEVICES_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_DEVICES_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_DEVICES_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchLogsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_LOGS).pipe(\n switchMap(action =>\n api.get(`/api/devices/${action.payload.deviceId}/logs`).pipe(\n map(data => ({\n type: types.FETCH_LOGS_SUCCESS,\n payload: {\n deviceId: action.payload.deviceId,\n results: data.response,\n },\n })),\n takeUntil(action$.ofType(types.FETCH_LOGS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_LOGS_FAIL,\n payload: {\n deviceId: action.payload.deviceId,\n error: error.xhr.response,\n },\n }),\n ),\n ),\n ),\n );\n\nconst fetchDeviceVersionsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_DEVICE_VERSIONS).pipe(\n switchMap((action: actions.FetchDeviceVersionsAction) =>\n api.get('/api/devices/versions?' + queryString.stringify(action.payload)).pipe(\n map(data => ({ type: types.FETCH_DEVICE_VERSIONS_SUCCESS, payload: data.response })),\n takeUntil(action$.ofType(types.FETCH_DEVICE_VERSIONS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_DEVICE_VERSIONS_FAIL,\n payload: {\n error: error.xhr.response,\n },\n }),\n ),\n ),\n ),\n );\n\nconst setVersionEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.SET_VERSION).pipe(\n flatMap(({ payload: { deviceId, version } }: actions.SetVersion) =>\n api.post(`/api/devices/${deviceId}/version`, version).pipe(\n map(data => ({ type: types.SET_VERSION_SUCCESS, payload: { deviceId } })),\n takeUntil(action$.ofType(types.SET_VERSION_CANCEL)),\n catchError(error =>\n of({\n type: types.SET_VERSION_FAIL,\n payload: { deviceId, error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nconst setLevelEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.SET_LEVEL).pipe(\n flatMap(({ payload: { deviceId, level } }: actions.SetLevel) =>\n api.post(`/api/devices/${deviceId}/level`, level).pipe(\n map(data => ({ type: types.SET_LEVEL_SUCCESS, payload: { deviceId } })),\n takeUntil(action$.ofType(types.SET_LEVEL_CANCEL)),\n catchError(error =>\n of({\n type: types.SET_LEVEL_FAIL,\n payload: { deviceId, error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nconst setEnabledEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.SET_ENABLED).pipe(\n flatMap(({ payload: { deviceId, enabled } }: actions.SetEnabled) =>\n api.post(`/api/devices/${deviceId}/enabled`, enabled).pipe(\n map(data => ({ type: types.SET_ENABLED_SUCCESS, payload: data.response })),\n takeUntil(action$.ofType(types.SET_ENABLED_CANCEL)),\n catchError(error =>\n of({\n type: types.SET_ENABLED_FAIL,\n payload: { deviceId, error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nexport const devicesEpics = [\n fetchDevicesEpic,\n fetchLogsEpic,\n fetchDeviceVersionsEpic,\n setVersionEpic,\n setLevelEpic,\n setEnabledEpic,\n];\n","export const FETCH_DEVICES = 'FETCH_DEVICES' as 'FETCH_DEVICES';\nexport const FETCH_DEVICES_SUCCESS = 'FETCH_DEVICES_SUCCESS' as 'FETCH_DEVICES_SUCCESS';\nexport const FETCH_DEVICES_FAIL = 'FETCH_DEVICES_FAIL' as 'FETCH_DEVICES_FAIL';\nexport const FETCH_DEVICES_CANCEL = 'FETCH_DEVICES_CANCEL' as 'FETCH_DEVICES_CANCEL';\n\nexport const FETCH_LOGS = 'FETCH_LOGS' as 'FETCH_LOGS';\nexport const FETCH_LOGS_SUCCESS = 'FETCH_LOGS_SUCCESS' as 'FETCH_LOGS_SUCCESS';\nexport const FETCH_LOGS_FAIL = 'FETCH_LOGS_FAIL' as 'FETCH_LOGS_FAIL';\nexport const FETCH_LOGS_CANCEL = 'FETCH_LOGS_CANCEL' as 'FETCH_LOGS_CANCEL';\nexport const CLEAR_LOGS = 'CLEAR_LOGS' as 'CLEAR_LOGS';\n\nexport const FETCH_DEVICE_VERSIONS = 'FETCH_DEVICE_VERSIONS' as 'FETCH_DEVICE_VERSIONS';\nexport const FETCH_DEVICE_VERSIONS_SUCCESS = 'FETCH_DEVICE_VERSIONS_SUCCESS' as 'FETCH_DEVICE_VERSIONS_SUCCESS';\nexport const FETCH_DEVICE_VERSIONS_FAIL = 'FETCH_DEVICE_VERSIONS_FAIL' as 'FETCH_DEVICE_VERSIONS_FAIL';\nexport const FETCH_DEVICE_VERSIONS_CANCEL = 'FETCH_DEVICE_VERSIONS_CANCEL' as 'FETCH_DEVICE_VERSIONS_CANCEL';\n\nexport const SET_VERSION = 'SET_VERSION' as 'SET_VERSION';\nexport const SET_VERSION_SUCCESS = 'SET_VERSION_SUCCESS' as 'SET_VERSION_SUCCESS';\nexport const SET_VERSION_FAIL = 'SET_VERSION_FAIL' as 'SET_VERSION_FAIL';\nexport const SET_VERSION_CANCEL = 'SET_VERSION_CANCEL' as 'SET_VERSION_CANCEL';\n\nexport const SET_LEVEL = 'SET_LEVEL' as 'SET_LEVEL';\nexport const SET_LEVEL_SUCCESS = 'SET_LEVEL_SUCCESS' as 'SET_LEVEL_SUCCESS';\nexport const SET_LEVEL_FAIL = 'SET_LEVEL_FAIL' as 'SET_LEVEL_FAIL';\nexport const SET_LEVEL_CANCEL = 'SET_LEVEL_CANCEL' as 'SET_LEVEL_CANCEL';\n\nexport const SET_ENABLED = 'SET_ENABLED' as 'SET_ENABLED';\nexport const SET_ENABLED_SUCCESS = 'SET_ENABLED_SUCCESS' as 'SET_ENABLED_SUCCESS';\nexport const SET_ENABLED_FAIL = 'SET_ENABLED_FAIL' as 'SET_ENABLED_FAIL';\nexport const SET_ENABLED_CANCEL = 'SET_ENABLED_CANCEL' as 'SET_ENABLED_CANCEL';\n","export function deserializeKeys(item: T, keys: (keyof T)[]): T {\n for (const key of keys) {\n try {\n item[key] = JSON.parse(item[key] as any);\n } catch {\n item[key] = {} as any;\n }\n }\n return item;\n}\n\nexport function serializeKeys(item: T, keys: (keyof T)[]): T {\n for (const key of keys) {\n try {\n item[key] = JSON.stringify(item[key]) as any;\n } catch {\n item[key] = '' as any;\n }\n }\n return item;\n}\n","export const FETCH_EMAILS = 'FETCH_EMAILS' as 'FETCH_EMAILS';\nexport const FETCH_EMAILS_SUCCESS = 'FETCH_EMAILS_SUCCESS' as 'FETCH_EMAILS_SUCCESS';\nexport const FETCH_EMAILS_FAIL = 'FETCH_EMAILS_FAIL' as 'FETCH_EMAILS_FAIL';\nexport const FETCH_EMAILS_CANCEL = 'FETCH_EMAILS_CANCEL' as 'FETCH_EMAILS_CANCEL';\nexport const CLEAR_EMAILS = 'CLEAR_EMAILS' as 'CLEAR_EMAILS';\n\nexport const FETCH_EMAIL_DETAIL = 'FETCH_EMAIL_DETAIL' as 'FETCH_EMAIL_DETAIL';\nexport const FETCH_EMAIL_DETAIL_SUCCESS = 'FETCH_EMAIL_DETAIL_SUCCESS' as 'FETCH_EMAIL_DETAIL_SUCCESS';\nexport const FETCH_EMAIL_DETAIL_FAIL = 'FETCH_EMAIL_DETAIL_FAIL' as 'FETCH_EMAIL_DETAIL_FAIL';\nexport const FETCH_EMAIL_DETAIL_CANCEL = 'FETCH_EMAIL_DETAIL_CANCEL' as 'FETCH_EMAIL_DETAIL_CANCEL';\n\nexport const SEND_EMAIL = 'SEND_EMAIL' as 'SEND_EMAIL';\nexport const SEND_EMAIL_SUCCESS = 'SEND_EMAIL_SUCCESS' as 'SEND_EMAIL_SUCCESS';\nexport const SEND_EMAIL_FAIL = 'SEND_EMAIL_FAIL' as 'SEND_EMAIL_FAIL';\nexport const SEND_EMAIL_CANCEL = 'SEND_EMAIL_CANCEL' as 'SEND_EMAIL_CANCEL';\n\nexport const FETCH_EMAILS_PAGE = 'FETCH_EMAILS_PAGE' as 'FETCH_EMAILS_PAGE';\n","import * as queryString from 'query-string';\nimport { HyperEpic } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, debounceTime, flatMap, map, switchMap, takeUntil } from 'rxjs/operators';\nimport { Email, EmailsParams, State } from '../../models';\nimport { deserializeKeys, serializeKeys } from '../../utils/jsonUtil';\nimport * as actions from './actions';\nimport * as types from './types';\n\ntype EmailsState = State['emails'];\n\n// helpers\nconst deserializeEmail = (s: Email) => deserializeKeys(s, ['event', 'meta']);\nconst serializeEmail = (s: Email) => serializeKeys(s, ['event', 'meta']);\n\nconst initialState = {\n emailDetailById: {},\n emailDetailByIdLoading: {},\n emailDetailByIdError: {},\n} as EmailsState;\n\nexport default function(state: EmailsState = initialState, action: actions.Action): EmailsState {\n switch (action.type) {\n case types.FETCH_EMAILS:\n case types.FETCH_EMAILS_PAGE:\n return {\n ...state,\n isLoading: true,\n };\n case types.FETCH_EMAILS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n emails: action.payload.items,\n pagination: action.payload.pagination,\n error: null,\n };\n case types.FETCH_EMAILS_FAIL:\n return {\n ...state,\n isLoading: false,\n error: action.payload || true,\n };\n case types.FETCH_EMAILS_CANCEL:\n case types.CLEAR_EMAILS:\n return {\n ...state,\n pagination: null,\n emails: null,\n error: null,\n isLoading: false,\n };\n case types.FETCH_EMAIL_DETAIL:\n return {\n ...state,\n emailDetailByIdLoading: {\n ...state.emailDetailByIdLoading,\n [action.payload]: true,\n },\n };\n case types.FETCH_EMAIL_DETAIL_SUCCESS:\n return {\n ...state,\n emailDetailByIdLoading: {\n ...state.emailDetailByIdLoading,\n [action.payload.id]: false,\n },\n emailDetailById: {\n ...state.emailDetailById,\n [action.payload.id]: deserializeEmail(action.payload),\n },\n emailDetailByIdError: {\n ...state.emailDetailByIdError,\n [action.payload.id]: null,\n },\n };\n case types.FETCH_EMAIL_DETAIL_FAIL:\n return {\n ...state,\n emailDetailByIdLoading: {\n ...state.emailDetailByIdLoading,\n [action.id]: false,\n },\n emailDetailByIdError: {\n ...state.emailDetailByIdError,\n [action.id]: action.payload || true,\n },\n };\n case types.FETCH_EMAIL_DETAIL_CANCEL:\n return {\n ...state,\n emailDetailByIdLoading: {\n ...state.emailDetailByIdLoading,\n [action.payload]: false,\n },\n };\n case types.SEND_EMAIL:\n return {\n ...state,\n isSending: true,\n };\n case types.SEND_EMAIL_SUCCESS:\n return {\n ...state,\n isSending: false,\n sendError: null,\n };\n case types.SEND_EMAIL_FAIL:\n return {\n ...state,\n isSending: false,\n sendError: action.payload || true,\n };\n case types.SEND_EMAIL_CANCEL:\n return {\n ...state,\n isSending: false,\n };\n default:\n return state;\n }\n}\n\n// action creators\nexport const fetchEmails = (params: EmailsParams): actions.FetchEmails => ({\n type: types.FETCH_EMAILS,\n payload: params,\n});\nexport const fetchEmailDetail = (id: string): actions.FetchEmailDetail => ({\n type: types.FETCH_EMAIL_DETAIL,\n payload: id,\n});\nexport const clearEmails = (): actions.ClearEmails => ({ type: types.CLEAR_EMAILS });\nexport const sendEmail = (id: string, to: string) => ({ type: types.SEND_EMAIL, payload: { id, to } });\n\nexport const nextPage = (): actions.FetchEmailsPage => ({\n type: types.FETCH_EMAILS_PAGE,\n payload: 'next',\n});\nexport const prevPage = (): actions.FetchEmailsPage => ({\n type: types.FETCH_EMAILS_PAGE,\n payload: 'prev',\n});\nexport const firstPage = (): actions.FetchEmailsPage => ({\n type: types.FETCH_EMAILS_PAGE,\n payload: 'first',\n});\nexport const lastPage = (): actions.FetchEmailsPage => ({\n type: types.FETCH_EMAILS_PAGE,\n payload: 'last',\n});\n\n// epics\nconst fetchEmailsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_EMAILS).pipe(\n debounceTime(500),\n switchMap((action: actions.FetchEmails) =>\n api.get(`/api/emails?${queryString.stringify(action.payload as any)}`).pipe(\n map(data => ({\n type: types.FETCH_EMAILS_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_EMAILS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_EMAILS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchEmailsPageEpic: HyperEpic = (\n action$,\n state$,\n { api },\n) =>\n action$.ofType(types.FETCH_EMAILS_PAGE).pipe(\n switchMap((action: actions.FetchEmailsPage) =>\n api.get(state$.value.emails.pagination.links[action.payload]).pipe(\n map(({ response: payload }) => ({\n type: types.FETCH_EMAILS_SUCCESS,\n payload,\n })),\n takeUntil(action$.ofType(types.FETCH_EMAILS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_EMAILS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchEmailDetailEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_EMAIL_DETAIL).pipe(\n flatMap((action: actions.FetchEmailDetail) =>\n api.get(`/api/emails/${action.payload}`).pipe(\n map(data => ({\n type: types.FETCH_EMAIL_DETAIL_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_EMAIL_DETAIL_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_EMAIL_DETAIL_FAIL,\n payload: error.xhr.response,\n id: action.payload,\n }),\n ),\n ),\n ),\n );\n\nconst sendEmailEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.SEND_EMAIL).pipe(\n switchMap((action: actions.SendEmail) =>\n api.post(`/api/emails/${action.payload.id}/send`, { to: action.payload.to }).pipe(\n map(({ response: payload }) => ({\n type: types.SEND_EMAIL_SUCCESS,\n payload,\n })),\n takeUntil(action$.ofType(types.SEND_EMAIL_CANCEL)),\n catchError(error =>\n of({\n type: types.SEND_EMAIL_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nexport const emailsEpics = [fetchEmailsEpic, fetchEmailsPageEpic, fetchEmailDetailEpic, sendEmailEpic];\n","import * as queryString from 'query-string';\nimport { HyperEpic } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, debounceTime, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { AsyncJob, EmailsParams, State } from '../../models';\nimport { deserializeKeys, serializeKeys } from '../../utils/jsonUtil';\nimport * as actions from './actions';\nimport * as types from './types';\n\ntype JobsState = State['jobs'];\n\n// Helpers\nconst deserializeJob = (d: AsyncJob) => deserializeKeys(d, ['taskInput', 'taskResult']);\nconst serializeJob = (d: AsyncJob) => serializeKeys(d, ['taskInput', 'taskResult']);\n\nconst initialState = {} as JobsState;\n\nexport default function(state: JobsState = initialState, action: actions.Action): JobsState {\n switch (action.type) {\n case types.FETCH_JOBS:\n case types.FETCH_JOBS_PAGE:\n return {\n ...state,\n isLoading: true,\n };\n case types.FETCH_JOBS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n jobs: action.payload.items.map(deserializeJob),\n pagination: action.payload.pagination,\n error: null,\n };\n case types.FETCH_JOBS_FAIL:\n return {\n ...state,\n isLoading: false,\n error: action.payload || true,\n };\n case types.FETCH_JOBS_CANCEL:\n case types.CLEAR_JOBS:\n return {\n ...state,\n pagination: null,\n jobs: null,\n error: null,\n isLoading: false,\n };\n default:\n return state;\n }\n}\n\n// action creators\nexport const fetchJobs = (params: EmailsParams): actions.FetchJobs => ({ type: types.FETCH_JOBS, payload: params });\nexport const clearEmails = (): actions.ClearJobs => ({ type: types.CLEAR_JOBS });\n\nexport const nextPage = (): actions.FetchJobsPage => ({\n type: types.FETCH_JOBS_PAGE,\n payload: 'next',\n});\nexport const prevPage = (): actions.FetchJobsPage => ({\n type: types.FETCH_JOBS_PAGE,\n payload: 'prev',\n});\nexport const firstPage = (): actions.FetchJobsPage => ({\n type: types.FETCH_JOBS_PAGE,\n payload: 'first',\n});\nexport const lastPage = (): actions.FetchJobsPage => ({\n type: types.FETCH_JOBS_PAGE,\n payload: 'last',\n});\n\n// epics\nconst fetchJobsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_JOBS).pipe(\n debounceTime(500),\n switchMap((action: actions.FetchJobs) =>\n api.get(`/api/jobs?${queryString.stringify(action.payload)}`).pipe(\n map(data => ({\n type: types.FETCH_JOBS_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_JOBS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_JOBS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchJobsPageEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_JOBS_PAGE).pipe(\n switchMap((action: actions.FetchJobsPage) =>\n api.get(state$.value.emails.pagination.links[action.payload]).pipe(\n map(({ response: payload }) => ({\n type: types.FETCH_JOBS_SUCCESS,\n payload,\n })),\n takeUntil(action$.ofType(types.FETCH_JOBS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_JOBS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nexport const jobsEpics = [fetchJobsEpic, fetchJobsPageEpic];\n","export const FETCH_JOBS = 'FETCH_JOBS' as 'FETCH_JOBS';\nexport const FETCH_JOBS_SUCCESS = 'FETCH_JOBS_SUCCESS' as 'FETCH_JOBS_SUCCESS';\nexport const FETCH_JOBS_FAIL = 'FETCH_JOBS_FAIL' as 'FETCH_JOBS_FAIL';\nexport const FETCH_JOBS_CANCEL = 'FETCH_JOBS_CANCEL' as 'FETCH_JOBS_CANCEL';\nexport const CLEAR_JOBS = 'CLEAR_JOBS' as 'CLEAR_JOBS';\n\nexport const FETCH_JOBS_PAGE = 'FETCH_JOBS_PAGE' as 'FETCH_JOBS_PAGE';\n","import { HyperEpic } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, map, switchMap, takeUntil } from 'rxjs/operators';\nimport { State, KubernetesCertificateRequest } from '../../models';\nimport * as actions from './actions';\nimport * as types from './types';\n\ntype CertsState = State['kubeCerts'];\n\nconst initialState = {\n certsById: {},\n certsByIdLoading: {},\n certsByIdError: {},\n certsByIdSaving: {},\n certsByIdSavingError: {},\n certsByIdDeleting: {},\n certsByIdDeletingError: {},\n validationById: {},\n validationByIdLoading: {},\n validationByIdError: {},\n} as CertsState;\n\nexport default function(state: CertsState = initialState, action: actions.CertsActions): CertsState {\n switch (action.type) {\n case types.FETCH_CERTS:\n return {\n ...state,\n loadingAll: true,\n loadingAllError: null,\n };\n case types.FETCH_CERTS_SUCCESS:\n const certsById = { ...state.certsById };\n action.payload.forEach(f => (certsById[f.OrgId] = f));\n\n return {\n ...state,\n certsById,\n loadingAll: false,\n };\n case types.FETCH_CERTS_FAIL:\n return {\n ...state,\n loadingAll: true,\n loadingAllError: action.payload.error,\n };\n case types.FETCH_CERTS_CANCEL:\n return {\n ...state,\n loadingAll: false,\n };\n case types.FETCH_CERT:\n return {\n ...state,\n certsByIdLoading: {\n ...state.certsByIdLoading,\n [action.payload.orgId]: true,\n },\n certsByIdError: {\n ...state.certsByIdError,\n [action.payload.orgId]: null,\n },\n };\n case types.FETCH_CERT_SUCCESS:\n return {\n ...state,\n certsById: {\n ...state.certsById,\n [action.payload.orgId]: action.payload.cert,\n },\n certsByIdLoading: {\n ...state.certsByIdLoading,\n [action.payload.orgId]: false,\n },\n };\n case types.FETCH_CERT_FAIL:\n return {\n ...state,\n certsByIdLoading: {\n ...state.certsByIdLoading,\n [action.payload.orgId]: false,\n },\n certsByIdError: {\n ...state.certsByIdError,\n [action.payload.orgId]: action.payload.error,\n },\n };\n case types.FETCH_CERT_CANCEL:\n return {\n ...state,\n certsByIdLoading: {\n ...state.certsByIdLoading,\n [action.payload.orgId]: false,\n },\n };\n case types.SAVE_CERT:\n return {\n ...state,\n certsByIdSaving: {\n ...state.certsByIdSaving,\n [action.payload.orgId]: true,\n },\n certsByIdError: {\n ...state.certsByIdError,\n [action.payload.orgId]: null,\n },\n };\n case types.SAVE_CERT_SUCCESS:\n return {\n ...state,\n certsByIdSaving: {\n ...state.certsByIdSaving,\n [action.payload.orgId]: false,\n },\n certsById: {\n ...state.certsById,\n [action.payload.orgId]: action.payload.cert,\n },\n };\n case types.SAVE_CERT_FAIL:\n return {\n ...state,\n certsByIdSaving: {\n ...state.certsByIdSaving,\n [action.payload.orgId]: false,\n },\n certsByIdError: {\n ...state.certsByIdError,\n [action.payload.orgId]: action.payload.error,\n },\n };\n case types.SAVE_CERT_CANCEL:\n return {\n ...state,\n certsByIdSaving: {\n ...state.certsByIdSaving,\n [action.payload.orgId]: false,\n },\n };\n case types.VALIDATE_CERT:\n return {\n ...state,\n validationByIdLoading: {\n ...state.validationByIdLoading,\n [action.payload.orgId]: true,\n },\n validationByIdError: {\n ...state.validationByIdError,\n [action.payload.orgId]: null,\n },\n };\n case types.VALIDATE_CERT_SUCCESS:\n return {\n ...state,\n validationByIdLoading: {\n ...state.validationByIdLoading,\n [action.payload.orgId]: false,\n },\n validationById: {\n ...state.validationById,\n [action.payload.orgId]: action.payload.response,\n },\n };\n case types.VALIDATE_CERT_FAIL:\n return {\n ...state,\n validationByIdLoading: {\n ...state.validationByIdLoading,\n [action.payload.orgId]: false,\n },\n validationByIdError: {\n ...state.validationById,\n [action.payload.orgId]: action.payload.error,\n },\n };\n case types.VALIDATE_CERT_CANCEL:\n return {\n ...state,\n validationByIdLoading: {\n ...state.validationByIdLoading,\n [action.payload.orgId]: false,\n },\n };\n case types.DELETE_CERT:\n return {\n ...state,\n certsByIdDeleting: {\n ...state.certsByIdDeleting,\n [action.payload.orgId]: true,\n },\n certsByIdDeletingError: {\n ...state.certsByIdDeletingError,\n [action.payload.orgId]: null,\n },\n };\n case types.DELETE_CERT_SUCCESS:\n return {\n ...state,\n certsByIdDeleting: {\n ...state.certsByIdDeleting,\n [action.payload.orgId]: false,\n },\n certsById: {\n ...state.certsById,\n [action.payload.orgId]: null,\n },\n };\n case types.DELETE_CERT_FAIL:\n return {\n ...state,\n certsByIdDeleting: {\n ...state.certsByIdDeleting,\n [action.payload.orgId]: false,\n },\n certsByIdDeletingError: {\n ...state.certsByIdDeletingError,\n [action.payload.orgId]: action.payload.error,\n },\n };\n case types.DELETE_CERT_CANCEL:\n return {\n ...state,\n certsByIdDeleting: {\n ...state.certsByIdDeleting,\n [action.payload.orgId]: false,\n },\n };\n default:\n return state;\n }\n}\n\n// action creators\nexport const fetchCerts = (): actions.FetchCerts => ({\n type: types.FETCH_CERTS,\n});\n\nexport const fetchCert = (orgId: string): actions.FetchCert => ({\n type: types.FETCH_CERT,\n payload: { orgId },\n});\n\nexport const saveCert = (orgId: string, cert: KubernetesCertificateRequest): actions.SaveCert => ({\n type: types.SAVE_CERT,\n payload: { orgId, cert },\n});\n\nexport const validateCert = (orgId: string, cert: KubernetesCertificateRequest): actions.ValidateCert => ({\n type: types.VALIDATE_CERT,\n payload: { orgId, cert },\n});\n\nexport const deleteCert = (orgId: string): actions.DeleteCert => ({\n type: types.DELETE_CERT,\n payload: { orgId },\n});\n\n// epics\nconst fetchCertsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_CERTS).pipe(\n switchMap((action: actions.FetchCerts) =>\n api.get(`/api/certs`).pipe(\n map(data => ({\n type: types.FETCH_CERTS_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_CERTS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_CERTS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchCertEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_CERT).pipe(\n switchMap((action: actions.FetchCert) =>\n api.get(`/api/certs/${action.payload.orgId}`).pipe(\n map(data => ({\n type: types.FETCH_CERT_SUCCESS,\n payload: { orgId: action.payload.orgId, cert: data.response },\n })),\n takeUntil(action$.ofType(types.FETCH_CERT_CANCEL)),\n catchError(error => {\n if (error.status === 404) {\n // Just say 404 is a success\n return of({\n type: types.FETCH_CERT_SUCCESS,\n payload: { orgId: action.payload.orgId, cert: null },\n });\n } else {\n return of({\n type: types.FETCH_CERT_FAIL,\n payload: { orgId: action.payload.orgId, error: error.xhr.response },\n });\n }\n }),\n ),\n ),\n );\n\nconst saveCertEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.SAVE_CERT).pipe(\n switchMap((action: actions.SaveCert) =>\n api\n .post(`/api/certs/${action.payload.orgId}`, {\n ...action.payload.cert,\n publicKey: action.payload.cert.publicKey ? btoa(action.payload.cert.publicKey) : undefined,\n privateKey: action.payload.cert.privateKey ? btoa(action.payload.cert.privateKey) : undefined,\n })\n .pipe(\n map(data => ({\n type: types.SAVE_CERT_SUCCESS,\n payload: { orgId: action.payload.orgId, cert: data.response },\n })),\n takeUntil(action$.ofType(types.SAVE_CERT_CANCEL)),\n catchError(error =>\n of({\n type: types.SAVE_CERT_FAIL,\n payload: { orgId: action.payload.orgId, error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nconst validateCertEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.VALIDATE_CERT).pipe(\n switchMap((action: actions.ValidateCert) =>\n api\n .post(`/api/certs/validate`, {\n ...action.payload.cert,\n publicKey: action.payload.cert.publicKey ? btoa(action.payload.cert.publicKey) : undefined,\n privateKey: action.payload.cert.privateKey ? btoa(action.payload.cert.privateKey) : undefined,\n })\n .pipe(\n map(data => ({\n type: types.VALIDATE_CERT_SUCCESS,\n payload: { orgId: action.payload.orgId, response: data.response },\n })),\n takeUntil(action$.ofType(types.VALIDATE_CERT_CANCEL)),\n catchError(error =>\n of({\n type: types.VALIDATE_CERT_FAIL,\n payload: { orgId: action.payload.orgId, error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nconst deleteCertEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.DELETE_CERT).pipe(\n switchMap((action: actions.DeleteCert) =>\n api.del(`/api/certs/${action.payload.orgId}`).pipe(\n map(data => ({\n type: types.DELETE_CERT_SUCCESS,\n payload: { orgId: action.payload.orgId },\n })),\n takeUntil(action$.ofType(types.DELETE_CERT_CANCEL)),\n catchError(error =>\n of({\n type: types.DELETE_CERT_FAIL,\n payload: { orgId: action.payload.orgId, error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nexport const kubeCertsEpics = [fetchCertsEpic, fetchCertEpic, saveCertEpic, validateCertEpic, deleteCertEpic];\n","export const FETCH_CERTS = 'FETCH_CERTS' as 'FETCH_CERTS';\nexport const FETCH_CERTS_SUCCESS = 'FETCH_CERTS_SUCCESS' as 'FETCH_CERTS_SUCCESS';\nexport const FETCH_CERTS_FAIL = 'FETCH_CERTS_FAIL' as 'FETCH_CERTS_FAIL';\nexport const FETCH_CERTS_CANCEL = 'FETCH_CERTS_CANCEL' as 'FETCH_CERTS_CANCEL';\n\nexport const FETCH_CERT = 'FETCH_CERT' as 'FETCH_CERT';\nexport const FETCH_CERT_SUCCESS = 'FETCH_CERT_SUCCESS' as 'FETCH_CERT_SUCCESS';\nexport const FETCH_CERT_FAIL = 'FETCH_CERT_FAIL' as 'FETCH_CERT_FAIL';\nexport const FETCH_CERT_CANCEL = 'FETCH_CERT_CANCEL' as 'FETCH_CERT_CANCEL';\n\nexport const SAVE_CERT = 'SAVE_CERT' as 'SAVE_CERT';\nexport const SAVE_CERT_SUCCESS = 'SAVE_CERT_SUCCESS' as 'SAVE_CERT_SUCCESS';\nexport const SAVE_CERT_FAIL = 'SAVE_CERT_FAIL' as 'SAVE_CERT_FAIL';\nexport const SAVE_CERT_CANCEL = 'SAVE_CERT_CANCEL' as 'SAVE_CERT_CANCEL';\n\nexport const VALIDATE_CERT = 'VALIDATE_CERT' as 'VALIDATE_CERT';\nexport const VALIDATE_CERT_SUCCESS = 'VALIDATE_CERT_SUCCESS' as 'VALIDATE_CERT_SUCCESS';\nexport const VALIDATE_CERT_FAIL = 'VALIDATE_CERT_FAIL' as 'VALIDATE_CERT_FAIL';\nexport const VALIDATE_CERT_CANCEL = 'VALIDATE_CERT_CANCEL' as 'VALIDATE_CERT_CANCEL';\n\nexport const DELETE_CERT = 'DELETE_CERT' as 'DELETE_CERT';\nexport const DELETE_CERT_SUCCESS = 'DELETE_CERT_SUCCESS' as 'DELETE_CERT_SUCCESS';\nexport const DELETE_CERT_FAIL = 'DELETE_CERT_FAIL' as 'DELETE_CERT_FAIL';\nexport const DELETE_CERT_CANCEL = 'DELETE_CERT_CANCEL' as 'DELETE_CERT_CANCEL';\n","import * as queryString from 'query-string';\nimport { HyperEpic } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, debounceTime, map, switchMap, takeUntil } from 'rxjs/operators';\nimport { ProvidersParams, State, License } from '../../models';\nimport * as actions from './actions';\nimport * as types from './types';\nimport { FETCH_ORG_LICENSES_SUCCESS, FETCH_ORGS_SUCCESS } from 'store/Orgs/types';\nimport { FetchOrgLicensesSuccess, FetchOrgsSuccess } from 'store/Orgs/actions';\n\ntype LicensesState = State['licenses'];\n\nconst initialState = {\n licensesById: {},\n licensesByIdError: {},\n licensesByIdLoading: {},\n licensesByIdSaving: {},\n licensesByIdSavingError: {},\n} as LicensesState;\n\nexport default function(\n state: LicensesState = initialState,\n action: actions.Action | FetchOrgLicensesSuccess | FetchOrgsSuccess,\n): LicensesState {\n switch (action.type) {\n case types.FETCH_LICENSE:\n return {\n ...state,\n licensesByIdLoading: {\n ...state.licensesByIdLoading,\n [action.payload.id]: true,\n },\n licensesByIdError: {\n ...state.licensesByIdError,\n [action.payload.id]: null,\n },\n };\n case FETCH_ORGS_SUCCESS:\n return {\n ...state,\n licensesById: {\n ...state.licensesById,\n ...Object.keys(action.payload.relatedEntities.licenses)\n .map(orgId => action.payload.relatedEntities.licenses[orgId])\n .reduce((p, c) => {\n for (const license of c) {\n p[license.id] = license;\n }\n return p;\n }, {}),\n },\n };\n case FETCH_ORG_LICENSES_SUCCESS:\n return {\n ...state,\n licensesById: {\n ...state.licensesById,\n ...action.payload.items.reduce((p, c) => {\n p[c.id] = c;\n return p;\n }, {}),\n },\n };\n case types.FETCH_LICENSE_SUCCESS:\n return {\n ...state,\n licensesById: {\n ...state.licensesById,\n [action.payload.id]: action.payload.license,\n },\n licensesByIdLoading: {\n ...state.licensesByIdLoading,\n [action.payload.id]: false,\n },\n };\n case types.FETCH_LICENSE_FAIL:\n return {\n ...state,\n licensesByIdLoading: {\n ...state.licensesByIdLoading,\n [action.payload.id]: false,\n },\n licensesByIdError: {\n ...state.licensesByIdError,\n [action.payload.id]: action.payload.error,\n },\n };\n case types.FETCH_LICENSE_CANCEL:\n return {\n ...state,\n licensesByIdLoading: {\n ...state.licensesByIdLoading,\n [action.payload.id]: false,\n },\n };\n case types.SAVE_LICENSE:\n return {\n ...state,\n licensesByIdSaving: {\n ...state.licensesByIdSaving,\n [action.payload.id]: true,\n },\n licensesByIdError: {\n ...state.licensesByIdError,\n [action.payload.id]: null,\n },\n };\n case types.SAVE_LICENSE_SUCCESS:\n return {\n ...state,\n licensesByIdSaving: {\n ...state.licensesByIdSaving,\n [action.payload.id]: false,\n },\n licensesById: {\n ...state.licensesById,\n [action.payload.id]: action.payload.license,\n },\n };\n case types.SAVE_LICENSE_FAIL:\n return {\n ...state,\n licensesByIdSaving: {\n ...state.licensesByIdSaving,\n [action.payload.id]: false,\n },\n licensesByIdError: {\n ...state.licensesByIdError,\n [action.payload.id]: action.payload.error,\n },\n };\n case types.SAVE_LICENSE_CANCEL:\n return {\n ...state,\n licensesByIdSaving: {\n ...state.licensesByIdSaving,\n [action.payload.id]: false,\n },\n };\n case types.CREATE_LICENSE:\n return {\n ...state,\n creating: true,\n creatingError: null,\n };\n case types.CREATE_LICENSE_SUCCESS:\n return {\n ...state,\n creating: false,\n licensesById: {\n ...state.licensesById,\n [action.payload.id]: action.payload,\n },\n };\n case types.CREATE_LICENSE_FAIL:\n return {\n ...state,\n creating: false,\n creatingError: action.payload,\n };\n case types.CREATE_LICENSE_CANCEL:\n return {\n ...state,\n creating: false,\n };\n default:\n return state;\n }\n}\n\n// action creators\nexport const fetchLicense = (id: string): actions.FetchLicense => ({\n type: types.FETCH_LICENSE,\n payload: { id },\n});\n\nexport const saveLicense = (id: string, license: License): actions.SaveLicense => ({\n type: types.SAVE_LICENSE,\n payload: { id, license },\n});\n\nexport const createLicense = (license: License): actions.CreateLicense => ({\n type: types.CREATE_LICENSE,\n payload: license,\n});\n\n// epics\nconst fetchLicenseEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_LICENSE).pipe(\n switchMap((action: actions.FetchLicense) =>\n api.get(`/api/licenses/${action.payload.id}`).pipe(\n map(data => ({\n type: types.FETCH_LICENSE_SUCCESS,\n payload: { id: action.payload.id, license: data.response },\n })),\n takeUntil(action$.ofType(types.FETCH_LICENSE_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_LICENSE_FAIL,\n payload: { id: action.payload.id, error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nconst saveLicenseEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.SAVE_LICENSE).pipe(\n switchMap((action: actions.SaveLicense) =>\n api.put(`/api/licenses/${action.payload.id}`, action.payload.license).pipe(\n map(data => ({\n type: types.SAVE_LICENSE_SUCCESS,\n payload: { id: action.payload.id, license: data.response },\n })),\n takeUntil(action$.ofType(types.SAVE_LICENSE_CANCEL)),\n catchError(error =>\n of({\n type: types.SAVE_LICENSE_FAIL,\n payload: { id: action.payload.id, error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nconst createLicenseEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.CREATE_LICENSE).pipe(\n switchMap((action: actions.CreateLicense) =>\n api.post(`/api/licenses`, action.payload).pipe(\n map(data => ({\n type: types.CREATE_LICENSE_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.CREATE_LICENSE_CANCEL)),\n catchError(error =>\n of({\n type: types.CREATE_LICENSE_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nexport const licensesEpics = [fetchLicenseEpic, saveLicenseEpic, createLicenseEpic];\n","export const FETCH_LICENSE = 'FETCH_LICENSE' as 'FETCH_LICENSE';\nexport const FETCH_LICENSE_SUCCESS = 'FETCH_LICENSE_SUCCESS' as 'FETCH_LICENSE_SUCCESS';\nexport const FETCH_LICENSE_FAIL = 'FETCH_LICENSE_FAIL' as 'FETCH_LICENSE_FAIL';\nexport const FETCH_LICENSE_CANCEL = 'FETCH_LICENSE_CANCEL' as 'FETCH_LICENSE_CANCEL';\n\nexport const SAVE_LICENSE = 'SAVE_LICENSE' as 'SAVE_LICENSE';\nexport const SAVE_LICENSE_SUCCESS = 'SAVE_LICENSE_SUCCESS' as 'SAVE_LICENSE_SUCCESS';\nexport const SAVE_LICENSE_FAIL = 'SAVE_LICENSE_FAIL' as 'SAVE_LICENSE_FAIL';\nexport const SAVE_LICENSE_CANCEL = 'SAVE_LICENSE_CANCEL' as 'SAVE_LICENSE_CANCEL';\n\nexport const CREATE_LICENSE = 'CREATE_LICENSE' as 'CREATE_LICENSE';\nexport const CREATE_LICENSE_SUCCESS = 'CREATE_LICENSE_SUCCESS' as 'CREATE_LICENSE_SUCCESS';\nexport const CREATE_LICENSE_FAIL = 'CREATE_LICENSE_FAIL' as 'CREATE_LICENSE_FAIL';\nexport const CREATE_LICENSE_CANCEL = 'CREATE_LICENSE_CANCEL' as 'CREATE_LICENSE_CANCEL';\n","import { HyperEpic } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, map, mergeMap, takeUntil } from 'rxjs/operators';\n\nimport { State, License } from '../../models';\nimport * as actions from './actions';\nimport * as types from './types';\nimport { CreateLicense } from 'store/Licenses/actions';\n\ntype LinksState = State['links'];\n\nconst initialState = {} as LinksState;\n\nexport default function(state: LinksState = initialState, action: actions.Action): LinksState {\n switch (action.type) {\n case types.FETCH_LICENSING_LINK:\n return {\n ...state,\n licensingLinkIsLoading: true,\n };\n case types.FETCH_LICENSING_LINK_SUCCESS:\n return {\n ...state,\n licensingLinkIsLoading: false,\n licensingLink: action.payload,\n licensingLinkError: null,\n };\n case types.FETCH_LICENSING_LINK_FAIL:\n return {\n ...state,\n licensingLinkIsLoading: false,\n licensingLinkError: action.payload || true,\n };\n case types.FETCH_LICENSING_LINK_CANCEL:\n return {\n ...state,\n licensingLinkIsLoading: false,\n };\n case types.CLEAR_LICENSING_LINK:\n return {\n ...state,\n licensingLink: null,\n licensingLinkError: null,\n licensingLinkIsLoading: false,\n };\n\n case types.FETCH_IMPERSONATION_LINK:\n return {\n ...state,\n impersonationLinkIsLoading: true,\n };\n case types.FETCH_IMPERSONATION_LINK_SUCCESS:\n return {\n ...state,\n impersonationLinkIsLoading: false,\n impersonationLink: action.payload,\n impersonationLinkError: null,\n };\n case types.FETCH_IMPERSONATION_LINK_FAIL:\n return {\n ...state,\n impersonationLinkIsLoading: false,\n impersonationLinkError: action.payload || true,\n };\n case types.FETCH_IMPERSONATION_LINK_CANCEL:\n return {\n ...state,\n impersonationLinkIsLoading: false,\n };\n case types.CLEAR_IMPERSONATION_LINK:\n return {\n ...state,\n impersonationLink: null,\n impersonationLinkError: null,\n impersonationLinkIsLoading: false,\n };\n default:\n return state;\n }\n}\n\n// action creators\nexport const fetchLicensingLink = (license: CreateLicense): actions.FetchLicensingLink => ({\n type: types.FETCH_LICENSING_LINK,\n payload: { license: license.payload },\n});\nexport const clearLicensingLink = (): actions.ClearLicensingLink => ({ type: types.CLEAR_LICENSING_LINK });\n\nexport const fetchImpersonationLink = (\n orgId: string,\n id: string,\n isProvider = false,\n): actions.FetchImpersonationLink => ({ type: types.FETCH_IMPERSONATION_LINK, payload: { orgId, id, isProvider } });\nexport const clearImpersonationLink = (): actions.ClearImpersonationLink => ({ type: types.CLEAR_IMPERSONATION_LINK });\n\n// epics\nconst fetchLicensingLinkEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_LICENSING_LINK).pipe(\n mergeMap((action: actions.FetchLicensingLink) =>\n api.post(`/api/licenses/links`, action.payload.license).pipe(\n map(data => ({\n type: types.FETCH_LICENSING_LINK_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_LICENSING_LINK_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_LICENSING_LINK_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchImpersonationLinkEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_IMPERSONATION_LINK).pipe(\n mergeMap((action: actions.FetchImpersonationLink) =>\n api\n .post(\n action.payload.isProvider\n ? `/api/providers/${action.payload.id}/links`\n : `/api/orgs/${action.payload.orgId}/permissions/${action.payload.id}/links`,\n )\n .pipe(\n map(data => ({\n type: types.FETCH_IMPERSONATION_LINK_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_IMPERSONATION_LINK_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_IMPERSONATION_LINK_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nexport const linksEpics = [fetchLicensingLinkEpic, fetchImpersonationLinkEpic];\n","export const FETCH_LICENSING_LINK = 'FETCH_LICENSING_LINK' as 'FETCH_LICENSING_LINK';\nexport const FETCH_LICENSING_LINK_SUCCESS = 'FETCH_LICENSING_LINK_SUCCESS' as 'FETCH_LICENSING_LINK_SUCCESS';\nexport const FETCH_LICENSING_LINK_FAIL = 'FETCH_LICENSING_LINK_FAIL' as 'FETCH_LICENSING_LINK_FAIL';\nexport const FETCH_LICENSING_LINK_CANCEL = 'FETCH_LICENSING_LINK_CANCEL' as 'FETCH_LICENSING_LINK_CANCEL';\nexport const CLEAR_LICENSING_LINK = 'CLEAR_LICENSING_LINK' as 'CLEAR_LICENSING_LINK';\n\nexport const FETCH_IMPERSONATION_LINK = 'FETCH_IMPERSONATION_LINK' as 'FETCH_IMPERSONATION_LINK';\nexport const FETCH_IMPERSONATION_LINK_SUCCESS = 'FETCH_IMPERSONATION_LINK_SUCCESS' as 'FETCH_IMPERSONATION_LINK_SUCCESS';\nexport const FETCH_IMPERSONATION_LINK_FAIL = 'FETCH_IMPERSONATION_LINK_FAIL' as 'FETCH_IMPERSONATION_LINK_FAIL';\nexport const FETCH_IMPERSONATION_LINK_CANCEL = 'FETCH_IMPERSONATION_LINK_CANCEL' as 'FETCH_IMPERSONATION_LINK_CANCEL';\nexport const CLEAR_IMPERSONATION_LINK = 'CLEAR_IMPERSONATION_LINK' as 'CLEAR_IMPERSONATION_LINK';\n","export function exportToCsv(filename, rows) {\n const separator = ',';\n const csvContent = rows\n .map(row => {\n return Object.values(row)\n .map(value => {\n if (typeof value === 'string' && value.includes(separator)) {\n return `\"${value}\"`;\n } else {\n return value;\n }\n })\n .join(separator);\n })\n .join('\\n');\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', filename);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n}\n","export function getDateToFileName(): string {\n const date = new Date();\n const formattedDate =\n date.getFullYear().toString() +\n (date.getMonth() + 1).toString().padStart(2, '0') +\n date\n .getDate()\n .toString()\n .padStart(2, '0') +\n date\n .getHours()\n .toString()\n .padStart(2, '0') +\n date\n .getMinutes()\n .toString()\n .padStart(2, '0') +\n date\n .getSeconds()\n .toString()\n .padStart(2, '0');\n return formattedDate;\n}\n\nexport function convertDateToStandardFormat(dataInput: string | Date): string {\n if (dataInput === null || dataInput === undefined) return '';\n\n const date = typeof dataInput === 'string' ? new Date(dataInput) : dataInput;\n //MM-dd-yyyy hh:mm\n return `${(date.getMonth() + 1).toString().padStart(2, '0')}-${date\n .getDate()\n .toString()\n .padStart(2, '0')}-${date.getFullYear()} ${date\n .getHours()\n .toString()\n .padStart(2, '0')}:${date\n .getMinutes()\n .toString()\n .padStart(2, '0')}`;\n}\n","import * as queryString from 'query-string';\nimport { HyperEpic } from 'redux-observable';\nimport { concat, of } from 'rxjs';\nimport { catchError, debounceTime, filter, flatMap, map, mergeMap, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { Audience, Org, Permission, Setting, SettingsPost, State, License } from '../../models';\nimport { deserializeKeys, serializeKeys } from '../../utils/jsonUtil';\nimport { mapArrayToObject } from '../../utils/mapArrayToObject';\nimport * as actions from './actions';\nimport * as types from './types';\nimport { FETCH_ORGS_FAIL, SAVE_ORG_FAIL } from './types';\nimport { CREATE_LICENSE_SUCCESS } from 'store/Licenses/types';\nimport { CreateLicenseSuccess } from 'store/Licenses/actions';\nimport { exportToCsv } from 'utils/fileUtil';\nimport { getDateToFileName } from 'utils/dateUtil';\n\ntype OrgsState = State['orgs'];\n\n// helpers\nconst deserializePermission = (d: Permission) => deserializeKeys(d, ['config', 'definition', 'meta']);\nconst serializePermission = (d: Permission) => serializeKeys(d, ['config', 'definition', 'meta']);\n\nconst deserializeSetting = (s: Setting) => deserializeKeys(s, ['settingValue']);\nconst serializeSetting = (s: Setting) => serializeKeys(s, ['settingValue']);\n\nconst deserializeAudience = (a: Audience) => deserializeKeys(a, ['definition', 'lastModifiedMeta']);\nconst serializeAudience = (a: Audience) => serializeKeys(a, ['definition', 'lastModifiedMeta']);\n\nconst deserializeSettingDictionary = (dict: { [key: string]: Setting[] }) => {\n const newDict = {};\n Object.keys(dict).forEach(key => (newDict[key] = dict[key].map(deserializeSetting)));\n return newDict;\n};\n\nconst initialState = {\n audiencesById: {},\n audiencesByIdError: {},\n audiencesByIdLoading: {},\n deleteProgress: {},\n fieldsById: {},\n fieldsByIdError: {},\n fieldsByIdLoading: {},\n isSavingById: {},\n licenseIdsById: {},\n licensesByIdLoading: {},\n latestAuditById: {},\n orgsById: {},\n orgsByIdLoading: {},\n permissionsById: {},\n permissionsByIdError: {},\n permissionsByIdLoading: {},\n settingsById: {},\n settingsByIdError: {},\n settingsByIdLoading: {},\n} as State['orgs'];\n\nexport default function(state: OrgsState = initialState, action: actions.Action | CreateLicenseSuccess): OrgsState {\n switch (action.type) {\n case types.FETCH_ORGS:\n case types.FETCH_ORGS_PAGE:\n return {\n ...state,\n isLoading: true,\n };\n case types.FETCH_ORGS_SUCCESS:\n return {\n ...state,\n orgIds: action.payload.items.map(({ id }) => id),\n orgsById: mapArrayToObject(action.payload.items),\n pagination: action.payload.pagination,\n isLoading: false,\n settingsById: {\n ...state.settingsById,\n ...deserializeSettingDictionary(action.payload.relatedEntities.modes),\n },\n licenseIdsById: {\n ...state.licenseIdsById,\n ...Object.keys(action.payload.relatedEntities.licenses).reduce((p, c) => {\n p[c] = action.payload.relatedEntities.licenses[c].map(l => l.id);\n return p;\n }, {}),\n },\n latestAuditById: {\n ...state.latestAuditById,\n ...action.payload.relatedEntities.latestAudits,\n },\n };\n\n case types.EXPORT_ORGS:\n return { ...state, isExporting: true };\n case types.EXPORT_ORGS_SUCCESS:\n case types.EXPORT_ORGS_FAIL:\n case types.EXPORT_ORGS_CANCEL:\n return { ...state, isExporting: false };\n case types.FETCH_ORG:\n return {\n ...state,\n orgsByIdLoading: { ...state.orgsByIdLoading, [action.payload]: true },\n };\n case types.FETCH_ORG_SUCCESS:\n return {\n ...state,\n orgsByIdLoading: {\n ...state.orgsByIdLoading,\n [action.payload.id]: false,\n },\n orgsById: { ...state.orgsById, [action.payload.id]: action.payload },\n };\n case types.FETCH_ORG_LICENSES:\n return {\n ...state,\n licensesByIdLoading: { ...state.licensesByIdLoading, [action.payload]: true },\n };\n case types.FETCH_ORG_LICENSES_SUCCESS:\n return {\n ...state,\n licensesByIdLoading: { ...state.licensesByIdLoading, [action.payload.id]: false },\n licenseIdsById: {\n ...state.licenseIdsById,\n [action.payload.id]: action.payload.items.map(l => l.id),\n },\n };\n case CREATE_LICENSE_SUCCESS:\n return {\n ...state,\n licenseIdsById: {\n ...state.licenseIdsById,\n [action.payload.antreaOrgId]: [...state.licenseIdsById[action.payload.antreaOrgId], action.payload.id],\n },\n };\n case types.FETCH_ORG_FIELDS:\n return {\n ...state,\n fieldsById: { ...state.fieldsById, [action.payload]: null },\n fieldsByIdLoading: {\n ...state.fieldsByIdLoading,\n [action.payload]: true,\n },\n };\n case types.FETCH_ORG_FIELDS_SUCCESS:\n return {\n ...state,\n fieldsByIdLoading: {\n ...state.fieldsByIdLoading,\n [action.payload.id]: false,\n },\n fieldsByIdError: {\n ...state.fieldsByIdError,\n [action.payload.id]: null,\n },\n fieldsById: {\n ...state.fieldsById,\n [action.payload.id]: action.payload.items,\n },\n };\n case types.FETCH_ORG_FIELDS_FAIL:\n return {\n ...state,\n fieldsByIdLoading: {\n ...state.fieldsByIdLoading,\n [action.payload.id]: false,\n },\n fieldsByIdError: {\n ...state.fieldsByIdError,\n [action.payload.id]: action.payload.error || true,\n },\n };\n case types.FETCH_ORG_FIELDS_CANCEL:\n return {\n ...state,\n fieldsByIdLoading: {\n ...state.fieldsByIdLoading,\n [action.payload]: false,\n },\n };\n case types.SET_ORG_COLLECTION_BY_ATTRIBUTE:\n return {\n ...state,\n collectionByAttributeSaving: true,\n collectionByAttributeError: null,\n };\n case types.SET_ORG_COLLECTION_BY_ATTRIBUTE_SUCCESS:\n return {\n ...state,\n collectionByAttributeSaving: false,\n };\n case types.SET_ORG_COLLECTION_BY_ATTRIBUTE_FAIL:\n return {\n ...state,\n collectionByAttributeSaving: false,\n collectionByAttributeError: action.payload.error || true,\n };\n case types.SET_ORG_COLLECTION_BY_ATTRIBUTE_CANCEL:\n return {\n ...state,\n collectionByAttributeSaving: false,\n };\n case types.SAVE_ORG:\n return {\n ...state,\n isSavingById: { ...state.isSavingById, [action.payload.id]: true },\n };\n case types.SAVE_ORG_SUCCESS:\n return {\n ...state,\n isSavingById: { ...state.isSavingById, [action.payload.id]: false },\n orgsById: { ...state.orgsById, [action.payload.id]: action.payload },\n };\n case types.SAVE_ORG_FAIL:\n return {\n ...state,\n isSavingById: { ...state.isSavingById, [action.payload.id]: false },\n savingError: action.payload || true,\n };\n case types.DELETE_ORG_START:\n return {\n ...state,\n deleteProgress: { id: action.payload },\n };\n case types.DELETE_ORG_PROGRESS:\n return {\n ...state,\n deleteProgress: {\n ...state.deleteProgress,\n [`${action.payload.task}Result`]: action.payload.result,\n },\n };\n case types.DELETE_ORG_END:\n return {\n ...state,\n deleteProgress: initialState.deleteProgress,\n };\n case types.EDIT_ORG_START:\n return {\n ...state,\n dirtyOrg: JSON.parse(JSON.stringify(state.orgsById[action.payload])),\n };\n case types.EDIT_ORG_END:\n return {\n ...state,\n dirtyOrg: null,\n };\n case types.EDIT_ORG:\n return {\n ...state,\n dirtyOrg: {\n ...state.dirtyOrg,\n [action.payload.key]: action.payload.value,\n },\n };\n case types.FETCH_PERMISSIONS:\n return {\n ...state,\n permissionsByIdLoading: {\n ...state.permissionsByIdLoading,\n [action.payload]: true,\n },\n permissionsByIdError: {\n ...state.permissionsByIdError,\n [action.payload]: null,\n },\n };\n case types.FETCH_PERMISSIONS_SUCCESS:\n return {\n ...state,\n permissionsByIdLoading: {\n ...state.permissionsByIdLoading,\n [action.payload.orgId]: false,\n },\n permissionsById: {\n ...state.permissionsById,\n [action.payload.orgId]: action.payload.permissions.map(deserializePermission),\n },\n };\n case types.FETCH_PERMISSIONS_FAIL:\n return {\n ...state,\n permissionsByIdLoading: {\n ...state.permissionsByIdLoading,\n [action.payload.orgId]: false,\n },\n permissionsByIdError: {\n ...state.permissionsByIdError,\n [action.payload.orgId]: action.payload.error || true,\n },\n };\n case types.FETCH_PERMISSIONS_CANCEL:\n return {\n ...state,\n permissionsByIdLoading: {\n ...state.permissionsByIdLoading,\n [action.payload]: false,\n },\n };\n case types.FETCH_ORG_SETTINGS:\n return {\n ...state,\n settingsByIdLoading: {\n ...state.settingsByIdLoading,\n [action.payload]: true,\n },\n settingsByIdError: {\n ...state.settingsByIdError,\n [action.payload]: null,\n },\n };\n case types.FETCH_ORG_SETTINGS_SUCCESS:\n return {\n ...state,\n settingsByIdLoading: {\n ...state.settingsByIdLoading,\n [action.payload.orgId]: false,\n },\n settingsById: {\n ...state.settingsById,\n [action.payload.orgId]: action.payload.settings.map(deserializeSetting),\n },\n };\n case types.FETCH_ORG_SETTINGS_FAIL:\n return {\n ...state,\n settingsByIdLoading: {\n ...state.settingsByIdLoading,\n [action.payload.orgId]: false,\n },\n settingsByIdError: {\n ...state.settingsByIdError,\n [action.payload.orgId]: action.payload.error || true,\n },\n };\n case types.FETCH_ORG_SETTINGS_CANCEL:\n return {\n ...state,\n settingsByIdLoading: {\n ...state.settingsByIdLoading,\n [action.payload]: false,\n },\n };\n\n case types.SAVE_ORG_SETTINGS:\n return {\n ...state,\n settingsIsSaving: true,\n settingsSavingError: null,\n };\n case types.SAVE_ORG_SETTINGS_SUCCESS:\n return {\n ...state,\n settingsIsSaving: false,\n settingsById: {\n ...state.settingsById,\n [action.payload.orgId]: action.payload.settings.map(deserializeSetting),\n },\n };\n case types.SAVE_ORG_SETTINGS_FAIL:\n return {\n ...state,\n settingsIsSaving: false,\n settingsSavingError: action.payload,\n };\n case types.SAVE_ORG_SETTINGS_CANCEL:\n return {\n ...state,\n settingsIsSaving: false,\n };\n\n case types.FETCH_ORG_AUDIENCES:\n return {\n ...state,\n audiencesByIdLoading: {\n ...state.audiencesByIdLoading,\n [action.payload]: true,\n },\n audiencesByIdError: {\n ...state.audiencesByIdError,\n [action.payload]: null,\n },\n };\n case types.FETCH_ORG_AUDIENCES_SUCCESS:\n return {\n ...state,\n audiencesByIdLoading: {\n ...state.audiencesByIdLoading,\n [action.payload.orgId]: false,\n },\n audiencesById: {\n ...state.audiencesById,\n [action.payload.orgId]: action.payload.audiences.map(deserializeAudience),\n },\n };\n case types.FETCH_ORG_AUDIENCES_FAIL:\n return {\n ...state,\n audiencesByIdLoading: {\n ...state.audiencesByIdLoading,\n [action.payload.orgId]: false,\n },\n audiencesByIdError: {\n ...state.audiencesByIdError,\n [action.payload.orgId]: action.payload.error || true,\n },\n };\n case types.FETCH_ORG_AUDIENCES_CANCEL:\n return {\n ...state,\n audiencesByIdLoading: {\n ...state.audiencesByIdLoading,\n [action.payload]: false,\n },\n };\n default:\n return state;\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\n // const exhaustiveCheck: never = action;\n }\n}\n\n// action creators\nexport const exportOrgs = (payload: actions.ExportOrgs['payload'] = {}): actions.ExportOrgs => ({\n type: types.EXPORT_ORGS,\n payload,\n});\n\nexport const fetchOrgs = (payload: actions.FetchOrgs['payload'] = {}): actions.FetchOrgs => ({\n type: types.FETCH_ORGS,\n payload,\n});\n\nexport const nextPage = (): actions.FetchOrgsPage => ({\n type: types.FETCH_ORGS_PAGE,\n payload: 'next',\n});\nexport const prevPage = (): actions.FetchOrgsPage => ({\n type: types.FETCH_ORGS_PAGE,\n payload: 'prev',\n});\nexport const firstPage = (): actions.FetchOrgsPage => ({\n type: types.FETCH_ORGS_PAGE,\n payload: 'first',\n});\nexport const lastPage = (): actions.FetchOrgsPage => ({\n type: types.FETCH_ORGS_PAGE,\n payload: 'last',\n});\n\nexport const fetchOrg = (orgId: string): actions.FetchOrg => ({\n type: types.FETCH_ORG,\n payload: orgId,\n});\n\nexport const fetchLicenses = (orgId: string): actions.FetchOrgLicenses => ({\n type: types.FETCH_ORG_LICENSES,\n payload: orgId,\n});\n\nexport const fetchFields = (orgId: string): actions.FetchOrgFields => ({\n type: types.FETCH_ORG_FIELDS,\n payload: orgId,\n});\n\nexport const setCollectionByAttribute = (\n orgId: string,\n field: string,\n enabled?: boolean,\n): actions.SetOrgCollectionByAttribute => ({\n type: types.SET_ORG_COLLECTION_BY_ATTRIBUTE,\n payload: { orgId, field, enabled },\n});\n\nexport const saveOrg = (org: Org): actions.SaveOrg => ({\n type: types.SAVE_ORG,\n payload: org,\n});\nexport const startEdit = (orgId: string): actions.EditOrgStart => ({\n type: types.EDIT_ORG_START,\n payload: orgId,\n});\nexport const startDelete = (orgId: string): actions.DeleteOrgStart => ({\n type: types.DELETE_ORG_START,\n payload: orgId,\n});\nexport const endDelete = (): actions.DeleteOrgEnd => ({\n type: types.DELETE_ORG_END,\n});\nexport const endEdit = (): actions.EditOrgEnd => ({\n type: types.EDIT_ORG_END,\n});\nexport const editOrg = (key: T, value: Org[T]): actions.EditOrg => ({\n type: 'EDIT_ORG',\n payload: { key, value },\n});\n\nexport const fetchPermissions = (orgId: string): actions.FetchPermissions => ({\n type: types.FETCH_PERMISSIONS,\n payload: orgId,\n});\n\nexport const fetchSettings = (orgId: string): actions.FetchOrgSettings => ({\n type: types.FETCH_ORG_SETTINGS,\n payload: orgId,\n});\n\nexport const saveSettings = (orgId: string, settings: SettingsPost): actions.SaveOrgSettings => ({\n type: types.SAVE_ORG_SETTINGS,\n payload: { orgId, settings },\n});\n\nexport const saveSettingsCancel = (): actions.SaveOrgSettingsCancel => ({\n type: types.SAVE_ORG_SETTINGS_CANCEL,\n});\n\nexport const fetchAudiences = (orgId: string): actions.FetchOrgAudiences => ({\n type: types.FETCH_ORG_AUDIENCES,\n payload: orgId,\n});\n\n// epics\nconst exportOrgsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.EXPORT_ORGS).pipe(\n debounceTime(500),\n switchMap((action: actions.ExportOrgs) =>\n api.get(`/api/orgs/export?${queryString.stringify(action.payload as any)}`).pipe(\n map(data => {\n exportToCsv('Orgs_' + getDateToFileName() + '.csv', data.response);\n return {\n type: types.EXPORT_ORGS_SUCCESS,\n payload: 'success',\n };\n }),\n takeUntil(action$.ofType(types.EXPORT_ORGS_CANCEL)),\n catchError(error =>\n of({\n type: types.EXPORT_ORGS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchOrgsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_ORGS).pipe(\n debounceTime(500),\n switchMap((action: actions.FetchOrgs) =>\n api.get(`/api/orgs?${queryString.stringify(action.payload as any)}`).pipe(\n map(data => ({\n type: types.FETCH_ORGS_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_ORGS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_ORGS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchOrgsPageEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_ORGS_PAGE).pipe(\n switchMap((action: actions.FetchOrgsPage) =>\n api.get(state$.value.orgs.pagination.links[action.payload]).pipe(\n map(({ response: payload }) => ({\n type: types.FETCH_ORGS_SUCCESS,\n payload,\n })),\n takeUntil(action$.ofType(types.FETCH_ORGS_CANCEL)),\n catchError(error =>\n of({\n type: FETCH_ORGS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchOrgEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_ORG).pipe(\n mergeMap((action: actions.FetchOrg) =>\n api.get(`/api/orgs/${action.payload}`).pipe(\n map(data => ({\n type: types.FETCH_ORG_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_ORG_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_ORG_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchOrgLicensesEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_ORG_LICENSES).pipe(\n mergeMap((action: actions.FetchOrgLicenses) =>\n api.get(`/api/orgs/${action.payload}/licenses`).pipe(\n map(data => ({\n type: types.FETCH_ORG_LICENSES_SUCCESS,\n payload: { id: action.payload, items: data.response } as any,\n })),\n takeUntil(action$.ofType(types.FETCH_ORG_LICENSES_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_ORG_LICENSES_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchOrgFieldsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_ORG_FIELDS).pipe(\n switchMap((action: actions.FetchOrgFields) =>\n api.get(`/api/orgs/${action.payload}/fields`).pipe(\n map(data => ({\n type: types.FETCH_ORG_FIELDS_SUCCESS,\n payload: { id: action.payload, items: data.response } as any,\n })),\n takeUntil(action$.ofType(types.FETCH_ORG_FIELDS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_ORG_FIELDS_FAIL,\n payload: { id: action.payload, error: error.xhr.response } as any,\n }),\n ),\n ),\n ),\n );\n\nconst setCollectionByAttributeEpic: HyperEpic = (\n action$,\n state$,\n { api },\n) =>\n action$.ofType(types.SET_ORG_COLLECTION_BY_ATTRIBUTE).pipe(\n switchMap((action: actions.SetOrgCollectionByAttribute) =>\n api\n .post(`/api/orgs/${action.payload.orgId}/setcollectionattribute`, {\n field: action.payload.field,\n enabled: action.payload.enabled,\n })\n .pipe(\n map(data => ({\n type: types.SET_ORG_COLLECTION_BY_ATTRIBUTE_SUCCESS,\n payload: action.payload.orgId as any,\n })),\n takeUntil(action$.ofType(types.SET_ORG_COLLECTION_BY_ATTRIBUTE_CANCEL)),\n catchError(error =>\n of({\n type: types.SET_ORG_COLLECTION_BY_ATTRIBUTE_FAIL,\n payload: {\n orgId: action.payload.orgId,\n error: error.xhr.response,\n } as any,\n }),\n ),\n ),\n ),\n );\n\nconst saveOrgEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.SAVE_ORG).pipe(\n mergeMap((action: actions.SaveOrg) =>\n api.put(`/api/orgs/${action.payload.id}`, action.payload).pipe(\n map(data => ({ type: types.SAVE_ORG_SUCCESS, payload: data.response })),\n takeUntil(action$.ofType(types.SAVE_ORG_CANCEL)),\n catchError(error =>\n of({\n type: SAVE_ORG_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst deleteOrgLicensesEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.DELETE_ORG_START).pipe(\n mergeMap((action: actions.DeleteOrgStart) =>\n api.del(`/api/orgs/${action.payload}/licenses`).pipe(\n map(\n data =>\n ({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'licenses', result: data },\n } as actions.DeleteOrgProgress),\n ),\n catchError(error =>\n of({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'licenses', result: error.xhr },\n } as actions.DeleteOrgProgress),\n ),\n ),\n ),\n );\n\nconst deleteOrgSchedulesEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.DELETE_ORG_START).pipe(\n mergeMap((action: actions.DeleteOrgStart) =>\n api.del(`/api/orgs/${action.payload}/schedules`).pipe(\n map(\n data =>\n ({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'schedules', result: data },\n } as actions.DeleteOrgProgress),\n ),\n catchError(error =>\n of({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'schedules', result: error.xhr },\n } as actions.DeleteOrgProgress),\n ),\n ),\n ),\n );\n\nconst deleteOrgBroadcastsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.DELETE_ORG_START).pipe(\n mergeMap((action: actions.DeleteOrgStart) =>\n api.del(`/api/orgs/${action.payload}/broadcasts`).pipe(\n map(\n data =>\n ({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'broadcasts', result: data },\n } as actions.DeleteOrgProgress),\n ),\n catchError(error =>\n of({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'broadcasts', result: error.xhr },\n } as actions.DeleteOrgProgress),\n ),\n ),\n ),\n );\n\nconst deleteOrgUsersEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.DELETE_ORG_START).pipe(\n mergeMap((action: actions.DeleteOrgStart) =>\n api.del(`/api/orgs/${action.payload}/users`).pipe(\n map(\n data =>\n ({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'users', result: data },\n } as actions.DeleteOrgProgress),\n ),\n catchError(error =>\n of({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'users', result: error.xhr },\n } as actions.DeleteOrgProgress),\n ),\n ),\n ),\n );\n\nconst deleteOrgProfilesEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.DELETE_ORG_START).pipe(\n mergeMap((action: actions.DeleteOrgStart) =>\n api.del(`/api/orgs/${action.payload}/profiles`).pipe(\n map(\n data =>\n ({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'profiles', result: data },\n } as actions.DeleteOrgProgress),\n ),\n catchError(error =>\n of({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'profiles', result: error.xhr },\n } as actions.DeleteOrgProgress),\n ),\n ),\n ),\n );\n\nconst deleteOrgEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.DELETE_ORG_PROGRESS).pipe(\n filter(() => {\n const p = state$.value.orgs.deleteProgress;\n return (\n p != null &&\n p.licensesResult != null &&\n p.schedulesResult != null &&\n p.broadcastsResult != null &&\n p.usersResult != null &&\n p.profilesResult != null &&\n p.orgResult == null\n );\n }),\n mergeMap((action: actions.DeleteOrgProgress) =>\n api\n .put(`/api/orgs/${state$.value.orgs.deleteProgress.id}`, {\n ...state$.value.orgs.orgsById[state$.value.orgs.deleteProgress.id],\n tenantId: null,\n orgName: state$.value.orgs.orgsById[state$.value.orgs.deleteProgress.id].orgName + ' --WIPED',\n })\n .pipe(\n flatMap(data =>\n concat(\n of({\n type: types.SAVE_ORG_SUCCESS,\n payload: data.response,\n }),\n of({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'org', result: data },\n } as actions.DeleteOrgProgress),\n ),\n ),\n catchError(({ xhr }) =>\n of({\n type: types.DELETE_ORG_PROGRESS,\n payload: { task: 'org', result: xhr },\n } as actions.DeleteOrgProgress),\n ),\n ),\n ),\n );\n\nconst fetchPermissionsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_PERMISSIONS).pipe(\n flatMap((action: actions.FetchPermissions) =>\n api.get(`/api/orgs/${action.payload}/permissions`).pipe(\n map(data => ({\n type: types.FETCH_PERMISSIONS_SUCCESS,\n payload: { orgId: action.payload, permissions: data.response },\n })),\n takeUntil(action$.ofType(types.FETCH_PERMISSIONS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_PERMISSIONS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchSettingsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_ORG_SETTINGS).pipe(\n flatMap((action: actions.FetchOrgSettings) =>\n api.get(`/api/orgs/${action.payload}/settings`).pipe(\n map(data => ({\n type: types.FETCH_ORG_SETTINGS_SUCCESS,\n payload: { orgId: action.payload, settings: data.response },\n })),\n takeUntil(action$.ofType(types.FETCH_ORG_SETTINGS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_ORG_SETTINGS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst saveSettingsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.SAVE_ORG_SETTINGS).pipe(\n mergeMap((action: actions.SaveOrgSettings) =>\n api.put(`/api/orgs/${action.payload.orgId}/settings`, action.payload.settings).pipe(\n map(data => ({\n type: types.SAVE_ORG_SETTINGS_SUCCESS,\n payload: { orgId: action.payload.orgId, settings: data.response },\n })),\n takeUntil(action$.ofType(types.SAVE_ORG_SETTINGS_CANCEL)),\n catchError(error =>\n of({\n type: types.SAVE_ORG_SETTINGS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchAudiencesEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_ORG_AUDIENCES).pipe(\n flatMap((action: actions.FetchOrgAudiences) =>\n api.get(`/api/orgs/${action.payload}/audiences`).pipe(\n map(data => ({\n type: types.FETCH_ORG_AUDIENCES_SUCCESS,\n payload: { orgId: action.payload, audiences: data.response },\n })),\n takeUntil(action$.ofType(types.FETCH_ORG_AUDIENCES_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_ORG_AUDIENCES_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nexport const orgsEpics = [\n deleteOrgBroadcastsEpic,\n deleteOrgEpic,\n deleteOrgLicensesEpic,\n deleteOrgSchedulesEpic,\n deleteOrgUsersEpic,\n deleteOrgProfilesEpic,\n fetchAudiencesEpic,\n fetchOrgEpic,\n fetchOrgFieldsEpic,\n setCollectionByAttributeEpic,\n fetchOrgLicensesEpic,\n fetchOrgsEpic,\n fetchOrgsPageEpic,\n fetchPermissionsEpic,\n fetchSettingsEpic,\n saveSettingsEpic,\n saveOrgEpic,\n exportOrgsEpic,\n];\n","export const FETCH_ORGS = 'FETCH_ORGS' as 'FETCH_ORGS';\nexport const FETCH_ORGS_SUCCESS = 'FETCH_ORGS_SUCCESS' as 'FETCH_ORGS_SUCCESS';\nexport const FETCH_ORGS_FAIL = 'FETCH_ORGS_FAIL' as 'FETCH_ORGS_FAIL';\nexport const FETCH_ORGS_CANCEL = 'FETCH_ORGS_CANCEL' as 'FETCH_ORGS_CANCEL';\n\nexport const FETCH_ORGS_PAGE = 'FETCH_ORGS_PAGE' as 'FETCH_ORGS_PAGE';\n\nexport const FETCH_ORG = 'FETCH_ORG' as 'FETCH_ORG';\nexport const FETCH_ORG_SUCCESS = 'FETCH_ORG_SUCCESS' as 'FETCH_ORG_SUCCESS';\nexport const FETCH_ORG_FAIL = 'FETCH_ORG_FAIL' as 'FETCH_ORG_FAIL';\nexport const FETCH_ORG_CANCEL = 'FETCH_ORG_CANCEL' as 'FETCH_ORG_CANCEL';\n\nexport const FETCH_ORG_LICENSES = 'FETCH_ORG_LICENSES' as 'FETCH_ORG_LICENSES';\nexport const FETCH_ORG_LICENSES_SUCCESS = 'FETCH_ORG_LICENSES_SUCCESS' as 'FETCH_ORG_LICENSES_SUCCESS';\nexport const FETCH_ORG_LICENSES_FAIL = 'FETCH_ORG_LICENSES_FAIL' as 'FETCH_ORG_LICENSES_FAIL';\nexport const FETCH_ORG_LICENSES_CANCEL = 'FETCH_ORG_LICENSES_CANCEL' as 'FETCH_ORG_LICENSES_CANCEL';\n\nexport const FETCH_ORG_FIELDS = 'FETCH_ORG_FIELDS' as 'FETCH_ORG_FIELDS';\nexport const FETCH_ORG_FIELDS_SUCCESS = 'FETCH_ORG_FIELDS_SUCCESS' as 'FETCH_ORG_FIELDS_SUCCESS';\nexport const FETCH_ORG_FIELDS_FAIL = 'FETCH_ORG_FIELDS_FAIL' as 'FETCH_ORG_FIELDS_FAIL';\nexport const FETCH_ORG_FIELDS_CANCEL = 'FETCH_ORG_FIELDS_CANCEL' as 'FETCH_ORG_FIELDS_CANCEL';\n\nexport const SET_ORG_COLLECTION_BY_ATTRIBUTE = 'SET_ORG_COLLECTION_BY_ATTRIBUTE' as 'SET_ORG_COLLECTION_BY_ATTRIBUTE';\nexport const SET_ORG_COLLECTION_BY_ATTRIBUTE_SUCCESS = 'SET_ORG_COLLECTION_BY_ATTRIBUTE_SUCCESS' as 'SET_ORG_COLLECTION_BY_ATTRIBUTE_SUCCESS';\nexport const SET_ORG_COLLECTION_BY_ATTRIBUTE_FAIL = 'SET_ORG_COLLECTION_BY_ATTRIBUTE_FAIL' as 'SET_ORG_COLLECTION_BY_ATTRIBUTE_FAIL';\nexport const SET_ORG_COLLECTION_BY_ATTRIBUTE_CANCEL = 'SET_ORG_COLLECTION_BY_ATTRIBUTE_CANCEL' as 'SET_ORG_COLLECTION_BY_ATTRIBUTE_CANCEL';\n\nexport const SAVE_ORG = 'SAVE_ORG' as 'SAVE_ORG';\nexport const SAVE_ORG_SUCCESS = 'SAVE_ORG_SUCCESS' as 'SAVE_ORG_SUCCESS';\nexport const SAVE_ORG_FAIL = 'SAVE_ORG_FAIL' as 'SAVE_ORG_FAIL';\nexport const SAVE_ORG_CANCEL = 'SAVE_ORG_CANCEL' as 'SAVE_ORG_CANCEL';\n\nexport const DELETE_ORG_START = 'DELETE_ORG_START' as 'DELETE_ORG_START';\nexport const DELETE_ORG_PROGRESS = 'DELETE_ORG_PROCESS' as 'DELETE_ORG_PROCESS';\nexport const DELETE_ORG_END = 'DELETE_ORG_END' as 'DELETE_ORG_END';\n\nexport const EDIT_ORG_START = 'EDIT_ORG_START' as 'EDIT_ORG_START';\nexport const EDIT_ORG_END = 'EDIT_ORG_END' as 'EDIT_ORG_END';\nexport const EDIT_ORG = 'EDIT_ORG' as 'EDIT_ORG';\n\nexport const FETCH_PERMISSIONS = 'FETCH_PERMISSIONS' as 'FETCH_PERMISSIONS';\nexport const FETCH_PERMISSIONS_SUCCESS = 'FETCH_PERMISSIONS_SUCCESS' as 'FETCH_PERMISSIONS_SUCCESS';\nexport const FETCH_PERMISSIONS_FAIL = 'FETCH_PERMISSIONS_FAIL' as 'FETCH_PERMISSIONS_FAIL';\nexport const FETCH_PERMISSIONS_CANCEL = 'FETCH_PERMISSIONS_CANCEL' as 'FETCH_PERMISSIONS_CANCEL';\n\nexport const FETCH_ORG_SETTINGS = 'FETCH_ORG_SETTINGS' as 'FETCH_ORG_SETTINGS';\nexport const FETCH_ORG_SETTINGS_SUCCESS = 'FETCH_ORG_SETTINGS_SUCCESS' as 'FETCH_ORG_SETTINGS_SUCCESS';\nexport const FETCH_ORG_SETTINGS_FAIL = 'FETCH_ORG_SETTINGS_FAIL' as 'FETCH_ORG_SETTINGS_FAIL';\nexport const FETCH_ORG_SETTINGS_CANCEL = 'FETCH_ORG_SETTINGS_CANCEL' as 'FETCH_ORG_SETTINGS_CANCEL';\n\nexport const SAVE_ORG_SETTINGS = 'SAVE_ORG_SETTINGS' as 'SAVE_ORG_SETTINGS';\nexport const SAVE_ORG_SETTINGS_SUCCESS = 'SAVE_ORG_SETTINGS_SUCCESS' as 'SAVE_ORG_SETTINGS_SUCCESS';\nexport const SAVE_ORG_SETTINGS_FAIL = 'SAVE_ORG_SETTINGS_FAIL' as 'SAVE_ORG_SETTINGS_FAIL';\nexport const SAVE_ORG_SETTINGS_CANCEL = 'SAVE_ORG_SETTINGS_CANCEL' as 'SAVE_ORG_SETTINGS_CANCEL';\n\nexport const FETCH_ORG_AUDIENCES = 'FETCH_ORG_AUDIENCES' as 'FETCH_ORG_AUDIENCES';\nexport const FETCH_ORG_AUDIENCES_SUCCESS = 'FETCH_ORG_AUDIENCES_SUCCESS' as 'FETCH_ORG_AUDIENCES_SUCCESS';\nexport const FETCH_ORG_AUDIENCES_FAIL = 'FETCH_ORG_AUDIENCES_FAIL' as 'FETCH_ORG_AUDIENCES_FAIL';\nexport const FETCH_ORG_AUDIENCES_CANCEL = 'FETCH_ORG_AUDIENCES_CANCEL' as 'FETCH_ORG_AUDIENCES_CANCEL';\n\nexport const EXPORT_ORGS = 'EXPORT_ORG' as 'EXPORT_ORG';\nexport const EXPORT_ORGS_SUCCESS = 'EXPORT_ORG_SUCCESS' as 'EXPORT_ORG_SUCCESS';\nexport const EXPORT_ORGS_FAIL = 'EXPORT_ORG_FAIL' as 'EXPORT_ORG_FAIL';\nexport const EXPORT_ORGS_CANCEL = 'EXPORT_ORG_CANCEL' as 'EXPORT_ORG_CANCEL';\n","import * as queryString from 'query-string';\nimport { HyperEpic } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, debounceTime, map, switchMap, takeUntil } from 'rxjs/operators';\nimport { ProvidersParams, State } from '../../models';\nimport * as actions from './actions';\nimport * as types from './types';\n\ntype ProvidersState = State['providers'];\n\nconst initialState = {} as ProvidersState;\n\nexport default function(state: ProvidersState = initialState, action: actions.Action): ProvidersState {\n switch (action.type) {\n case types.FETCH_PROVIDERS:\n case types.FETCH_PROVIDERS_PAGE:\n return {\n ...state,\n isLoading: true,\n };\n case types.FETCH_PROVIDERS_SUCCESS:\n return {\n ...state,\n isLoading: false,\n providers: action.payload.items,\n pagination: action.payload.pagination,\n relatedEntities: action.payload.relatedEntities,\n error: null,\n };\n case types.FETCH_PROVIDERS_FAIL:\n return {\n ...state,\n isLoading: false,\n error: action.payload || true,\n };\n case types.FETCH_PROVIDERS_CANCEL:\n case types.CLEAR_PROVIDERS:\n return {\n ...state,\n pagination: null,\n providers: null,\n error: null,\n isLoading: false,\n };\n default:\n return state;\n }\n}\n\n// action creators\nexport const fetchProviders = (params: ProvidersParams): actions.FetchProviders => ({\n type: types.FETCH_PROVIDERS,\n payload: params,\n});\nexport const clearProviders = (): actions.ClearProviders => ({ type: types.CLEAR_PROVIDERS });\n\nexport const nextPage = (): actions.FetchProvidersPage => ({\n type: types.FETCH_PROVIDERS_PAGE,\n payload: 'next',\n});\nexport const prevPage = (): actions.FetchProvidersPage => ({\n type: types.FETCH_PROVIDERS_PAGE,\n payload: 'prev',\n});\nexport const firstPage = (): actions.FetchProvidersPage => ({\n type: types.FETCH_PROVIDERS_PAGE,\n payload: 'first',\n});\nexport const lastPage = (): actions.FetchProvidersPage => ({\n type: types.FETCH_PROVIDERS_PAGE,\n payload: 'last',\n});\n\n// epics\nconst fetchProvidersEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_PROVIDERS).pipe(\n debounceTime(500),\n switchMap((action: actions.FetchProviders) =>\n api.get(`/api/providers?${queryString.stringify(action.payload as any)}`).pipe(\n map(data => ({\n type: types.FETCH_PROVIDERS_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_PROVIDERS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_PROVIDERS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nconst fetchProvidersPageEpic: HyperEpic = (\n action$,\n state$,\n { api },\n) =>\n action$.ofType(types.FETCH_PROVIDERS_PAGE).pipe(\n switchMap((action: actions.FetchProvidersPage) =>\n api.get(state$.value.providers.pagination.links[action.payload]).pipe(\n map(({ response: payload }) => ({\n type: types.FETCH_PROVIDERS_SUCCESS,\n payload,\n })),\n takeUntil(action$.ofType(types.FETCH_PROVIDERS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_PROVIDERS_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nexport const providersEpics = [fetchProvidersEpic, fetchProvidersPageEpic];\n","export const FETCH_PROVIDERS = 'FETCH_PROVIDERS' as 'FETCH_PROVIDERS';\nexport const FETCH_PROVIDERS_SUCCESS = 'FETCH_PROVIDERS_SUCCESS' as 'FETCH_PROVIDERS_SUCCESS';\nexport const FETCH_PROVIDERS_FAIL = 'FETCH_PROVIDERS_FAIL' as 'FETCH_PROVIDERS_FAIL';\nexport const FETCH_PROVIDERS_CANCEL = 'FETCH_PROVIDERS_CANCEL' as 'FETCH_PROVIDERS_CANCEL';\nexport const CLEAR_PROVIDERS = 'CLEAR_PROVIDERS' as 'CLEAR_PROVIDERS';\n\nexport const FETCH_PROVIDERS_PAGE = 'FETCH_PROVIDERS_PAGE' as 'FETCH_PROVIDERS_PAGE';\n","import { HyperEpic } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, map, mergeMap, takeUntil } from 'rxjs/operators';\nimport { State } from '../../models';\nimport * as actions from './actions';\nimport * as types from './types';\n\ntype ReportsState = State['reports'];\n\nconst initialState = {} as ReportsState;\n\nexport default function(state: ReportsState = initialState, action: actions.Action): ReportsState {\n switch (action.type) {\n case types.FETCH_ORGS_LITE:\n return {\n ...state,\n liteOrgsLoading: true,\n };\n case types.FETCH_ORGS_LITE_SUCCESS:\n return {\n ...state,\n liteOrgsLoading: false,\n liteOrgs: action.payload,\n liteOrgsError: null,\n };\n case types.FETCH_ORGS_LITE_FAIL:\n return {\n ...state,\n liteOrgsLoading: false,\n liteOrgsError: action.payload,\n };\n case types.FETCH_ORGS_LITE_CANCEL:\n return {\n ...state,\n liteOrgsLoading: false,\n };\n default:\n return state;\n }\n}\n\n// action creators\nexport const fetchLiteOrgsReport = (): actions.FetchOrgsLite => ({ type: types.FETCH_ORGS_LITE });\n\n// epics\nconst fetchLiteOrgsEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_ORGS_LITE).pipe(\n mergeMap((action: actions.FetchOrgsLite) =>\n api.get(`/api/report/orgs/lite`).pipe(\n map(data => ({\n type: types.FETCH_ORGS_LITE_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_ORGS_LITE_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_ORGS_LITE_FAIL,\n payload: error.xhr.response,\n }),\n ),\n ),\n ),\n );\n\nexport const reportsEpics = [fetchLiteOrgsEpic];\n","export const FETCH_ORGS_LITE = 'FETCH_ORGS_LITE' as 'FETCH_ORGS_LITE';\nexport const FETCH_ORGS_LITE_SUCCESS = 'FETCH_ORGS_LITE_SUCCESS' as 'FETCH_ORGS_LITE_SUCCESS';\nexport const FETCH_ORGS_LITE_FAIL = 'FETCH_ORGS_LITE_FAIL' as 'FETCH_ORGS_LITE_FAIL';\nexport const FETCH_ORGS_LITE_CANCEL = 'FETCH_ORGS_LITE_CANCEL' as 'FETCH_ORGS_LITE_CANCEL';\n","import { Options, OptionValues } from 'react-select';\n\nexport interface AuthInteropAnalysis {\n environment: string;\n email: string;\n loggedInScopes: string[];\n dbScopes: string[];\n dbEntries: {}[];\n userClaims: { [key: string]: string }[];\n}\n\nexport interface AuthInteropUser extends AuthInteropTableRow {\n id?: string;\n}\n\nexport interface AuthInteropTableRow {\n region: string;\n username: string;\n scopeList: string[];\n userCategory?: string;\n}\n\nexport const AllRegionsOptions: Options = [\n { value: '*', label: 'All regions' },\n { value: 'dev-k8s', label: 'Development' },\n { value: 'prod', label: 'Production US' },\n { value: 'prod-au', label: 'Production AU' },\n { value: 'prod-auc', label: 'Production AU-Central' },\n { value: 'prod-uk', label: 'Production UK' },\n];\n\nexport const AllScopesOptions: Options = [\n { label: 'Read', value: 'read' },\n { label: 'Read org emails', value: 'read-emails' },\n { label: 'Create licenses', value: 'create-license' },\n { label: 'Manage devices', value: 'manage-devices' },\n { label: 'Impersonate users', value: 'impersonate-user' },\n { label: 'Edit orgs', value: 'edit-org' },\n { label: 'Delete orgs', value: 'delete-org' },\n { label: 'Developer', value: 'developer' },\n { label: 'God', value: 'god' },\n];\n\nexport function convertAuthInteropRowToId(row: AuthInteropTableRow) {\n if (!row) {\n return undefined;\n }\n\n return `${row.username}|${row.region}`;\n}\n\nexport function convertAuthRegionToFriendly(region: string) {\n const mapped = optionsToObject(AllRegionsOptions);\n return mapped[region] || region;\n}\n\nexport function sortScopesByPower(scopes: string[]) {\n const orderedScopeList = AllScopesOptions.map(m => m.value);\n\n const scopesCopy = [...scopes];\n scopesCopy.sort((a, b) => orderedScopeList.indexOf(a) - orderedScopeList.indexOf(b));\n return scopesCopy;\n}\n\nfunction optionsToObject(opts: Options) {\n return opts.reduce<{ [name: string]: string }>((p, c) => {\n p[c.value as string] = c.label;\n return p;\n }, {});\n}\n","import { HyperEpic } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { catchError, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { State } from '../../models';\nimport * as actions from './actions';\nimport * as types from './types';\nimport { AuthInteropTableRow, AuthInteropUser, convertAuthInteropRowToId } from 'models/api/AuthInterop';\n\ntype SystemState = State['system'];\n\nconst initialState = {\n authInteropUserById: {},\n authInteropUsersLoading: false,\n authInteropUsersError: {},\n authInteropUserByIdSaving: {},\n authInteropUserByIdSavingError: {},\n authInteropUserByIdDeleting: {},\n authInteropUserByIdDeletingError: {},\n authInteropAnalysis: null,\n authInteropAnalysisLoading: false,\n authInteropAnalysisError: null,\n} as SystemState;\n\nexport default function(state: SystemState = initialState, action: actions.SystemActions): SystemState {\n let id: string;\n\n switch (action.type) {\n case types.FETCH_AUTH_INTEROP_USERS:\n return {\n ...state,\n authInteropUsersLoading: true,\n };\n case types.FETCH_AUTH_INTEROP_USERS_SUCCESS:\n const newUsersPostLoad = action.payload.reduce<{ [id: string]: AuthInteropUser }>((p, c) => {\n const id = convertAuthInteropRowToId(c);\n const r: AuthInteropUser = { id, ...c };\n p[id] = r;\n return p;\n }, {});\n\n return {\n ...state,\n authInteropUsersLoading: false,\n authInteropUserById: newUsersPostLoad,\n authInteropUsersError: null,\n };\n case types.FETCH_AUTH_INTEROP_USERS_FAIL:\n return {\n ...state,\n authInteropUsersLoading: false,\n authInteropUsersError: action.payload.error,\n };\n case types.FETCH_AUTH_INTEROP_USERS_CANCEL:\n return {\n ...state,\n authInteropUsersLoading: false,\n authInteropUsersError: null,\n };\n case types.SAVE_AUTH_INTEROP_USER:\n return {\n ...state,\n authInteropUserByIdSaving: {\n ...state.authInteropUserByIdSaving,\n [convertAuthInteropRowToId(action.payload)]: true,\n },\n };\n case types.SAVE_AUTH_INTEROP_USER_SUCCESS:\n id = convertAuthInteropRowToId(action.payload);\n\n return {\n ...state,\n authInteropUserByIdSaving: {\n ...state.authInteropUserByIdSaving,\n [id]: false,\n },\n authInteropUserById: {\n ...state.authInteropUserById,\n [id]: { id, ...action.payload },\n },\n authInteropUserByIdSavingError: null,\n };\n case types.SAVE_AUTH_INTEROP_USER_FAIL:\n id = convertAuthInteropRowToId(action.payload);\n\n return {\n ...state,\n authInteropUserByIdSaving: {\n ...state.authInteropUserByIdSaving,\n [id]: false,\n },\n authInteropUserByIdSavingError: {\n ...state.authInteropUserByIdSavingError,\n [id]: action.payload.error || true,\n },\n };\n case types.SAVE_AUTH_INTEROP_USER_CANCEL:\n return {\n ...state,\n authInteropUserByIdSaving: {\n ...state.authInteropUserByIdSaving,\n [convertAuthInteropRowToId(action.payload)]: false,\n },\n };\n case types.DELETE_AUTH_INTEROP_USER:\n return {\n ...state,\n authInteropUserByIdDeleting: {\n ...state.authInteropUserByIdDeleting,\n [convertAuthInteropRowToId(action.payload)]: true,\n },\n };\n case types.DELETE_AUTH_INTEROP_USER_SUCCESS:\n const authInteropUserById = state.authInteropUserById;\n delete authInteropUserById[convertAuthInteropRowToId(action.payload)];\n\n return {\n ...state,\n authInteropUserByIdDeleting: {\n ...state.authInteropUserByIdDeleting,\n [convertAuthInteropRowToId(action.payload)]: false,\n },\n authInteropUserById,\n authInteropUserByIdDeletingError: null,\n };\n case types.DELETE_AUTH_INTEROP_USER_FAIL:\n return {\n ...state,\n authInteropUserByIdDeleting: {\n ...state.authInteropUserByIdDeleting,\n [convertAuthInteropRowToId(action.payload)]: false,\n },\n authInteropUserByIdDeletingError: {\n ...state.authInteropUserByIdDeletingError,\n [convertAuthInteropRowToId(action.payload)]: action.payload.error || true,\n },\n };\n case types.DELETE_AUTH_INTEROP_USER_CANCEL:\n return {\n ...state,\n authInteropUserByIdDeleting: {\n ...state.authInteropUserByIdDeleting,\n [convertAuthInteropRowToId(action.payload)]: false,\n },\n };\n case types.FETCH_AUTH_INTEROP_ANALYSIS:\n return {\n ...state,\n authInteropUsersLoading: true,\n };\n case types.FETCH_AUTH_INTEROP_ANALYSIS_SUCCESS:\n return {\n ...state,\n authInteropAnalysis: action.payload,\n authInteropAnalysisLoading: false,\n authInteropAnalysisError: null,\n };\n case types.FETCH_AUTH_INTEROP_ANALYSIS_FAIL:\n return {\n ...state,\n authInteropAnalysisLoading: false,\n authInteropAnalysisError: action.payload.error,\n };\n case types.FETCH_AUTH_INTEROP_ANALYSIS_CANCEL:\n return {\n ...state,\n authInteropAnalysisLoading: false,\n authInteropAnalysisError: null,\n };\n default:\n return state;\n }\n}\n\n// action creators\nexport const fetchAuthInteropUsers = (): actions.FetchAuthInteropUsers => ({\n type: types.FETCH_AUTH_INTEROP_USERS,\n});\n\nexport const saveAuthInteropUser = (body: AuthInteropTableRow) => ({\n type: types.SAVE_AUTH_INTEROP_USER,\n payload: body,\n});\n\nexport const cancelSaveAuthInteropUser = (body: AuthInteropTableRow) => ({\n type: types.SAVE_AUTH_INTEROP_USER_CANCEL,\n payload: body,\n});\n\nexport const deleteAuthInteropUser = (body: AuthInteropTableRow) => ({\n type: types.DELETE_AUTH_INTEROP_USER,\n payload: body,\n});\n\nexport const fetchAuthInteropAnalysis = (): actions.FetchAuthInteropAnalysis => ({\n type: types.FETCH_AUTH_INTEROP_ANALYSIS,\n});\n\n// epics\nconst fetchAuthInteropUsersEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_AUTH_INTEROP_USERS).pipe(\n switchMap((action: actions.FetchAuthInteropUsers) =>\n api.get(`/api/authinterop/users`).pipe(\n map(data => ({\n type: types.FETCH_AUTH_INTEROP_USERS_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_AUTH_INTEROP_USERS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_AUTH_INTEROP_USERS_FAIL,\n payload: { error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nconst saveAuthInteropUserEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.SAVE_AUTH_INTEROP_USER).pipe(\n switchMap((action: actions.SaveAuthInteropUser) =>\n api.patch(`/api/authinterop/users`, action.payload).pipe(\n map(data => ({\n type: types.SAVE_AUTH_INTEROP_USER_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.SAVE_AUTH_INTEROP_USER_CANCEL)),\n catchError(error =>\n of({\n type: types.SAVE_AUTH_INTEROP_USER_FAIL,\n payload: { ...action.payload, error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nconst deleteAuthInteropUserEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.DELETE_AUTH_INTEROP_USER).pipe(\n switchMap((action: actions.DeleteAuthInteropUser) =>\n api\n .del(`/api/authinterop/users`, { body: { username: action.payload.username, region: action.payload.region } })\n .pipe(\n map(data => ({\n type: types.DELETE_AUTH_INTEROP_USER_SUCCESS,\n payload: action.payload,\n })),\n takeUntil(action$.ofType(types.DELETE_AUTH_INTEROP_USER_CANCEL)),\n catchError(error =>\n of({\n type: types.DELETE_AUTH_INTEROP_USER_FAIL,\n payload: { ...action.payload, error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nconst fetchAuthInteropAnalysisEpic: HyperEpic = (action$, state$, { api }) =>\n action$.ofType(types.FETCH_AUTH_INTEROP_ANALYSIS).pipe(\n switchMap((action: actions.FetchAuthInteropAnalysis) =>\n api.get(`/api/authinterop/analysis`).pipe(\n map(data => ({\n type: types.FETCH_AUTH_INTEROP_ANALYSIS_SUCCESS,\n payload: data.response,\n })),\n takeUntil(action$.ofType(types.FETCH_AUTH_INTEROP_ANALYSIS_CANCEL)),\n catchError(error =>\n of({\n type: types.FETCH_AUTH_INTEROP_ANALYSIS_FAIL,\n payload: { error: error.xhr.response },\n }),\n ),\n ),\n ),\n );\n\nexport const systemEpics = [\n fetchAuthInteropUsersEpic,\n saveAuthInteropUserEpic,\n deleteAuthInteropUserEpic,\n fetchAuthInteropAnalysisEpic,\n];\n","export const FETCH_AUTH_INTEROP_USERS = 'FETCH_AUTH_INTEROP_USERS' as 'FETCH_AUTH_INTEROP_USERS';\nexport const FETCH_AUTH_INTEROP_USERS_SUCCESS = 'FETCH_AUTH_INTEROP_USERS_SUCCESS' as 'FETCH_AUTH_INTEROP_USERS_SUCCESS';\nexport const FETCH_AUTH_INTEROP_USERS_FAIL = 'FETCH_AUTH_INTEROP_USERS_FAIL' as 'FETCH_AUTH_INTEROP_USERS_FAIL';\nexport const FETCH_AUTH_INTEROP_USERS_CANCEL = 'FETCH_AUTH_INTEROP_USERS_CANCEL' as 'FETCH_AUTH_INTEROP_USERS_CANCEL';\n\nexport const SAVE_AUTH_INTEROP_USER = 'SAVE_AUTH_INTEROP_USER' as 'SAVE_AUTH_INTEROP_USER';\nexport const SAVE_AUTH_INTEROP_USER_SUCCESS = 'SAVE_AUTH_INTEROP_USER_SUCCESS' as 'SAVE_AUTH_INTEROP_USER_SUCCESS';\nexport const SAVE_AUTH_INTEROP_USER_FAIL = 'SAVE_AUTH_INTEROP_USER_FAIL' as 'SAVE_AUTH_INTEROP_USER_FAIL';\nexport const SAVE_AUTH_INTEROP_USER_CANCEL = 'SAVE_AUTH_INTEROP_USER_CANCEL' as 'SAVE_AUTH_INTEROP_USER_CANCEL';\n\nexport const DELETE_AUTH_INTEROP_USER = 'DELETE_AUTH_INTEROP_USERS' as 'DELETE_AUTH_INTEROP_USER';\nexport const DELETE_AUTH_INTEROP_USER_SUCCESS = 'DELETE_AUTH_INTEROP_USER_SUCCESS' as 'DELETE_AUTH_INTEROP_USER_SUCCESS';\nexport const DELETE_AUTH_INTEROP_USER_FAIL = 'DELETE_AUTH_INTEROP_USER_FAIL' as 'DELETE_AUTH_INTEROP_USER_FAIL';\nexport const DELETE_AUTH_INTEROP_USER_CANCEL = 'DELETE_AUTH_INTEROP_USER_CANCEL' as 'DELETE_AUTH_INTEROP_USER_CANCEL';\n\nexport const FETCH_AUTH_INTEROP_ANALYSIS = 'FETCH_AUTH_INTEROP_ANALYSIS' as 'FETCH_AUTH_INTEROP_ANALYSIS';\nexport const FETCH_AUTH_INTEROP_ANALYSIS_SUCCESS = 'FETCH_AUTH_INTEROP_ANALYSIS_SUCCESS' as 'FETCH_AUTH_INTEROP_ANALYSIS_SUCCESS';\nexport const FETCH_AUTH_INTEROP_ANALYSIS_FAIL = 'FETCH_AUTH_INTEROP_ANALYSIS_FAIL' as 'FETCH_AUTH_INTEROP_ANALYSIS_FAIL';\nexport const FETCH_AUTH_INTEROP_ANALYSIS_CANCEL = 'FETCH_AUTH_INTEROP_ANALYSIS_CANCEL' as 'FETCH_AUTH_INTEROP_ANALYSIS_CANCEL';\n","import { combineEpics } from 'redux-observable';\r\n\r\nimport { State as ApplicationState } from '../models';\r\nimport audits, { auditsEpics } from './Audits';\r\nimport devices, { devicesEpics } from './Devices';\r\nimport emails, { emailsEpics } from './Emails';\r\nimport jobs, { jobsEpics } from './Jobs';\r\nimport kubeCerts, { kubeCertsEpics } from './KubernetesCertificates';\r\nimport licenses, { licensesEpics } from './Licenses';\r\nimport links, { linksEpics } from './Links';\r\nimport orgs, { orgsEpics } from './Orgs';\r\nimport providers, { providersEpics } from './Providers';\r\nimport reports, { reportsEpics } from './Reports';\r\nimport system, { systemEpics } from './System';\r\n\r\n// Whenever an action is dispatched, Redux will update each top-level application state property using\r\n// the reducer with the matching name. It's important that the names match exactly, and that the reducer\r\n// acts on the corresponding ApplicationState property type.\r\nexport const reducers = {\r\n audits,\r\n devices,\r\n emails,\r\n licenses,\r\n links,\r\n orgs,\r\n providers,\r\n reports,\r\n jobs,\r\n kubeCerts,\r\n system,\r\n};\r\n\r\nexport const rootEpic = combineEpics(\r\n ...auditsEpics,\r\n ...devicesEpics,\r\n ...emailsEpics,\r\n ...linksEpics,\r\n ...orgsEpics,\r\n ...providersEpics,\r\n ...reportsEpics,\r\n ...jobsEpics,\r\n ...licensesEpics,\r\n ...kubeCertsEpics,\r\n ...systemEpics,\r\n);\r\n\r\n// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\r\n// correctly typed to match your store.\r\nexport interface AppThunkAction {\r\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\r\n}\r\n","import { HyperfishLogo, Icon } from '@hyperfish/fishfood';\nimport cx from 'classnames';\nimport Radium from 'radium';\nimport * as React from 'react';\nimport { Link } from 'react-router-dom';\n\ninterface NavItem {\n hide?: boolean;\n icon?: string;\n label: string;\n notifications?: number;\n path?: string;\n subNav?: NavItem[];\n}\n\ninterface Props {\n disabled?: boolean;\n navList: NavItem[];\n path: string;\n}\n\ninterface State {\n activeSub?: NavItem;\n justClicked?: boolean;\n}\n\n@Radium\nexport class SideNav extends React.Component {\n constructor(props: Props) {\n super(props);\n this.state = {};\n }\n\n UNSAFE_componentWillReceiveProps({ navList, path }: Props) {\n for (const navItem of navList) {\n if (!navItem.subNav || !navItem.subNav.length) {\n continue;\n }\n\n for (const subNavItem of navItem.subNav) {\n if (path.indexOf(subNavItem.path) === 0) {\n this.setState({ activeSub: navItem });\n return;\n }\n }\n }\n }\n\n render() {\n const { navList, path, disabled } = this.props;\n const { activeSub, justClicked } = this.state;\n\n let activeSubIndex;\n if (!!activeSub) {\n for (let i = 0; i < activeSub.subNav.length; i++) {\n if (path.indexOf(activeSub.subNav[i].path) === 0) {\n activeSubIndex = i;\n break;\n }\n }\n }\n\n return (\n \n \n \n \n this.setState({ justClicked: false })}\n >\n {navList\n .filter(n => !n.hide)\n .map(n => (\n \n {!n.subNav ? (\n (!disabled ? this.setState({ activeSub: null }) : e.preventDefault())}\n >\n {n.icon && }\n \n {n.label}\n {(n.notifications || 0) > 0 && ` (${n.notifications})`}\n \n \n ) : (\n (!disabled ? this.setState({ activeSub: n, justClicked: true }) : e.preventDefault())}\n >\n {n.icon && }\n \n {n.label}\n {(n.notifications || 0) > 0 && ` (${n.notifications})`}\n \n \n \n )}\n \n ))}\n \n {activeSub && (\n
    \n
  • {activeSub.label}
  • \n {activeSub.subNav\n .filter(n => !n.hide)\n .map((n, i) => (\n
  • \n \n {n.label}\n \n
  • \n ))}\n {activeSubIndex != null && (\n \n )}\n
\n )}\n \n );\n }\n}\n","import { StyleUtil, Icon, Card } from '@hyperfish/fishfood';\r\nimport * as React from 'react';\r\n\r\nimport Auth from '../services/Auth';\r\nimport { SideNav } from './SideNav';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst auth = new Auth();\r\n\r\nconst styles = StyleUtil({\r\n viewWrapper: {\r\n maxWidth: 960,\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n },\r\n header: {\r\n alignItems: 'center',\r\n borderBottom: `5px solid ${StyleUtil.colors.blue}`,\r\n display: 'flex',\r\n flexDirection: 'row-reverse',\r\n height: 64 + 5,\r\n justifyContent: 'space-between',\r\n },\r\n userContainer: {\r\n color: 'rgba(58, 58, 58, 0.8)',\r\n fontSize: 12,\r\n position: 'relative',\r\n },\r\n userGreeting: {\r\n marginRight: 6,\r\n verticalAlign: 'top',\r\n },\r\n userPhoto: {\r\n height: 46,\r\n marginRight: 6,\r\n verticalAlign: 'middle',\r\n width: 'auto',\r\n },\r\n});\r\n\r\nexport class Layout extends React.Component {\r\n login = () => auth.login();\r\n logout = () => auth.logout();\r\n\r\n getNavList(): SideNav['props']['navList'] {\r\n return [\r\n {\r\n path: '/orgs',\r\n label: 'Orgs',\r\n icon: 'user-group',\r\n },\r\n {\r\n // path: '/users',\r\n // label: 'Users',\r\n // icon: 'user',\r\n // }, {\r\n path: '/devices',\r\n label: 'Devices',\r\n icon: 'device-desktop',\r\n },\r\n {\r\n path: '/emails',\r\n label: 'Emails',\r\n icon: 'mail',\r\n },\r\n {\r\n path: '/audits',\r\n label: 'Audits',\r\n icon: 'lifting',\r\n subNav: [\r\n { path: '/audits/all', label: 'All Audits' },\r\n { path: '/audits/current', label: 'Currently Running' },\r\n { path: '/audits/failed', label: 'Failed' },\r\n ],\r\n },\r\n {\r\n path: '/reports',\r\n label: 'Reports',\r\n icon: 'graph-bar',\r\n subNav: [{ path: '/reports/lite-orgs', label: 'Lite Orgs' }],\r\n },\r\n {\r\n path: '/jobs',\r\n label: 'Jobs',\r\n icon: 'pulse',\r\n },\r\n ];\r\n }\r\n\r\n public render() {\r\n return (\r\n
\r\n \r\n
\r\n {this.renderHeader()}\r\n
\r\n {this.renderBreadcrumb()}\r\n {auth.isAuthenticated() || window.location.pathname === '/callback' ? (\r\n this.props.children\r\n ) : (\r\n \r\n

\r\n Please Log In\r\n

\r\n {auth.lastAuthenticationError}\r\n
\r\n )}\r\n
\r\n
\r\n {/* */}\r\n
\r\n );\r\n }\r\n\r\n renderHeader() {\r\n const profile = auth.getProfile();\r\n\r\n return (\r\n
\r\n
\r\n {!auth.isAuthenticated() ? (\r\n Log In\r\n ) : (\r\n
\r\n {profile && (\r\n \r\n Welcome back, {profile.name} ({profile.email})\r\n \r\n )}\r\n {/*profile && (\r\n \r\n )*/}\r\n Log Out\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n\r\n renderBreadcrumb() {\r\n const sections = window.location.pathname.split('/');\r\n const title = sections.length < 2 ? '' : sections[1];\r\n\r\n if (sections.length < 3) {\r\n let icon;\r\n\r\n const navList = this.getNavList();\r\n for (const nav of navList) {\r\n if (nav.path === window.location.pathname) {\r\n icon = nav.icon;\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n

\r\n \r\n {title || 'Home'}\r\n

\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n Back to {title}\r\n \r\n );\r\n }\r\n}\r\n","import * as React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport classes from './styles.module.scss';\n\ninterface Props {\n links: (\n | {\n label: string;\n path: string;\n }\n | {\n label: React.ReactNode;\n onClick: () => void;\n }\n )[];\n}\n\nconst Linklist = ({ links }: Props) => (\n
    \n {links\n .filter(l => !!l)\n .map((l, i) =>\n l['onClick'] != null ? (\n
  • \n {l.label}\n
  • \n ) : (\n
  • \n {l.label}\n
  • \n ),\n )}\n
\n);\n\nexport default Linklist;\n","import { Card } from '@hyperfish/fishfood';\nimport * as React from 'react';\n\nimport Linklist from '../../components/Linklist';\n\nexport class Audits extends React.Component {\n public render() {\n return (\n \n

What audits would you like to see?

\n \n
\n );\n }\n}\n","import { Icon, StyleUtil } from '@hyperfish/fishfood';\nimport * as React from 'react';\nimport Clipboard from 'react-clipboard.js';\n\nimport classes from './styles.module.scss';\n\ninterface Props {\n text: string;\n}\n\ninterface State {\n copied: boolean;\n}\n\nexport class Copy extends React.Component {\n private timeout: number;\n\n constructor(props: Props) {\n super(props);\n this.state = { copied: false };\n }\n\n componentWillUnmount() {\n if (this.timeout) {\n window.clearTimeout(this.timeout);\n }\n }\n\n handleSuccess = () => {\n this.setState({ copied: true }, () => {\n this.timeout = window.setTimeout(() => this.setState({ copied: false }), 3000);\n });\n };\n\n render() {\n const { text } = this.props;\n const { copied } = this.state;\n\n return (\n \n \n \n );\n }\n}\n","import { Icon } from '@hyperfish/fishfood';\nimport * as React from 'react';\nimport classes from './styles.module.scss';\n\nexport interface Props {\n enabled?: boolean;\n isExporting?: boolean;\n exportData?: ((filter?: any) => void) | (() => void);\n filter?: any;\n}\n\nexport const DownloadButton = ({ enabled, isExporting, filter, exportData }: Props) => {\n const canClick = !isExporting && enabled;\n return (\n
\n {\n if (canClick) {\n if (filter) exportData(filter);\n else exportData();\n }\n }}\n className={canClick ? '' : classes.disabled}\n title=\"Download as CSV\"\n >\n {isExporting && }\n {!isExporting && }\n \n
\n );\n};\n","import { Icon } from '@hyperfish/fishfood';\nimport * as React from 'react';\n\nimport { Pagination } from '../../models';\n\nimport classes from './styles.module.scss';\n\nexport interface Props {\n isDisabled?: boolean;\n pagination: Pagination;\n nextPage: () => void;\n prevPage: () => void;\n firstPage: () => void;\n lastPage: () => void;\n}\n\nexport const Pager = ({ isDisabled, pagination, nextPage, prevPage, firstPage, lastPage }: Props) => {\n const page = pagination && pagination.page != null ? pagination.page.toLocaleString() : '-';\n const pageCount = pagination && pagination.pageCount != null ? pagination.pageCount.toLocaleString() : '-';\n const itemCount = pagination && pagination.count != null ? pagination.count.toLocaleString() : '-';\n const displayString = `${page} of ${pageCount} (${itemCount} items)`;\n\n const firstEnabled = !isDisabled && pagination && pagination.links && pagination.links.first != null;\n const prevEnabled = !isDisabled && pagination && pagination.links && pagination.links.prev != null;\n const nextEnabled = !isDisabled && pagination && pagination.links && pagination.links.next != null;\n const lastEnabled = !isDisabled && pagination && pagination.links && pagination.links.last != null;\n\n return (\n
\n {firstPage && (\n \n \n \n )}\n {prevPage && (\n \n \n \n )}\n {displayString}\n {nextPage && (\n \n \n \n )}\n {lastPage && (\n \n \n \n )}\n
\n );\n};\n","import { StyleUtil, TextField, Card } from '@hyperfish/fishfood';\nimport * as React from 'react';\nimport { DownloadButton, Props as DownloadButtonProps } from './DownloadButton/Index';\nimport { Pager, Props as PagerProps } from './Pager';\n\ninterface Props {\n placeholder?: string;\n onQueryChange?: TextField['props']['onChange'];\n queryValue?: string;\n table: JSX.Element;\n pagerProps?: PagerProps;\n downloadButtonProps?: DownloadButtonProps;\n customFilters?: React.ReactNode;\n}\n\nexport const PagedTable = ({\n customFilters,\n placeholder,\n onQueryChange,\n queryValue,\n table,\n pagerProps,\n downloadButtonProps,\n}: Props) => {\n return (\n
\n {onQueryChange != null && (\n
\n \n
\n )}\n {customFilters != null && customFilters}\n {table}\n {downloadButtonProps && }\n {pagerProps != null && }\n
\n );\n};\n","import { DataTable, dateFormatter, StyleUtil } from '@hyperfish/fishfood';\nimport moment from 'moment';\nimport * as React from 'react';\nimport Select, { Option } from 'react-select';\n\nimport { Audit, AuditType, Org, Pagination } from '../../models';\nimport { Copy } from '../Copy';\nimport { PagedTable } from '../PagedTable';\n\nimport classes from './styles.module.scss';\n\nconst columns = {\n orgName: { label: 'Org Name', hidden: false },\n createdAt: { label: 'Created' },\n finishedAt: { label: 'Finished' },\n type: { label: 'Type' },\n status: { label: 'Status' },\n auditRecordCount: { label: 'Audit Count' },\n recordCount: { label: 'Record Count' },\n index: { label: 'Index', hidden: true },\n};\n\nconst Table = DataTable.of(columns);\n\ninterface Props {\n audits: Audit[];\n isLoading: boolean;\n orgs?: { [orgId: string]: Org };\n types?: AuditType[];\n onTypesChange?: (types: AuditType[]) => void;\n\n pagerProps?: {\n pagination: Pagination;\n nextPage: () => void;\n prevPage: () => void;\n firstPage: () => void;\n lastPage: () => void;\n };\n}\n\nconst shortFormat = 'M/D/YY h:mma';\nconst dateFormat = 'MM/DD/YYYY h:mm:ss:SSa';\n\nexport const AuditsTable = ({ isLoading, audits, orgs, pagerProps, types, onTypesChange }: Props) => (\n \n []) => (vals ? onTypesChange(vals.map(v => v.value)) : onTypesChange([]))}\n multi={true}\n options={[\n { value: 'online', label: 'online' },\n { value: 'external', label: 'external' },\n { value: 'onlineIncremental', label: 'onlineIncremental' },\n { value: 'externalIncremental', label: 'externalIncremental' },\n ]}\n />\n \n )\n }\n table={\n ({\n ...a,\n createdAt: dateFormatter(a.createdAt, shortFormat),\n finishedAt: dateFormatter(a.finishedAt, shortFormat),\n orgName: orgs && orgs[a.orgId] && orgs[a.orgId].orgName,\n auditRecordCount: a.auditRecordCount.toLocaleString(),\n recordCount: a.recordCount.toLocaleString(),\n index,\n }))\n }\n renderDetail={({ id, index }) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Id:\n {id}\n \n
Created at:{dateFormatter(audits[+index].createdAt as string, dateFormat)}
Started at:{dateFormatter(audits[+index].startedAt, dateFormat)}
Finished at:{dateFormatter(audits[+index].finishedAt as string, dateFormat)}
Duration{moment(audits[+index].finishedAt || moment.now()).from(audits[+index].createdAt, true)}
\n )}\n />\n }\n pagerProps={\n pagerProps && {\n isDisabled: isLoading,\n ...pagerProps,\n }\n }\n />\n);\n","import { Card } from '@hyperfish/fishfood';\nimport * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { clearAudits, fetchAudits, nextPage, prevPage, firstPage, lastPage } from '../../store/Audits';\nimport { AuditsTable } from '../../components/AuditsTable';\n\nconst connector = connect(state => state.audits, {\n clearAudits,\n fetchAudits,\n nextPage,\n prevPage,\n firstPage,\n lastPage,\n});\n\ntype Props = typeof connector['props'];\n\n@connector\nexport class AuditsAll extends React.Component {\n componentDidMount() {\n this.props.clearAudits();\n this.props.fetchAudits({});\n }\n\n render() {\n const {\n audits,\n isLoading,\n error,\n nextPage,\n prevPage,\n firstPage,\n lastPage,\n pagination,\n relatedEntities,\n } = this.props;\n\n return (\n \n );\n }\n}\n","import { Card } from '@hyperfish/fishfood';\nimport * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { clearAudits, fetchAudits, nextPage, prevPage, firstPage, lastPage } from '../../store/Audits';\nimport { AuditsTable } from '../../components/AuditsTable';\n\nconst connector = connect(state => state.audits, {\n clearAudits,\n fetchAudits,\n nextPage,\n prevPage,\n firstPage,\n lastPage,\n});\n\ntype Props = typeof connector['props'];\n\n@connector\nexport class AuditsCurrent extends React.Component {\n componentDidMount() {\n this.props.clearAudits();\n this.props.fetchAudits({ status: 'STARTED' });\n }\n\n render() {\n const {\n audits,\n isLoading,\n error,\n nextPage,\n prevPage,\n firstPage,\n lastPage,\n pagination,\n relatedEntities,\n } = this.props;\n\n return (\n \n );\n }\n}\n","import { Card } from '@hyperfish/fishfood';\nimport * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { clearAudits, fetchAudits, nextPage, prevPage, firstPage, lastPage } from '../../store/Audits';\nimport { AuditsTable } from '../../components/AuditsTable';\n\nconst connector = connect(state => state.audits, {\n clearAudits,\n fetchAudits,\n nextPage,\n prevPage,\n firstPage,\n lastPage,\n});\n\ntype Props = typeof connector['props'];\n\n@connector\nexport class AuditsFailed extends React.Component {\n componentDidMount() {\n this.props.clearAudits();\n this.props.fetchAudits({ status: 'FAILED' });\n }\n\n render() {\n const {\n audits,\n isLoading,\n error,\n nextPage,\n prevPage,\n firstPage,\n lastPage,\n pagination,\n relatedEntities,\n } = this.props;\n\n return (\n \n );\n }\n}\n","import * as React from 'react';\n\nimport classes from './styles.module.scss';\n\nexport const PreWrapper: React.StatelessComponent = ({ children }) => (\n
{children}
\n);\n","import { StyleUtil } from '@hyperfish/fishfood';\nimport cx from 'classnames';\nimport * as React from 'react';\n\nimport classes from './styles.module.scss';\n\ninterface Tab {\n label: React.ReactNode;\n key: string;\n}\n\ninterface Props {\n tabs: Tab[];\n onChange: (key: string) => void;\n activeKey: string;\n className?: string;\n}\n\nexport const Tabs = ({ tabs, onChange, activeKey, className }: Props) => (\n
\n {tabs &&\n tabs.map(({ label, key }, i, a) => (\n onChange(key)}\n >\n {label}\n \n ))}\n
\n);\n","import { DataTable, Icon, StyleUtil, TextField } from '@hyperfish/fishfood';\nimport moment from 'moment';\nimport * as React from 'react';\nimport * as Highlighter from 'react-highlight-words';\nimport { connect } from 'react-redux';\nimport Select, { Option } from 'react-select';\n\nimport { PagedTable } from '../../components/PagedTable';\nimport { PreWrapper } from '../../components/PreWrapper';\nimport { Tabs } from '../../components/Tabs';\nimport { fetchLogs } from '../../store/Devices';\n\nimport classes from './styles.module.scss';\n\nconst logTableColumns = {\n level: { label: 'Level' },\n datetime: { label: 'Time Stamp', width: 110 },\n message: { label: 'Message', type: DataTable.types.custom },\n raw: { label: 'Raw', hidden: true },\n};\n\nconst LogTable = DataTable.of(logTableColumns);\n\nconst connector = connect(\n (state, ownProps) => ({\n deviceId: ownProps.match.params['id'],\n isLoading: state.devices.logsByDeviceLoading[ownProps.match.params['id']],\n // logs: require('./logs.json') as (typeof state['devices']['logsByDevice']['foo']),\n logs: state.devices.logsByDevice[ownProps.match.params['id']],\n error: state.devices.logsByDeviceError[ownProps.match.params['id']],\n }),\n {\n fetchLogs,\n },\n);\n\ntype Props = typeof connector['props'];\n\ninterface State {\n selectedLogIndex: number;\n filterString: string;\n filterLevel: string;\n page: number;\n activeView: 'raw' | 'table';\n}\n\nclass DeviceDetail extends React.Component {\n private cachedLogsKey: string;\n private cachedLogs: DataTable['props']['data'];\n private pageLength = 100;\n\n constructor(props: Props) {\n super(props);\n this.state = { selectedLogIndex: 0, filterString: '', filterLevel: '', page: 1, activeView: 'table' };\n }\n\n componentDidMount() {\n this.props.fetchLogs(this.props.deviceId);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n if (this.props.logs !== nextProps.logs) {\n this.cachedLogs = null;\n this.cachedLogsKey = null;\n }\n }\n\n getHighlightedText(text) {\n const { filterString } = this.state;\n return (\n \n );\n }\n\n getFilteredLogs(): DataTable['props']['data'] {\n const { logs } = this.props;\n const { selectedLogIndex, filterString, filterLevel } = this.state;\n\n const key = `${'' + selectedLogIndex}_${filterLevel}_${filterString}`;\n\n if (key !== this.cachedLogsKey || !this.cachedLogs) {\n this.cachedLogsKey = key;\n this.cachedLogs =\n (logs &&\n logs[selectedLogIndex] &&\n logs[selectedLogIndex].entries &&\n logs[selectedLogIndex].entries\n .filter(l => {\n if (l == null || l === '') {\n return false;\n }\n if (filterLevel != '') {\n if (l.toLowerCase().indexOf(filterLevel.toLowerCase()) !== 0) {\n return false;\n }\n }\n if (filterString !== '') {\n const lowerLog = l.toLowerCase();\n const chunks = filterString\n .toLowerCase()\n .split(' ')\n .filter(c => !!c);\n if (chunks.filter(chunk => lowerLog.indexOf(chunk) > -1).length === 0) {\n return false;\n }\n }\n return true;\n })\n .map((log, i) => {\n const [level, date, time, hyphen, version, ...rest] = log.split(' ');\n\n const message = this.getHighlightedText(rest.join(' '));\n\n const formatString = 'MM/DD h:mma';\n const datetime = moment(`${date} ${time}`, 'YYYY-MM-DD HH:mm:ss,SSS').format(formatString);\n\n return {\n id: String(i),\n level,\n datetime,\n message,\n raw: log,\n };\n })) ||\n [];\n }\n\n return this.cachedLogs;\n }\n\n getFilteredPagedLogs() {\n const { page } = this.state;\n return this.getFilteredLogs().slice(this.pageLength * (page - 1), this.pageLength * page);\n }\n\n getPagerProps() {\n const { page } = this.state;\n const logs = this.getFilteredLogs();\n const count = logs.length;\n const pageCount = Math.ceil(count / this.pageLength);\n\n return {\n nextPage: () => this.setState(({ page }) => ({ page: page + 1 })),\n prevPage: () => this.setState(({ page }) => ({ page: page - 1 })),\n firstPage: () => this.setState(({ page }) => ({ page: 1 })),\n lastPage: () => this.setState(({ page }) => ({ page: pageCount })),\n pagination: {\n count,\n page,\n pageCount,\n links: {\n next: page > pageCount - 1 ? null : '',\n prev: page < 2 ? null : '',\n first: page < 2 ? null : '',\n last: page > pageCount - 1 ? null : '',\n },\n },\n };\n }\n\n handleDownload = () => {\n const { logs } = this.props;\n const { selectedLogIndex } = this.state;\n\n const log = logs[selectedLogIndex];\n const filename = log.path.split('\\\\')[log.path.split('\\\\').length - 1];\n const body = log.entries.join('\\n');\n\n const blob = new Blob([body], { type: 'application/octet-stream' });\n\n const el = document.createElement('a');\n el.setAttribute('href', URL.createObjectURL(blob));\n el.setAttribute('download', filename);\n el.style.display = 'none';\n document.body.appendChild(el);\n el.click();\n document.body.removeChild(el);\n };\n\n render() {\n const { isLoading, logs, error } = this.props;\n const { selectedLogIndex, page, activeView } = this.state;\n\n return (\n
\n
\n \n \n \n Download File\n \n \n this.setState({ selectedLogIndex: +i, page: 1, filterString: '', filterLevel: '' })}\n tabs={\n logs &&\n logs.map(({ path }, i) => ({\n label: path.split('\\\\')[path.split('\\\\').length - 1],\n key: '' + i,\n }))\n }\n />\n
\n {!logs || logs[selectedLogIndex].path.slice(-4) === '.log' ? (\n this.getHighlightedText(raw)}\n />\n ) : (\n \n {this.getHighlightedText(\n this.getFilteredPagedLogs()\n .map(l => l.raw)\n .join('\\n'),\n )}\n \n )\n }\n pagerProps={this.getPagerProps()}\n />\n ) : (\n {logs[selectedLogIndex].entries.join('\\n')}\n )}\n
\n );\n }\n\n renderFilters() {\n const { filterLevel, activeView } = this.state;\n\n return (\n
\n
\n ) => this.setState({ filterLevel: o ? o.value : '' })}\n options={['DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL'].map(s => ({ label: s, value: s }))}\n />\n this.setState({ filterString: e.currentTarget.value, page: 1 })}\n />\n this.setState({ activeView: key })}\n tabs={[\n { key: 'raw', label: },\n { key: 'table', label: },\n ]}\n />\n
\n
\n );\n }\n}\n\nexport default connector(DeviceDetail) as typeof DeviceDetail;\n","import { Icon } from '@hyperfish/fishfood';\nimport * as React from 'react';\n\nexport const Spinner = () => ;\n","import * as React from 'react';\n\nimport { Copy } from '../Copy';\nimport { Spinner } from '../Spinner';\n\nimport classes from './styles.module.scss';\n\ninterface SummaryRow {\n label: string;\n value: React.ReactNode;\n isCopyable?: boolean;\n isLoading?: boolean;\n}\n\ninterface Props {\n rows: SummaryRow[];\n}\n\nexport const SummaryTable = ({ rows }: Props) => {\n return (\n \n \n {rows &&\n rows.map((r, i) => (\n \n \n \n {r.isCopyable && typeof r.value === 'string' && (\n \n )}\n \n ))}\n \n
{r.label}:\n {r.isLoading ? : r.value}\n \n \n
\n );\n};\n","import { Button, Card, Checkbox, DataTable, getFrom, Icon, Modal, StyleUtil } from '@hyperfish/fishfood';\nimport * as queryString from 'query-string';\nimport * as React from 'react';\nimport { connect } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport Select, { Option } from 'react-select';\n\nimport Linklist from '../../components/Linklist';\nimport { PreWrapper } from '../../components/PreWrapper';\nimport { SummaryTable } from '../../components/SummaryTable';\nimport { fetchDevices, fetchVersions, setEnabled, setLevel, setVersion } from '../../store/Devices';\nimport Auth from '../../services/Auth';\n\nimport classes from './styles.module.scss';\nimport { DownloadButton } from 'components/DownloadButton/Index';\nimport { exportToCsv } from 'utils/fileUtil';\nimport { convertDateToStandardFormat, getDateToFileName } from 'utils/dateUtil';\nimport { Device } from 'models/api';\n\nconst DevicesTable = DataTable.of({\n orgName: { label: 'Org Name', type: 'custom', sortable: true },\n createdAt: { label: 'Created At', type: DataTable.types.datetime, sortable: true },\n heartbeat: { label: 'Last Heartbeat', type: DataTable.types.datetime, sortable: true },\n level: { label: 'Level', center: true, sortable: true },\n version: { label: 'Version', sortable: true },\n enabled: { label: 'Enabled', type: DataTable.types.checkmark, sortable: true },\n});\n\nconst connector = connect(\n state => ({\n devices: state.devices.deviceIds && state.devices.deviceIds.map(id => state.devices.devicesById[id]),\n devicesById: state.devices.devicesById,\n isDeviceOffline: state.devices.isDeviceOffline,\n isLoading: state.devices.isLoading,\n orgs: state.devices.relatedEntities.orgs,\n settingLevelByDevice: state.devices.settingLevelByDevice,\n settingLevelByDeviceError: state.devices.settingLevelByDeviceError,\n settingVersionByDevice: state.devices.settingVersionByDevice,\n settingVersionByDeviceError: state.devices.settingVersionByDeviceError,\n settingEnabledByDevice: state.devices.settingEnabledByDevice,\n settingEnabledByDeviceError: state.devices.settingEnabledByDeviceError,\n versions: state.devices.versions,\n versionsLoading: state.devices.versionsLoading,\n versionsError: state.devices.versionsError,\n }),\n {\n fetchDevices,\n fetchVersions,\n setLevel,\n setVersion,\n setEnabled,\n },\n);\n\ntype Props = typeof connector['props'];\n\ninterface State {\n selectedDevices: string[];\n filterOrgs: string[];\n filterVersions: string[];\n devicesToUpgrade: string[];\n upgradeVersion: string;\n upgradeShowAllVersions: boolean;\n upgradeSent: boolean;\n logPromptDevice: string;\n logLevel: string;\n showDisabled: boolean;\n disablePromptDevice: string;\n isExporting: boolean;\n}\n\nclass Devices extends React.Component {\n constructor(props: Props) {\n super(props);\n\n const query = queryString.parse(window.location.search) as { orgs: string; showDisabled?: string };\n\n const orgsParam = query.orgs;\n const filterOrgs = orgsParam ? orgsParam.split(',') : null;\n const showDisabled = Object.prototype.hasOwnProperty.call(query, 'showDisabled') && query.showDisabled !== 'false';\n\n this.state = {\n selectedDevices: [],\n filterOrgs,\n upgradeVersion: '',\n showDisabled,\n isExporting: false,\n } as State;\n }\n\n componentDidMount() {\n this.props.fetchDevices();\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n const { logPromptDevice, disablePromptDevice } = this.state;\n if (\n this.props.settingLevelByDevice[logPromptDevice] &&\n !nextProps.settingLevelByDevice[logPromptDevice] &&\n !nextProps.settingLevelByDeviceError[logPromptDevice]\n ) {\n this.setState({ logPromptDevice: null });\n }\n\n if (\n this.props.settingEnabledByDevice[disablePromptDevice] &&\n !nextProps.settingEnabledByDevice[disablePromptDevice] &&\n !nextProps.settingEnabledByDeviceError[disablePromptDevice]\n ) {\n this.setState({ disablePromptDevice: null });\n }\n }\n\n handleSelect: DataTable['props']['onSelect'] = ids => {\n const newIds = ids.filter(id => this.state.selectedDevices.indexOf(id) === -1);\n const selectedDevices = this.state.selectedDevices.concat(newIds);\n this.setState({ selectedDevices });\n };\n\n handleDeselect: DataTable['props']['onDeselect'] = ids => {\n const selectedDevices = this.state.selectedDevices.filter(id => ids.indexOf(id) === -1);\n this.setState({ selectedDevices });\n };\n\n filterByOrg: Select['props']['onChange'] = (o: Option[]) =>\n this.setState({ filterOrgs: o && o.length > 0 ? o.map(({ value }) => value) : null });\n\n filterByVersion: Select['props']['onChange'] = (o: Option[]) =>\n this.setState({ filterVersions: o && o.length > 0 ? o.map(({ value }) => value) : null });\n\n setDevicesToUpgrade = (devicesToUpgrade: string[]) => {\n this.props.fetchVersions();\n this.setState({ devicesToUpgrade, upgradeSent: false, upgradeVersion: '', upgradeShowAllVersions: false });\n };\n\n getLevelFromDevice(d: Props['devices'][0]) {\n const levels = getFrom(d)('meta')('heartbeat')('currentLogLevels').value;\n if (!levels) {\n return '';\n }\n const levelMap = Object.keys(levels)\n .map(k => levels[k])\n .reduce((p, c) => {\n p[c] = c;\n return p;\n }, {});\n return Object.keys(levelMap).join(', ');\n }\n\n resolveDeviceToTable(d: Device) {\n const { orgs } = this.props;\n\n return {\n id: d.id,\n orgName: {getFrom(orgs)(d.antreaOrgId)('orgName').value},\n createdAt: d.createdAt,\n heartbeat: getFrom(d.meta)('heartbeat')('timestamp').value,\n level: this.getLevelFromDevice(d),\n version: getFrom(d.meta)('heartbeat')('version').value,\n enabled: d.enabled,\n };\n }\n\n resolveDeviceToCsv(d: Device) {\n const { orgs } = this.props;\n\n return {\n id: d.antreaOrgId,\n orgName: getFrom(orgs)(d.antreaOrgId)('orgName').value,\n createdAt: convertDateToStandardFormat(d.createdAt),\n heartbeat: convertDateToStandardFormat(getFrom(d.meta)('heartbeat')('timestamp').value),\n level: this.getLevelFromDevice(d),\n version: getFrom(d.meta)('heartbeat')('version').value,\n enabled: d.enabled ? 'Enabled' : 'Disabled',\n };\n }\n\n getDevicesMapped(isToTable: boolean) {\n const { devices } = this.props;\n return devices\n .filter(d => this.state.filterOrgs == null || this.state.filterOrgs.indexOf(d.antreaOrgId) > -1)\n .filter(d => this.state.showDisabled || d.enabled)\n .map(d => (isToTable ? this.resolveDeviceToTable(d) : this.resolveDeviceToCsv(d)))\n .filter(d => this.state.filterVersions == null || this.state.filterVersions.indexOf(d.version) > -1);\n }\n\n exportDevicesToCSV = () => {\n this.setState({ isExporting: true });\n\n const header: {}[] = [\n {\n id: 'Org Id',\n orgName: 'Org Name',\n createdAt: 'Created At',\n heartbeat: 'Last Heartbeat',\n level: 'Level',\n version: 'Version',\n enabled: 'Enabled',\n },\n ];\n const devices = header.concat(this.getDevicesMapped(false));\n exportToCsv('Devices_' + getDateToFileName() + '.csv', devices);\n\n this.setState({ isExporting: false });\n };\n\n render() {\n const { devices, isDeviceOffline, isLoading, orgs } = this.props;\n const { selectedDevices, filterVersions, filterOrgs } = this.state;\n\n const orgFilterOptions =\n !isLoading && devices\n ? [...new Set(devices.map(({ antreaOrgId }) => antreaOrgId))]\n .map(antreaOrgId => orgs[antreaOrgId])\n .filter(org => !!org)\n .map(org => ({ value: org.id, label: org.orgName }))\n .sort((a, b) => a.value.localeCompare(b.value))\n : null;\n\n if (filterOrgs && orgFilterOptions) {\n for (const id of filterOrgs) {\n if (orgFilterOptions.map(o => o.value).indexOf(id) === -1) {\n orgFilterOptions.push({ value: id, label: id });\n }\n }\n }\n\n return (\n
\n
\n this.setDevicesToUpgrade(selectedDevices.slice())}>\n Upgrade {selectedDevices.length} selected device{selectedDevices.length === 1 ? '' : 's'}\n \n \n
\n
\n getFrom(d.meta)('heartbeat')('version').value))]\n .filter(v => !!v)\n .map(v => ({ value: v, label: v }))\n .sort((a, b) => a.value.localeCompare(b.value))\n : []\n }\n />\n \n
\n \n (isDeviceOffline[item.id] ? StyleUtil.styles.tables.tr_invalid : {})}\n selected={selectedDevices}\n onSelect={this.handleSelect}\n onDeselect={this.handleDeselect}\n renderDetail={this.renderDetail}\n actions={[\n {\n icon: 'document',\n onAction: ({ id }) => this.props.history.push(`/devices/${id}`),\n title: 'View Logs',\n disabled: ({ enabled }) => enabled !== true,\n },\n ]}\n />\n \n 0}\n exportData={this.exportDevicesToCSV}\n isExporting={this.state.isExporting}\n />\n {this.state.devicesToUpgrade != null && this.renderUpgradeModal()}\n {this.state.logPromptDevice != null && this.renderLogLevelModal()}\n {this.state.disablePromptDevice != null && this.renderDisconnectModal()}\n
\n );\n }\n\n renderDetail = ({ id }) => {\n const device = this.props.devicesById[id];\n const isCsm = Auth.doesUserHaveScope('manage-devices');\n return (\n
\n {JSON.stringify(getFrom(device.meta)('heartbeat')('currentLogLevels').value)}\n ),\n isCopyable: false,\n },\n ].filter(Boolean)}\n />\n this.props.history.push(`/devices/${id}`) },\n isCsm && { label: 'Set log level', onClick: () => this.setState({ logPromptDevice: id, logLevel: null }) },\n isCsm && { label: 'Upgrade Version', onClick: () => this.setDevicesToUpgrade([id]) },\n isCsm && {\n label: (\n \n \n Disable Device\n \n ),\n onClick: () => this.setState({ disablePromptDevice: id }),\n },\n ]}\n />\n
\n );\n };\n\n renderUpgradeModal() {\n const { setVersion, settingVersionByDevice, settingVersionByDeviceError, versions, versionsLoading } = this.props;\n const { devicesToUpgrade, upgradeSent, upgradeVersion } = this.state;\n const count = devicesToUpgrade.length;\n const finishedUpgrading = devicesToUpgrade.filter(id => !settingVersionByDevice[id]);\n const errorUpgrading = devicesToUpgrade.filter(id => !!settingVersionByDeviceError[id]);\n\n return (\n this.setState({ devicesToUpgrade: null })} style={StyleUtil.styles.modals.newPadding}>\n

\n Upgrade {count} device{count !== 1 ? 's' : ''}\n

\n {upgradeSent ? (\n
\n

\n {finishedUpgrading.length} of {count} upgrade messages sent.\n

\n {errorUpgrading.length > 0 && (\n

\n {errorUpgrading.length} message{errorUpgrading.length !== 1 ? 's' : ''} had error on send.\n

\n )}\n
\n ) : (\n
\n ({ label: v, value: v }))}\n onChange={(o: Option) => this.setState({ upgradeVersion: o ? o.value : null })}\n />\n
\n {\n const checked = e.currentTarget.checked;\n this.setState({ upgradeShowAllVersions: checked });\n this.props.fetchVersions(checked);\n }}\n />\n \n
\n
\n
\n )}\n
\n this.setState({ devicesToUpgrade: null })}\n >\n Cancel\n \n {upgradeSent && finishedUpgrading.length === count ? (\n \n ) : (\n {\n devicesToUpgrade.forEach(id => setVersion(id, upgradeVersion));\n this.setState({ upgradeSent: true });\n }}\n >\n Upgrade\n \n )}\n
\n
\n );\n }\n\n renderLogLevelModal() {\n const { settingLevelByDevice, settingLevelByDeviceError, setLevel } = this.props;\n const { logLevel, logPromptDevice } = this.state;\n const isSetting = settingLevelByDevice[logPromptDevice];\n const error = settingLevelByDeviceError[logPromptDevice];\n\n return (\n this.setState({ logPromptDevice: null })} style={StyleUtil.styles.modals.newPadding}>\n

Set log level

\n ) => this.setState({ logLevel: o ? o.value : null })}\n options={['ALL', 'DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL', 'OFF'].map(s => ({ label: s, value: s }))}\n />\n {error &&

Error setting log level

}\n
\n
\n
\n
\n this.setState({ logPromptDevice: null })}\n >\n Cancel\n \n setLevel(logPromptDevice, logLevel)}\n >\n SEND\n \n
\n
\n );\n }\n\n renderDisconnectModal() {\n const { settingEnabledByDevice, setEnabled, devicesById, orgs } = this.props;\n const { disablePromptDevice } = this.state;\n const device = devicesById[disablePromptDevice];\n const org = orgs[device.antreaOrgId];\n const isSetting = settingEnabledByDevice[disablePromptDevice];\n\n return (\n this.setState({ disablePromptDevice: null })} style={StyleUtil.styles.modals.newPadding}>\n

Disable Device?

\n

\n Would you like to disable device ({disablePromptDevice}) for the org {org.orgName}?\n

\n

\n If you do this to the wrong device you could make us look dumb to a customer and ruin Justin's day. Click\n carefully.\n

\n
\n this.setState({ disablePromptDevice: null })}\n >\n Cancel\n \n setEnabled(disablePromptDevice, false)}\n >\n DISCONNECT THIS DEVICE\n \n
\n
\n );\n }\n}\n\nexport default connector(Devices) as typeof Devices;\n\n// Levels for reference (from log4net):\n// ALL\n// DEBUG\n// INFO\n// WARN\n// ERROR\n// FATAL\n// OFF\n","import * as React from 'react';\n\ninterface Props extends React.HTMLProps {\n content: string;\n}\n\nexport class ContentFrame extends React.Component {\n private frame: HTMLIFrameElement;\n\n componentDidMount() {\n this.drawContent(this.props);\n }\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n if (this.props.content !== nextProps.content) {\n this.drawContent(nextProps);\n }\n }\n\n drawContent({ content }: Props) {\n if (!content || !this.frame) {\n return;\n }\n const { contentDocument } = this.frame;\n contentDocument.open();\n contentDocument.write(content);\n contentDocument.close();\n }\n\n render() {\n const { content, ...rest } = this.props;\n return