@jbrowse/plugin-authentication 2.6.1 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DropboxOAuthModel/configSchema.js +0 -1
- package/dist/DropboxOAuthModel/index.js +0 -1
- package/dist/DropboxOAuthModel/model.js +0 -1
- package/dist/DropboxOAuthModel/util.js +0 -1
- package/dist/ExternalTokenModel/ExternalTokenEntryForm.js +0 -1
- package/dist/ExternalTokenModel/configSchema.js +0 -1
- package/dist/ExternalTokenModel/index.js +0 -1
- package/dist/ExternalTokenModel/model.js +0 -1
- package/dist/GoogleDriveOAuthModel/GoogleDriveFilehandle.js +0 -1
- package/dist/GoogleDriveOAuthModel/configSchema.js +0 -1
- package/dist/GoogleDriveOAuthModel/index.js +0 -1
- package/dist/GoogleDriveOAuthModel/model.js +0 -1
- package/dist/GoogleDriveOAuthModel/util.js +0 -1
- package/dist/HTTPBasicModel/HTTPBasicLoginForm.js +0 -1
- package/dist/HTTPBasicModel/configSchema.js +0 -1
- package/dist/HTTPBasicModel/index.js +0 -1
- package/dist/HTTPBasicModel/model.js +0 -1
- package/dist/OAuthModel/configSchema.js +0 -1
- package/dist/OAuthModel/index.js +0 -1
- package/dist/OAuthModel/model.js +0 -1
- package/dist/OAuthModel/util.js +0 -1
- package/dist/index.js +0 -1
- package/dist/util.js +0 -1
- package/esm/DropboxOAuthModel/configSchema.js +0 -1
- package/esm/DropboxOAuthModel/index.js +0 -1
- package/esm/DropboxOAuthModel/model.js +0 -1
- package/esm/DropboxOAuthModel/util.js +0 -1
- package/esm/ExternalTokenModel/ExternalTokenEntryForm.js +0 -1
- package/esm/ExternalTokenModel/configSchema.js +0 -1
- package/esm/ExternalTokenModel/index.js +0 -1
- package/esm/ExternalTokenModel/model.js +0 -1
- package/esm/GoogleDriveOAuthModel/GoogleDriveFilehandle.js +0 -1
- package/esm/GoogleDriveOAuthModel/configSchema.js +0 -1
- package/esm/GoogleDriveOAuthModel/index.js +0 -1
- package/esm/GoogleDriveOAuthModel/model.js +0 -1
- package/esm/GoogleDriveOAuthModel/util.js +0 -1
- package/esm/HTTPBasicModel/HTTPBasicLoginForm.js +0 -1
- package/esm/HTTPBasicModel/configSchema.js +0 -1
- package/esm/HTTPBasicModel/index.js +0 -1
- package/esm/HTTPBasicModel/model.js +0 -1
- package/esm/OAuthModel/configSchema.js +0 -1
- package/esm/OAuthModel/index.js +0 -1
- package/esm/OAuthModel/model.js +0 -1
- package/esm/OAuthModel/util.js +0 -1
- package/esm/index.js +0 -1
- package/esm/util.js +0 -1
- package/package.json +3 -4
- package/dist/DropboxOAuthModel/configSchema.js.map +0 -1
- package/dist/DropboxOAuthModel/index.js.map +0 -1
- package/dist/DropboxOAuthModel/model.js.map +0 -1
- package/dist/DropboxOAuthModel/util.js.map +0 -1
- package/dist/ExternalTokenModel/ExternalTokenEntryForm.js.map +0 -1
- package/dist/ExternalTokenModel/configSchema.js.map +0 -1
- package/dist/ExternalTokenModel/index.js.map +0 -1
- package/dist/ExternalTokenModel/model.js.map +0 -1
- package/dist/GoogleDriveOAuthModel/GoogleDriveFilehandle.js.map +0 -1
- package/dist/GoogleDriveOAuthModel/configSchema.js.map +0 -1
- package/dist/GoogleDriveOAuthModel/index.js.map +0 -1
- package/dist/GoogleDriveOAuthModel/model.js.map +0 -1
- package/dist/GoogleDriveOAuthModel/util.js.map +0 -1
- package/dist/HTTPBasicModel/HTTPBasicLoginForm.js.map +0 -1
- package/dist/HTTPBasicModel/configSchema.js.map +0 -1
- package/dist/HTTPBasicModel/index.js.map +0 -1
- package/dist/HTTPBasicModel/model.js.map +0 -1
- package/dist/OAuthModel/configSchema.js.map +0 -1
- package/dist/OAuthModel/index.js.map +0 -1
- package/dist/OAuthModel/model.js.map +0 -1
- package/dist/OAuthModel/util.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/util.js.map +0 -1
- package/esm/DropboxOAuthModel/configSchema.js.map +0 -1
- package/esm/DropboxOAuthModel/index.js.map +0 -1
- package/esm/DropboxOAuthModel/model.js.map +0 -1
- package/esm/DropboxOAuthModel/util.js.map +0 -1
- package/esm/ExternalTokenModel/ExternalTokenEntryForm.js.map +0 -1
- package/esm/ExternalTokenModel/configSchema.js.map +0 -1
- package/esm/ExternalTokenModel/index.js.map +0 -1
- package/esm/ExternalTokenModel/model.js.map +0 -1
- package/esm/GoogleDriveOAuthModel/GoogleDriveFilehandle.js.map +0 -1
- package/esm/GoogleDriveOAuthModel/configSchema.js.map +0 -1
- package/esm/GoogleDriveOAuthModel/index.js.map +0 -1
- package/esm/GoogleDriveOAuthModel/model.js.map +0 -1
- package/esm/GoogleDriveOAuthModel/util.js.map +0 -1
- package/esm/HTTPBasicModel/HTTPBasicLoginForm.js.map +0 -1
- package/esm/HTTPBasicModel/configSchema.js.map +0 -1
- package/esm/HTTPBasicModel/index.js.map +0 -1
- package/esm/HTTPBasicModel/model.js.map +0 -1
- package/esm/OAuthModel/configSchema.js.map +0 -1
- package/esm/OAuthModel/index.js.map +0 -1
- package/esm/OAuthModel/model.js.map +0 -1
- package/esm/OAuthModel/util.js.map +0 -1
- package/esm/index.js.map +0 -1
- package/esm/util.js.map +0 -1
- package/src/DropboxOAuthModel/configSchema.ts +0 -69
- package/src/DropboxOAuthModel/index.ts +0 -2
- package/src/DropboxOAuthModel/model.tsx +0 -122
- package/src/DropboxOAuthModel/util.ts +0 -36
- package/src/ExternalTokenModel/ExternalTokenEntryForm.tsx +0 -55
- package/src/ExternalTokenModel/configSchema.ts +0 -36
- package/src/ExternalTokenModel/index.ts +0 -2
- package/src/ExternalTokenModel/model.tsx +0 -70
- package/src/GoogleDriveOAuthModel/GoogleDriveFilehandle.ts +0 -38
- package/src/GoogleDriveOAuthModel/configSchema.ts +0 -61
- package/src/GoogleDriveOAuthModel/index.ts +0 -2
- package/src/GoogleDriveOAuthModel/model.tsx +0 -124
- package/src/GoogleDriveOAuthModel/util.ts +0 -29
- package/src/HTTPBasicModel/HTTPBasicLoginForm.tsx +0 -68
- package/src/HTTPBasicModel/configSchema.ts +0 -43
- package/src/HTTPBasicModel/index.ts +0 -2
- package/src/HTTPBasicModel/model.tsx +0 -85
- package/src/OAuthModel/configSchema.ts +0 -91
- package/src/OAuthModel/index.ts +0 -2
- package/src/OAuthModel/model.tsx +0 -430
- package/src/OAuthModel/util.ts +0 -33
- package/src/__snapshots__/index.test.js.snap +0 -8
- package/src/index.test.js +0 -96
- package/src/index.ts +0 -108
- package/src/util.ts +0 -25
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/OAuthModel/model.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/OAuthModel/util.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACpE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAA;IACnD,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,cAA0B;;IACnE,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,GAAG,CAAC,KAAK,KAAK,eAAe,EAAE;YACjC,cAAc,EAAE,CAAA;SACjB;QACD,OAAO,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,iBAAiB,mCAAI,IAAI,CAAA;KACtC;IAAC,OAAO,CAAC,EAAE;QACV,gEAAgE;KACjE;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAsD,EACtD,mBAA0C;IAE1C,IAAI,IAAI,CAAC,aAAa,EAAE;QACtB,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;KACxC;IACD,OAAO,IAAI,CAAC,YAAY,CAAA;AAC1B,CAAC"}
|
package/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/util.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,QAAQ,EACR,MAAM,EACN,UAAU,GAKX;IACC,OAAO;QACL,QAAQ,QAAQ,CAAC,MAAM,EAAE;QACzB,MAAM;QACN,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACzC;SACE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,IAAI,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAkB;IAC/C,IAAI;QACF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;KACvB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,QAAQ,CAAC,UAAU,CAAA;KAC3B;AACH,CAAC"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
2
|
-
import { Instance } from 'mobx-state-tree'
|
|
3
|
-
import OAuthConfigSchema from '../OAuthModel/configSchema'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* #config DropboxOAuthInternetAccount
|
|
7
|
-
*/
|
|
8
|
-
function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
9
|
-
|
|
10
|
-
const DropboxOAuthConfigSchema = ConfigurationSchema(
|
|
11
|
-
'DropboxOAuthInternetAccount',
|
|
12
|
-
{
|
|
13
|
-
/**
|
|
14
|
-
* #slot
|
|
15
|
-
*/
|
|
16
|
-
authEndpoint: {
|
|
17
|
-
description: 'the authorization code endpoint of the internet account',
|
|
18
|
-
type: 'string',
|
|
19
|
-
defaultValue: 'https://www.dropbox.com/oauth2/authorize',
|
|
20
|
-
},
|
|
21
|
-
/**
|
|
22
|
-
* #slot
|
|
23
|
-
*/
|
|
24
|
-
tokenEndpoint: {
|
|
25
|
-
description: 'the token endpoint of the internet account',
|
|
26
|
-
type: 'string',
|
|
27
|
-
defaultValue: 'https://api.dropbox.com/oauth2/token',
|
|
28
|
-
},
|
|
29
|
-
/**
|
|
30
|
-
* #slot
|
|
31
|
-
*/
|
|
32
|
-
needsPKCE: {
|
|
33
|
-
description: 'boolean to indicate if the endpoint needs a PKCE code',
|
|
34
|
-
type: 'boolean',
|
|
35
|
-
defaultValue: true,
|
|
36
|
-
},
|
|
37
|
-
/**
|
|
38
|
-
* #slot
|
|
39
|
-
*/
|
|
40
|
-
domains: {
|
|
41
|
-
description:
|
|
42
|
-
'array of valid domains the url can contain to use this account',
|
|
43
|
-
type: 'stringArray',
|
|
44
|
-
defaultValue: [
|
|
45
|
-
'addtodropbox.com',
|
|
46
|
-
'db.tt',
|
|
47
|
-
'dropbox.com',
|
|
48
|
-
'dropboxapi.com',
|
|
49
|
-
'dropboxbusiness.com',
|
|
50
|
-
'dropbox.tech',
|
|
51
|
-
'getdropbox.com',
|
|
52
|
-
],
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
/**
|
|
57
|
-
* #baseConfiguration
|
|
58
|
-
*/
|
|
59
|
-
baseConfiguration: OAuthConfigSchema,
|
|
60
|
-
explicitlyTyped: true,
|
|
61
|
-
},
|
|
62
|
-
)
|
|
63
|
-
|
|
64
|
-
export type DropboxOAuthInternetAccountConfigModel =
|
|
65
|
-
typeof DropboxOAuthConfigSchema
|
|
66
|
-
|
|
67
|
-
export type DropboxOAuthInternetAccountConfig =
|
|
68
|
-
Instance<DropboxOAuthInternetAccountConfigModel>
|
|
69
|
-
export default DropboxOAuthConfigSchema
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { ConfigurationReference } from '@jbrowse/core/configuration'
|
|
3
|
-
import { UriLocation } from '@jbrowse/core/util/types'
|
|
4
|
-
import { SvgIconProps, SvgIcon } from '@mui/material'
|
|
5
|
-
import { Instance, types } from 'mobx-state-tree'
|
|
6
|
-
|
|
7
|
-
// locals
|
|
8
|
-
import { DropboxOAuthInternetAccountConfigModel } from './configSchema'
|
|
9
|
-
import baseModel from '../OAuthModel/model'
|
|
10
|
-
import { configSchema as OAuthConfigSchema } from '../OAuthModel'
|
|
11
|
-
import { getDescriptiveErrorMessage } from './util'
|
|
12
|
-
|
|
13
|
-
export function DropboxIcon(props: SvgIconProps) {
|
|
14
|
-
return (
|
|
15
|
-
<SvgIcon {...props}>
|
|
16
|
-
<path d="M3 6.2L8 9.39L13 6.2L8 3L3 6.2M13 6.2L18 9.39L23 6.2L18 3L13 6.2M3 12.55L8 15.74L13 12.55L8 9.35L3 12.55M18 9.35L13 12.55L18 15.74L23 12.55L18 9.35M8.03 16.8L13.04 20L18.04 16.8L13.04 13.61L8.03 16.8Z" />
|
|
17
|
-
</SvgIcon>
|
|
18
|
-
)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* #stateModel DropboxOAuthInternetAccount
|
|
23
|
-
*/
|
|
24
|
-
const stateModelFactory = (
|
|
25
|
-
configSchema: DropboxOAuthInternetAccountConfigModel,
|
|
26
|
-
) => {
|
|
27
|
-
return baseModel(OAuthConfigSchema)
|
|
28
|
-
.named('DropboxOAuthInternetAccount')
|
|
29
|
-
.props({
|
|
30
|
-
/**
|
|
31
|
-
* #property
|
|
32
|
-
*/
|
|
33
|
-
type: types.literal('DropboxOAuthInternetAccount'),
|
|
34
|
-
/**
|
|
35
|
-
* #property
|
|
36
|
-
*/
|
|
37
|
-
configuration: ConfigurationReference(configSchema),
|
|
38
|
-
})
|
|
39
|
-
.views(() => ({
|
|
40
|
-
/**
|
|
41
|
-
* #getter
|
|
42
|
-
* The FileSelector icon for Dropbox
|
|
43
|
-
*/
|
|
44
|
-
get toggleContents() {
|
|
45
|
-
return <DropboxIcon />
|
|
46
|
-
},
|
|
47
|
-
/**
|
|
48
|
-
* #getter
|
|
49
|
-
*/
|
|
50
|
-
get selectorLabel() {
|
|
51
|
-
return 'Enter Dropbox share link'
|
|
52
|
-
},
|
|
53
|
-
}))
|
|
54
|
-
.actions(self => ({
|
|
55
|
-
/**
|
|
56
|
-
* #method
|
|
57
|
-
*/
|
|
58
|
-
getFetcher(location?: UriLocation) {
|
|
59
|
-
return async (input: RequestInfo, init?: RequestInit) => {
|
|
60
|
-
const authToken = await self.getToken(location)
|
|
61
|
-
const newInit = self.addAuthHeaderToInit(
|
|
62
|
-
{ ...init, method: 'POST' },
|
|
63
|
-
authToken,
|
|
64
|
-
)
|
|
65
|
-
newInit.headers.append(
|
|
66
|
-
'Dropbox-API-Arg',
|
|
67
|
-
JSON.stringify({ url: input }),
|
|
68
|
-
)
|
|
69
|
-
const response = await fetch(
|
|
70
|
-
'https://content.dropboxapi.com/2/sharing/get_shared_link_file',
|
|
71
|
-
newInit,
|
|
72
|
-
)
|
|
73
|
-
if (!response.ok) {
|
|
74
|
-
throw new Error(await getDescriptiveErrorMessage(response))
|
|
75
|
-
}
|
|
76
|
-
return response
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
/**
|
|
80
|
-
* #action
|
|
81
|
-
*/
|
|
82
|
-
async validateToken(
|
|
83
|
-
token: string,
|
|
84
|
-
location: UriLocation,
|
|
85
|
-
): Promise<string> {
|
|
86
|
-
const response = await fetch(
|
|
87
|
-
'https://api.dropboxapi.com/2/sharing/get_shared_link_metadata',
|
|
88
|
-
{
|
|
89
|
-
method: 'POST',
|
|
90
|
-
headers: {
|
|
91
|
-
Authorization: `Bearer ${token}`,
|
|
92
|
-
'Content-Type': 'application/json',
|
|
93
|
-
},
|
|
94
|
-
body: JSON.stringify({
|
|
95
|
-
url: location.uri,
|
|
96
|
-
}),
|
|
97
|
-
},
|
|
98
|
-
)
|
|
99
|
-
if (!response.ok) {
|
|
100
|
-
const refreshToken = self.retrieveRefreshToken()
|
|
101
|
-
if (refreshToken) {
|
|
102
|
-
self.removeRefreshToken()
|
|
103
|
-
const newToken = await self.exchangeRefreshForAccessToken(
|
|
104
|
-
refreshToken,
|
|
105
|
-
)
|
|
106
|
-
return this.validateToken(newToken, location)
|
|
107
|
-
}
|
|
108
|
-
throw new Error(
|
|
109
|
-
await getDescriptiveErrorMessage(
|
|
110
|
-
response,
|
|
111
|
-
'Token could not be validated',
|
|
112
|
-
),
|
|
113
|
-
)
|
|
114
|
-
}
|
|
115
|
-
return token
|
|
116
|
-
},
|
|
117
|
-
}))
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
export default stateModelFactory
|
|
121
|
-
export type DropboxOAuthStateModel = ReturnType<typeof stateModelFactory>
|
|
122
|
-
export type DropboxOAuthModel = Instance<DropboxOAuthStateModel>
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { getResponseError } from '../util'
|
|
2
|
-
|
|
3
|
-
interface DropboxError {
|
|
4
|
-
error_summary: string
|
|
5
|
-
error: {
|
|
6
|
-
'.tag': string
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Error messages from
|
|
12
|
-
* https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_file
|
|
13
|
-
* */
|
|
14
|
-
const dropboxErrorMessages: Record<string, string | undefined> = {
|
|
15
|
-
shared_link_not_found: "The shared link wasn't found.",
|
|
16
|
-
shared_link_access_denied:
|
|
17
|
-
'The caller is not allowed to access this shared link.',
|
|
18
|
-
unsupported_link_type:
|
|
19
|
-
'This type of link is not supported; use files/export instead.',
|
|
20
|
-
shared_link_is_directory: 'Directories cannot be retrieved by this endpoint.',
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export async function getDescriptiveErrorMessage(
|
|
24
|
-
response: Response,
|
|
25
|
-
reason?: string,
|
|
26
|
-
) {
|
|
27
|
-
let errorMessage = ''
|
|
28
|
-
try {
|
|
29
|
-
const err = JSON.parse(await response.text()) as DropboxError
|
|
30
|
-
const tag = err.error['.tag']
|
|
31
|
-
errorMessage = dropboxErrorMessages[tag] || tag
|
|
32
|
-
} catch (error) {
|
|
33
|
-
/* do nothing */
|
|
34
|
-
}
|
|
35
|
-
return getResponseError({ response, reason, statusText: errorMessage })
|
|
36
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react'
|
|
2
|
-
import { Button, DialogContent, DialogActions, TextField } from '@mui/material'
|
|
3
|
-
import { Dialog } from '@jbrowse/core/ui'
|
|
4
|
-
|
|
5
|
-
export const ExternalTokenEntryForm = ({
|
|
6
|
-
internetAccountId,
|
|
7
|
-
handleClose,
|
|
8
|
-
}: {
|
|
9
|
-
internetAccountId: string
|
|
10
|
-
handleClose: (token?: string) => void
|
|
11
|
-
}) => {
|
|
12
|
-
const [token, setToken] = useState('')
|
|
13
|
-
|
|
14
|
-
return (
|
|
15
|
-
<Dialog
|
|
16
|
-
open
|
|
17
|
-
maxWidth="xl"
|
|
18
|
-
data-testid="externalToken-form"
|
|
19
|
-
title={`Enter token for ${internetAccountId}`}
|
|
20
|
-
>
|
|
21
|
-
<DialogContent style={{ display: 'flex', flexDirection: 'column' }}>
|
|
22
|
-
<TextField
|
|
23
|
-
required
|
|
24
|
-
label="Enter Token"
|
|
25
|
-
variant="outlined"
|
|
26
|
-
inputProps={{ 'data-testid': 'entry-externalToken' }}
|
|
27
|
-
onChange={event => setToken(event.target.value)}
|
|
28
|
-
margin="dense"
|
|
29
|
-
/>
|
|
30
|
-
</DialogContent>
|
|
31
|
-
<DialogActions>
|
|
32
|
-
<Button
|
|
33
|
-
variant="contained"
|
|
34
|
-
color="primary"
|
|
35
|
-
type="submit"
|
|
36
|
-
disabled={!token}
|
|
37
|
-
onClick={() => {
|
|
38
|
-
if (token) {
|
|
39
|
-
handleClose(token)
|
|
40
|
-
}
|
|
41
|
-
}}
|
|
42
|
-
>
|
|
43
|
-
Add
|
|
44
|
-
</Button>
|
|
45
|
-
<Button
|
|
46
|
-
variant="contained"
|
|
47
|
-
color="secondary"
|
|
48
|
-
onClick={() => handleClose()}
|
|
49
|
-
>
|
|
50
|
-
Cancel
|
|
51
|
-
</Button>
|
|
52
|
-
</DialogActions>
|
|
53
|
-
</Dialog>
|
|
54
|
-
)
|
|
55
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
2
|
-
import { Instance } from 'mobx-state-tree'
|
|
3
|
-
import { BaseInternetAccountConfig } from '@jbrowse/core/pluggableElementTypes/models'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* #config ExternalTokenInternetAccount
|
|
7
|
-
*/
|
|
8
|
-
function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
9
|
-
|
|
10
|
-
const ExternalTokenConfigSchema = ConfigurationSchema(
|
|
11
|
-
'ExternalTokenInternetAccount',
|
|
12
|
-
{
|
|
13
|
-
/**
|
|
14
|
-
* #slot
|
|
15
|
-
*/
|
|
16
|
-
validateWithHEAD: {
|
|
17
|
-
description: 'validate the token with a HEAD request before using it',
|
|
18
|
-
type: 'boolean',
|
|
19
|
-
defaultValue: true,
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
/**
|
|
24
|
-
* #baseConfiguration
|
|
25
|
-
*/
|
|
26
|
-
baseConfiguration: BaseInternetAccountConfig,
|
|
27
|
-
explicitlyTyped: true,
|
|
28
|
-
},
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
export type ExternalTokenInternetAccountConfigModel =
|
|
32
|
-
typeof ExternalTokenConfigSchema
|
|
33
|
-
|
|
34
|
-
export type ExternalTokenInternetAccountConfig =
|
|
35
|
-
Instance<ExternalTokenInternetAccountConfigModel>
|
|
36
|
-
export default ExternalTokenConfigSchema
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { ConfigurationReference, getConf } from '@jbrowse/core/configuration'
|
|
2
|
-
import { InternetAccount } from '@jbrowse/core/pluggableElementTypes/models'
|
|
3
|
-
import { UriLocation } from '@jbrowse/core/util/types'
|
|
4
|
-
import { ExternalTokenInternetAccountConfigModel } from './configSchema'
|
|
5
|
-
import { Instance, types, getRoot } from 'mobx-state-tree'
|
|
6
|
-
|
|
7
|
-
import { ExternalTokenEntryForm } from './ExternalTokenEntryForm'
|
|
8
|
-
|
|
9
|
-
const stateModelFactory = (
|
|
10
|
-
configSchema: ExternalTokenInternetAccountConfigModel,
|
|
11
|
-
) => {
|
|
12
|
-
return InternetAccount.named('ExternalTokenInternetAccount')
|
|
13
|
-
.props({
|
|
14
|
-
type: types.literal('ExternalTokenInternetAccount'),
|
|
15
|
-
configuration: ConfigurationReference(configSchema),
|
|
16
|
-
})
|
|
17
|
-
.views(self => ({
|
|
18
|
-
get validateWithHEAD(): boolean {
|
|
19
|
-
return getConf(self, 'validateWithHEAD')
|
|
20
|
-
},
|
|
21
|
-
}))
|
|
22
|
-
.actions(self => ({
|
|
23
|
-
getTokenFromUser(
|
|
24
|
-
resolve: (token: string) => void,
|
|
25
|
-
reject: (error: Error) => void,
|
|
26
|
-
) {
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
-
const { session } = getRoot<any>(self)
|
|
29
|
-
session.queueDialog((doneCallback: () => void) => [
|
|
30
|
-
ExternalTokenEntryForm,
|
|
31
|
-
{
|
|
32
|
-
internetAccountId: self.internetAccountId,
|
|
33
|
-
handleClose: (token: string) => {
|
|
34
|
-
if (token) {
|
|
35
|
-
resolve(token)
|
|
36
|
-
} else {
|
|
37
|
-
reject(new Error('user cancelled entry'))
|
|
38
|
-
}
|
|
39
|
-
doneCallback()
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
])
|
|
43
|
-
},
|
|
44
|
-
async validateToken(token: string, location: UriLocation) {
|
|
45
|
-
if (!self.validateWithHEAD) {
|
|
46
|
-
return token
|
|
47
|
-
}
|
|
48
|
-
const newInit = self.addAuthHeaderToInit({ method: 'HEAD' }, token)
|
|
49
|
-
const response = await fetch(location.uri, newInit)
|
|
50
|
-
if (!response.ok) {
|
|
51
|
-
let errorMessage
|
|
52
|
-
try {
|
|
53
|
-
errorMessage = await response.text()
|
|
54
|
-
} catch (error) {
|
|
55
|
-
errorMessage = ''
|
|
56
|
-
}
|
|
57
|
-
throw new Error(
|
|
58
|
-
`Token could not be validated — ${response.status} (${
|
|
59
|
-
response.statusText
|
|
60
|
-
})${errorMessage ? ` (${errorMessage})` : ''}`,
|
|
61
|
-
)
|
|
62
|
-
}
|
|
63
|
-
return token
|
|
64
|
-
},
|
|
65
|
-
}))
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export default stateModelFactory
|
|
69
|
-
export type ExternalTokenStateModel = ReturnType<typeof stateModelFactory>
|
|
70
|
-
export type ExternalTokenModel = Instance<ExternalTokenStateModel>
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { RemoteFileWithRangeCache } from '@jbrowse/core/util/io'
|
|
2
|
-
import {
|
|
3
|
-
FilehandleOptions,
|
|
4
|
-
Stats,
|
|
5
|
-
PolyfilledResponse,
|
|
6
|
-
} from 'generic-filehandle'
|
|
7
|
-
|
|
8
|
-
export interface RequestInitWithMetadata extends RequestInit {
|
|
9
|
-
metadataOnly?: boolean
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
interface GoogleDriveFilehandleOptions extends FilehandleOptions {
|
|
13
|
-
fetch(
|
|
14
|
-
input: RequestInfo,
|
|
15
|
-
opts?: RequestInitWithMetadata,
|
|
16
|
-
): Promise<PolyfilledResponse>
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export class GoogleDriveFile extends RemoteFileWithRangeCache {
|
|
20
|
-
private statsPromise: Promise<{ size: number }>
|
|
21
|
-
constructor(source: string, opts: GoogleDriveFilehandleOptions) {
|
|
22
|
-
super(source, opts)
|
|
23
|
-
this.statsPromise = this.fetch(source, {
|
|
24
|
-
metadataOnly: true,
|
|
25
|
-
}).then((response: Response) => response.json())
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
async fetch(
|
|
29
|
-
input: RequestInfo,
|
|
30
|
-
opts?: RequestInitWithMetadata,
|
|
31
|
-
): Promise<PolyfilledResponse> {
|
|
32
|
-
return super.fetch(input, opts)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
async stat(): Promise<Stats> {
|
|
36
|
-
return this.statsPromise
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
2
|
-
import { Instance } from 'mobx-state-tree'
|
|
3
|
-
import OAuthConfigSchema from '../OAuthModel/configSchema'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* #config GoogleDriveOAuthInternetAccount
|
|
7
|
-
*/
|
|
8
|
-
function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
9
|
-
|
|
10
|
-
const GoogleDriveOAuthConfigSchema = ConfigurationSchema(
|
|
11
|
-
'GoogleDriveOAuthInternetAccount',
|
|
12
|
-
{
|
|
13
|
-
/**
|
|
14
|
-
* #slot
|
|
15
|
-
*/
|
|
16
|
-
authEndpoint: {
|
|
17
|
-
description: 'the authorization code endpoint of the internet account',
|
|
18
|
-
type: 'string',
|
|
19
|
-
defaultValue: 'https://accounts.google.com/o/oauth2/v2/auth',
|
|
20
|
-
},
|
|
21
|
-
/**
|
|
22
|
-
* #slot
|
|
23
|
-
*/
|
|
24
|
-
scopes: {
|
|
25
|
-
description: 'optional scopes for the authorization call',
|
|
26
|
-
type: 'string',
|
|
27
|
-
defaultValue: 'https://www.googleapis.com/auth/drive.readonly',
|
|
28
|
-
},
|
|
29
|
-
/**
|
|
30
|
-
* #slot
|
|
31
|
-
*/
|
|
32
|
-
domains: {
|
|
33
|
-
description:
|
|
34
|
-
'array of valid domains the url can contain to use this account',
|
|
35
|
-
type: 'stringArray',
|
|
36
|
-
defaultValue: ['drive.google.com"'],
|
|
37
|
-
},
|
|
38
|
-
/**
|
|
39
|
-
* #slot
|
|
40
|
-
*/
|
|
41
|
-
responseType: {
|
|
42
|
-
description: 'the type of response from the authorization endpoint',
|
|
43
|
-
type: 'string',
|
|
44
|
-
defaultValue: 'token',
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
/**
|
|
49
|
-
* #baseConfiguration
|
|
50
|
-
*/
|
|
51
|
-
baseConfiguration: OAuthConfigSchema,
|
|
52
|
-
explicitlyTyped: true,
|
|
53
|
-
},
|
|
54
|
-
)
|
|
55
|
-
|
|
56
|
-
export type GoogleDriveOAuthInternetAccountConfigModel =
|
|
57
|
-
typeof GoogleDriveOAuthConfigSchema
|
|
58
|
-
|
|
59
|
-
export type GoogleDriveOAuthInternetAccountConfig =
|
|
60
|
-
Instance<GoogleDriveOAuthInternetAccountConfigModel>
|
|
61
|
-
export default GoogleDriveOAuthConfigSchema
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { ConfigurationReference } from '@jbrowse/core/configuration'
|
|
3
|
-
import { Instance, types } from 'mobx-state-tree'
|
|
4
|
-
import { UriLocation } from '@jbrowse/core/util/types'
|
|
5
|
-
import { SvgIconProps, SvgIcon } from '@mui/material'
|
|
6
|
-
|
|
7
|
-
// locals
|
|
8
|
-
import { GoogleDriveOAuthInternetAccountConfigModel } from './configSchema'
|
|
9
|
-
import baseModel from '../OAuthModel/model'
|
|
10
|
-
import { configSchema as OAuthConfigSchema } from '../OAuthModel'
|
|
11
|
-
import { getDescriptiveErrorMessage } from './util'
|
|
12
|
-
import { GoogleDriveFile } from './GoogleDriveFilehandle'
|
|
13
|
-
|
|
14
|
-
export interface RequestInitWithMetadata extends RequestInit {
|
|
15
|
-
metadataOnly?: boolean
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function GoogleDriveIcon(props: SvgIconProps) {
|
|
19
|
-
return (
|
|
20
|
-
<SvgIcon {...props}>
|
|
21
|
-
<path d="M7.71,3.5L1.15,15L4.58,21L11.13,9.5M9.73,15L6.3,21H19.42L22.85,15M22.28,14L15.42,2H8.58L8.57,2L15.43,14H22.28Z" />
|
|
22
|
-
</SvgIcon>
|
|
23
|
-
)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function getUri(str: string) {
|
|
27
|
-
const urlId = str.match(/[-\w]{25,}/)
|
|
28
|
-
return `https://www.googleapis.com/drive/v3/files/${urlId}`
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* #stateModel GoogleDriveOAuthInternetAccount
|
|
33
|
-
*/
|
|
34
|
-
export default function stateModelFactory(
|
|
35
|
-
configSchema: GoogleDriveOAuthInternetAccountConfigModel,
|
|
36
|
-
) {
|
|
37
|
-
return baseModel(OAuthConfigSchema)
|
|
38
|
-
.named('GoogleDriveOAuthInternetAccount')
|
|
39
|
-
.props({
|
|
40
|
-
/**
|
|
41
|
-
* #property
|
|
42
|
-
*/
|
|
43
|
-
type: types.literal('GoogleDriveOAuthInternetAccount'),
|
|
44
|
-
/**
|
|
45
|
-
* #property
|
|
46
|
-
*/
|
|
47
|
-
configuration: ConfigurationReference(configSchema),
|
|
48
|
-
})
|
|
49
|
-
.views(() => ({
|
|
50
|
-
/**
|
|
51
|
-
* #getter
|
|
52
|
-
* The FileSelector icon for Google drive
|
|
53
|
-
*/
|
|
54
|
-
get toggleContents() {
|
|
55
|
-
return <GoogleDriveIcon />
|
|
56
|
-
},
|
|
57
|
-
/**
|
|
58
|
-
* #getter
|
|
59
|
-
*/
|
|
60
|
-
get selectorLabel() {
|
|
61
|
-
return 'Enter Google Drive share link'
|
|
62
|
-
},
|
|
63
|
-
}))
|
|
64
|
-
.actions(self => ({
|
|
65
|
-
/**
|
|
66
|
-
* #method
|
|
67
|
-
*/
|
|
68
|
-
getFetcher(location?: UriLocation) {
|
|
69
|
-
return async (input: RequestInfo, init?: RequestInitWithMetadata) => {
|
|
70
|
-
const driveUrl = new URL(getUri(String(input)))
|
|
71
|
-
const searchParams = new URLSearchParams()
|
|
72
|
-
if (init?.metadataOnly) {
|
|
73
|
-
searchParams.append('fields', 'size')
|
|
74
|
-
} else {
|
|
75
|
-
searchParams.append('alt', 'media')
|
|
76
|
-
}
|
|
77
|
-
driveUrl.search = searchParams.toString()
|
|
78
|
-
const authToken = await self.getToken(location)
|
|
79
|
-
const response = await fetch(
|
|
80
|
-
driveUrl,
|
|
81
|
-
self.addAuthHeaderToInit(
|
|
82
|
-
{ ...init, method: 'GET', credentials: 'same-origin' },
|
|
83
|
-
authToken,
|
|
84
|
-
),
|
|
85
|
-
)
|
|
86
|
-
if (!response.ok) {
|
|
87
|
-
throw new Error(await getDescriptiveErrorMessage(response))
|
|
88
|
-
}
|
|
89
|
-
return response
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
/**
|
|
93
|
-
* #method
|
|
94
|
-
*/
|
|
95
|
-
openLocation(location: UriLocation) {
|
|
96
|
-
return new GoogleDriveFile(location.uri, {
|
|
97
|
-
fetch: this.getFetcher(location),
|
|
98
|
-
})
|
|
99
|
-
},
|
|
100
|
-
/**
|
|
101
|
-
* #action
|
|
102
|
-
*/
|
|
103
|
-
async validateToken(token: string, location: UriLocation) {
|
|
104
|
-
const response = await fetch(getUri(location.uri), {
|
|
105
|
-
headers: {
|
|
106
|
-
Authorization: `Bearer ${token}`,
|
|
107
|
-
'Content-Type': 'application/x-www-form-urlencoded',
|
|
108
|
-
},
|
|
109
|
-
})
|
|
110
|
-
if (!response.ok) {
|
|
111
|
-
throw new Error(
|
|
112
|
-
await getDescriptiveErrorMessage(
|
|
113
|
-
response,
|
|
114
|
-
'Token could not be validated',
|
|
115
|
-
),
|
|
116
|
-
)
|
|
117
|
-
}
|
|
118
|
-
return token
|
|
119
|
-
},
|
|
120
|
-
}))
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export type GoogleDriveOAuthStateModel = ReturnType<typeof stateModelFactory>
|
|
124
|
-
export type GoogleDriveOAuthModel = Instance<GoogleDriveOAuthStateModel>
|