@jbrowse/plugin-authentication 2.5.0 → 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.
Files changed (133) hide show
  1. package/dist/DropboxOAuthModel/configSchema.d.ts +3 -14
  2. package/dist/DropboxOAuthModel/configSchema.js +0 -9
  3. package/dist/DropboxOAuthModel/index.js +0 -1
  4. package/dist/DropboxOAuthModel/model.d.ts +35 -33
  5. package/dist/DropboxOAuthModel/model.js +26 -36
  6. package/dist/DropboxOAuthModel/util.d.ts +1 -0
  7. package/dist/DropboxOAuthModel/util.js +27 -0
  8. package/dist/ExternalTokenModel/ExternalTokenEntryForm.d.ts +2 -1
  9. package/dist/ExternalTokenModel/ExternalTokenEntryForm.js +10 -12
  10. package/dist/ExternalTokenModel/configSchema.js +0 -1
  11. package/dist/ExternalTokenModel/index.js +0 -1
  12. package/dist/ExternalTokenModel/model.js +0 -1
  13. package/dist/GoogleDriveOAuthModel/GoogleDriveFilehandle.d.ts +15 -0
  14. package/dist/GoogleDriveOAuthModel/GoogleDriveFilehandle.js +19 -0
  15. package/dist/GoogleDriveOAuthModel/configSchema.d.ts +0 -5
  16. package/dist/GoogleDriveOAuthModel/configSchema.js +0 -1
  17. package/dist/GoogleDriveOAuthModel/index.js +0 -1
  18. package/dist/GoogleDriveOAuthModel/model.d.ts +36 -121
  19. package/dist/GoogleDriveOAuthModel/model.js +38 -52
  20. package/dist/GoogleDriveOAuthModel/util.d.ts +1 -0
  21. package/dist/GoogleDriveOAuthModel/util.js +16 -0
  22. package/dist/HTTPBasicModel/HTTPBasicLoginForm.d.ts +2 -1
  23. package/dist/HTTPBasicModel/HTTPBasicLoginForm.js +17 -22
  24. package/dist/HTTPBasicModel/configSchema.js +0 -1
  25. package/dist/HTTPBasicModel/index.js +0 -1
  26. package/dist/HTTPBasicModel/model.d.ts +36 -4
  27. package/dist/HTTPBasicModel/model.js +24 -10
  28. package/dist/OAuthModel/configSchema.d.ts +0 -8
  29. package/dist/OAuthModel/configSchema.js +1 -10
  30. package/dist/OAuthModel/index.js +0 -1
  31. package/dist/OAuthModel/model.d.ts +103 -18
  32. package/dist/OAuthModel/model.js +165 -114
  33. package/dist/OAuthModel/util.d.ts +7 -0
  34. package/dist/OAuthModel/util.js +59 -0
  35. package/dist/index.d.ts +7 -433
  36. package/dist/index.js +0 -1
  37. package/dist/util.d.ts +6 -0
  38. package/dist/util.js +22 -0
  39. package/esm/DropboxOAuthModel/configSchema.d.ts +3 -14
  40. package/esm/DropboxOAuthModel/configSchema.js +0 -9
  41. package/esm/DropboxOAuthModel/index.js +0 -1
  42. package/esm/DropboxOAuthModel/model.d.ts +35 -33
  43. package/esm/DropboxOAuthModel/model.js +26 -36
  44. package/esm/DropboxOAuthModel/util.d.ts +1 -0
  45. package/esm/DropboxOAuthModel/util.js +23 -0
  46. package/esm/ExternalTokenModel/ExternalTokenEntryForm.d.ts +2 -1
  47. package/esm/ExternalTokenModel/ExternalTokenEntryForm.js +10 -12
  48. package/esm/ExternalTokenModel/configSchema.js +0 -1
  49. package/esm/ExternalTokenModel/index.js +0 -1
  50. package/esm/ExternalTokenModel/model.js +0 -1
  51. package/esm/GoogleDriveOAuthModel/GoogleDriveFilehandle.d.ts +15 -0
  52. package/esm/GoogleDriveOAuthModel/GoogleDriveFilehandle.js +15 -0
  53. package/esm/GoogleDriveOAuthModel/configSchema.d.ts +0 -5
  54. package/esm/GoogleDriveOAuthModel/configSchema.js +0 -1
  55. package/esm/GoogleDriveOAuthModel/index.js +0 -1
  56. package/esm/GoogleDriveOAuthModel/model.d.ts +36 -121
  57. package/esm/GoogleDriveOAuthModel/model.js +37 -50
  58. package/esm/GoogleDriveOAuthModel/util.d.ts +1 -0
  59. package/esm/GoogleDriveOAuthModel/util.js +12 -0
  60. package/esm/HTTPBasicModel/HTTPBasicLoginForm.d.ts +2 -1
  61. package/esm/HTTPBasicModel/HTTPBasicLoginForm.js +18 -23
  62. package/esm/HTTPBasicModel/configSchema.js +0 -1
  63. package/esm/HTTPBasicModel/index.js +0 -1
  64. package/esm/HTTPBasicModel/model.d.ts +36 -4
  65. package/esm/HTTPBasicModel/model.js +24 -10
  66. package/esm/OAuthModel/configSchema.d.ts +0 -8
  67. package/esm/OAuthModel/configSchema.js +1 -10
  68. package/esm/OAuthModel/index.js +0 -1
  69. package/esm/OAuthModel/model.d.ts +103 -18
  70. package/esm/OAuthModel/model.js +164 -87
  71. package/esm/OAuthModel/util.d.ts +7 -0
  72. package/esm/OAuthModel/util.js +29 -0
  73. package/esm/index.d.ts +7 -433
  74. package/esm/index.js +0 -1
  75. package/esm/util.d.ts +6 -0
  76. package/esm/util.js +17 -0
  77. package/package.json +4 -6
  78. package/dist/DropboxOAuthModel/configSchema.js.map +0 -1
  79. package/dist/DropboxOAuthModel/index.js.map +0 -1
  80. package/dist/DropboxOAuthModel/model.js.map +0 -1
  81. package/dist/ExternalTokenModel/ExternalTokenEntryForm.js.map +0 -1
  82. package/dist/ExternalTokenModel/configSchema.js.map +0 -1
  83. package/dist/ExternalTokenModel/index.js.map +0 -1
  84. package/dist/ExternalTokenModel/model.js.map +0 -1
  85. package/dist/GoogleDriveOAuthModel/configSchema.js.map +0 -1
  86. package/dist/GoogleDriveOAuthModel/index.js.map +0 -1
  87. package/dist/GoogleDriveOAuthModel/model.js.map +0 -1
  88. package/dist/HTTPBasicModel/HTTPBasicLoginForm.js.map +0 -1
  89. package/dist/HTTPBasicModel/configSchema.js.map +0 -1
  90. package/dist/HTTPBasicModel/index.js.map +0 -1
  91. package/dist/HTTPBasicModel/model.js.map +0 -1
  92. package/dist/OAuthModel/configSchema.js.map +0 -1
  93. package/dist/OAuthModel/index.js.map +0 -1
  94. package/dist/OAuthModel/model.js.map +0 -1
  95. package/dist/index.js.map +0 -1
  96. package/esm/DropboxOAuthModel/configSchema.js.map +0 -1
  97. package/esm/DropboxOAuthModel/index.js.map +0 -1
  98. package/esm/DropboxOAuthModel/model.js.map +0 -1
  99. package/esm/ExternalTokenModel/ExternalTokenEntryForm.js.map +0 -1
  100. package/esm/ExternalTokenModel/configSchema.js.map +0 -1
  101. package/esm/ExternalTokenModel/index.js.map +0 -1
  102. package/esm/ExternalTokenModel/model.js.map +0 -1
  103. package/esm/GoogleDriveOAuthModel/configSchema.js.map +0 -1
  104. package/esm/GoogleDriveOAuthModel/index.js.map +0 -1
  105. package/esm/GoogleDriveOAuthModel/model.js.map +0 -1
  106. package/esm/HTTPBasicModel/HTTPBasicLoginForm.js.map +0 -1
  107. package/esm/HTTPBasicModel/configSchema.js.map +0 -1
  108. package/esm/HTTPBasicModel/index.js.map +0 -1
  109. package/esm/HTTPBasicModel/model.js.map +0 -1
  110. package/esm/OAuthModel/configSchema.js.map +0 -1
  111. package/esm/OAuthModel/index.js.map +0 -1
  112. package/esm/OAuthModel/model.js.map +0 -1
  113. package/esm/index.js.map +0 -1
  114. package/src/DropboxOAuthModel/configSchema.ts +0 -77
  115. package/src/DropboxOAuthModel/index.ts +0 -2
  116. package/src/DropboxOAuthModel/model.tsx +0 -141
  117. package/src/ExternalTokenModel/ExternalTokenEntryForm.tsx +0 -57
  118. package/src/ExternalTokenModel/configSchema.ts +0 -36
  119. package/src/ExternalTokenModel/index.ts +0 -2
  120. package/src/ExternalTokenModel/model.tsx +0 -70
  121. package/src/GoogleDriveOAuthModel/configSchema.ts +0 -61
  122. package/src/GoogleDriveOAuthModel/index.ts +0 -2
  123. package/src/GoogleDriveOAuthModel/model.tsx +0 -174
  124. package/src/HTTPBasicModel/HTTPBasicLoginForm.tsx +0 -71
  125. package/src/HTTPBasicModel/configSchema.ts +0 -43
  126. package/src/HTTPBasicModel/index.ts +0 -2
  127. package/src/HTTPBasicModel/model.tsx +0 -70
  128. package/src/OAuthModel/configSchema.ts +0 -98
  129. package/src/OAuthModel/index.ts +0 -2
  130. package/src/OAuthModel/model.tsx +0 -348
  131. package/src/__snapshots__/index.test.js.snap +0 -8
  132. package/src/index.test.js +0 -96
  133. package/src/index.ts +0 -108
@@ -32,14 +32,6 @@ declare const DropboxOAuthConfigSchema: import("@jbrowse/core/configuration/conf
32
32
  type: string;
33
33
  defaultValue: string[];
34
34
  };
35
- /**
36
- * #slot
37
- */
38
- hasRefreshToken: {
39
- description: string;
40
- type: string;
41
- defaultValue: boolean;
42
- };
43
35
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
44
36
  tokenType: {
45
37
  description: string;
@@ -68,7 +60,9 @@ declare const DropboxOAuthConfigSchema: import("@jbrowse/core/configuration/conf
68
60
  };
69
61
  scopes: {
70
62
  description: string;
71
- type: string;
63
+ type: string; /**
64
+ * #baseConfiguration
65
+ */
72
66
  defaultValue: string;
73
67
  };
74
68
  state: {
@@ -81,11 +75,6 @@ declare const DropboxOAuthConfigSchema: import("@jbrowse/core/configuration/conf
81
75
  type: string;
82
76
  defaultValue: string;
83
77
  };
84
- hasRefreshToken: {
85
- description: string;
86
- type: string;
87
- defaultValue: boolean;
88
- };
89
78
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
90
79
  name: {
91
80
  description: string;
@@ -50,14 +50,6 @@ const DropboxOAuthConfigSchema = (0, configuration_1.ConfigurationSchema)('Dropb
50
50
  'getdropbox.com',
51
51
  ],
52
52
  },
53
- /**
54
- * #slot
55
- */
56
- hasRefreshToken: {
57
- description: 'true if the endpoint can supply a refresh token',
58
- type: 'boolean',
59
- defaultValue: true,
60
- },
61
53
  }, {
62
54
  /**
63
55
  * #baseConfiguration
@@ -66,4 +58,3 @@ const DropboxOAuthConfigSchema = (0, configuration_1.ConfigurationSchema)('Dropb
66
58
  explicitlyTyped: true,
67
59
  });
68
60
  exports.default = DropboxOAuthConfigSchema;
69
- //# sourceMappingURL=configSchema.js.map
@@ -8,4 +8,3 @@ var configSchema_1 = require("./configSchema");
8
8
  Object.defineProperty(exports, "configSchema", { enumerable: true, get: function () { return __importDefault(configSchema_1).default; } });
9
9
  var model_1 = require("./model");
10
10
  Object.defineProperty(exports, "modelFactory", { enumerable: true, get: function () { return __importDefault(model_1).default; } });
11
- //# sourceMappingURL=index.js.map
@@ -2,7 +2,10 @@ import React from 'react';
2
2
  import { UriLocation } from '@jbrowse/core/util/types';
3
3
  import { SvgIconProps } from '@mui/material';
4
4
  import { Instance } from 'mobx-state-tree';
5
- export declare function DropboxIcon(props: SvgIconProps): JSX.Element;
5
+ export declare function DropboxIcon(props: SvgIconProps): React.JSX.Element;
6
+ /**
7
+ * #stateModel DropboxOAuthInternetAccount
8
+ */
6
9
  declare const stateModelFactory: (configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
7
10
  authEndpoint: {
8
11
  description: string;
@@ -24,11 +27,6 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
24
27
  type: string;
25
28
  defaultValue: string[];
26
29
  };
27
- hasRefreshToken: {
28
- description: string;
29
- type: string;
30
- defaultValue: boolean;
31
- };
32
30
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
33
31
  tokenType: {
34
32
  description: string;
@@ -70,11 +68,6 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
70
68
  type: string;
71
69
  defaultValue: string;
72
70
  };
73
- hasRefreshToken: {
74
- description: string;
75
- type: string;
76
- defaultValue: boolean;
77
- };
78
71
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
79
72
  name: {
80
73
  description: string;
@@ -90,7 +83,7 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
90
83
  description: string;
91
84
  type: string;
92
85
  defaultValue: string;
93
- }; /** Error messages from https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_file */
86
+ };
94
87
  tokenType: {
95
88
  description: string;
96
89
  type: string;
@@ -121,7 +114,9 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
121
114
  defaultValue: string;
122
115
  };
123
116
  tokenType: {
124
- description: string;
117
+ description: string; /**
118
+ * #property
119
+ */
125
120
  type: string;
126
121
  defaultValue: string;
127
122
  };
@@ -174,11 +169,6 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
174
169
  type: string;
175
170
  defaultValue: string;
176
171
  };
177
- hasRefreshToken: {
178
- description: string;
179
- type: string;
180
- defaultValue: boolean;
181
- };
182
172
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
183
173
  name: {
184
174
  description: string;
@@ -194,7 +184,7 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
194
184
  description: string;
195
185
  type: string;
196
186
  defaultValue: string;
197
- }; /** Error messages from https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_file */
187
+ };
198
188
  tokenType: {
199
189
  description: string;
200
190
  type: string;
@@ -207,7 +197,13 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
207
197
  };
208
198
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "internetAccountId">>, undefined>>;
209
199
  } & {
200
+ /**
201
+ * #property
202
+ */
210
203
  type: import("mobx-state-tree").ISimpleType<"DropboxOAuthInternetAccount">;
204
+ /**
205
+ * #property
206
+ */
211
207
  configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
212
208
  authEndpoint: {
213
209
  description: string;
@@ -229,11 +225,6 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
229
225
  type: string;
230
226
  defaultValue: string[];
231
227
  };
232
- hasRefreshToken: {
233
- description: string;
234
- type: string;
235
- defaultValue: boolean;
236
- };
237
228
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
238
229
  tokenType: {
239
230
  description: string;
@@ -275,11 +266,6 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
275
266
  type: string;
276
267
  defaultValue: string;
277
268
  };
278
- hasRefreshToken: {
279
- description: string;
280
- type: string;
281
- defaultValue: boolean;
282
- };
283
269
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
284
270
  name: {
285
271
  description: string;
@@ -295,7 +281,7 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
295
281
  description: string;
296
282
  type: string;
297
283
  defaultValue: string;
298
- }; /** Error messages from https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_file */
284
+ };
299
285
  tokenType: {
300
286
  description: string;
301
287
  type: string;
@@ -308,7 +294,9 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
308
294
  };
309
295
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "internetAccountId">>, undefined>>, undefined>>;
310
296
  }, {
311
- readonly name: string;
297
+ readonly name: string; /**
298
+ * #getter
299
+ */
312
300
  readonly description: string;
313
301
  readonly internetAccountId: string;
314
302
  readonly authHeader: string;
@@ -365,7 +353,6 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
365
353
  readonly scopes: string;
366
354
  state(): string | undefined;
367
355
  readonly responseType: "code" | "token";
368
- readonly hasRefreshToken: boolean;
369
356
  readonly refreshTokenKey: string;
370
357
  } & {
371
358
  storeRefreshToken(refreshToken: string): void;
@@ -381,10 +368,25 @@ declare const stateModelFactory: (configSchema: import("@jbrowse/core/configurat
381
368
  getTokenFromUser(resolve: (token: string) => void, reject: (error: Error) => void): Promise<void>;
382
369
  validateToken(token: string, location: UriLocation): Promise<string>;
383
370
  } & {
384
- readonly toggleContents: JSX.Element;
371
+ getFetcher(loc?: UriLocation | undefined): (input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>;
372
+ } & {
373
+ /**
374
+ * #getter
375
+ * The FileSelector icon for Dropbox
376
+ */
377
+ readonly toggleContents: React.JSX.Element;
378
+ /**
379
+ * #getter
380
+ */
385
381
  readonly selectorLabel: string;
386
382
  } & {
383
+ /**
384
+ * #method
385
+ */
387
386
  getFetcher(location?: UriLocation): (input: RequestInfo, init?: RequestInit) => Promise<Response>;
387
+ /**
388
+ * #action
389
+ */
388
390
  validateToken(token: string, location: UriLocation): Promise<string>;
389
391
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
390
392
  export default stateModelFactory;
@@ -10,57 +10,47 @@ const material_1 = require("@mui/material");
10
10
  const mobx_state_tree_1 = require("mobx-state-tree");
11
11
  const model_1 = __importDefault(require("../OAuthModel/model"));
12
12
  const OAuthModel_1 = require("../OAuthModel");
13
- /** Error messages from https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_file */
14
- const dropboxErrorMessages = {
15
- shared_link_not_found: "The shared link wasn't found.",
16
- shared_link_access_denied: 'The caller is not allowed to access this shared link.',
17
- unsupported_link_type: 'This type of link is not supported; use files/export instead.',
18
- shared_link_is_directory: 'Directories cannot be retrieved by this endpoint.',
19
- };
13
+ const util_1 = require("./util");
20
14
  function DropboxIcon(props) {
21
15
  return (react_1.default.createElement(material_1.SvgIcon, { ...props },
22
16
  react_1.default.createElement("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" })));
23
17
  }
24
18
  exports.DropboxIcon = DropboxIcon;
25
- async function getDescriptiveErrorMessage(response) {
26
- let errorMessage;
27
- try {
28
- errorMessage = await response.text();
29
- }
30
- catch (error) {
31
- errorMessage = '';
32
- }
33
- if (errorMessage) {
34
- let errorMessageParsed;
35
- try {
36
- errorMessageParsed = JSON.parse(errorMessage);
37
- }
38
- catch (error) {
39
- errorMessageParsed = undefined;
40
- }
41
- if (errorMessageParsed) {
42
- const messageTag = errorMessageParsed.error['.tag'];
43
- errorMessage = dropboxErrorMessages[messageTag] || messageTag;
44
- }
45
- }
46
- return `Network response failure — ${response.status} (${response.statusText})${errorMessage ? ` (${errorMessage})` : ''}`;
47
- }
19
+ /**
20
+ * #stateModel DropboxOAuthInternetAccount
21
+ */
48
22
  const stateModelFactory = (configSchema) => {
49
23
  return (0, model_1.default)(OAuthModel_1.configSchema)
50
24
  .named('DropboxOAuthInternetAccount')
51
25
  .props({
26
+ /**
27
+ * #property
28
+ */
52
29
  type: mobx_state_tree_1.types.literal('DropboxOAuthInternetAccount'),
30
+ /**
31
+ * #property
32
+ */
53
33
  configuration: (0, configuration_1.ConfigurationReference)(configSchema),
54
34
  })
55
35
  .views(() => ({
36
+ /**
37
+ * #getter
38
+ * The FileSelector icon for Dropbox
39
+ */
56
40
  get toggleContents() {
57
41
  return react_1.default.createElement(DropboxIcon, null);
58
42
  },
43
+ /**
44
+ * #getter
45
+ */
59
46
  get selectorLabel() {
60
47
  return 'Enter Dropbox share link';
61
48
  },
62
49
  }))
63
50
  .actions(self => ({
51
+ /**
52
+ * #method
53
+ */
64
54
  getFetcher(location) {
65
55
  return async (input, init) => {
66
56
  const authToken = await self.getToken(location);
@@ -68,12 +58,14 @@ const stateModelFactory = (configSchema) => {
68
58
  newInit.headers.append('Dropbox-API-Arg', JSON.stringify({ url: input }));
69
59
  const response = await fetch('https://content.dropboxapi.com/2/sharing/get_shared_link_file', newInit);
70
60
  if (!response.ok) {
71
- const message = await getDescriptiveErrorMessage(response);
72
- throw new Error(message);
61
+ throw new Error(await (0, util_1.getDescriptiveErrorMessage)(response));
73
62
  }
74
63
  return response;
75
64
  };
76
65
  },
66
+ /**
67
+ * #action
68
+ */
77
69
  async validateToken(token, location) {
78
70
  const response = await fetch('https://api.dropboxapi.com/2/sharing/get_shared_link_metadata', {
79
71
  method: 'POST',
@@ -86,18 +78,16 @@ const stateModelFactory = (configSchema) => {
86
78
  }),
87
79
  });
88
80
  if (!response.ok) {
89
- const refreshToken = self.hasRefreshToken && self.retrieveRefreshToken();
81
+ const refreshToken = self.retrieveRefreshToken();
90
82
  if (refreshToken) {
91
83
  self.removeRefreshToken();
92
84
  const newToken = await self.exchangeRefreshForAccessToken(refreshToken);
93
85
  return this.validateToken(newToken, location);
94
86
  }
95
- const message = await getDescriptiveErrorMessage(response);
96
- throw new Error(`Token could not be validated. ${message}`);
87
+ throw new Error(await (0, util_1.getDescriptiveErrorMessage)(response, 'Token could not be validated'));
97
88
  }
98
89
  return token;
99
90
  },
100
91
  }));
101
92
  };
102
93
  exports.default = stateModelFactory;
103
- //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ export declare function getDescriptiveErrorMessage(response: Response, reason?: string): Promise<string>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDescriptiveErrorMessage = void 0;
4
+ const util_1 = require("../util");
5
+ /**
6
+ * Error messages from
7
+ * https://www.dropbox.com/developers/documentation/http/documentation#sharing-get_shared_link_file
8
+ * */
9
+ const dropboxErrorMessages = {
10
+ shared_link_not_found: "The shared link wasn't found.",
11
+ shared_link_access_denied: 'The caller is not allowed to access this shared link.',
12
+ unsupported_link_type: 'This type of link is not supported; use files/export instead.',
13
+ shared_link_is_directory: 'Directories cannot be retrieved by this endpoint.',
14
+ };
15
+ async function getDescriptiveErrorMessage(response, reason) {
16
+ let errorMessage = '';
17
+ try {
18
+ const err = JSON.parse(await response.text());
19
+ const tag = err.error['.tag'];
20
+ errorMessage = dropboxErrorMessages[tag] || tag;
21
+ }
22
+ catch (error) {
23
+ /* do nothing */
24
+ }
25
+ return (0, util_1.getResponseError)({ response, reason, statusText: errorMessage });
26
+ }
27
+ exports.getDescriptiveErrorMessage = getDescriptiveErrorMessage;
@@ -1,4 +1,5 @@
1
+ import React from 'react';
1
2
  export declare const ExternalTokenEntryForm: ({ internetAccountId, handleClose, }: {
2
3
  internetAccountId: string;
3
4
  handleClose: (token?: string) => void;
4
- }) => JSX.Element;
5
+ }) => React.JSX.Element;
@@ -29,17 +29,15 @@ const material_1 = require("@mui/material");
29
29
  const ui_1 = require("@jbrowse/core/ui");
30
30
  const ExternalTokenEntryForm = ({ internetAccountId, handleClose, }) => {
31
31
  const [token, setToken] = (0, react_1.useState)('');
32
- return (react_1.default.createElement(react_1.default.Fragment, null,
33
- react_1.default.createElement(ui_1.Dialog, { open: true, maxWidth: "xl", "data-testid": "externalToken-form", title: `Enter token for ${internetAccountId}` },
34
- react_1.default.createElement(material_1.DialogContent, { style: { display: 'flex', flexDirection: 'column' } },
35
- react_1.default.createElement(material_1.TextField, { required: true, label: "Enter Token", variant: "outlined", inputProps: { 'data-testid': 'entry-externalToken' }, onChange: event => setToken(event.target.value), margin: "dense" })),
36
- react_1.default.createElement(material_1.DialogActions, null,
37
- react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", type: "submit", disabled: !token, onClick: () => {
38
- if (token) {
39
- handleClose(token);
40
- }
41
- } }, "Add"),
42
- react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", onClick: () => handleClose() }, "Cancel")))));
32
+ return (react_1.default.createElement(ui_1.Dialog, { open: true, maxWidth: "xl", "data-testid": "externalToken-form", title: `Enter token for ${internetAccountId}` },
33
+ react_1.default.createElement(material_1.DialogContent, { style: { display: 'flex', flexDirection: 'column' } },
34
+ react_1.default.createElement(material_1.TextField, { required: true, label: "Enter Token", variant: "outlined", inputProps: { 'data-testid': 'entry-externalToken' }, onChange: event => setToken(event.target.value), margin: "dense" })),
35
+ react_1.default.createElement(material_1.DialogActions, null,
36
+ react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", type: "submit", disabled: !token, onClick: () => {
37
+ if (token) {
38
+ handleClose(token);
39
+ }
40
+ } }, "Add"),
41
+ react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => handleClose() }, "Cancel"))));
43
42
  };
44
43
  exports.ExternalTokenEntryForm = ExternalTokenEntryForm;
45
- //# sourceMappingURL=ExternalTokenEntryForm.js.map
@@ -23,4 +23,3 @@ const ExternalTokenConfigSchema = (0, configuration_1.ConfigurationSchema)('Exte
23
23
  explicitlyTyped: true,
24
24
  });
25
25
  exports.default = ExternalTokenConfigSchema;
26
- //# sourceMappingURL=configSchema.js.map
@@ -8,4 +8,3 @@ var configSchema_1 = require("./configSchema");
8
8
  Object.defineProperty(exports, "configSchema", { enumerable: true, get: function () { return __importDefault(configSchema_1).default; } });
9
9
  var model_1 = require("./model");
10
10
  Object.defineProperty(exports, "modelFactory", { enumerable: true, get: function () { return __importDefault(model_1).default; } });
11
- //# sourceMappingURL=index.js.map
@@ -56,4 +56,3 @@ const stateModelFactory = (configSchema) => {
56
56
  }));
57
57
  };
58
58
  exports.default = stateModelFactory;
59
- //# sourceMappingURL=model.js.map
@@ -0,0 +1,15 @@
1
+ import { RemoteFileWithRangeCache } from '@jbrowse/core/util/io';
2
+ import { FilehandleOptions, Stats, PolyfilledResponse } from 'generic-filehandle';
3
+ export interface RequestInitWithMetadata extends RequestInit {
4
+ metadataOnly?: boolean;
5
+ }
6
+ interface GoogleDriveFilehandleOptions extends FilehandleOptions {
7
+ fetch(input: RequestInfo, opts?: RequestInitWithMetadata): Promise<PolyfilledResponse>;
8
+ }
9
+ export declare class GoogleDriveFile extends RemoteFileWithRangeCache {
10
+ private statsPromise;
11
+ constructor(source: string, opts: GoogleDriveFilehandleOptions);
12
+ fetch(input: RequestInfo, opts?: RequestInitWithMetadata): Promise<PolyfilledResponse>;
13
+ stat(): Promise<Stats>;
14
+ }
15
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoogleDriveFile = void 0;
4
+ const io_1 = require("@jbrowse/core/util/io");
5
+ class GoogleDriveFile extends io_1.RemoteFileWithRangeCache {
6
+ constructor(source, opts) {
7
+ super(source, opts);
8
+ this.statsPromise = this.fetch(source, {
9
+ metadataOnly: true,
10
+ }).then((response) => response.json());
11
+ }
12
+ async fetch(input, opts) {
13
+ return super.fetch(input, opts);
14
+ }
15
+ async stat() {
16
+ return this.statsPromise;
17
+ }
18
+ }
19
+ exports.GoogleDriveFile = GoogleDriveFile;
@@ -75,11 +75,6 @@ declare const GoogleDriveOAuthConfigSchema: import("@jbrowse/core/configuration/
75
75
  type: string;
76
76
  defaultValue: string;
77
77
  };
78
- hasRefreshToken: {
79
- description: string;
80
- type: string;
81
- defaultValue: boolean;
82
- };
83
78
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
84
79
  name: {
85
80
  description: string;
@@ -50,4 +50,3 @@ const GoogleDriveOAuthConfigSchema = (0, configuration_1.ConfigurationSchema)('G
50
50
  explicitlyTyped: true,
51
51
  });
52
52
  exports.default = GoogleDriveOAuthConfigSchema;
53
- //# sourceMappingURL=configSchema.js.map
@@ -8,4 +8,3 @@ var configSchema_1 = require("./configSchema");
8
8
  Object.defineProperty(exports, "configSchema", { enumerable: true, get: function () { return __importDefault(configSchema_1).default; } });
9
9
  var model_1 = require("./model");
10
10
  Object.defineProperty(exports, "modelFactory", { enumerable: true, get: function () { return __importDefault(model_1).default; } });
11
- //# sourceMappingURL=index.js.map