{"version":3,"file":"js/app-c69b5dce4134ad6cfd6f.js","mappings":"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","sources":["webpack://flonectors/./app/javascript/src/providers/fetchProvider.ts","webpack://flonectors/./app/javascript/src/sagas/authSagas.ts","webpack://flonectors/./app/javascript/src/sagas/subscriptionSagas.ts","webpack://flonectors/./app/javascript/src/sagas/index.ts","webpack://flonectors/./app/javascript/src/reducers/index.ts","webpack://flonectors/./app/javascript/src/store/index.ts","webpack://flonectors/./app/javascript/packs/app.tsx"],"sourcesContent":["declare var process:any;\n\nclass FetchProvider {\n public async fetch(args: {path: RequestInfo, options?: RequestInit}): Promise {\n // Wrapper class for fetch so we can implement global standards if necessary\n const { path, options } = args;\n\n const opts = {\n ...options,\n headers: {\n 'Content-Type': 'application/json'\n }\n };\n\n let url = `https://www.buildbettersoftware.com/api/v1${path}`;\n if ( process.env.NODE_SETTINGS_ENV === 'staging' ) {\n url = `https://reenhanced-dev.azurewebsites.net/api/v1${path}`;\n } else {\n if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {\n url = `http://localhost:8010/api/v1${path}`;\n }\n }\n\n const response = await fetch(url, opts)\n return response;\n }\n}\n\nexport const fetchProvider = new FetchProvider();\nexport default fetchProvider;","import { call, put } from \"redux-saga/effects\";\nimport fetchProvider from \"../providers/fetchProvider\";\nimport { authenticated, loading } from \"../reducers/auth\";\n\nexport function* hydrateUser() {\n\tlet payload = {\n\t\tuser: undefined,\n\t\terror: ''\n\t};\n\n\tyield put(loading);\n\n\tconst response = yield call({context: fetchProvider, fn: fetchProvider.fetch}, {path: `/me`});\n\tif (response.status === 200) {\n\t\tconst json = yield call([response, response.json]);\n\n\t\tif (json && json.user) {\n\t\t\tpayload.user = json.user;\n\t\t}\n\t} else {\n\t\tpayload.error = response.statusText;\n\t}\n\n\tyield put(authenticated(payload));\n}","import { call, put, select, takeLatest } from \"redux-saga/effects\";\nimport fetchProvider from \"../providers/fetchProvider\";\nimport { RootState } from \"../reducers\";\nimport { loaded, loading, configLoaded, refreshSubscription, resetSubscriptionSites } from \"../reducers/subscription\";\nimport { ISubscription } from \"../types\";\n\nfunction* fetchSubscriptions() {\n\tlet payload = { subscriptions: [] }\n\n\tconst response = yield call({context: fetchProvider, fn: fetchProvider.fetch}, {path: `/subscriptions`});\n\tif (response.status === 200) {\n\t\tconst json = yield call([response, response.json]);\n\t\tpayload.subscriptions = json.subscriptions;\n\t}\n\n\tyield put(loaded(payload));\n}\n\nfunction* deleteSubscriptionSites(action) {\n\tconst subscription = action.payload;\n\n\tconst response = yield call({context: fetchProvider, fn: fetchProvider.fetch}, {path: `/subscriptions/${subscription.id}/domains`, options: { method: 'DELETE' }});\n\tif (response.status === 200) {\n\t\tconst json = yield call([response, response.json]);\n\n\t\tyield put(refreshSubscription(json));\n\t}\n}\n\nexport function* watchResetSubscriptionSites() {\n\tyield takeLatest(resetSubscriptionSites, deleteSubscriptionSites);\n}\n\n\nexport function * fetchSubscriptionConfig() {\n\tconst defaults = yield select((s: RootState) => s.subscription);\n\tlet payload = {\n\t\tconfig: {\n\t\t\tsubscriptionUrl: defaults.subscriptionUrl,\n\t\t\tprices: defaults.prices\n\t\t}\n\t};\n\n\tconst response = yield call({context: fetchProvider, fn: fetchProvider.fetch}, {path: `/config/subscriptions`});\n\tif (response.status === 200) {\n\t\tconst json = yield call([response, response.json]);\n\t\tpayload = json;\n\t}\n\n\tyield put(configLoaded(payload));\n}\n\nexport function* watchSubscriptions() {\n\tyield takeLatest(loading, fetchSubscriptions)\n}","import { all, fork } from \"redux-saga/effects\";\nimport { hydrateUser } from \"./authSagas\";\nimport { watchSubscriptions, fetchSubscriptionConfig, watchResetSubscriptionSites } from \"./subscriptionSagas\";\n\nexport const rootSaga = function* root() {\n yield all([\n\t\thydrateUser(),\n fetchSubscriptionConfig(),\n watchSubscriptions(),\n watchResetSubscriptionSites()\n ]);\n}\n","import { combineReducers } from '@reduxjs/toolkit';\nimport auth from './auth';\nimport subscription from './subscription'\n\nconst rootReducer = combineReducers({\n auth,\n subscription\n});\n\nexport default rootReducer;\n\nexport type RootState = ReturnType","import createSagaMiddleware from 'redux-saga';\nimport { rootSaga } from '../sagas';\nimport rootReducer from '../reducers';\nimport { configureStore } from '@reduxjs/toolkit';\n\nconst sagas = createSagaMiddleware();\n\nexport const store = configureStore({\n\treducer: rootReducer,\n middleware: (getDefaultMiddleware) => [...getDefaultMiddleware({ thunk: true, serializableCheck: false }), sagas],\n});\n\nsagas.run(rootSaga);\n\nexport type AppDispatch = typeof store.dispatch\n\nexport default store;","// Run this example by adding <%= javascript_pack_tag 'app' %> to the head of your layout file,\n// like app/views/layouts/application.html.erb.\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport App from '../components/App';\nimport history from \"../src/history\";\nimport { Router } from 'react-router-dom'\n\nimport store from '../src/store';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n ReactDOM.render(\n \n \n \n \n , document.body.appendChild(document.createElement('div')));\n});"],"names":["FetchProvider","fetch","args","path","options","opts","headers","url","response","hydrateUser","payload","user","undefined","error","put","loading","call","context","fetchProvider","fn","status","json","statusText","authenticated","fetchSubscriptions","deleteSubscriptionSites","watchResetSubscriptionSites","fetchSubscriptionConfig","watchSubscriptions","subscriptions","loaded","action","subscription","id","method","refreshSubscription","takeLatest","resetSubscriptionSites","select","s","defaults","config","subscriptionUrl","prices","configLoaded","rootSaga","root","all","combineReducers","auth","sagas","createSagaMiddleware","store","configureStore","reducer","rootReducer","middleware","getDefaultMiddleware","thunk","serializableCheck","run","document","addEventListener","ReactDOM","history","App","body","appendChild","createElement"],"sourceRoot":""}