{"version":3,"sources":["pages/components/__generated__/ListOfAppsQuery.graphql.js","components/form/__generated__/AppIconUploadMutation.graphql.js","pages/__generated__/CreateNewAppMutation.graphql.js","pages/components/__generated__/AppDeleteButtonMutation.graphql.js","pages/__generated__/UpdateAppQuery.graphql.js","pages/__generated__/UpdateAppMutation.graphql.js","pages/components/__generated__/ConnectedSitesQuery.graphql.js","pages/auth/__generated__/LoginWithTokenMutation.graphql.js","pages/components/__generated__/AppDetailPageQuery.graphql.js","pages/components/__generated__/OauthInstructionsFragment_instructions.graphql.js","pages/__generated__/AppDetailQuery.graphql.js","components/layout/GoaffproLogo.jsx","components/layout/TopNavBar.jsx","components/layout/DashboardContainer.jsx","pages/components/ListOfApps.jsx","pages/MyApps.jsx","components/layout/BackButton.jsx","components/form/Button.js","components/form/Label.js","components/form/FormGroup.js","components/form/Spinner.js","components/form/AppIconUpload.jsx","pages/components/AppCrudForm.jsx","pages/CreateNewApp.jsx","components/Modal.js","pages/components/AppDeleteButton.jsx","pages/UpdateApp.jsx","pages/components/ConnectedSites.jsx","components/hooks/useQuery.js","pages/auth/LoginWithToken.jsx","pages/components/AppDetailPage.jsx","pages/components/OauthInstructionsFragment.jsx","pages/AppDetail.jsx","pages/DemoComponent.jsx","pages/DemoRedirectComponent.jsx","App.js","reportWebVitals.js","utils/RelayEnvironment.js","index.js"],"names":["node","v0","v1","v2","hash","module","exports","v3","v4","v5","v6","v7","v8","v9","v10","v11","GoaffproLogo","inverted","to","id","className","alt","style","width","height","src","fontSize","TopNavBar","props","localStorage","getItem","DashboardContainer","children","flex","Date","getFullYear","href","require","useQueryLoader","usePreloadedQuery","q","Listing","queryRef","data","myApps","length","Empty","map","item","appId","appIcon","objectFit","borderRadius","name","ListOfApps","loader","useEffect","Suspense","fallback","count","MyApps","BackButton","history","useHistory","onClick","replace","goBack","Button","cls","loading","saved","title","btnProps","disabled","role","aria-hidden","Label","htmlFor","required","FormGroup","label","info","Spinner","size","defaultProps","preSignedMutation","FileUpload","accept","maxSize","onChange","value","useMutation","commit","useState","setLoading","onDrop","useCallback","acceptedFiles","file","variables","filename","onCompleted","getPreSignedUrl","url","fields","formData","FormData","Object","keys","forEach","append","fetch","method","body","then","status","result","bucket","key","useDropzone","maxFiles","multiple","getRootProps","getInputProps","isDragActive","borderStyle","AppCrudForm","appInput","termsPageUrl","privacyPageUrl","approvedRedirectUrls","approvedScopes","website","redirectUrls","join","AppIconUpload","target","type","e","scopes","selectedOptions","option","push","split","mutation","CreateNewApp","submitting","setAppInput","canSubmit","onFormSubmit","preventDefault","stopPropagation","updater","store","invalidateStore","createApp","onSubmit","prevState","Modal","confirmLoading","onOk","onCancel","onClose","okText","cancelText","visible","isOpen","toggle","Form","deleteMutation","ConfirmDeleteModal","isInFlight","parseInt","response","deleteApp","console","log","AppDeleteButton","onDeleted","modalVisible","setModalVisible","LoadingSkeleton","RenderApp","useParams","app","find","o","String","Forms","appName","successMessage","setSuccessMessage","UpdateApp","Number","query","SiteList","queryReference","connectedSites","display","justifyContent","alignItems","marginBottom","textAlign","margin","site","ConnectedSites","useQuery","location","useLocation","qs","parse","search","refreshTokenMutation","LoginWithToken","error","setError","accessToken","refreshAccessToken","setItem","redirect_to","window","paddingTop","AppDetail","RenderAppDetail","client_id","client_secret","LiItem","rel","AppDetailPage","RenderOauthInstructionsComponent","redir","scope","randomString","useMemo","characters","charactersLength","i","charAt","Math","floor","random","makeid","URL","searchParams","finalRedirectUri","JSON","stringify","color","access_token","OauthInstructionsFragment","useFragment","appID","activeClassName","exact","path","component","DemoComponent","base","redirect_uri","user_email","admin_email","admin_name","setQuery","uri","set","DemoRedirectComponent","code","Dashboard","Logout","process","removeItem","App","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","fetchGraphQL","text","a","headers","Authorization","json","catch","params","Environment","network","Network","create","Store","RecordSource","RelayEnvironmentProvider","ReactDOM","render","StrictMode","environment","RelayEnvironment","locale","document","getElementById"],"mappings":"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","file":"static/js/main.067f78e8.chunk.js","sourcesContent":["/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ConcreteRequest } from 'relay-runtime';\nexport type ListOfAppsQueryVariables = {||};\nexport type ListOfAppsQueryResponse = {|\n +myApps: $ReadOnlyArray<{|\n +appId: number,\n +name: string,\n +appIcon: ?any,\n |}>\n|};\nexport type ListOfAppsQuery = {|\n variables: ListOfAppsQueryVariables,\n response: ListOfAppsQueryResponse,\n|};\n*/\n\n\n/*\nquery ListOfAppsQuery {\n myApps {\n appId\n name\n appIcon\n id\n }\n}\n*/\n\nconst node/*: ConcreteRequest*/ = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"appId\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n},\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"appIcon\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ListOfAppsQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"myApps\",\n \"plural\": true,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v2/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"ListOfAppsQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"myApps\",\n \"plural\": true,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v2/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"d9bbcf02e643d2c13ae025733c9b081c\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"ListOfAppsQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query ListOfAppsQuery {\\n myApps {\\n appId\\n name\\n appIcon\\n id\\n }\\n}\\n\"\n }\n};\n})();\n// prettier-ignore\n(node/*: any*/).hash = '4bdb9fa99aa41db45fcfe7ecd3d88d5a';\n\nmodule.exports = node;\n","/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ConcreteRequest } from 'relay-runtime';\nexport type AppIconUploadMutationVariables = {|\n filename: string\n|};\nexport type AppIconUploadMutationResponse = {|\n +getPreSignedUrl: {|\n +url: any,\n +fields: any,\n |}\n|};\nexport type AppIconUploadMutation = {|\n variables: AppIconUploadMutationVariables,\n response: AppIconUploadMutationResponse,\n|};\n*/\n\n\n/*\nmutation AppIconUploadMutation(\n $filename: String!\n) {\n getPreSignedUrl(fileName: $filename) {\n url\n fields\n }\n}\n*/\n\nconst node/*: ConcreteRequest*/ = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"filename\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"fileName\",\n \"variableName\": \"filename\"\n }\n ],\n \"concreteType\": \"S3PreSignedURL\",\n \"kind\": \"LinkedField\",\n \"name\": \"getPreSignedUrl\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"url\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"fields\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"AppIconUploadMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"AppIconUploadMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"d799c1d75d81e75e9dcc90973c8ee00c\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"AppIconUploadMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation AppIconUploadMutation(\\n $filename: String!\\n) {\\n getPreSignedUrl(fileName: $filename) {\\n url\\n fields\\n }\\n}\\n\"\n }\n};\n})();\n// prettier-ignore\n(node/*: any*/).hash = '5c38200491afa1589c2d63027539ba97';\n\nmodule.exports = node;\n","/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ConcreteRequest } from 'relay-runtime';\nexport type AppInput = {|\n name: string,\n website?: ?string,\n approvedScopes: $ReadOnlyArray,\n approvedRedirectUrls: $ReadOnlyArray,\n termsPageUrl?: ?any,\n privacyPageUrl?: ?any,\n appIcon?: ?any,\n|};\nexport type CreateNewAppMutationVariables = {|\n data: AppInput\n|};\nexport type CreateNewAppMutationResponse = {|\n +createApp: ?{|\n +appIcon: ?any,\n +appId: number,\n +id: string,\n +name: string,\n +approvedScopes: $ReadOnlyArray,\n +approvedRedirectUrls: $ReadOnlyArray,\n +termsPageUrl: ?any,\n +privacyPageUrl: ?any,\n |}\n|};\nexport type CreateNewAppMutation = {|\n variables: CreateNewAppMutationVariables,\n response: CreateNewAppMutationResponse,\n|};\n*/\n\n\n/*\nmutation CreateNewAppMutation(\n $data: AppInput!\n) {\n createApp(data: $data) {\n appIcon\n appId\n id\n name\n approvedScopes\n approvedRedirectUrls\n termsPageUrl\n privacyPageUrl\n }\n}\n*/\n\nconst node/*: ConcreteRequest*/ = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"data\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"data\",\n \"variableName\": \"data\"\n }\n ],\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"createApp\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"appIcon\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"appId\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedScopes\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedRedirectUrls\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"termsPageUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"privacyPageUrl\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"CreateNewAppMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"CreateNewAppMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"54ccef19ddfffc92fcb6aad1ef47f984\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"CreateNewAppMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation CreateNewAppMutation(\\n $data: AppInput!\\n) {\\n createApp(data: $data) {\\n appIcon\\n appId\\n id\\n name\\n approvedScopes\\n approvedRedirectUrls\\n termsPageUrl\\n privacyPageUrl\\n }\\n}\\n\"\n }\n};\n})();\n// prettier-ignore\n(node/*: any*/).hash = '054a7935508c966bbacacb3ff84231bc';\n\nmodule.exports = node;\n","/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ConcreteRequest } from 'relay-runtime';\nexport type Result = \"ERROR\" | \"OK\" | \"%future added value\";\nexport type AppDeleteButtonMutationVariables = {|\n appId: number\n|};\nexport type AppDeleteButtonMutationResponse = {|\n +deleteApp: ?Result\n|};\nexport type AppDeleteButtonMutation = {|\n variables: AppDeleteButtonMutationVariables,\n response: AppDeleteButtonMutationResponse,\n|};\n*/\n\n\n/*\nmutation AppDeleteButtonMutation(\n $appId: Int!\n) {\n deleteApp(appId: $appId)\n}\n*/\n\nconst node/*: ConcreteRequest*/ = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"appId\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"appId\",\n \"variableName\": \"appId\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"deleteApp\",\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"AppDeleteButtonMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"AppDeleteButtonMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"559f7a6492c1e152b34c888cb08b4844\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"AppDeleteButtonMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation AppDeleteButtonMutation(\\n $appId: Int!\\n) {\\n deleteApp(appId: $appId)\\n}\\n\"\n }\n};\n})();\n// prettier-ignore\n(node/*: any*/).hash = 'a76d395d32e14cd7c1aefb1d3ed16c9b';\n\nmodule.exports = node;\n","/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ConcreteRequest } from 'relay-runtime';\nexport type UpdateAppQueryVariables = {|\n appId: number\n|};\nexport type UpdateAppQueryResponse = {|\n +myApps: $ReadOnlyArray<{|\n +appId: number,\n +name: string,\n +website: ?string,\n +approvedScopes: $ReadOnlyArray,\n +approvedRedirectUrls: $ReadOnlyArray,\n +termsPageUrl: ?any,\n +privacyPageUrl: ?any,\n +appIcon: ?any,\n |}>\n|};\nexport type UpdateAppQuery = {|\n variables: UpdateAppQueryVariables,\n response: UpdateAppQueryResponse,\n|};\n*/\n\n\n/*\nquery UpdateAppQuery(\n $appId: Int!\n) {\n myApps(appId: $appId) {\n appId\n name\n website\n approvedScopes\n approvedRedirectUrls\n termsPageUrl\n privacyPageUrl\n appIcon\n id\n }\n}\n*/\n\nconst node/*: ConcreteRequest*/ = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"appId\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"appId\",\n \"variableName\": \"appId\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"appId\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"website\",\n \"storageKey\": null\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedScopes\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedRedirectUrls\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"termsPageUrl\",\n \"storageKey\": null\n},\nv8 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"privacyPageUrl\",\n \"storageKey\": null\n},\nv9 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"appIcon\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"UpdateAppQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"myApps\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/),\n (v4/*: any*/),\n (v5/*: any*/),\n (v6/*: any*/),\n (v7/*: any*/),\n (v8/*: any*/),\n (v9/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"UpdateAppQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"myApps\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/),\n (v4/*: any*/),\n (v5/*: any*/),\n (v6/*: any*/),\n (v7/*: any*/),\n (v8/*: any*/),\n (v9/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"8e2557a6a97d1ea0279af949d40047e9\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"UpdateAppQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query UpdateAppQuery(\\n $appId: Int!\\n) {\\n myApps(appId: $appId) {\\n appId\\n name\\n website\\n approvedScopes\\n approvedRedirectUrls\\n termsPageUrl\\n privacyPageUrl\\n appIcon\\n id\\n }\\n}\\n\"\n }\n};\n})();\n// prettier-ignore\n(node/*: any*/).hash = '1d0913ecdf0fcfe38d004eced639009a';\n\nmodule.exports = node;\n","/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ConcreteRequest } from 'relay-runtime';\nexport type AppInput = {|\n name: string,\n website?: ?string,\n approvedScopes: $ReadOnlyArray,\n approvedRedirectUrls: $ReadOnlyArray,\n termsPageUrl?: ?any,\n privacyPageUrl?: ?any,\n appIcon?: ?any,\n|};\nexport type UpdateAppMutationVariables = {|\n appId: number,\n data: AppInput,\n|};\nexport type UpdateAppMutationResponse = {|\n +updateApp: ?{|\n +id: string,\n +name: string,\n +website: ?string,\n +approvedRedirectUrls: $ReadOnlyArray,\n +approvedScopes: $ReadOnlyArray,\n +termsPageUrl: ?any,\n +privacyPageUrl: ?any,\n +appIcon: ?any,\n |}\n|};\nexport type UpdateAppMutation = {|\n variables: UpdateAppMutationVariables,\n response: UpdateAppMutationResponse,\n|};\n*/\n\n\n/*\nmutation UpdateAppMutation(\n $appId: Int!\n $data: AppInput!\n) {\n updateApp(appId: $appId, data: $data) {\n id\n name\n website\n approvedRedirectUrls\n approvedScopes\n termsPageUrl\n privacyPageUrl\n appIcon\n }\n}\n*/\n\nconst node/*: ConcreteRequest*/ = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"appId\"\n },\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"data\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"appId\",\n \"variableName\": \"appId\"\n },\n {\n \"kind\": \"Variable\",\n \"name\": \"data\",\n \"variableName\": \"data\"\n }\n ],\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"updateApp\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"website\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedRedirectUrls\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedScopes\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"termsPageUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"privacyPageUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"appIcon\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"UpdateAppMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"UpdateAppMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"ee8b4ae80a2c5a2daf339d1a13799746\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"UpdateAppMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation UpdateAppMutation(\\n $appId: Int!\\n $data: AppInput!\\n) {\\n updateApp(appId: $appId, data: $data) {\\n id\\n name\\n website\\n approvedRedirectUrls\\n approvedScopes\\n termsPageUrl\\n privacyPageUrl\\n appIcon\\n }\\n}\\n\"\n }\n};\n})();\n// prettier-ignore\n(node/*: any*/).hash = 'f8931ced43d7e7154df89add78e18d9f';\n\nmodule.exports = node;\n","/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ConcreteRequest } from 'relay-runtime';\nexport type ConnectedSitesQueryVariables = {|\n id?: ?number\n|};\nexport type ConnectedSitesQueryResponse = {|\n +myApps: $ReadOnlyArray<{|\n +connectedSites: $ReadOnlyArray<{|\n +site: {|\n +name: string\n |}\n |}>\n |}>\n|};\nexport type ConnectedSitesQuery = {|\n variables: ConnectedSitesQueryVariables,\n response: ConnectedSitesQueryResponse,\n|};\n*/\n\n\n/*\nquery ConnectedSitesQuery(\n $id: Int\n) {\n myApps(appId: $id) {\n connectedSites {\n site {\n name\n id\n }\n }\n id\n }\n}\n*/\n\nconst node/*: ConcreteRequest*/ = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"id\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"appId\",\n \"variableName\": \"id\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ConnectedSitesQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"myApps\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppConnectedSite\",\n \"kind\": \"LinkedField\",\n \"name\": \"connectedSites\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Site\",\n \"kind\": \"LinkedField\",\n \"name\": \"site\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"ConnectedSitesQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"myApps\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppConnectedSite\",\n \"kind\": \"LinkedField\",\n \"name\": \"connectedSites\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Site\",\n \"kind\": \"LinkedField\",\n \"name\": \"site\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"5c0295150fc7c048b056385867697310\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"ConnectedSitesQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query ConnectedSitesQuery(\\n $id: Int\\n) {\\n myApps(appId: $id) {\\n connectedSites {\\n site {\\n name\\n id\\n }\\n }\\n id\\n }\\n}\\n\"\n }\n};\n})();\n// prettier-ignore\n(node/*: any*/).hash = 'ad638c82548c76af6f0741d5198023c3';\n\nmodule.exports = node;\n","/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ConcreteRequest } from 'relay-runtime';\nexport type LoginWithTokenMutationVariables = {|\n accessToken: string\n|};\nexport type LoginWithTokenMutationResponse = {|\n +refreshAccessToken: {|\n +accessToken?: ?any,\n +code?: string,\n +message?: string,\n |}\n|};\nexport type LoginWithTokenMutation = {|\n variables: LoginWithTokenMutationVariables,\n response: LoginWithTokenMutationResponse,\n|};\n*/\n\n\n/*\nmutation LoginWithTokenMutation(\n $accessToken: String!\n) {\n refreshAccessToken(accessToken: $accessToken) {\n __typename\n ... on AccessToken {\n accessToken\n }\n ... on Error {\n code\n message\n }\n }\n}\n*/\n\nconst node/*: ConcreteRequest*/ = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"accessToken\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"accessToken\",\n \"variableName\": \"accessToken\"\n }\n],\nv2 = {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"accessToken\",\n \"storageKey\": null\n }\n ],\n \"type\": \"AccessToken\",\n \"abstractKey\": null\n},\nv3 = {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"code\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"message\",\n \"storageKey\": null\n }\n ],\n \"type\": \"Error\",\n \"abstractKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"LoginWithTokenMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"refreshAccessToken\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"LoginWithTokenMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"refreshAccessToken\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"48983d002db4f4d0b5f907b08bd405e6\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"LoginWithTokenMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation LoginWithTokenMutation(\\n $accessToken: String!\\n) {\\n refreshAccessToken(accessToken: $accessToken) {\\n __typename\\n ... on AccessToken {\\n accessToken\\n }\\n ... on Error {\\n code\\n message\\n }\\n }\\n}\\n\"\n }\n};\n})();\n// prettier-ignore\n(node/*: any*/).hash = '369730cbf3f3fc7e27d2cd9ae4330358';\n\nmodule.exports = node;\n","/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ConcreteRequest } from 'relay-runtime';\ntype OauthInstructionsFragment_instructions$ref = any;\nexport type AppDetailPageQueryVariables = {|\n id?: ?number\n|};\nexport type AppDetailPageQueryResponse = {|\n +myApps: $ReadOnlyArray<{|\n +name: string,\n +appId: number,\n +website: ?string,\n +client_id: string,\n +client_secret: string,\n +approvedScopes: $ReadOnlyArray,\n +approvedRedirectUrls: $ReadOnlyArray,\n +termsPageUrl: ?any,\n +privacyPageUrl: ?any,\n +appIcon: ?any,\n +$fragmentRefs: OauthInstructionsFragment_instructions$ref,\n |}>\n|};\nexport type AppDetailPageQuery = {|\n variables: AppDetailPageQueryVariables,\n response: AppDetailPageQueryResponse,\n|};\n*/\n\n\n/*\nquery AppDetailPageQuery(\n $id: Int\n) {\n myApps(appId: $id) {\n ...OauthInstructionsFragment_instructions\n name\n appId\n website\n client_id\n client_secret\n approvedScopes\n approvedRedirectUrls\n termsPageUrl\n privacyPageUrl\n appIcon\n id\n }\n}\n\nfragment OauthInstructionsFragment_instructions on App {\n client_id\n client_secret\n approvedScopes\n approvedRedirectUrls\n}\n*/\n\nconst node/*: ConcreteRequest*/ = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"id\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"appId\",\n \"variableName\": \"id\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"appId\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"website\",\n \"storageKey\": null\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"client_id\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"client_secret\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedScopes\",\n \"storageKey\": null\n},\nv8 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedRedirectUrls\",\n \"storageKey\": null\n},\nv9 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"termsPageUrl\",\n \"storageKey\": null\n},\nv10 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"privacyPageUrl\",\n \"storageKey\": null\n},\nv11 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"appIcon\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"AppDetailPageQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"myApps\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/),\n (v4/*: any*/),\n (v5/*: any*/),\n (v6/*: any*/),\n (v7/*: any*/),\n (v8/*: any*/),\n (v9/*: any*/),\n (v10/*: any*/),\n (v11/*: any*/),\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"OauthInstructionsFragment_instructions\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"AppDetailPageQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"myApps\",\n \"plural\": true,\n \"selections\": [\n (v5/*: any*/),\n (v6/*: any*/),\n (v7/*: any*/),\n (v8/*: any*/),\n (v2/*: any*/),\n (v3/*: any*/),\n (v4/*: any*/),\n (v9/*: any*/),\n (v10/*: any*/),\n (v11/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"eee4a0200682a47c9502a7815d1d8b3f\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"AppDetailPageQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query AppDetailPageQuery(\\n $id: Int\\n) {\\n myApps(appId: $id) {\\n ...OauthInstructionsFragment_instructions\\n name\\n appId\\n website\\n client_id\\n client_secret\\n approvedScopes\\n approvedRedirectUrls\\n termsPageUrl\\n privacyPageUrl\\n appIcon\\n id\\n }\\n}\\n\\nfragment OauthInstructionsFragment_instructions on App {\\n client_id\\n client_secret\\n approvedScopes\\n approvedRedirectUrls\\n}\\n\"\n }\n};\n})();\n// prettier-ignore\n(node/*: any*/).hash = 'a084278f806dafebb053e667c478b364';\n\nmodule.exports = node;\n","/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ReaderFragment } from 'relay-runtime';\nimport type { FragmentReference } from \"relay-runtime\";\ndeclare export opaque type OauthInstructionsFragment_instructions$ref: FragmentReference;\ndeclare export opaque type OauthInstructionsFragment_instructions$fragmentType: OauthInstructionsFragment_instructions$ref;\nexport type OauthInstructionsFragment_instructions = {|\n +client_id: string,\n +client_secret: string,\n +approvedScopes: $ReadOnlyArray,\n +approvedRedirectUrls: $ReadOnlyArray,\n +$refType: OauthInstructionsFragment_instructions$ref,\n|};\nexport type OauthInstructionsFragment_instructions$data = OauthInstructionsFragment_instructions;\nexport type OauthInstructionsFragment_instructions$key = {\n +$data?: OauthInstructionsFragment_instructions$data,\n +$fragmentRefs: OauthInstructionsFragment_instructions$ref,\n ...\n};\n*/\n\n\nconst node/*: ReaderFragment*/ = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"OauthInstructionsFragment_instructions\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"client_id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"client_secret\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedScopes\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedRedirectUrls\",\n \"storageKey\": null\n }\n ],\n \"type\": \"App\",\n \"abstractKey\": null\n};\n// prettier-ignore\n(node/*: any*/).hash = 'cf528000fa256388f77b66ee72b87322';\n\nmodule.exports = node;\n","/**\n * @flow\n */\n\n/* eslint-disable */\n\n'use strict';\n\n/*::\nimport type { ConcreteRequest } from 'relay-runtime';\ntype OauthInstructionsFragment_instructions$ref = any;\nexport type AppDetailQueryVariables = {|\n id?: ?number\n|};\nexport type AppDetailQueryResponse = {|\n +myApps: $ReadOnlyArray<{|\n +name: string,\n +$fragmentRefs: OauthInstructionsFragment_instructions$ref,\n |}>\n|};\nexport type AppDetailQuery = {|\n variables: AppDetailQueryVariables,\n response: AppDetailQueryResponse,\n|};\n*/\n\n\n/*\nquery AppDetailQuery(\n $id: Int\n) {\n myApps(appId: $id) {\n name\n ...OauthInstructionsFragment_instructions\n id\n }\n}\n\nfragment OauthInstructionsFragment_instructions on App {\n client_id\n client_secret\n approvedScopes\n approvedRedirectUrls\n}\n*/\n\nconst node/*: ConcreteRequest*/ = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"id\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"appId\",\n \"variableName\": \"id\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"AppDetailQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"myApps\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/),\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"OauthInstructionsFragment_instructions\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"AppDetailQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"App\",\n \"kind\": \"LinkedField\",\n \"name\": \"myApps\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"client_id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"client_secret\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedScopes\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"approvedRedirectUrls\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"415769b49fc5d7fb1c382a6d6d1cb5c7\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"AppDetailQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query AppDetailQuery(\\n $id: Int\\n) {\\n myApps(appId: $id) {\\n name\\n ...OauthInstructionsFragment_instructions\\n id\\n }\\n}\\n\\nfragment OauthInstructionsFragment_instructions on App {\\n client_id\\n client_secret\\n approvedScopes\\n approvedRedirectUrls\\n}\\n\"\n }\n};\n})();\n// prettier-ignore\n(node/*: any*/).hash = '198f90757157f4284e9f4b5b18f393b7';\n\nmodule.exports = node;\n","import React from 'react';\nimport {Link} from \"react-router-dom\";\n\nexport default function GoaffproLogo({inverted}){\n return \n \n {\"logo\"}\n
GOAFFPRO
\n
\n \n}\n","import React from 'react';\nimport GoaffproLogo from \"./GoaffproLogo\";\nimport {Link} from \"react-router-dom\";\nimport {FiLogOut} from \"react-icons/fi\";\n\nfunction TopNavBar(props) {\n return (\n
\n \n {\n localStorage.getItem('access_token') &&\n \n \n \n }\n
\n );\n}\n\nexport default TopNavBar;\n","import React from 'react';\nimport TopNavBar from \"./TopNavBar\";\n\nfunction DashboardContainer({children}) {\n if(process.env.NODE_ENV !== \"development\" && !localStorage.getItem('access_token')){\n return
\n \n
\n
\n
\n

Not authorized

\n

You are not authorized to access this page.

\n

LOGIN HERE

\n
\n
\n
\n Copyright © {new Date().getFullYear()} GOAFFPRO. All rights reserved.\n
\n
\n
\n }\n return (\n <>\n
\n \n
\n
\n
\n {\n children\n }\n
\n
\n
\n Copyright © {new Date().getFullYear()} GOAFFPRO. All rights reserved.\n
\n
\n
\n \n );\n}\n\nexport default DashboardContainer;\n","/**\n * @Author Pranav\n */\n\nimport React, { useEffect } from 'react';\nimport graphql from 'babel-plugin-relay/macro'\nimport { Link } from \"react-router-dom\";\nimport Skeleton from 'react-loading-skeleton'\n\nconst { useQueryLoader, usePreloadedQuery } = require('react-relay');\nconst q = graphql`\n query ListOfAppsQuery {\n myApps{\n appId\n name\n appIcon\n }\n }\n`\nfunction ListOfApps(props) {\n const [queryRef, loader]= useQueryLoader(q ,null)\n\n useEffect(() => {\n loader()\n }, [])\n\n if (!queryRef) {\n return null\n }\n return (\n }>\n
    \n \n
\n
\n );\n}\n\nfunction Listing({ queryRef }) {\n const data = usePreloadedQuery(q, queryRef)\n return (\n <>{\n data.myApps.length === 0 ? : <>{\n data.myApps.map((item) => {\n return \n {\n item.appIcon ? {\"app : null\n }\n \n {item.name}\n \n \n })\n }\n })\n}\n\nfunction Empty() {\n\n return (\n
\n
\n

You have not yet created any apps.

\n

Create a new app now ?

\n

Create a new app

\n
\n
\n );\n}\nexport default ListOfApps;\n","import React from 'react';\nimport {Link} from \"react-router-dom\";\nimport ListOfApps from \"./components/ListOfApps\";\n\nfunction MyApps(props) {\n return (\n <>\n
\n

My Apps

\n Create new app\n
\n \n \n );\n}\n\nexport default MyApps;\n","import React from 'react';\nimport {FiArrowLeft} from \"react-icons/fi\";\nimport {useHistory} from 'react-router-dom'\nfunction BackButton({to}) {\n const history = useHistory();\n function goBack(){\n if(to){\n history.replace(to)\n }else{\n history.goBack()\n }\n }\n return (\n \n );\n}\n\nexport default BackButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {FormattedMessage} from \"react-intl\";\n\nconst Button = function (props){\n const cls = \"btn \"+props.className;\n const {loading, saved, title} = props;\n const btnProps = {...props};\n delete btnProps.loading;\n delete btnProps.saved\n return (\n \n )\n}\n\nButton.propTypes = {\n className: PropTypes.string,\n loading: PropTypes.bool,\n onClick: PropTypes.func.isRequired\n}\nexport default Button;\n","import React from \"react\";\n\nfunction Label({htmlFor, title, required}){\n return \n}\nexport default Label;\n","import React from 'react';\nimport Label from \"./Label\";\n\n\nfunction FormGroup ({children, label, required, info}){\n return
\n {\n label && <>
\n}\nexport default FormGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types'\n\nfunction Spinner({size}){\n return
\n Loading...\n
\n}\nSpinner.propTypes = {\n size: PropTypes.number\n}\n\nSpinner.defaultProps = {\n size: 2\n}\n\nexport default Spinner;\n","import React, {useCallback, useState} from 'react';\nimport {useDropzone} from 'react-dropzone'\nimport graphql from 'babel-plugin-relay/macro'\nimport {useMutation} from \"react-relay\";\nimport Spinner from \"./Spinner\";\nimport {FiPlus} from 'react-icons/fi'\nconst preSignedMutation = graphql`\n mutation AppIconUploadMutation ($filename: String!){\n getPreSignedUrl(fileName: $filename){\n url\n fields\n }\n }\n`\nfunction FileUpload({accept, maxSize, onChange, value}) {\n const [commit] = useMutation(preSignedMutation)\n const [loading, setLoading] = useState(false)\n const onDrop = useCallback(acceptedFiles => {\n const file = acceptedFiles[0];\n setLoading(true)\n commit({\n variables:{\n filename:file.name\n },\n onCompleted({getPreSignedUrl}){\n const {url, fields} = getPreSignedUrl;\n const formData = new FormData();\n Object.keys(fields).forEach((item)=>{\n formData.append(item, fields[item])\n })\n formData.append(\"file\", file)\n fetch(url, {\n method:'POST',\n body: formData\n }).then((data)=>data.status === 204)\n .then((result)=>{\n setLoading(false)\n onChange({url: result ? `https://${fields.bucket}/${fields.key}` : null})\n })\n }\n })\n\n }, [])\n const {getRootProps, getInputProps, isDragActive} = useDropzone({\n onDrop,\n accept: accept || 'image/jpeg, image/png, image/jpg',\n maxFiles:1,\n maxSize: maxSize || 5 * 1024 * 1024,\n multiple:false,\n })\n\n return (\n
\n \n
\n {\n loading ?
:
\n {\n value ? {\"App: <>{\n isDragActive ?\n Drop the file :\n \n }\n }\n\n
\n }\n
\n
\n );\n}\n\nexport default FileUpload;\n","import React from 'react';\nimport FormGroup from \"../../components/form/FormGroup\";\nimport AppIconUpload from \"../../components/form/AppIconUpload\";\nimport TextArea from \"react-textarea-autosize\";\n\n\n\nfunction AppCrudForm({appInput, onChange}) {\n const {appIcon, termsPageUrl, privacyPageUrl, approvedRedirectUrls, approvedScopes, website, name} = appInput;\n const redirectUrls = approvedRedirectUrls.join(\"\\n\");\n\n return (\n
\n \n {\n onChange('appIcon')({\n target:{\n value: url\n }\n })\n }} />\n \n
\n
\n \n \n \n\n
\n
\n \n \n \n
\n
\n\n\n \n {\n const scopes = []\n for(let option of e.target.selectedOptions){\n scopes.push(option.value)\n }\n onChange('approvedScopes')({\n target:{\n value:scopes\n }\n })\n }}>\n \n \n \n \n\n \n {\n onChange('approvedRedirectUrls')({\n target:{\n value:e.target.value.split(\"\\n\")\n }\n })\n }}\n />\n \n
\n
\n\n \n \n \n\n
\n
\n \n \n \n
\n
\n * - Required\n
\n );\n}\n\nexport default AppCrudForm;\n","/**\n * @Author Zahid\n */\nimport React, {useState} from 'react';\nimport { useMutation } from 'react-relay'\nimport BackButton from \"../components/layout/BackButton\";\nimport graphql from 'babel-plugin-relay/macro'\nimport { useHistory } from 'react-router-dom';\nimport Button from \"../components/form/Button\";\nimport AppCrudForm from \"./components/AppCrudForm\";\nconst mutation = graphql`\n mutation CreateNewAppMutation($data: AppInput!){\n createApp(data: $data){\n appIcon\n appId\n id\n name\n approvedScopes\n approvedRedirectUrls\n termsPageUrl\n privacyPageUrl\n }\n }\n`\nfunction CreateNewApp(props) {\n const [commit, submitting] = useMutation(mutation);\n const [appInput, setAppInput] = useState({\n name:'',\n website:'',\n approvedScopes:[],\n approvedRedirectUrls:[],\n privacyPageUrl:'',\n termsPageUrl:'',\n appIcon:''\n })\n const {name, approvedScopes, approvedRedirectUrls, website, appIcon, termsPageUrl, privacyPageUrl} = appInput;\n const canSubmit = name && approvedScopes && approvedRedirectUrls\n const history = useHistory();\n const onFormSubmit = (e) => {\n if (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n commit({\n variables: {\n data: {\n appIcon,\n name,\n website,\n approvedScopes,\n approvedRedirectUrls,\n termsPageUrl,\n privacyPageUrl\n }\n },\n updater(store){\n store.invalidateStore()\n },\n onCompleted(data) {\n history.push(`/details/${data.createApp.appId}`)\n }\n })\n }\n\n const onChange = key => e =>{\n setAppInput((prevState)=>{\n return {\n ...prevState,\n [key]:e.target.value\n }\n })\n }\n return (\n <>\n \n

Create new app

\n
\n
\n
\n \n \n Submit\n \n \n
\n
\n \n );\n}\n\nexport default CreateNewApp;\n","import React from 'react';\nimport ReactStrapModal from 'reactstrap/lib/Modal';\nimport ModalBody from 'reactstrap/lib/ModalBody';\nimport ModalHeader from 'reactstrap/lib/ModalHeader';\nimport ModalFooter from 'reactstrap/lib/ModalFooter';\nimport PropTypes from 'prop-types';\nimport Button from \"./form/Button\";\n\nexport default function Modal({confirmLoading, onOk, onCancel, onClose, okText, cancelText, title, visible, onSubmit, children, size, disabled}){\n return (\n \n {\n (title) &&\n {title}\n }\n
\n \n {children}\n \n {\n (onCancel || onSubmit || onOk || onCancel) &&\n \n {\n onCancel ?\n :\n null\n }\n {\n onSubmit || onOk || onCancel ?\n : null\n }\n \n }\n
\n
\n );\n}\n\n\nfunction Form({onSubmit, children}){\n return onSubmit ?
{children}
: children\n}\n\n\nModal.propTypes = {\n title: PropTypes.string,\n visible:PropTypes.bool,\n onClose: PropTypes.func,\n onCancel:PropTypes.func,\n onSubmit: PropTypes.func,\n confirmLoading: PropTypes.bool,\n onOk: PropTypes.func,\n okText: PropTypes.string,\n cancelText: PropTypes.string,\n size: PropTypes.oneOf(['lg', 'sm'])\n}\n","import React, {useState} from 'react';\nimport graphql from 'babel-plugin-relay/macro'\nimport Button from \"../../components/form/Button\";\nimport {useMutation} from \"react-relay\";\nimport Modal from \"../../components/Modal\";\n\nconst deleteMutation = graphql`\n mutation AppDeleteButtonMutation($appId: Int!) {\n deleteApp(appId: $appId)\n }\n`\nfunction AppDeleteButton({appId, className, children, onDeleted}) {\n const [modalVisible, setModalVisible] = useState(false)\n return (\n <>\n {\n if(result){\n onDeleted(result)\n }\n setModalVisible(false)\n }}/>\n \n \n );\n}\n\nfunction ConfirmDeleteModal({visible, appId, onClose}){\n const [commit, isInFlight] = useMutation(deleteMutation);\n function onConfirmed(e){\n if(e){\n e.preventDefault();\n e.stopPropagation();\n }\n commit({\n variables: {\n appId: parseInt(appId)\n },\n onCompleted(response) {\n if (response.deleteApp === \"OK\") {\n onClose(true)\n }\n },\n updater:(store)=>{\n try {\n store.invalidateStore()\n }catch(e){\n console.log(e)\n }\n }\n })\n }\n return onClose(false)}\n onOk={onConfirmed}\n confirmLoading={isInFlight}\n okText={\"Delete\"}>\n

Are you sure you want to delete this app ? This will delete the app and disconnect all connected sites

\n \n}\n\n\nexport default AppDeleteButton;\n","import React, { useState, useEffect } from 'react';\nimport BackButton from \"../components/layout/BackButton\";\nimport {useHistory, useParams} from \"react-router-dom\";\nimport { useMutation } from 'react-relay'\nimport graphql from 'babel-plugin-relay/macro'\nimport Button from \"../components/form/Button\";\nimport Skeleton from 'react-loading-skeleton'\nimport AppDeleteButton from \"./components/AppDeleteButton\";\nimport AppCrudForm from \"./components/AppCrudForm\";\nconst {useQueryLoader, usePreloadedQuery} = require('react-relay');\nconst q = graphql`\n query UpdateAppQuery($appId: Int!) {\n myApps(appId: $appId) {\n appId\n name\n website\n approvedScopes\n approvedRedirectUrls\n termsPageUrl\n privacyPageUrl\n appIcon\n }\n }\n`\nconst mutation = graphql`\n mutation UpdateAppMutation($appId: Int!,$data: AppInput!){\n updateApp(appId:$appId,data: $data){\n id\n name\n website\n approvedRedirectUrls\n approvedScopes \n termsPageUrl\n privacyPageUrl\n appIcon\n }\n }\n`\n\nfunction UpdateApp(props) {\n const {appId} = useParams()\n const [queryRef,loader]= useQueryLoader(q ,null)\n useEffect(() => {\n loader({\n appId: Number(appId)\n })\n }, [appId])\n if(!queryRef){\n return null\n }\n return (\n <>\n \n }>\n \n \n \n );\n}\n\nfunction LoadingSkeleton(){\n return <>\n

Update

\n
\n
\n \n
\n
\n \n}\n\nfunction RenderApp({queryRef}){\n const {appId} = useParams()\n const data = usePreloadedQuery(q,queryRef);\n if(!data) return null\n const app = data.myApps.find(o => String(o.appId)===String(appId))\n return <>\n

Update {app.name}

\n
\n
\n \n
\n
\n \n}\n\nfunction Forms({data}) {\n const [commit, submitting] = useMutation(mutation);\n const [appInput, setAppInput] = useState(data)\n\n const {appName, approvedScopes, approvedRedirectUrls, website, appIcon, termsPageUrl, privacyPageUrl} = appInput;\n const canSubmit = appName && approvedScopes && approvedRedirectUrls\n const {appId} = useParams()\n const [successMessage, setSuccessMessage] = useState(null)\n\n const onFormSubmit = (e) => {\n if (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n setSuccessMessage(null)\n commit({\n variables: {\n appId:parseInt(appId),\n data: {\n appIcon:appIcon,\n name: appName,\n website: website,\n approvedRedirectUrls: approvedRedirectUrls,\n approvedScopes: approvedScopes,\n termsPageUrl: termsPageUrl,\n privacyPageUrl: privacyPageUrl\n }\n },\n onCompleted(response){\n setSuccessMessage('Change applied successfully')\n }\n })\n }\n const history = useHistory();\n const onChange = key => e =>{\n setAppInput((prevState)=>{\n return {\n ...prevState,\n [key]:e.target.value\n }\n })\n }\nreturn (\n <>\n
\n \n {\n successMessage ?

{successMessage}

: null\n }\n \n
\n
\n {\n return history.goBack()\n }} className={\"text-danger btn-sm\"}>Delete app\n
\n \n \n)\n}\nexport default UpdateApp;\n","import React, {useEffect} from 'react';\nimport graphql from \"babel-plugin-relay/macro\";\nimport Skeleton from \"react-loading-skeleton\";\nimport {Link} from \"react-router-dom\";\n\nconst {useQueryLoader, usePreloadedQuery} = require('react-relay');\nconst query = graphql`\n query ConnectedSitesQuery($id: Int) {\n myApps(appId: $id) {\n connectedSites {\n site {\n name\n }\n }\n }\n }\n`\n\nfunction ConnectedSites({appId}) {\n const [queryRef, loader] = useQueryLoader(query, null);\n useEffect(() => {\n loader({\n id:Number(appId)\n })\n }, [appId])\n\n if(!queryRef) { return null }\n\n return (\n }>\n \n \n );\n}\n\nconst SiteList = ({ queryReference, appId }) => {\n const data = usePreloadedQuery(query, queryReference)\n if(!data) {\n return null\n } else {\n const app = data.myApps[0].connectedSites\n\n if(app.length === 0)\n return (\n <>\n
\n

No Connected Sites

\n

Learn how to connect your app with Goaffpro

\n
\n \n )\n\n return (\n
\n
    \n {\n app.map((item)=>{\n return
  • \n {item.site.name}\n
  • \n })\n }\n
\n
\n )\n\n }\n}\n\nexport default ConnectedSites;\n","import {useLocation} from \"react-router-dom\";\nimport qs from 'query-string'\n\nexport default function useQuery(){\n const location = useLocation();\n return qs.parse(location.search)\n}\n\n\nexport function appendToQuery(location, obj = {}){\n return location.pathname+\"?\"+qs.stringify({...qs.parse(location.search),...obj })\n}\n","import React, {useEffect, useState} from 'react';\nimport {useHistory, useParams} from \"react-router-dom\";\nimport useQuery from \"../../components/hooks/useQuery\";\nimport {useMutation} from \"react-relay\";\nimport graphql from \"babel-plugin-relay/macro\";\nimport Spinner from \"../../components/form/Spinner\";\n\nconst refreshTokenMutation = graphql`\n mutation LoginWithTokenMutation($accessToken: String!){\n refreshAccessToken(accessToken: $accessToken){\n ...on AccessToken{\n accessToken\n }\n ...on Error{\n code\n message\n }\n }\n }\n`\n\n\nexport default function LoginWithToken(props){\n const [error, setError] = useState(null)\n const q = useQuery();\n const [commit] = useMutation(refreshTokenMutation);\n const {accessToken} = useParams()\n useEffect(()=>{\n if(accessToken){\n commit({\n variables:{\n accessToken\n },\n onCompleted({refreshAccessToken}){\n if(refreshAccessToken.accessToken){\n localStorage.setItem('access_token', refreshAccessToken.accessToken);\n if(q.redirect_to){\n window.location = q.redirect_to;\n }else {\n window.location = \"/\"\n }\n }else{\n setError('Invalid token');\n //history.replace('/auth/login?'+ new URLSearchParams({redirect_to: q.redirect_to || ''}))\n }\n }\n })\n\n }\n },[accessToken])\n\n return (\n
\n
\n
\n
\n
\n {\n error ?

{error}

:\n \n }\n
\n
\n
\n
\n
\n )\n}\n","import React, {useEffect} from 'react';\nimport {Link, useParams} from \"react-router-dom\";\nimport graphql from 'babel-plugin-relay/macro'\nimport Skeleton from \"react-loading-skeleton\";\n\nconst {useQueryLoader, usePreloadedQuery} = require('react-relay');\nconst query = graphql`\n query AppDetailPageQuery($id: Int) {\n myApps(appId: $id) {\n ...OauthInstructionsFragment_instructions\n name\n appId\n website\n client_id\n client_secret\n approvedScopes\n approvedRedirectUrls\n termsPageUrl\n privacyPageUrl\n appIcon\n }\n }\n`\n\nfunction AppDetailPage(props) {\n const { appId } = useParams()\n const [queryRef, loader] = useQueryLoader(query, null);\n\n useEffect(() => {\n loader({\n id: Number(appId)\n })\n }, [appId])\n\n if(!queryRef) { return null }\n\n return (\n }>\n \n \n );\n}\n\nconst AppDetail = ({ queryReference }) => {\n const data = usePreloadedQuery(query, queryReference)\n if(!data) {\n return null\n } else {\n const app = data.myApps[0]\n return (\n <>\n \n \n )\n }\n}\n\nfunction RenderAppDetail({app}){\n const {appIcon, appId, name, website, client_id, client_secret, approvedScopes, approvedRedirectUrls, termsPageUrl, privacyPageUrl} = app\n return
\n
\n
\n {\n appIcon ? {\"Application : null\n }\n

{name}

\n\n
\n Edit\n
\n
\n
\n
\n
\n
Information
\n
    \n \n
    {client_id}
    \n
    \n \n
    {client_secret}
    \n
    \n \n
    {approvedScopes.join(\"\\n\")}
    \n
    \n \n
    {approvedRedirectUrls.join(\"\\n\")}
    \n
    \n
\n
\n
\n
\n
\n
App Details
\n \n
\n
\n
\n\n
\n}\n\nfunction LiItem({title, children}){\n return
  • \n
    {title}
    \n {children}\n
  • \n}\n\nconst ListItem = ({ title, data }) => {\n return (\n <>\n
    {title}
    \n
  • {data}
  • \n \n )\n}\n\nexport default AppDetailPage;\n","import React, {useMemo} from 'react';\nimport FormGroup from \"../../components/form/FormGroup\";\nimport {useFragment} from \"react-relay\";\nimport graphql from 'babel-plugin-relay/macro'\nfunction makeid(length) {\n var result = '';\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var charactersLength = characters.length;\n for ( var i = 0; i < length; i++ ) {\n result += characters.charAt(Math.floor(Math.random() *\n charactersLength));\n }\n return result;\n}\n\nfunction OauthInstructionsFragment({app}){\n const data = useFragment(graphql`\n fragment OauthInstructionsFragment_instructions on App{\n client_id\n client_secret\n approvedScopes\n approvedRedirectUrls\n }\n `,app)\n const {client_id, client_secret, approvedRedirectUrls, approvedScopes} = data\n return \n}\n\nexport function RenderOauthInstructionsComponent({client_id, client_secret, approvedRedirectUrls, approvedScopes}) {\n const redir = approvedRedirectUrls[0]\n const scope = approvedScopes.join(\",\")\n const randomString = useMemo(()=>{\n return makeid(10)\n },[])\n const code = \"abc\";\n const url = new URL('https://app.goaffpro.com/oauth')\n url.searchParams.append(\"client_id\", client_id)\n url.searchParams.append('scope', scope)\n url.searchParams.append('redirect_uri', redir)\n const finalRedirectUri = new URL(redir)\n finalRedirectUri.searchParams.append(\"code\", randomString)\n\n\n return (\n
    \n

    How to use oAuth

    \n
    \n

    Step 1

    \n

    Build the oAuth access URL with help of your client_id, scope and redirect_uri

    \n

    The base URL of app authorization flow is https://app.goaffpro.com/oauth/

    \n

    Example:

    \n

    \n https://app.goaffpro.com/oauth?client_id=client_id&scope=scope&redirect_uri=redirect_uri\n

    \n

    Final URL will look something like below

    \n \n \n \n

    Send the user to the above URL

    \n

    The app will now do the requisite steps to get the goaffpro integration set up in the merchant's store.

    \n

    Step 2

    \n

    Once the app is setup in the merchant's store, the merchant will be redirected back to the specified redirect_uri with an additional code query parameter

    \n

    Example

    \n

    {finalRedirectUri.href}

    \n

    You will need to extract this code query parameter and use this to retrieve the access_token to make API calls to the merchant's store

    \n
    \n
    \n \n
    POST
    \n
    \n \n
    https://api.goaffpro.com/oauth/access_token
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    HeaderValue
    Content-Typeapplication/json
    \n
    \n \n
    {\n                               JSON.stringify({\n                                   client_id,\n                                   client_secret,\n                                   \"grant_type\":\"authorization_code\",\n                                   \"code\":code\n                               }, null, 2)\n                           }
    \n\n
    \n
    \n
    \n

    \n POST https://api.goaffpro.com/oauth/access_token\n
    Content-Type: application/json\n
    \n
    \n

    {\n                            JSON.stringify({\n                                client_id,\n                                client_secret,\n                                \"grant_type\":\"authorization_code\",\n                                \"code\":code\n                            }, null, 2)\n                        }
    \n

    \n

    Response

    \n

    \n

    {\n                    JSON.stringify({access_token:'access_token'}, null, 2)\n                }
    \n

    \n
    \n
    \n
    \n

    Step 3

    \n

    Use the retrieved access_token to make API calls to the merchant store

    \n

    API Documentation

    \n
    \n );\n}\n\nexport default OauthInstructionsFragment;\n","import React, {useEffect} from 'react';\nimport {NavLink, Route, Switch, useParams} from 'react-router-dom'\nimport ConnectedSites from \"./components/ConnectedSites\";\nimport AppDetailPage from \"./components/AppDetailPage\";\nimport BackButton from \"../components/layout/BackButton\";\nimport graphql from 'babel-plugin-relay/macro'\nimport OauthInstructionsFragment from \"./components/OauthInstructionsFragment\";\nimport Skeleton from \"react-loading-skeleton\";\nconst {useQueryLoader, usePreloadedQuery} = require('react-relay');\n\nconst query = graphql`\n query AppDetailQuery($id: Int) {\n myApps(appId: $id) {\n name\n ...OauthInstructionsFragment_instructions\n }\n }\n`\n\nfunction AppDetail(props) {\n const { appId } = useParams()\n const [queryRef, loader] = useQueryLoader(query, null);\n\n useEffect(() => {\n loader({\n id: Number(appId)\n })\n }, [appId, loader])\n\n if(!queryRef) { return null }\n\n return (\n <>\n }>\n \n \n \n );\n}\n\nconst RenderApp = ({ queryReference, appID }) => {\n const data = usePreloadedQuery(query, queryReference)\n if(!data) return

    Data is loading

    \n const app = data.myApps[0]\n return (\n <>\n \n

    {app.name}

    \n
      \n
    • \n Details\n
    • \n
    • \n Connected Sites\n
    • \n
    • \n Usage instructions\n
    • \n
    \n
    \n
    \n \n } />\n }/>\n \n \n
    \n
    \n \n )\n}\n\n\n\nexport default AppDetail;\n","import React, {useState} from 'react';\nimport FormGroup from \"../components/form/FormGroup\";\n\nfunction DemoComponent(props) {\n const base = \"http://localhost:3000/oauth\"\n const [query, setQuery] = useState({\n client_id:localStorage.getItem('demo_client_id'),\n redirect_uri:localStorage.getItem('demo_redirect_uri') || 'http://localhost:3005/demo/redirect',\n scope:'user_write_commissions,user_write_payouts',\n user_email:'anujtenani@gmail.com',\n admin_email:'merchant@store.com',\n admin_name:'Admin name'\n })\n const uri = new URL(base);\n uri.searchParams.set('client_id', query.client_id);\n uri.searchParams.set('redirect_uri',query.redirect_uri)\n uri.searchParams.set('scope', query.scope);\n uri.searchParams.set('user_email', query.user_email);\n uri.searchParams.set('admin_email', query.admin_email);\n uri.searchParams.set('admin_name', query.admin_name);\n\n return (\n
    \n
    \n
    \n

    Your platform

    \n
    \n
    oAuth 2 Demo
    \n
    \n \n {\n localStorage.setItem('demo_client_id', e.target.value)\n setQuery((q)=>{\n return {\n ...q,\n client_id: e.target.value\n }\n })\n }} className=\"form-control\"/>\n \n
    \n                        {\n                            JSON.stringify({\n                                base,\n                                query,\n                                uri:uri.href,\n                            }, null, 2)\n                        }\n                    
    \n
    \n
    \n \n
    \n
    \n );\n}\n\nexport default DemoComponent;\n","import React from 'react';\nimport useQuery from \"../components/hooks/useQuery\";\nfunction DemoRedirectComponent(props) {\n const {\n code\n } = useQuery()\n function getAccessToken(){\n //exchange for access token\n\n }\n return (\n
    \n
    \n
    \n

    Your platform

    \n\n
    \n
    Callback
    \n
    \n
    {\n                            JSON.stringify({\n                                code\n                            }, null, 2)\n                        }
    \n\n
    \n

    Relevant HTTP Calls

    \n
    \n

    Retrieve Access Token

    \n
    \n
    \n POST https://api.goaffpro.com/oauth/access_token\n
    content-type: application/json
    \n
    \n
    {\n                             JSON.stringify({\n                               \"client_id\":\"\",\n                               \"client_secret\":\"\",\n                               \"redirect_uri\":\"\",\n                               \"code\":code\n                             }, null, 2)\n                        }\n                        
    \n
    \n
    \n

    Login to account

    \n
    \n
    \n POST https://api.goaffpro.com/v1/user/login\n
    content-type: application/json
    \n
    \n\n
    {\n                            JSON.stringify({\n                                \"email\":\"\",\n                                \"password\":\"\",\n                            }, null, 2)\n                        }\n                        
    \n
    \n
    \n

    Get list of connected sites

    \n
    \n
    \n GET https://api.goaffpro.com/v1/user/sites\n
    Authorization: Bearer authTokenFromLoginEndpoint
    \n
    \n
    \n

    Set Commission rate

    \n
    \n\n
    \n POST https://api.goaffpro.com/v1/user/commissions?site_id=7\n
    x-goaffpro-access-token: access token retrieved above
    \n
    Authorization: Bearer authTokenFromLoginEndpoint
    \n
    content-type: application/json
    \n
    \n
    {\n                            JSON.stringify({\n                                \"commission_type\":\"percentage\",\n                                \"commission_value\":\"20\",\n                            }, null, 2)\n                        }\n                        
    \n
    \n
    \n

    Mark payments as paid

    \n
    \n
    \n\n POST https://api.goaffpro.com/v1/user/payouts?site_id=7\n
    x-goaffpro-access-token: access token retrieved above
    \n
    Authorization: Bearer authTokenFromLoginEndpoint
    \n
    content-type: application/json
    \n
    \n
    \n\n                        {\n                            JSON.stringify({\n                                \"amount\":\"10\",\n                                \"currency\":\"USD\",\n                                \"note\":\"Payment note\",\n                                \"payment_method\":\"paypal\", //or cash, bank_transfer,\n                            }, null, 2)\n                        }\n                        
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n );\n}\n\nexport default DemoRedirectComponent;\n","import DashboardContainer from \"./components/layout/DashboardContainer\";\nimport MyApps from \"./pages/MyApps\";\nimport {Route, Switch} from 'react-router-dom'\nimport CreateNewApp from \"./pages/CreateNewApp\";\nimport UpdateApp from \"./pages/UpdateApp\";\nimport ConnectedSites from \"./pages/components/ConnectedSites\";\nimport LoginWithToken from \"./pages/auth/LoginWithToken\";\nimport AppDetail from \"./pages/AppDetail\";\nimport {useEffect} from \"react\";\nimport KitchenSink from \"./KitchenSink\";\nimport DemoComponent from \"./pages/DemoComponent\";\nimport DemoRedirectComponent from \"./pages/DemoRedirectComponent\";\n\nfunction App() {\n return (\n \n \n \n \n \n \n\n );\n}\nfunction Dashboard(){\n return \n \n \n \n \n \n \n {\n process.env.NODE_ENV === \"development\" &&\n \n }\n \n \n \n}\n\nfunction Logout(){\n useEffect(()=>{\n localStorage.removeItem('access_token')\n window.location = \"https://goaffpro.com/main\"\n },[])\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import {Environment, Network, RecordSource, Store} from 'relay-runtime';\n\nconst url = process.env.NODE_ENV === \"development\" ? \"https://api-server-1.goaffpro.com/\":\"https://api.goaffpro.com/\"\nconst access_token = process.env.NODE_ENV === \"development\" ? \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZmZpbGlhdGVfaWQiOjIsImlhdCI6MTYyODU3MjgxNH0.rRtl3_zkCN2e06WeV5u3yd3DiPVpYMWgMVaDZ1m0sqY\" : localStorage.getItem('access_token')\nasync function fetchGraphQL(text, variables) {\n return fetch(url+'graphql', {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${access_token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n query: text,\n variables,\n }),\n }).then((response)=>response.json()).catch((e)=>{\n console.log(e)\n return {}\n });\n}\n\nasync function fetchRelay(params, variables) {\n return fetchGraphQL(params.text, variables);\n}\n\n// Export a singleton instance of Relay Environment configured with our network function:\nexport default new Environment({\n network: Network.create(fetchRelay),\n store: new Store(new RecordSource()),\n});\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './styles/bootstrap.scss';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\nimport {IntlProvider} from 'react-intl';\nimport { BrowserRouter as Router} from 'react-router-dom';\nimport RelayEnvironment from \"./utils/RelayEnvironment\";\nconst {RelayEnvironmentProvider} = require('react-relay');\nReactDOM.render(\n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}