Move dropbox vendors (#576)
* Move vendor files * Move sync/vendor & config updates * Update dropbox sdk from v4.0.9 to v4.0.13 * Fix typo * Fix zip path * Pass fetch option to Dropbox
This commit is contained in:
		
							parent
							
								
									eafa5110c0
								
							
						
					
					
						commit
						a4c08084bf
					
				|  | @ -168,8 +168,8 @@ | |||
|   <script src="js/sections-util.js"></script> | ||||
|   <script src="js/storage-util.js"></script> | ||||
| 
 | ||||
|   <script src="sync/vendor/dropbox/dropbox-sdk.js" async></script> | ||||
|   <script src="sync/vendor/zipjs/zip.js" defer></script> | ||||
|   <script src="vendor/dropbox/dropbox-sdk.js" async></script> | ||||
|   <script src="vendor/zipjs-browserify/zip.js" defer></script> | ||||
|   <script src="sync/compress-text.js" defer></script> | ||||
|   <script src="sync/cross-browser-functions.js" defer></script> | ||||
|   <script src="sync/import-export-dropbox.js" async></script> | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ | |||
|   "devDependencies": { | ||||
|     "archiver": "^3.0.0", | ||||
|     "codemirror": "^5.41.0", | ||||
|     "dropbox": "^4.0.13", | ||||
|     "endent": "^1.2.0", | ||||
|     "eslint": "^5.9.0", | ||||
|     "fs-extra": "^7.0.1", | ||||
|  | @ -21,7 +22,8 @@ | |||
|     "updates": "^5.1.2", | ||||
|     "usercss-meta": "^0.8.3", | ||||
|     "web-ext": "^2.9.2", | ||||
|     "webext-tx-fix": "^0.3.1" | ||||
|     "webext-tx-fix": "^0.3.1", | ||||
|     "zipjs-browserify": "^1.0.1" | ||||
|   }, | ||||
|   "scripts": { | ||||
|     "lint": "eslint **/*.js --cache || exit 0", | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| 'use strict'; | ||||
| 
 | ||||
| onDOMready().then(() => { | ||||
|   zip.workerScriptsPath = '/sync/vendor/zipjs/'; | ||||
|   zip.workerScriptsPath = '../vendor/zipjs-browserify/'; | ||||
| }); | ||||
| 
 | ||||
| /** | ||||
|  |  | |||
|  | @ -31,7 +31,10 @@ function hasDropboxAccessToken() { | |||
| } | ||||
| 
 | ||||
| function requestDropboxAccessToken() { | ||||
|   const client = new Dropbox.Dropbox({clientId: DROPBOX_API_KEY}); | ||||
|   const client = new Dropbox.Dropbox({ | ||||
|     clientId: DROPBOX_API_KEY, | ||||
|     fetch | ||||
|   }); | ||||
|   const authUrl = client.getAuthenticationUrl(getRedirectUrlAuthFlow()); | ||||
|   return launchWebAuthFlow({url: authUrl, interactive: true}) | ||||
|   .then(urlReturned => { | ||||
|  | @ -57,7 +60,8 @@ $('#sync-dropbox-export').onclick = () => { | |||
|   .then(token => { | ||||
|     const client = new Dropbox.Dropbox({ | ||||
|       clientId: DROPBOX_API_KEY, | ||||
|       accessToken: token | ||||
|       accessToken: token, | ||||
|       fetch | ||||
|     }); | ||||
|     return client.filesDownload({path: '/' + DROPBOX_FILE}) | ||||
|     .then(() => messageBox.confirm(t('overwriteFileExport'))) | ||||
|  | @ -130,7 +134,8 @@ $('#sync-dropbox-import').onclick = () => { | |||
|   .then(token => { | ||||
|     const client = new Dropbox.Dropbox({ | ||||
|       clientId: DROPBOX_API_KEY, | ||||
|       accessToken: token | ||||
|       accessToken: token, | ||||
|       fetch | ||||
|     }); | ||||
|     return client.filesDownload({path: '/' + DROPBOX_FILE}) | ||||
|     .then(response => { | ||||
|  |  | |||
|  | @ -11,6 +11,9 @@ const files = { | |||
|     '*', // only update existing vendor files
 | ||||
|     'theme' // update all theme files
 | ||||
|   ], | ||||
|   'dropbox': [ | ||||
|     'dist/Dropbox-sdk.js → dropbox-sdk.js' | ||||
|   ], | ||||
|   'jsonlint': [ | ||||
|     'lib/jsonlint.js → jsonlint.js' | ||||
|   ], | ||||
|  | @ -31,6 +34,12 @@ const files = { | |||
|   ], | ||||
|   'usercss-meta': [ | ||||
|     'dist/usercss-meta.min.js → usercss-meta.min.js' | ||||
|   ], | ||||
|   'zipjs-browserify': [ | ||||
|     'vendor/deflate.js → deflate.js', | ||||
|     'vendor/inflate.js → inflate.js', | ||||
|     'vendor/z-worker.js → z-worker.js', | ||||
|     'vendor/zip.js → zip.js' | ||||
|   ] | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										0
									
								
								sync/vendor/dropbox/LICENSE → vendor/dropbox/LICENSE
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								sync/vendor/dropbox/LICENSE → vendor/dropbox/LICENSE
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										12
									
								
								vendor/dropbox/README.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								vendor/dropbox/README.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| ## Dropbox SDK v4.0.13 | ||||
| 
 | ||||
| Dropbox SDK JS installed via npm - source repo: | ||||
| 
 | ||||
| https://github.com/dropbox/dropbox-sdk-js/tree/v4.0.13 | ||||
| 
 | ||||
| The source repo **does not** include the `dist` folder with the generated `dropbox-sdk.js` | ||||
| distribution file. It can only be obtained from the npm `node_modules` folder after installing | ||||
| the module. | ||||
| 
 | ||||
| - https://www.npmjs.com/package/dropbox | ||||
| - https://github.com/dropbox/dropbox-sdk-js/releases | ||||
|  | @ -27,6 +27,27 @@ routes.authTokenRevoke = function (arg) { | |||
|   return this.request('auth/token/revoke', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Removes all manually added contacts. You'll still keep contacts who are on | ||||
|  * your team or who you imported. New contacts will be added when you share. | ||||
|  * @function Dropbox#contactsDeleteManualContacts | ||||
|  * @arg {void} arg - The request parameters. | ||||
|  * @returns {Promise.<void, Error.<void>>} | ||||
|  */ | ||||
| routes.contactsDeleteManualContacts = function (arg) { | ||||
|   return this.request('contacts/delete_manual_contacts', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Removes manually added contacts from the given list. | ||||
|  * @function Dropbox#contactsDeleteManualContactsBatch | ||||
|  * @arg {ContactsDeleteManualContactsArg} arg - The request parameters. | ||||
|  * @returns {Promise.<void, Error.<ContactsDeleteManualContactsError>>} | ||||
|  */ | ||||
| routes.contactsDeleteManualContactsBatch = function (arg) { | ||||
|   return this.request('contacts/delete_manual_contacts_batch', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Add property groups to a Dropbox file. See templates/add_for_user or | ||||
|  * templates/add_for_team to create new templates. | ||||
|  | @ -284,6 +305,17 @@ routes.filesAlphaUpload = function (arg) { | |||
|   return this.request('files/alpha/upload', arg, 'user', 'content', 'upload'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Copy a file or folder to a different location in the user's Dropbox. If the | ||||
|  * source path is a folder all its contents will be copied. | ||||
|  * @function Dropbox#filesCopyV2 | ||||
|  * @arg {FilesRelocationArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesRelocationResult, Error.<FilesRelocationError>>} | ||||
|  */ | ||||
| routes.filesCopyV2 = function (arg) { | ||||
|   return this.request('files/copy_v2', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Copy a file or folder to a different location in the user's Dropbox. If the | ||||
|  * source path is a folder all its contents will be copied. | ||||
|  | @ -299,9 +331,9 @@ routes.filesCopy = function (arg) { | |||
| /** | ||||
|  * Copy multiple files or folders to different locations at once in the user's | ||||
|  * Dropbox. If RelocationBatchArg.allow_shared_folder is false, this route is | ||||
|  * atomic. If on entry failes, the whole transaction will abort. If | ||||
|  * RelocationBatchArg.allow_shared_folder is true, not atomicity is guaranteed, | ||||
|  * but you will be able to copy the contents of shared folders to new locations. | ||||
|  * atomic. If one entry fails, the whole transaction will abort. If | ||||
|  * RelocationBatchArg.allow_shared_folder is true, atomicity is not guaranteed, | ||||
|  * but it allows you to copy the contents of shared folders to new locations. | ||||
|  * This route will return job ID immediately and do the async copy job in | ||||
|  * background. Please use copy_batch/check to check the job status. | ||||
|  * @function Dropbox#filesCopyBatch | ||||
|  | @ -346,14 +378,13 @@ routes.filesCopyReferenceSave = function (arg) { | |||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Copy a file or folder to a different location in the user's Dropbox. If the | ||||
|  * source path is a folder all its contents will be copied. | ||||
|  * @function Dropbox#filesCopyV2 | ||||
|  * @arg {FilesRelocationArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesRelocationResult, Error.<FilesRelocationError>>} | ||||
|  * Create a folder at a given path. | ||||
|  * @function Dropbox#filesCreateFolderV2 | ||||
|  * @arg {FilesCreateFolderArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesCreateFolderResult, Error.<FilesCreateFolderError>>} | ||||
|  */ | ||||
| routes.filesCopyV2 = function (arg) { | ||||
|   return this.request('files/copy_v2', arg, 'user', 'api', 'rpc'); | ||||
| routes.filesCreateFolderV2 = function (arg) { | ||||
|   return this.request('files/create_folder_v2', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  | @ -394,13 +425,17 @@ routes.filesCreateFolderBatchCheck = function (arg) { | |||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Create a folder at a given path. | ||||
|  * @function Dropbox#filesCreateFolderV2 | ||||
|  * @arg {FilesCreateFolderArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesCreateFolderResult, Error.<FilesCreateFolderError>>} | ||||
|  * Delete the file or folder at a given path. If the path is a folder, all its | ||||
|  * contents will be deleted too. A successful response indicates that the file | ||||
|  * or folder was deleted. The returned metadata will be the corresponding | ||||
|  * FileMetadata or FolderMetadata for the item at time of deletion, and not a | ||||
|  * DeletedMetadata object. | ||||
|  * @function Dropbox#filesDeleteV2 | ||||
|  * @arg {FilesDeleteArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesDeleteResult, Error.<FilesDeleteError>>} | ||||
|  */ | ||||
| routes.filesCreateFolderV2 = function (arg) { | ||||
|   return this.request('files/create_folder_v2', arg, 'user', 'api', 'rpc'); | ||||
| routes.filesDeleteV2 = function (arg) { | ||||
|   return this.request('files/delete_v2', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  | @ -441,20 +476,6 @@ routes.filesDeleteBatchCheck = function (arg) { | |||
|   return this.request('files/delete_batch/check', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Delete the file or folder at a given path. If the path is a folder, all its | ||||
|  * contents will be deleted too. A successful response indicates that the file | ||||
|  * or folder was deleted. The returned metadata will be the corresponding | ||||
|  * FileMetadata or FolderMetadata for the item at time of deletion, and not a | ||||
|  * DeletedMetadata object. | ||||
|  * @function Dropbox#filesDeleteV2 | ||||
|  * @arg {FilesDeleteArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesDeleteResult, Error.<FilesDeleteError>>} | ||||
|  */ | ||||
| routes.filesDeleteV2 = function (arg) { | ||||
|   return this.request('files/delete_v2', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Download a file from a user's Dropbox. | ||||
|  * @function Dropbox#filesDownload | ||||
|  | @ -467,8 +488,8 @@ routes.filesDownload = function (arg) { | |||
| 
 | ||||
| /** | ||||
|  * Download a folder from the user's Dropbox, as a zip file. The folder must be | ||||
|  * less than 1 GB in size and have fewer than 10,000 total files. The input | ||||
|  * cannot be a single file. | ||||
|  * less than 20 GB in size and have fewer than 10,000 total files. The input | ||||
|  * cannot be a single file. Any single file must be less than 4GB in size. | ||||
|  * @function Dropbox#filesDownloadZip | ||||
|  * @arg {FilesDownloadZipArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesDownloadZipResult, Error.<FilesDownloadZipError>>} | ||||
|  | @ -504,7 +525,8 @@ routes.filesGetPreview = function (arg) { | |||
| 
 | ||||
| /** | ||||
|  * Get a temporary link to stream content of a file. This link will expire in | ||||
|  * four hours and afterwards you will get 410 Gone. Content-Type of the link is | ||||
|  * four hours and afterwards you will get 410 Gone. So this URL should not be | ||||
|  * used to display content directly in the browser.  Content-Type of the link is | ||||
|  * determined automatically by the file's mime type. | ||||
|  * @function Dropbox#filesGetTemporaryLink | ||||
|  * @arg {FilesGetTemporaryLinkArg} arg - The request parameters. | ||||
|  | @ -514,6 +536,42 @@ routes.filesGetTemporaryLink = function (arg) { | |||
|   return this.request('files/get_temporary_link', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Get a one-time use temporary upload link to upload a file to a Dropbox | ||||
|  * location.  This endpoint acts as a delayed upload. The returned temporary | ||||
|  * upload link may be used to make a POST request with the data to be uploaded. | ||||
|  * The upload will then be perfomed with the CommitInfo previously provided to | ||||
|  * get_temporary_upload_link but evaluated only upon consumption. Hence, errors | ||||
|  * stemming from invalid CommitInfo with respect to the state of the user's | ||||
|  * Dropbox will only be communicated at consumption time. Additionally, these | ||||
|  * errors are surfaced as generic HTTP 409 Conflict responses, potentially | ||||
|  * hiding issue details. The maximum temporary upload link duration is 4 hours. | ||||
|  * Upon consumption or expiration, a new link will have to be generated. | ||||
|  * Multiple links may exist for a specific upload path at any given time.  The | ||||
|  * POST request on the temporary upload link must have its Content-Type set to | ||||
|  * "application/octet-stream".  Example temporary upload link consumption | ||||
|  * request:  curl -X POST | ||||
|  * https://dl.dropboxusercontent.com/apitul/1/bNi2uIYF51cVBND --header
 | ||||
|  * "Content-Type: application/octet-stream" --data-binary @local_file.txt  A | ||||
|  * successful temporary upload link consumption request returns the content hash | ||||
|  * of the uploaded data in JSON format.  Example succesful temporary upload link | ||||
|  * consumption response: {"content-hash": | ||||
|  * "599d71033d700ac892a0e48fa61b125d2f5994"}  An unsuccessful temporary upload | ||||
|  * link consumption request returns any of the following status codes:  HTTP 400 | ||||
|  * Bad Request: Content-Type is not one of application/octet-stream and | ||||
|  * text/plain or request is invalid. HTTP 409 Conflict: The temporary upload | ||||
|  * link does not exist or is currently unavailable, the upload failed, or | ||||
|  * another error happened. HTTP 410 Gone: The temporary upload link is expired | ||||
|  * or consumed.  Example unsuccessful temporary upload link consumption | ||||
|  * response: Temporary upload link has been recently consumed. | ||||
|  * @function Dropbox#filesGetTemporaryUploadLink | ||||
|  * @arg {FilesGetTemporaryUploadLinkArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesGetTemporaryUploadLinkResult, Error.<void>>} | ||||
|  */ | ||||
| routes.filesGetTemporaryUploadLink = function (arg) { | ||||
|   return this.request('files/get_temporary_upload_link', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Get a thumbnail for an image. This method currently supports files with the | ||||
|  * following file extensions: jpg, jpeg, png, tiff, tif, gif and bmp. Photos | ||||
|  | @ -625,6 +683,17 @@ routes.filesListRevisions = function (arg) { | |||
|   return this.request('files/list_revisions', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Move a file or folder to a different location in the user's Dropbox. If the | ||||
|  * source path is a folder all its contents will be moved. | ||||
|  * @function Dropbox#filesMoveV2 | ||||
|  * @arg {FilesRelocationArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesRelocationResult, Error.<FilesRelocationError>>} | ||||
|  */ | ||||
| routes.filesMoveV2 = function (arg) { | ||||
|   return this.request('files/move_v2', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Move a file or folder to a different location in the user's Dropbox. If the | ||||
|  * source path is a folder all its contents will be moved. | ||||
|  | @ -662,17 +731,6 @@ routes.filesMoveBatchCheck = function (arg) { | |||
|   return this.request('files/move_batch/check', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Move a file or folder to a different location in the user's Dropbox. If the | ||||
|  * source path is a folder all its contents will be moved. | ||||
|  * @function Dropbox#filesMoveV2 | ||||
|  * @arg {FilesRelocationArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesRelocationResult, Error.<FilesRelocationError>>} | ||||
|  */ | ||||
| routes.filesMoveV2 = function (arg) { | ||||
|   return this.request('files/move_v2', arg, 'user', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Permanently delete the file or folder at a given path (see | ||||
|  * https://www.dropbox.com/en/help/40). Note: This endpoint is only available
 | ||||
|  | @ -746,7 +804,7 @@ routes.filesPropertiesUpdate = function (arg) { | |||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Restore a file to a specific revision. | ||||
|  * Restore a specific revision of a file to the given path. | ||||
|  * @function Dropbox#filesRestore | ||||
|  * @arg {FilesRestoreArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesFileMetadata, Error.<FilesRestoreError>>} | ||||
|  | @ -790,7 +848,11 @@ routes.filesSearch = function (arg) { | |||
| /** | ||||
|  * Create a new file with the contents provided in the request. Do not use this | ||||
|  * to upload a file larger than 150 MB. Instead, create an upload session with | ||||
|  * upload_session/start. | ||||
|  * upload_session/start. Calls to this endpoint will count as data transport | ||||
|  * calls for any Dropbox Business teams with a limit on the number of data | ||||
|  * transport calls allowed per month. For more information, see the Data | ||||
|  * transport limit page | ||||
|  * https://www.dropbox.com/developers/reference/data-transport-limit.
 | ||||
|  * @function Dropbox#filesUpload | ||||
|  * @arg {FilesCommitInfo} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesFileMetadata, Error.<FilesUploadError>>} | ||||
|  | @ -799,10 +861,29 @@ routes.filesUpload = function (arg) { | |||
|   return this.request('files/upload', arg, 'user', 'content', 'upload'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Append more data to an upload session. When the parameter close is set, this | ||||
|  * call will close the session. A single request should not upload more than 150 | ||||
|  * MB. The maximum size of a file one can upload to an upload session is 350 GB. | ||||
|  * Calls to this endpoint will count as data transport calls for any Dropbox | ||||
|  * Business teams with a limit on the number of data transport calls allowed per | ||||
|  * month. For more information, see the Data transport limit page | ||||
|  * https://www.dropbox.com/developers/reference/data-transport-limit.
 | ||||
|  * @function Dropbox#filesUploadSessionAppendV2 | ||||
|  * @arg {FilesUploadSessionAppendArg} arg - The request parameters. | ||||
|  * @returns {Promise.<void, Error.<FilesUploadSessionLookupError>>} | ||||
|  */ | ||||
| routes.filesUploadSessionAppendV2 = function (arg) { | ||||
|   return this.request('files/upload_session/append_v2', arg, 'user', 'content', 'upload'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Append more data to an upload session. A single request should not upload | ||||
|  * more than 150 MB. The maximum size of a file one can upload to an upload | ||||
|  * session is 350 GB. | ||||
|  * session is 350 GB. Calls to this endpoint will count as data transport calls | ||||
|  * for any Dropbox Business teams with a limit on the number of data transport | ||||
|  * calls allowed per month. For more information, see the Data transport limit | ||||
|  * page https://www.dropbox.com/developers/reference/data-transport-limit.
 | ||||
|  * @function Dropbox#filesUploadSessionAppend | ||||
|  * @deprecated | ||||
|  * @arg {FilesUploadSessionCursor} arg - The request parameters. | ||||
|  | @ -812,22 +893,14 @@ routes.filesUploadSessionAppend = function (arg) { | |||
|   return this.request('files/upload_session/append', arg, 'user', 'content', 'upload'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Append more data to an upload session. When the parameter close is set, this | ||||
|  * call will close the session. A single request should not upload more than 150 | ||||
|  * MB. The maximum size of a file one can upload to an upload session is 350 GB. | ||||
|  * @function Dropbox#filesUploadSessionAppendV2 | ||||
|  * @arg {FilesUploadSessionAppendArg} arg - The request parameters. | ||||
|  * @returns {Promise.<void, Error.<FilesUploadSessionLookupError>>} | ||||
|  */ | ||||
| routes.filesUploadSessionAppendV2 = function (arg) { | ||||
|   return this.request('files/upload_session/append_v2', arg, 'user', 'content', 'upload'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Finish an upload session and save the uploaded data to the given file path. A | ||||
|  * single request should not upload more than 150 MB. The maximum size of a file | ||||
|  * one can upload to an upload session is 350 GB. | ||||
|  * one can upload to an upload session is 350 GB. Calls to this endpoint will | ||||
|  * count as data transport calls for any Dropbox Business teams with a limit on | ||||
|  * the number of data transport calls allowed per month. For more information, | ||||
|  * see the Data transport limit page | ||||
|  * https://www.dropbox.com/developers/reference/data-transport-limit.
 | ||||
|  * @function Dropbox#filesUploadSessionFinish | ||||
|  * @arg {FilesUploadSessionFinishArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesFileMetadata, Error.<FilesUploadSessionFinishError>>} | ||||
|  | @ -849,7 +922,11 @@ routes.filesUploadSessionFinish = function (arg) { | |||
|  * background. Use upload_session/finish_batch/check to check the job status. | ||||
|  * For the same account, this route should be executed serially. That means you | ||||
|  * should not start the next job before current job finishes. We allow up to | ||||
|  * 1000 entries in a single request. | ||||
|  * 1000 entries in a single request. Calls to this endpoint will count as data | ||||
|  * transport calls for any Dropbox Business teams with a limit on the number of | ||||
|  * data transport calls allowed per month. For more information, see the Data | ||||
|  * transport limit page | ||||
|  * https://www.dropbox.com/developers/reference/data-transport-limit.
 | ||||
|  * @function Dropbox#filesUploadSessionFinishBatch | ||||
|  * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesUploadSessionFinishBatchLaunch, Error.<void>>} | ||||
|  | @ -879,7 +956,11 @@ routes.filesUploadSessionFinishBatchCheck = function (arg) { | |||
|  * is 350 GB. An upload session can be used for a maximum of 48 hours. | ||||
|  * Attempting to use an UploadSessionStartResult.session_id with | ||||
|  * upload_session/append_v2 or upload_session/finish more than 48 hours after | ||||
|  * its creation will return a UploadSessionLookupError.not_found. | ||||
|  * its creation will return a UploadSessionLookupError.not_found. Calls to this | ||||
|  * endpoint will count as data transport calls for any Dropbox Business teams | ||||
|  * with a limit on the number of data transport calls allowed per month. For | ||||
|  * more information, see the Data transport limit page | ||||
|  * https://www.dropbox.com/developers/reference/data-transport-limit.
 | ||||
|  * @function Dropbox#filesUploadSessionStart | ||||
|  * @arg {FilesUploadSessionStartArg} arg - The request parameters. | ||||
|  * @returns {Promise.<FilesUploadSessionStartResult, Error.<void>>} | ||||
|  | @ -1818,39 +1899,41 @@ function responseHandler(res, data) { | |||
|   return result; | ||||
| } | ||||
| 
 | ||||
| function downloadRequest(path, args, auth, host, accessToken, options) { | ||||
|   if (auth !== 'user') { | ||||
|     throw new Error('Unexpected auth type: ' + auth); | ||||
|   } | ||||
| 
 | ||||
|   var fetchOptions = { | ||||
|     method: 'POST', | ||||
|     headers: { | ||||
|       Authorization: 'Bearer ' + accessToken, | ||||
|       'Dropbox-API-Arg': httpHeaderSafeJson(args) | ||||
| function downloadRequest(fetch) { | ||||
|   return function downloadRequestWithFetch(path, args, auth, host, accessToken, options) { | ||||
|     if (auth !== 'user') { | ||||
|       throw new Error('Unexpected auth type: ' + auth); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   if (options) { | ||||
|     if (options.selectUser) { | ||||
|       fetchOptions.headers['Dropbox-API-Select-User'] = options.selectUser; | ||||
|     } | ||||
|     if (options.selectAdmin) { | ||||
|       fetchOptions.headers['Dropbox-API-Select-Admin'] = options.selectAdmin; | ||||
|     } | ||||
|   } | ||||
|     var fetchOptions = { | ||||
|       method: 'POST', | ||||
|       headers: { | ||||
|         Authorization: 'Bearer ' + accessToken, | ||||
|         'Dropbox-API-Arg': httpHeaderSafeJson(args) | ||||
|       } | ||||
|     }; | ||||
| 
 | ||||
|   return fetch(getBaseURL(host) + path, fetchOptions).then(function (res) { | ||||
|     return getDataFromConsumer(res).then(function (data) { | ||||
|       return [res, data]; | ||||
|     if (options) { | ||||
|       if (options.selectUser) { | ||||
|         fetchOptions.headers['Dropbox-API-Select-User'] = options.selectUser; | ||||
|       } | ||||
|       if (options.selectAdmin) { | ||||
|         fetchOptions.headers['Dropbox-API-Select-Admin'] = options.selectAdmin; | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     return fetch(getBaseURL(host) + path, fetchOptions).then(function (res) { | ||||
|       return getDataFromConsumer(res).then(function (data) { | ||||
|         return [res, data]; | ||||
|       }); | ||||
|     }).then(function (_ref) { | ||||
|       var _ref2 = slicedToArray(_ref, 2), | ||||
|           res = _ref2[0], | ||||
|           data = _ref2[1]; | ||||
| 
 | ||||
|       return responseHandler(res, data); | ||||
|     }); | ||||
|   }).then(function (_ref) { | ||||
|     var _ref2 = slicedToArray(_ref, 2), | ||||
|         res = _ref2[0], | ||||
|         data = _ref2[1]; | ||||
| 
 | ||||
|     return responseHandler(res, data); | ||||
|   }); | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
| function parseBodyToType$1(res) { | ||||
|  | @ -1868,53 +1951,55 @@ function parseBodyToType$1(res) { | |||
|   }); | ||||
| } | ||||
| 
 | ||||
| function uploadRequest(path, args, auth, host, accessToken, options) { | ||||
|   if (auth !== 'user') { | ||||
|     throw new Error('Unexpected auth type: ' + auth); | ||||
|   } | ||||
| 
 | ||||
|   var contents = args.contents; | ||||
| 
 | ||||
|   delete args.contents; | ||||
| 
 | ||||
|   var fetchOptions = { | ||||
|     body: contents, | ||||
|     method: 'POST', | ||||
|     headers: { | ||||
|       Authorization: 'Bearer ' + accessToken, | ||||
|       'Content-Type': 'application/octet-stream', | ||||
|       'Dropbox-API-Arg': httpHeaderSafeJson(args) | ||||
| function uploadRequest(fetch) { | ||||
|   return function uploadRequestWithFetch(path, args, auth, host, accessToken, options) { | ||||
|     if (auth !== 'user') { | ||||
|       throw new Error('Unexpected auth type: ' + auth); | ||||
|     } | ||||
| 
 | ||||
|     var contents = args.contents; | ||||
| 
 | ||||
|     delete args.contents; | ||||
| 
 | ||||
|     var fetchOptions = { | ||||
|       body: contents, | ||||
|       method: 'POST', | ||||
|       headers: { | ||||
|         Authorization: 'Bearer ' + accessToken, | ||||
|         'Content-Type': 'application/octet-stream', | ||||
|         'Dropbox-API-Arg': httpHeaderSafeJson(args) | ||||
|       } | ||||
|     }; | ||||
| 
 | ||||
|     if (options) { | ||||
|       if (options.selectUser) { | ||||
|         fetchOptions.headers['Dropbox-API-Select-User'] = options.selectUser; | ||||
|       } | ||||
|       if (options.selectAdmin) { | ||||
|         fetchOptions.headers['Dropbox-API-Select-Admin'] = options.selectAdmin; | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     return fetch(getBaseURL(host) + path, fetchOptions).then(function (res) { | ||||
|       return parseBodyToType$1(res); | ||||
|     }).then(function (_ref) { | ||||
|       var _ref2 = slicedToArray(_ref, 2), | ||||
|           res = _ref2[0], | ||||
|           data = _ref2[1]; | ||||
| 
 | ||||
|       // maintaining existing API for error codes not equal to 200 range
 | ||||
|       if (!res.ok) { | ||||
|         // eslint-disable-next-line no-throw-literal
 | ||||
|         throw { | ||||
|           error: data, | ||||
|           response: res, | ||||
|           status: res.status | ||||
|         }; | ||||
|       } | ||||
| 
 | ||||
|       return data; | ||||
|     }); | ||||
|   }; | ||||
| 
 | ||||
|   if (options) { | ||||
|     if (options.selectUser) { | ||||
|       fetchOptions.headers['Dropbox-API-Select-User'] = options.selectUser; | ||||
|     } | ||||
|     if (options.selectAdmin) { | ||||
|       fetchOptions.headers['Dropbox-API-Select-Admin'] = options.selectAdmin; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   return fetch(getBaseURL(host) + path, fetchOptions).then(function (res) { | ||||
|     return parseBodyToType$1(res); | ||||
|   }).then(function (_ref) { | ||||
|     var _ref2 = slicedToArray(_ref, 2), | ||||
|         res = _ref2[0], | ||||
|         data = _ref2[1]; | ||||
| 
 | ||||
|     // maintaining existing API for error codes not equal to 200 range
 | ||||
|     if (!res.ok) { | ||||
|       // eslint-disable-next-line no-throw-literal
 | ||||
|       throw { | ||||
|         error: data, | ||||
|         response: res, | ||||
|         status: res.status | ||||
|       }; | ||||
|     } | ||||
| 
 | ||||
|     return data; | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| function createCommonjsModule(fn, module) { | ||||
|  | @ -3850,78 +3935,76 @@ function numberIsNaN (obj) { | |||
| var buffer_1 = buffer.Buffer; | ||||
| 
 | ||||
| function parseBodyToType$2(res) { | ||||
|   var clone = res.clone(); | ||||
|   return new Promise(function (resolve) { | ||||
|     res.json().then(function (data) { | ||||
|       return resolve(data); | ||||
|     }).catch(function () { | ||||
|       return clone.text().then(function (data) { | ||||
|         return resolve(data); | ||||
|       }); | ||||
|   if (res.headers.get('Content-Type') === 'application/json') { | ||||
|     return res.json().then(function (data) { | ||||
|       return [res, data]; | ||||
|     }); | ||||
|   }).then(function (data) { | ||||
|   } | ||||
|   return res.text().then(function (data) { | ||||
|     return [res, data]; | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| function rpcRequest(path, body, auth, host, accessToken, options) { | ||||
|   var fetchOptions = { | ||||
|     method: 'POST', | ||||
|     body: body ? JSON.stringify(body) : null | ||||
|   }; | ||||
|   var headers = {}; | ||||
|   if (body) { | ||||
|     headers['Content-Type'] = 'application/json'; | ||||
|   } | ||||
|   var authHeader = ''; | ||||
| function rpcRequest(fetch) { | ||||
|   return function rpcRequestWithFetch(path, body, auth, host, accessToken, options) { | ||||
|     var fetchOptions = { | ||||
|       method: 'POST', | ||||
|       body: body ? JSON.stringify(body) : null | ||||
|     }; | ||||
|     var headers = {}; | ||||
|     if (body) { | ||||
|       headers['Content-Type'] = 'application/json'; | ||||
|     } | ||||
|     var authHeader = ''; | ||||
| 
 | ||||
|   switch (auth) { | ||||
|     case 'app': | ||||
|       if (!options.clientId || !options.clientSecret) { | ||||
|         throw new Error('A client id and secret is required for this function'); | ||||
|     switch (auth) { | ||||
|       case 'app': | ||||
|         if (!options.clientId || !options.clientSecret) { | ||||
|           throw new Error('A client id and secret is required for this function'); | ||||
|         } | ||||
|         authHeader = new buffer_1(options.clientId + ':' + options.clientSecret).toString('base64'); | ||||
|         headers.Authorization = 'Basic ' + authHeader; | ||||
|         break; | ||||
|       case 'team': | ||||
|       case 'user': | ||||
|         headers.Authorization = 'Bearer ' + accessToken; | ||||
|         break; | ||||
|       case 'noauth': | ||||
|         break; | ||||
|       default: | ||||
|         throw new Error('Unhandled auth type: ' + auth); | ||||
|     } | ||||
| 
 | ||||
|     if (options) { | ||||
|       if (options.selectUser) { | ||||
|         headers['Dropbox-API-Select-User'] = options.selectUser; | ||||
|       } | ||||
|       if (options.selectAdmin) { | ||||
|         headers['Dropbox-API-Select-Admin'] = options.selectAdmin; | ||||
|       } | ||||
|       authHeader = new buffer_1(options.clientId + ':' + options.clientSecret).toString('base64'); | ||||
|       headers.Authorization = 'Basic ' + authHeader; | ||||
|       break; | ||||
|     case 'team': | ||||
|     case 'user': | ||||
|       headers.Authorization = 'Bearer ' + accessToken; | ||||
|       break; | ||||
|     case 'noauth': | ||||
|       break; | ||||
|     default: | ||||
|       throw new Error('Unhandled auth type: ' + auth); | ||||
|   } | ||||
| 
 | ||||
|   if (options) { | ||||
|     if (options.selectUser) { | ||||
|       headers['Dropbox-API-Select-User'] = options.selectUser; | ||||
|     } | ||||
|     if (options.selectAdmin) { | ||||
|       headers['Dropbox-API-Select-Admin'] = options.selectAdmin; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   fetchOptions.headers = headers; | ||||
|   return fetch(getBaseURL(host) + path, fetchOptions).then(function (res) { | ||||
|     return parseBodyToType$2(res); | ||||
|   }).then(function (_ref) { | ||||
|     var _ref2 = slicedToArray(_ref, 2), | ||||
|         res = _ref2[0], | ||||
|         data = _ref2[1]; | ||||
| 
 | ||||
|     // maintaining existing API for error codes not equal to 200 range
 | ||||
|     if (!res.ok) { | ||||
|       // eslint-disable-next-line no-throw-literal
 | ||||
|       throw { | ||||
|         error: data, | ||||
|         response: res, | ||||
|         status: res.status | ||||
|       }; | ||||
|     } | ||||
| 
 | ||||
|     return data; | ||||
|   }); | ||||
|     fetchOptions.headers = headers; | ||||
|     return fetch(getBaseURL(host) + path, fetchOptions).then(function (res) { | ||||
|       return parseBodyToType$2(res); | ||||
|     }).then(function (_ref) { | ||||
|       var _ref2 = slicedToArray(_ref, 2), | ||||
|           res = _ref2[0], | ||||
|           data = _ref2[1]; | ||||
| 
 | ||||
|       // maintaining existing API for error codes not equal to 200 range
 | ||||
|       if (!res.ok) { | ||||
|         // eslint-disable-next-line no-throw-literal
 | ||||
|         throw { | ||||
|           error: data, | ||||
|           response: res, | ||||
|           status: res.status | ||||
|         }; | ||||
|       } | ||||
| 
 | ||||
|       return data; | ||||
|     }); | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
| /* eslint-disable */ | ||||
|  | @ -4018,6 +4101,7 @@ if (!Array.prototype.includes) { | |||
|  * shared between Dropbox and DropboxTeam classes. It is marked as private so | ||||
|  * that it doesn't show up in the docs because it is never used directly. | ||||
|  * @arg {Object} options | ||||
|  * @arg {Function} [options.fetch] - fetch library for making requests. | ||||
|  * @arg {String} [options.accessToken] - An access token for making authenticated | ||||
|  * requests. | ||||
|  * @arg {String} [options.clientId] - The client id for your app. Used to create | ||||
|  | @ -4054,6 +4138,10 @@ var DropboxBase = function () { | |||
|     this.clientSecret = options.clientSecret; | ||||
|     this.selectUser = options.selectUser; | ||||
|     this.selectAdmin = options.selectAdmin; | ||||
|     this.fetch = options.fetch || fetch; | ||||
|     if (!options.fetch) { | ||||
|       console.warn('Global fetch is deprecated and will be unsupported in a future version. Please pass fetch function as option when instantiating dropbox instance: new Dropbox({fetch})'); | ||||
|     } // eslint-disable-line no-console
 | ||||
|   } | ||||
| 
 | ||||
|   /** | ||||
|  | @ -4198,7 +4286,7 @@ var DropboxBase = function () { | |||
|         } | ||||
|       }; | ||||
| 
 | ||||
|       return fetch(path, fetchOptions).then(function (res) { | ||||
|       return this.fetch(path, fetchOptions).then(function (res) { | ||||
|         return parseBodyToType(res); | ||||
|       }).then(function (_ref) { | ||||
|         var _ref2 = slicedToArray(_ref, 2), | ||||
|  | @ -4327,7 +4415,7 @@ var DropboxBase = function () { | |||
|     key: 'getRpcRequest', | ||||
|     value: function getRpcRequest() { | ||||
|       if (this.rpcRequest === undefined) { | ||||
|         this.rpcRequest = rpcRequest; | ||||
|         this.rpcRequest = rpcRequest(this.fetch); | ||||
|       } | ||||
|       return this.rpcRequest; | ||||
|     } | ||||
|  | @ -4340,7 +4428,7 @@ var DropboxBase = function () { | |||
|     key: 'getDownloadRequest', | ||||
|     value: function getDownloadRequest() { | ||||
|       if (this.downloadRequest === undefined) { | ||||
|         this.downloadRequest = downloadRequest; | ||||
|         this.downloadRequest = downloadRequest(this.fetch); | ||||
|       } | ||||
|       return this.downloadRequest; | ||||
|     } | ||||
|  | @ -4353,7 +4441,7 @@ var DropboxBase = function () { | |||
|     key: 'getUploadRequest', | ||||
|     value: function getUploadRequest() { | ||||
|       if (this.uploadRequest === undefined) { | ||||
|         this.uploadRequest = uploadRequest; | ||||
|         this.uploadRequest = uploadRequest(this.fetch); | ||||
|       } | ||||
|       return this.uploadRequest; | ||||
|     } | ||||
|  | @ -4367,6 +4455,7 @@ var DropboxBase = function () { | |||
|  * @classdesc The Dropbox SDK class that provides methods to read, write and | ||||
|  * create files or folders in a user's Dropbox. | ||||
|  * @arg {Object} options | ||||
|  * @arg {Function} [options.fetch] - fetch library for making requests. | ||||
|  * @arg {String} [options.accessToken] - An access token for making authenticated | ||||
|  * requests. | ||||
|  * @arg {String} [options.clientId] - The client id for your app. Used to create | ||||
|  | @ -4807,6 +4896,31 @@ routes$1.teamMembersListContinue = function (arg) { | |||
|   return this.request('team/members/list/continue', arg, 'team', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Moves removed member's files to a different member. This endpoint initiates | ||||
|  * an asynchronous job. To obtain the final result of the job, the client should | ||||
|  * periodically poll members/move_former_member_files/job_status/check. | ||||
|  * Permission : Team member management. | ||||
|  * @function DropboxTeam#teamMembersMoveFormerMemberFiles | ||||
|  * @arg {TeamMembersDataTransferArg} arg - The request parameters. | ||||
|  * @returns {Promise.<AsyncLaunchEmptyResult, Error.<TeamMembersTransferFormerMembersFilesError>>} | ||||
|  */ | ||||
| routes$1.teamMembersMoveFormerMemberFiles = function (arg) { | ||||
|   return this.request('team/members/move_former_member_files', arg, 'team', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Once an async_job_id is returned from members/move_former_member_files , use | ||||
|  * this to poll the status of the asynchronous request. Permission : Team member | ||||
|  * management. | ||||
|  * @function DropboxTeam#teamMembersMoveFormerMemberFilesJobStatusCheck | ||||
|  * @arg {AsyncPollArg} arg - The request parameters. | ||||
|  * @returns {Promise.<AsyncPollEmptyResult, Error.<AsyncPollError>>} | ||||
|  */ | ||||
| routes$1.teamMembersMoveFormerMemberFilesJobStatusCheck = function (arg) { | ||||
|   return this.request('team/members/move_former_member_files/job_status/check', arg, 'team', 'api', 'rpc'); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Recover a deleted member. Permission : Team member management Exactly one of | ||||
|  * team_member_id, email, or external_id must be provided to identify the user | ||||
|  | @ -4914,7 +5028,7 @@ routes$1.teamMembersUnsuspend = function (arg) { | |||
|  * be owned by other users or other teams. Duplicates may occur in the list. | ||||
|  * @function DropboxTeam#teamNamespacesList | ||||
|  * @arg {TeamTeamNamespacesListArg} arg - The request parameters. | ||||
|  * @returns {Promise.<TeamTeamNamespacesListResult, Error.<void>>} | ||||
|  * @returns {Promise.<TeamTeamNamespacesListResult, Error.<TeamTeamNamespacesListError>>} | ||||
|  */ | ||||
| routes$1.teamNamespacesList = function (arg) { | ||||
|   return this.request('team/namespaces/list', arg, 'team', 'api', 'rpc'); | ||||
							
								
								
									
										0
									
								
								sync/vendor/zipjs/LICENSE → vendor/zipjs-browserify/LICENSE
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								sync/vendor/zipjs/LICENSE → vendor/zipjs-browserify/LICENSE
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										8
									
								
								vendor/zipjs-browserify/README.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								vendor/zipjs-browserify/README.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| ## zipjs-browserify v1.0.1 | ||||
| 
 | ||||
| zipjs installed via npm - source repo: | ||||
| 
 | ||||
| - https://github.com/juliangruber/zipjs-browserify/tree/v1.0.1/vendor/deflate.js | ||||
| - https://github.com/juliangruber/zipjs-browserify/tree/v1.0.1/vendor/inflate.js | ||||
| - https://github.com/juliangruber/zipjs-browserify/tree/v1.0.1/vendor/z-worker.js | ||||
| - https://github.com/juliangruber/zipjs-browserify/tree/v1.0.1/vendor/zip.js | ||||
							
								
								
									
										0
									
								
								sync/vendor/zipjs/deflate.js → vendor/zipjs-browserify/deflate.js
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								sync/vendor/zipjs/deflate.js → vendor/zipjs-browserify/deflate.js
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								sync/vendor/zipjs/inflate.js → vendor/zipjs-browserify/inflate.js
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								sync/vendor/zipjs/inflate.js → vendor/zipjs-browserify/inflate.js
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								sync/vendor/zipjs/z-worker.js → vendor/zipjs-browserify/z-worker.js
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								sync/vendor/zipjs/z-worker.js → vendor/zipjs-browserify/z-worker.js
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								sync/vendor/zipjs/zip.js → vendor/zipjs-browserify/zip.js
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								sync/vendor/zipjs/zip.js → vendor/zipjs-browserify/zip.js
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user