@jbrowse/plugin-authentication 2.6.1 → 2.6.3

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.
Files changed (118) hide show
  1. package/dist/DropboxOAuthModel/configSchema.js +0 -1
  2. package/dist/DropboxOAuthModel/index.js +0 -1
  3. package/dist/DropboxOAuthModel/model.js +0 -1
  4. package/dist/DropboxOAuthModel/util.js +0 -1
  5. package/dist/ExternalTokenModel/ExternalTokenEntryForm.js +0 -1
  6. package/dist/ExternalTokenModel/configSchema.js +0 -1
  7. package/dist/ExternalTokenModel/index.js +0 -1
  8. package/dist/ExternalTokenModel/model.js +0 -1
  9. package/dist/GoogleDriveOAuthModel/GoogleDriveFilehandle.js +0 -1
  10. package/dist/GoogleDriveOAuthModel/configSchema.js +0 -1
  11. package/dist/GoogleDriveOAuthModel/index.js +0 -1
  12. package/dist/GoogleDriveOAuthModel/model.js +0 -1
  13. package/dist/GoogleDriveOAuthModel/util.js +0 -1
  14. package/dist/HTTPBasicModel/HTTPBasicLoginForm.js +0 -1
  15. package/dist/HTTPBasicModel/configSchema.js +0 -1
  16. package/dist/HTTPBasicModel/index.js +0 -1
  17. package/dist/HTTPBasicModel/model.js +0 -1
  18. package/dist/OAuthModel/configSchema.js +0 -1
  19. package/dist/OAuthModel/index.js +0 -1
  20. package/dist/OAuthModel/model.js +0 -1
  21. package/dist/OAuthModel/util.js +0 -1
  22. package/dist/index.js +0 -1
  23. package/dist/util.js +0 -1
  24. package/esm/DropboxOAuthModel/configSchema.js +0 -1
  25. package/esm/DropboxOAuthModel/index.js +0 -1
  26. package/esm/DropboxOAuthModel/model.js +0 -1
  27. package/esm/DropboxOAuthModel/util.js +0 -1
  28. package/esm/ExternalTokenModel/ExternalTokenEntryForm.js +0 -1
  29. package/esm/ExternalTokenModel/configSchema.js +0 -1
  30. package/esm/ExternalTokenModel/index.js +0 -1
  31. package/esm/ExternalTokenModel/model.js +0 -1
  32. package/esm/GoogleDriveOAuthModel/GoogleDriveFilehandle.js +0 -1
  33. package/esm/GoogleDriveOAuthModel/configSchema.js +0 -1
  34. package/esm/GoogleDriveOAuthModel/index.js +0 -1
  35. package/esm/GoogleDriveOAuthModel/model.js +0 -1
  36. package/esm/GoogleDriveOAuthModel/util.js +0 -1
  37. package/esm/HTTPBasicModel/HTTPBasicLoginForm.js +0 -1
  38. package/esm/HTTPBasicModel/configSchema.js +0 -1
  39. package/esm/HTTPBasicModel/index.js +0 -1
  40. package/esm/HTTPBasicModel/model.js +0 -1
  41. package/esm/OAuthModel/configSchema.js +0 -1
  42. package/esm/OAuthModel/index.js +0 -1
  43. package/esm/OAuthModel/model.js +0 -1
  44. package/esm/OAuthModel/util.js +0 -1
  45. package/esm/index.js +0 -1
  46. package/esm/util.js +0 -1
  47. package/package.json +3 -4
  48. package/dist/DropboxOAuthModel/configSchema.js.map +0 -1
  49. package/dist/DropboxOAuthModel/index.js.map +0 -1
  50. package/dist/DropboxOAuthModel/model.js.map +0 -1
  51. package/dist/DropboxOAuthModel/util.js.map +0 -1
  52. package/dist/ExternalTokenModel/ExternalTokenEntryForm.js.map +0 -1
  53. package/dist/ExternalTokenModel/configSchema.js.map +0 -1
  54. package/dist/ExternalTokenModel/index.js.map +0 -1
  55. package/dist/ExternalTokenModel/model.js.map +0 -1
  56. package/dist/GoogleDriveOAuthModel/GoogleDriveFilehandle.js.map +0 -1
  57. package/dist/GoogleDriveOAuthModel/configSchema.js.map +0 -1
  58. package/dist/GoogleDriveOAuthModel/index.js.map +0 -1
  59. package/dist/GoogleDriveOAuthModel/model.js.map +0 -1
  60. package/dist/GoogleDriveOAuthModel/util.js.map +0 -1
  61. package/dist/HTTPBasicModel/HTTPBasicLoginForm.js.map +0 -1
  62. package/dist/HTTPBasicModel/configSchema.js.map +0 -1
  63. package/dist/HTTPBasicModel/index.js.map +0 -1
  64. package/dist/HTTPBasicModel/model.js.map +0 -1
  65. package/dist/OAuthModel/configSchema.js.map +0 -1
  66. package/dist/OAuthModel/index.js.map +0 -1
  67. package/dist/OAuthModel/model.js.map +0 -1
  68. package/dist/OAuthModel/util.js.map +0 -1
  69. package/dist/index.js.map +0 -1
  70. package/dist/util.js.map +0 -1
  71. package/esm/DropboxOAuthModel/configSchema.js.map +0 -1
  72. package/esm/DropboxOAuthModel/index.js.map +0 -1
  73. package/esm/DropboxOAuthModel/model.js.map +0 -1
  74. package/esm/DropboxOAuthModel/util.js.map +0 -1
  75. package/esm/ExternalTokenModel/ExternalTokenEntryForm.js.map +0 -1
  76. package/esm/ExternalTokenModel/configSchema.js.map +0 -1
  77. package/esm/ExternalTokenModel/index.js.map +0 -1
  78. package/esm/ExternalTokenModel/model.js.map +0 -1
  79. package/esm/GoogleDriveOAuthModel/GoogleDriveFilehandle.js.map +0 -1
  80. package/esm/GoogleDriveOAuthModel/configSchema.js.map +0 -1
  81. package/esm/GoogleDriveOAuthModel/index.js.map +0 -1
  82. package/esm/GoogleDriveOAuthModel/model.js.map +0 -1
  83. package/esm/GoogleDriveOAuthModel/util.js.map +0 -1
  84. package/esm/HTTPBasicModel/HTTPBasicLoginForm.js.map +0 -1
  85. package/esm/HTTPBasicModel/configSchema.js.map +0 -1
  86. package/esm/HTTPBasicModel/index.js.map +0 -1
  87. package/esm/HTTPBasicModel/model.js.map +0 -1
  88. package/esm/OAuthModel/configSchema.js.map +0 -1
  89. package/esm/OAuthModel/index.js.map +0 -1
  90. package/esm/OAuthModel/model.js.map +0 -1
  91. package/esm/OAuthModel/util.js.map +0 -1
  92. package/esm/index.js.map +0 -1
  93. package/esm/util.js.map +0 -1
  94. package/src/DropboxOAuthModel/configSchema.ts +0 -69
  95. package/src/DropboxOAuthModel/index.ts +0 -2
  96. package/src/DropboxOAuthModel/model.tsx +0 -122
  97. package/src/DropboxOAuthModel/util.ts +0 -36
  98. package/src/ExternalTokenModel/ExternalTokenEntryForm.tsx +0 -55
  99. package/src/ExternalTokenModel/configSchema.ts +0 -36
  100. package/src/ExternalTokenModel/index.ts +0 -2
  101. package/src/ExternalTokenModel/model.tsx +0 -70
  102. package/src/GoogleDriveOAuthModel/GoogleDriveFilehandle.ts +0 -38
  103. package/src/GoogleDriveOAuthModel/configSchema.ts +0 -61
  104. package/src/GoogleDriveOAuthModel/index.ts +0 -2
  105. package/src/GoogleDriveOAuthModel/model.tsx +0 -124
  106. package/src/GoogleDriveOAuthModel/util.ts +0 -29
  107. package/src/HTTPBasicModel/HTTPBasicLoginForm.tsx +0 -68
  108. package/src/HTTPBasicModel/configSchema.ts +0 -43
  109. package/src/HTTPBasicModel/index.ts +0 -2
  110. package/src/HTTPBasicModel/model.tsx +0 -85
  111. package/src/OAuthModel/configSchema.ts +0 -91
  112. package/src/OAuthModel/index.ts +0 -2
  113. package/src/OAuthModel/model.tsx +0 -430
  114. package/src/OAuthModel/util.ts +0 -33
  115. package/src/__snapshots__/index.test.js.snap +0 -8
  116. package/src/index.test.js +0 -96
  117. package/src/index.ts +0 -108
  118. 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,2 +0,0 @@
1
- export { default as configSchema } from './configSchema'
2
- export { default as modelFactory } from './model'
@@ -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,2 +0,0 @@
1
- export { default as configSchema } from './configSchema'
2
- export { default as modelFactory } from './model'
@@ -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,2 +0,0 @@
1
- export { default as configSchema } from './configSchema'
2
- export { default as modelFactory } from './model'
@@ -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>