UNPKG

238 kBSource Map (JSON)View Raw
1{"version":3,"file":"Dropbox-sdk.js","sources":["../src/constants.js","../lib/routes.js","../src/utils.js","../src/error.js","../src/response.js","../src/auth.js","../src/dropbox.js"],"sourcesContent":["export const RPC = 'rpc';\nexport const UPLOAD = 'upload';\nexport const DOWNLOAD = 'download';\n\nexport const APP_AUTH = 'app';\nexport const USER_AUTH = 'user';\nexport const TEAM_AUTH = 'team';\nexport const NO_AUTH = 'noauth';\n","// Auto-generated by Stone, do not modify.\nvar routes = {};\n\n/**\n * Sets a user's profile photo.\n * @function Dropbox#accountSetProfilePhoto\n * @arg {AccountSetProfilePhotoArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AccountSetProfilePhotoResult>, Error.<AccountSetProfilePhotoError>>}\n */\nroutes.accountSetProfilePhoto = function (arg) {\n return this.request('account/set_profile_photo', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Creates an OAuth 2.0 access token from the supplied OAuth 1.0 access token.\n * @function Dropbox#authTokenFromOauth1\n * @arg {AuthTokenFromOAuth1Arg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AuthTokenFromOAuth1Result>, Error.<AuthTokenFromOAuth1Error>>}\n */\nroutes.authTokenFromOauth1 = function (arg) {\n return this.request('auth/token/from_oauth1', arg, 'app', 'api', 'rpc');\n};\n\n/**\n * Disables the access token used to authenticate the call.\n * @function Dropbox#authTokenRevoke\n * @returns {Promise.<DropboxResponse<void>, Error.<void>>}\n */\nroutes.authTokenRevoke = function () {\n return this.request('auth/token/revoke', null, 'user', 'api', 'rpc');\n};\n\n/**\n * This endpoint performs App Authentication, validating the supplied app key\n * and secret, and returns the supplied string, to allow you to test your code\n * and connection to the Dropbox API. It has no other effect. If you receive an\n * HTTP 200 response with the supplied query, it indicates at least part of the\n * Dropbox API infrastructure is working and that the app key and secret valid.\n * @function Dropbox#checkApp\n * @arg {CheckEchoArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<CheckEchoResult>, Error.<void>>}\n */\nroutes.checkApp = function (arg) {\n return this.request('check/app', arg, 'app', 'api', 'rpc');\n};\n\n/**\n * This endpoint performs User Authentication, validating the supplied access\n * token, and returns the supplied string, to allow you to test your code and\n * connection to the Dropbox API. It has no other effect. If you receive an HTTP\n * 200 response with the supplied query, it indicates at least part of the\n * Dropbox API infrastructure is working and that the access token is valid.\n * @function Dropbox#checkUser\n * @arg {CheckEchoArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<CheckEchoResult>, Error.<void>>}\n */\nroutes.checkUser = function (arg) {\n return this.request('check/user', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Removes all manually added contacts. You'll still keep contacts who are on\n * your team or who you imported. New contacts will be added when you share.\n * @function Dropbox#contactsDeleteManualContacts\n * @returns {Promise.<DropboxResponse<void>, Error.<void>>}\n */\nroutes.contactsDeleteManualContacts = function () {\n return this.request('contacts/delete_manual_contacts', null, 'user', 'api', 'rpc');\n};\n\n/**\n * Removes manually added contacts from the given list.\n * @function Dropbox#contactsDeleteManualContactsBatch\n * @arg {ContactsDeleteManualContactsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<ContactsDeleteManualContactsError>>}\n */\nroutes.contactsDeleteManualContactsBatch = function (arg) {\n return this.request('contacts/delete_manual_contacts_batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Add property groups to a Dropbox file. See templates/add_for_user or\n * templates/add_for_team to create new templates.\n * @function Dropbox#filePropertiesPropertiesAdd\n * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilePropertiesAddPropertiesError>>}\n */\nroutes.filePropertiesPropertiesAdd = function (arg) {\n return this.request('file_properties/properties/add', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Overwrite property groups associated with a file. This endpoint should be\n * used instead of properties/update when property groups are being updated via\n * a \"snapshot\" instead of via a \"delta\". In other words, this endpoint will\n * delete all omitted fields from a property group, whereas properties/update\n * will only delete fields that are explicitly marked for deletion.\n * @function Dropbox#filePropertiesPropertiesOverwrite\n * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilePropertiesInvalidPropertyGroupError>>}\n */\nroutes.filePropertiesPropertiesOverwrite = function (arg) {\n return this.request('file_properties/properties/overwrite', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Permanently removes the specified property group from the file. To remove\n * specific property field key value pairs, see properties/update. To update a\n * template, see templates/update_for_user or templates/update_for_team. To\n * remove a template, see templates/remove_for_user or\n * templates/remove_for_team.\n * @function Dropbox#filePropertiesPropertiesRemove\n * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilePropertiesRemovePropertiesError>>}\n */\nroutes.filePropertiesPropertiesRemove = function (arg) {\n return this.request('file_properties/properties/remove', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Search across property templates for particular property field values.\n * @function Dropbox#filePropertiesPropertiesSearch\n * @arg {FilePropertiesPropertiesSearchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesPropertiesSearchResult>, Error.<FilePropertiesPropertiesSearchError>>}\n */\nroutes.filePropertiesPropertiesSearch = function (arg) {\n return this.request('file_properties/properties/search', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from properties/search, use this to paginate\n * through all search results.\n * @function Dropbox#filePropertiesPropertiesSearchContinue\n * @arg {FilePropertiesPropertiesSearchContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesPropertiesSearchResult>, Error.<FilePropertiesPropertiesSearchContinueError>>}\n */\nroutes.filePropertiesPropertiesSearchContinue = function (arg) {\n return this.request('file_properties/properties/search/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Add, update or remove properties associated with the supplied file and\n * templates. This endpoint should be used instead of properties/overwrite when\n * property groups are being updated via a \"delta\" instead of via a \"snapshot\" .\n * In other words, this endpoint will not delete any omitted fields from a\n * property group, whereas properties/overwrite will delete any fields that are\n * omitted from a property group.\n * @function Dropbox#filePropertiesPropertiesUpdate\n * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilePropertiesUpdatePropertiesError>>}\n */\nroutes.filePropertiesPropertiesUpdate = function (arg) {\n return this.request('file_properties/properties/update', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Add a template associated with a team. See properties/add to add properties\n * to a file or folder. Note: this endpoint will create team-owned templates.\n * @function Dropbox#filePropertiesTemplatesAddForTeam\n * @arg {FilePropertiesAddTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesAddTemplateResult>, Error.<FilePropertiesModifyTemplateError>>}\n */\nroutes.filePropertiesTemplatesAddForTeam = function (arg) {\n return this.request('file_properties/templates/add_for_team', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Add a template associated with a user. See properties/add to add properties\n * to a file. This endpoint can't be called on a team member or admin's behalf.\n * @function Dropbox#filePropertiesTemplatesAddForUser\n * @arg {FilePropertiesAddTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesAddTemplateResult>, Error.<FilePropertiesModifyTemplateError>>}\n */\nroutes.filePropertiesTemplatesAddForUser = function (arg) {\n return this.request('file_properties/templates/add_for_user', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get the schema for a specified template.\n * @function Dropbox#filePropertiesTemplatesGetForTeam\n * @arg {FilePropertiesGetTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesGetTemplateResult>, Error.<FilePropertiesTemplateError>>}\n */\nroutes.filePropertiesTemplatesGetForTeam = function (arg) {\n return this.request('file_properties/templates/get_for_team', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Get the schema for a specified template. This endpoint can't be called on a\n * team member or admin's behalf.\n * @function Dropbox#filePropertiesTemplatesGetForUser\n * @arg {FilePropertiesGetTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesGetTemplateResult>, Error.<FilePropertiesTemplateError>>}\n */\nroutes.filePropertiesTemplatesGetForUser = function (arg) {\n return this.request('file_properties/templates/get_for_user', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get the template identifiers for a team. To get the schema of each template\n * use templates/get_for_team.\n * @function Dropbox#filePropertiesTemplatesListForTeam\n * @returns {Promise.<DropboxResponse<FilePropertiesListTemplateResult>, Error.<FilePropertiesTemplateError>>}\n */\nroutes.filePropertiesTemplatesListForTeam = function () {\n return this.request('file_properties/templates/list_for_team', null, 'team', 'api', 'rpc');\n};\n\n/**\n * Get the template identifiers for a team. To get the schema of each template\n * use templates/get_for_user. This endpoint can't be called on a team member or\n * admin's behalf.\n * @function Dropbox#filePropertiesTemplatesListForUser\n * @returns {Promise.<DropboxResponse<FilePropertiesListTemplateResult>, Error.<FilePropertiesTemplateError>>}\n */\nroutes.filePropertiesTemplatesListForUser = function () {\n return this.request('file_properties/templates/list_for_user', null, 'user', 'api', 'rpc');\n};\n\n/**\n * Permanently removes the specified template created from\n * templates/add_for_user. All properties associated with the template will also\n * be removed. This action cannot be undone.\n * @function Dropbox#filePropertiesTemplatesRemoveForTeam\n * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilePropertiesTemplateError>>}\n */\nroutes.filePropertiesTemplatesRemoveForTeam = function (arg) {\n return this.request('file_properties/templates/remove_for_team', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Permanently removes the specified template created from\n * templates/add_for_user. All properties associated with the template will also\n * be removed. This action cannot be undone.\n * @function Dropbox#filePropertiesTemplatesRemoveForUser\n * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilePropertiesTemplateError>>}\n */\nroutes.filePropertiesTemplatesRemoveForUser = function (arg) {\n return this.request('file_properties/templates/remove_for_user', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Update a template associated with a team. This route can update the template\n * name, the template description and add optional properties to templates.\n * @function Dropbox#filePropertiesTemplatesUpdateForTeam\n * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesUpdateTemplateResult>, Error.<FilePropertiesModifyTemplateError>>}\n */\nroutes.filePropertiesTemplatesUpdateForTeam = function (arg) {\n return this.request('file_properties/templates/update_for_team', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Update a template associated with a user. This route can update the template\n * name, the template description and add optional properties to templates. This\n * endpoint can't be called on a team member or admin's behalf.\n * @function Dropbox#filePropertiesTemplatesUpdateForUser\n * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesUpdateTemplateResult>, Error.<FilePropertiesModifyTemplateError>>}\n */\nroutes.filePropertiesTemplatesUpdateForUser = function (arg) {\n return this.request('file_properties/templates/update_for_user', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the total number of file requests owned by this user. Includes both\n * open and closed file requests.\n * @function Dropbox#fileRequestsCount\n * @returns {Promise.<DropboxResponse<FileRequestsCountFileRequestsResult>, Error.<FileRequestsCountFileRequestsError>>}\n */\nroutes.fileRequestsCount = function () {\n return this.request('file_requests/count', null, 'user', 'api', 'rpc');\n};\n\n/**\n * Creates a file request for this user.\n * @function Dropbox#fileRequestsCreate\n * @arg {FileRequestsCreateFileRequestArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FileRequestsFileRequest>, Error.<FileRequestsCreateFileRequestError>>}\n */\nroutes.fileRequestsCreate = function (arg) {\n return this.request('file_requests/create', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Delete a batch of closed file requests.\n * @function Dropbox#fileRequestsDelete\n * @arg {FileRequestsDeleteFileRequestArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FileRequestsDeleteFileRequestsResult>, Error.<FileRequestsDeleteFileRequestError>>}\n */\nroutes.fileRequestsDelete = function (arg) {\n return this.request('file_requests/delete', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Delete all closed file requests owned by this user.\n * @function Dropbox#fileRequestsDeleteAllClosed\n * @returns {Promise.<DropboxResponse<FileRequestsDeleteAllClosedFileRequestsResult>, Error.<FileRequestsDeleteAllClosedFileRequestsError>>}\n */\nroutes.fileRequestsDeleteAllClosed = function () {\n return this.request('file_requests/delete_all_closed', null, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the specified file request.\n * @function Dropbox#fileRequestsGet\n * @arg {FileRequestsGetFileRequestArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FileRequestsFileRequest>, Error.<FileRequestsGetFileRequestError>>}\n */\nroutes.fileRequestsGet = function (arg) {\n return this.request('file_requests/get', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns a list of file requests owned by this user. For apps with the app\n * folder permission, this will only return file requests with destinations in\n * the app folder.\n * @function Dropbox#fileRequestsListV2\n * @arg {FileRequestsListFileRequestsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FileRequestsListFileRequestsV2Result>, Error.<FileRequestsListFileRequestsError>>}\n */\nroutes.fileRequestsListV2 = function (arg) {\n return this.request('file_requests/list_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns a list of file requests owned by this user. For apps with the app\n * folder permission, this will only return file requests with destinations in\n * the app folder.\n * @function Dropbox#fileRequestsList\n * @returns {Promise.<DropboxResponse<FileRequestsListFileRequestsResult>, Error.<FileRequestsListFileRequestsError>>}\n */\nroutes.fileRequestsList = function () {\n return this.request('file_requests/list', null, 'user', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from list_v2, use this to paginate through\n * all file requests. The cursor must come from a previous call to list_v2 or\n * list/continue.\n * @function Dropbox#fileRequestsListContinue\n * @arg {FileRequestsListFileRequestsContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FileRequestsListFileRequestsV2Result>, Error.<FileRequestsListFileRequestsContinueError>>}\n */\nroutes.fileRequestsListContinue = function (arg) {\n return this.request('file_requests/list/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Update a file request.\n * @function Dropbox#fileRequestsUpdate\n * @arg {FileRequestsUpdateFileRequestArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FileRequestsFileRequest>, Error.<FileRequestsUpdateFileRequestError>>}\n */\nroutes.fileRequestsUpdate = function (arg) {\n return this.request('file_requests/update', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the metadata for a file or folder. This is an alpha endpoint\n * compatible with the properties API. Note: Metadata for the root folder is\n * unsupported.\n * @function Dropbox#filesAlphaGetMetadata\n * @deprecated\n * @arg {FilesAlphaGetMetadataArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)>, Error.<FilesAlphaGetMetadataError>>}\n */\nroutes.filesAlphaGetMetadata = function (arg) {\n return this.request('files/alpha/get_metadata', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Create a new file with the contents provided in the request. Note that this\n * endpoint is part of the properties API alpha and is slightly different from\n * upload. Do not use this to upload a file larger than 150 MB. Instead, create\n * an upload session with upload_session/start.\n * @function Dropbox#filesAlphaUpload\n * @deprecated\n * @arg {FilesCommitInfoWithProperties} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesFileMetadata>, Error.<FilesUploadErrorWithProperties>>}\n */\nroutes.filesAlphaUpload = function (arg) {\n return this.request('files/alpha/upload', arg, 'user', 'content', 'upload');\n};\n\n/**\n * Copy a file or folder to a different location in the user's Dropbox. If the\n * source path is a folder all its contents will be copied.\n * @function Dropbox#filesCopyV2\n * @arg {FilesRelocationArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesRelocationResult>, Error.<FilesRelocationError>>}\n */\nroutes.filesCopyV2 = function (arg) {\n return this.request('files/copy_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Copy a file or folder to a different location in the user's Dropbox. If the\n * source path is a folder all its contents will be copied.\n * @function Dropbox#filesCopy\n * @deprecated\n * @arg {FilesRelocationArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)>, Error.<FilesRelocationError>>}\n */\nroutes.filesCopy = function (arg) {\n return this.request('files/copy', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Copy multiple files or folders to different locations at once in the user's\n * Dropbox. This route will replace copy_batch. The main difference is this\n * route will return status for each entry, while copy_batch raises failure if\n * any entry fails. This route will either finish synchronously, or return a job\n * ID and do the async copy job in background. Please use copy_batch/check_v2 to\n * check the job status.\n * @function Dropbox#filesCopyBatchV2\n * @arg {Object} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesRelocationBatchV2Launch>, Error.<void>>}\n */\nroutes.filesCopyBatchV2 = function (arg) {\n return this.request('files/copy_batch_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Copy multiple files or folders to different locations at once in the user's\n * Dropbox. This route will return job ID immediately and do the async copy job\n * in background. Please use copy_batch/check to check the job status.\n * @function Dropbox#filesCopyBatch\n * @deprecated\n * @arg {FilesRelocationBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesRelocationBatchLaunch>, Error.<void>>}\n */\nroutes.filesCopyBatch = function (arg) {\n return this.request('files/copy_batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job for copy_batch_v2. It returns list\n * of results for each entry.\n * @function Dropbox#filesCopyBatchCheckV2\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesRelocationBatchV2JobStatus>, Error.<AsyncPollError>>}\n */\nroutes.filesCopyBatchCheckV2 = function (arg) {\n return this.request('files/copy_batch/check_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job for copy_batch. If success, it\n * returns list of results for each entry.\n * @function Dropbox#filesCopyBatchCheck\n * @deprecated\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesRelocationBatchJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.filesCopyBatchCheck = function (arg) {\n return this.request('files/copy_batch/check', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get a copy reference to a file or folder. This reference string can be used\n * to save that file or folder to another user's Dropbox by passing it to\n * copy_reference/save.\n * @function Dropbox#filesCopyReferenceGet\n * @arg {FilesGetCopyReferenceArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesGetCopyReferenceResult>, Error.<FilesGetCopyReferenceError>>}\n */\nroutes.filesCopyReferenceGet = function (arg) {\n return this.request('files/copy_reference/get', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Save a copy reference returned by copy_reference/get to the user's Dropbox.\n * @function Dropbox#filesCopyReferenceSave\n * @arg {FilesSaveCopyReferenceArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesSaveCopyReferenceResult>, Error.<FilesSaveCopyReferenceError>>}\n */\nroutes.filesCopyReferenceSave = function (arg) {\n return this.request('files/copy_reference/save', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Create a folder at a given path.\n * @function Dropbox#filesCreateFolderV2\n * @arg {FilesCreateFolderArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesCreateFolderResult>, Error.<FilesCreateFolderError>>}\n */\nroutes.filesCreateFolderV2 = function (arg) {\n return this.request('files/create_folder_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Create a folder at a given path.\n * @function Dropbox#filesCreateFolder\n * @deprecated\n * @arg {FilesCreateFolderArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesFolderMetadata>, Error.<FilesCreateFolderError>>}\n */\nroutes.filesCreateFolder = function (arg) {\n return this.request('files/create_folder', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Create multiple folders at once. This route is asynchronous for large\n * batches, which returns a job ID immediately and runs the create folder batch\n * asynchronously. Otherwise, creates the folders and returns the result\n * synchronously for smaller inputs. You can force asynchronous behaviour by\n * using the CreateFolderBatchArg.force_async flag. Use\n * create_folder_batch/check to check the job status.\n * @function Dropbox#filesCreateFolderBatch\n * @arg {FilesCreateFolderBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesCreateFolderBatchLaunch>, Error.<void>>}\n */\nroutes.filesCreateFolderBatch = function (arg) {\n return this.request('files/create_folder_batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job for create_folder_batch. If\n * success, it returns list of result for each entry.\n * @function Dropbox#filesCreateFolderBatchCheck\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesCreateFolderBatchJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.filesCreateFolderBatchCheck = function (arg) {\n return this.request('files/create_folder_batch/check', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Delete the file or folder at a given path. If the path is a folder, all its\n * contents will be deleted too. A successful response indicates that the file\n * or folder was deleted. The returned metadata will be the corresponding\n * FileMetadata or FolderMetadata for the item at time of deletion, and not a\n * DeletedMetadata object.\n * @function Dropbox#filesDeleteV2\n * @arg {FilesDeleteArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesDeleteResult>, Error.<FilesDeleteError>>}\n */\nroutes.filesDeleteV2 = function (arg) {\n return this.request('files/delete_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Delete the file or folder at a given path. If the path is a folder, all its\n * contents will be deleted too. A successful response indicates that the file\n * or folder was deleted. The returned metadata will be the corresponding\n * FileMetadata or FolderMetadata for the item at time of deletion, and not a\n * DeletedMetadata object.\n * @function Dropbox#filesDelete\n * @deprecated\n * @arg {FilesDeleteArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)>, Error.<FilesDeleteError>>}\n */\nroutes.filesDelete = function (arg) {\n return this.request('files/delete', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Delete multiple files/folders at once. This route is asynchronous, which\n * returns a job ID immediately and runs the delete batch asynchronously. Use\n * delete_batch/check to check the job status.\n * @function Dropbox#filesDeleteBatch\n * @arg {FilesDeleteBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesDeleteBatchLaunch>, Error.<void>>}\n */\nroutes.filesDeleteBatch = function (arg) {\n return this.request('files/delete_batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job for delete_batch. If success, it\n * returns list of result for each entry.\n * @function Dropbox#filesDeleteBatchCheck\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesDeleteBatchJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.filesDeleteBatchCheck = function (arg) {\n return this.request('files/delete_batch/check', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Download a file from a user's Dropbox.\n * @function Dropbox#filesDownload\n * @arg {FilesDownloadArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesFileMetadata>, Error.<FilesDownloadError>>}\n */\nroutes.filesDownload = function (arg) {\n return this.request('files/download', arg, 'user', 'content', 'download');\n};\n\n/**\n * Download a folder from the user's Dropbox, as a zip file. The folder must be\n * less than 20 GB in size and have fewer than 10,000 total files. The input\n * cannot be a single file. Any single file must be less than 4GB in size.\n * @function Dropbox#filesDownloadZip\n * @arg {FilesDownloadZipArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesDownloadZipResult>, Error.<FilesDownloadZipError>>}\n */\nroutes.filesDownloadZip = function (arg) {\n return this.request('files/download_zip', arg, 'user', 'content', 'download');\n};\n\n/**\n * Export a file from a user's Dropbox. This route only supports exporting files\n * that cannot be downloaded directly and whose ExportResult.file_metadata has\n * ExportInfo.export_as populated.\n * @function Dropbox#filesExport\n * @arg {FilesExportArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesExportResult>, Error.<FilesExportError>>}\n */\nroutes.filesExport = function (arg) {\n return this.request('files/export', arg, 'user', 'content', 'download');\n};\n\n/**\n * Return the lock metadata for the given list of paths.\n * @function Dropbox#filesGetFileLockBatch\n * @arg {FilesLockFileBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesLockFileBatchResult>, Error.<FilesLockFileError>>}\n */\nroutes.filesGetFileLockBatch = function (arg) {\n return this.request('files/get_file_lock_batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the metadata for a file or folder. Note: Metadata for the root folder\n * is unsupported.\n * @function Dropbox#filesGetMetadata\n * @arg {FilesGetMetadataArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)>, Error.<FilesGetMetadataError>>}\n */\nroutes.filesGetMetadata = function (arg) {\n return this.request('files/get_metadata', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get a preview for a file. Currently, PDF previews are generated for files\n * with the following extensions: .ai, .doc, .docm, .docx, .eps, .gdoc,\n * .gslides, .odp, .odt, .pps, .ppsm, .ppsx, .ppt, .pptm, .pptx, .rtf. HTML\n * previews are generated for files with the following extensions: .csv, .ods,\n * .xls, .xlsm, .gsheet, .xlsx. Other formats will return an unsupported\n * extension error.\n * @function Dropbox#filesGetPreview\n * @arg {FilesPreviewArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesFileMetadata>, Error.<FilesPreviewError>>}\n */\nroutes.filesGetPreview = function (arg) {\n return this.request('files/get_preview', arg, 'user', 'content', 'download');\n};\n\n/**\n * Get a temporary link to stream content of a file. This link will expire in\n * four hours and afterwards you will get 410 Gone. This URL should not be used\n * to display content directly in the browser. The Content-Type of the link is\n * determined automatically by the file's mime type.\n * @function Dropbox#filesGetTemporaryLink\n * @arg {FilesGetTemporaryLinkArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesGetTemporaryLinkResult>, Error.<FilesGetTemporaryLinkError>>}\n */\nroutes.filesGetTemporaryLink = function (arg) {\n return this.request('files/get_temporary_link', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get a one-time use temporary upload link to upload a file to a Dropbox\n * location. This endpoint acts as a delayed upload. The returned temporary\n * upload link may be used to make a POST request with the data to be uploaded.\n * The upload will then be perfomed with the CommitInfo previously provided to\n * get_temporary_upload_link but evaluated only upon consumption. Hence, errors\n * stemming from invalid CommitInfo with respect to the state of the user's\n * Dropbox will only be communicated at consumption time. Additionally, these\n * errors are surfaced as generic HTTP 409 Conflict responses, potentially\n * hiding issue details. The maximum temporary upload link duration is 4 hours.\n * Upon consumption or expiration, a new link will have to be generated.\n * Multiple links may exist for a specific upload path at any given time. The\n * POST request on the temporary upload link must have its Content-Type set to\n * \"application/octet-stream\". Example temporary upload link consumption\n * request: curl -X POST\n * https://content.dropboxapi.com/apitul/1/bNi2uIYF51cVBND --header\n * \"Content-Type: application/octet-stream\" --data-binary @local_file.txt A\n * successful temporary upload link consumption request returns the content hash\n * of the uploaded data in JSON format. Example succesful temporary upload link\n * consumption response: {\"content-hash\":\n * \"599d71033d700ac892a0e48fa61b125d2f5994\"} An unsuccessful temporary upload\n * link consumption request returns any of the following status codes: HTTP 400\n * Bad Request: Content-Type is not one of application/octet-stream and\n * text/plain or request is invalid. HTTP 409 Conflict: The temporary upload\n * link does not exist or is currently unavailable, the upload failed, or\n * another error happened. HTTP 410 Gone: The temporary upload link is expired\n * or consumed. Example unsuccessful temporary upload link consumption\n * response: Temporary upload link has been recently consumed.\n * @function Dropbox#filesGetTemporaryUploadLink\n * @arg {FilesGetTemporaryUploadLinkArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesGetTemporaryUploadLinkResult>, Error.<void>>}\n */\nroutes.filesGetTemporaryUploadLink = function (arg) {\n return this.request('files/get_temporary_upload_link', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get a thumbnail for an image. This method currently supports files with the\n * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp.\n * Photos that are larger than 20MB in size won't be converted to a thumbnail.\n * @function Dropbox#filesGetThumbnail\n * @arg {FilesThumbnailArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesFileMetadata>, Error.<FilesThumbnailError>>}\n */\nroutes.filesGetThumbnail = function (arg) {\n return this.request('files/get_thumbnail', arg, 'user', 'content', 'download');\n};\n\n/**\n * Get a thumbnail for an image. This method currently supports files with the\n * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp.\n * Photos that are larger than 20MB in size won't be converted to a thumbnail.\n * @function Dropbox#filesGetThumbnailV2\n * @arg {FilesThumbnailV2Arg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesPreviewResult>, Error.<FilesThumbnailV2Error>>}\n */\nroutes.filesGetThumbnailV2 = function (arg) {\n return this.request('files/get_thumbnail_v2', arg, 'app, user', 'content', 'download');\n};\n\n/**\n * Get thumbnails for a list of images. We allow up to 25 thumbnails in a single\n * batch. This method currently supports files with the following file\n * extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. Photos that\n * are larger than 20MB in size won't be converted to a thumbnail.\n * @function Dropbox#filesGetThumbnailBatch\n * @arg {FilesGetThumbnailBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesGetThumbnailBatchResult>, Error.<FilesGetThumbnailBatchError>>}\n */\nroutes.filesGetThumbnailBatch = function (arg) {\n return this.request('files/get_thumbnail_batch', arg, 'user', 'content', 'rpc');\n};\n\n/**\n * Starts returning the contents of a folder. If the result's\n * ListFolderResult.has_more field is true, call list_folder/continue with the\n * returned ListFolderResult.cursor to retrieve more entries. If you're using\n * ListFolderArg.recursive set to true to keep a local cache of the contents of\n * a Dropbox account, iterate through each entry in order and process them as\n * follows to keep your local state in sync: For each FileMetadata, store the\n * new entry at the given path in your local state. If the required parent\n * folders don't exist yet, create them. If there's already something else at\n * the given path, replace it and remove all its children. For each\n * FolderMetadata, store the new entry at the given path in your local state. If\n * the required parent folders don't exist yet, create them. If there's already\n * something else at the given path, replace it but leave the children as they\n * are. Check the new entry's FolderSharingInfo.read_only and set all its\n * children's read-only statuses to match. For each DeletedMetadata, if your\n * local state has something at the given path, remove it and all its children.\n * If there's nothing at the given path, ignore this entry. Note:\n * auth.RateLimitError may be returned if multiple list_folder or\n * list_folder/continue calls with same parameters are made simultaneously by\n * same API app for same user. If your app implements retry logic, please hold\n * off the retry until the previous request finishes.\n * @function Dropbox#filesListFolder\n * @arg {FilesListFolderArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesListFolderResult>, Error.<FilesListFolderError>>}\n */\nroutes.filesListFolder = function (arg) {\n return this.request('files/list_folder', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from list_folder, use this to paginate\n * through all files and retrieve updates to the folder, following the same\n * rules as documented for list_folder.\n * @function Dropbox#filesListFolderContinue\n * @arg {FilesListFolderContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesListFolderResult>, Error.<FilesListFolderContinueError>>}\n */\nroutes.filesListFolderContinue = function (arg) {\n return this.request('files/list_folder/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * A way to quickly get a cursor for the folder's state. Unlike list_folder,\n * list_folder/get_latest_cursor doesn't return any entries. This endpoint is\n * for app which only needs to know about new files and modifications and\n * doesn't need to know about files that already exist in Dropbox.\n * @function Dropbox#filesListFolderGetLatestCursor\n * @arg {FilesListFolderArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesListFolderGetLatestCursorResult>, Error.<FilesListFolderError>>}\n */\nroutes.filesListFolderGetLatestCursor = function (arg) {\n return this.request('files/list_folder/get_latest_cursor', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * A longpoll endpoint to wait for changes on an account. In conjunction with\n * list_folder/continue, this call gives you a low-latency way to monitor an\n * account for file changes. The connection will block until there are changes\n * available or a timeout occurs. This endpoint is useful mostly for client-side\n * apps. If you're looking for server-side notifications, check out our webhooks\n * documentation https://www.dropbox.com/developers/reference/webhooks.\n * @function Dropbox#filesListFolderLongpoll\n * @arg {FilesListFolderLongpollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesListFolderLongpollResult>, Error.<FilesListFolderLongpollError>>}\n */\nroutes.filesListFolderLongpoll = function (arg) {\n return this.request('files/list_folder/longpoll', arg, 'noauth', 'notify', 'rpc');\n};\n\n/**\n * Returns revisions for files based on a file path or a file id. The file path\n * or file id is identified from the latest file entry at the given file path or\n * id. This end point allows your app to query either by file path or file id by\n * setting the mode parameter appropriately. In the ListRevisionsMode.path\n * (default) mode, all revisions at the same file path as the latest file entry\n * are returned. If revisions with the same file id are desired, then mode must\n * be set to ListRevisionsMode.id. The ListRevisionsMode.id mode is useful to\n * retrieve revisions for a given file across moves or renames.\n * @function Dropbox#filesListRevisions\n * @arg {FilesListRevisionsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesListRevisionsResult>, Error.<FilesListRevisionsError>>}\n */\nroutes.filesListRevisions = function (arg) {\n return this.request('files/list_revisions', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Lock the files at the given paths. A locked file will be writable only by the\n * lock holder. A successful response indicates that the file has been locked.\n * Returns a list of the locked file paths and their metadata after this\n * operation.\n * @function Dropbox#filesLockFileBatch\n * @arg {FilesLockFileBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesLockFileBatchResult>, Error.<FilesLockFileError>>}\n */\nroutes.filesLockFileBatch = function (arg) {\n return this.request('files/lock_file_batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Move a file or folder to a different location in the user's Dropbox. If the\n * source path is a folder all its contents will be moved. Note that we do not\n * currently support case-only renaming.\n * @function Dropbox#filesMoveV2\n * @arg {FilesRelocationArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesRelocationResult>, Error.<FilesRelocationError>>}\n */\nroutes.filesMoveV2 = function (arg) {\n return this.request('files/move_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Move a file or folder to a different location in the user's Dropbox. If the\n * source path is a folder all its contents will be moved.\n * @function Dropbox#filesMove\n * @deprecated\n * @arg {FilesRelocationArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)>, Error.<FilesRelocationError>>}\n */\nroutes.filesMove = function (arg) {\n return this.request('files/move', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Move multiple files or folders to different locations at once in the user's\n * Dropbox. Note that we do not currently support case-only renaming. This route\n * will replace move_batch. The main difference is this route will return status\n * for each entry, while move_batch raises failure if any entry fails. This\n * route will either finish synchronously, or return a job ID and do the async\n * move job in background. Please use move_batch/check_v2 to check the job\n * status.\n * @function Dropbox#filesMoveBatchV2\n * @arg {FilesMoveBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesRelocationBatchV2Launch>, Error.<void>>}\n */\nroutes.filesMoveBatchV2 = function (arg) {\n return this.request('files/move_batch_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Move multiple files or folders to different locations at once in the user's\n * Dropbox. This route will return job ID immediately and do the async moving\n * job in background. Please use move_batch/check to check the job status.\n * @function Dropbox#filesMoveBatch\n * @deprecated\n * @arg {FilesRelocationBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesRelocationBatchLaunch>, Error.<void>>}\n */\nroutes.filesMoveBatch = function (arg) {\n return this.request('files/move_batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job for move_batch_v2. It returns list\n * of results for each entry.\n * @function Dropbox#filesMoveBatchCheckV2\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesRelocationBatchV2JobStatus>, Error.<AsyncPollError>>}\n */\nroutes.filesMoveBatchCheckV2 = function (arg) {\n return this.request('files/move_batch/check_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job for move_batch. If success, it\n * returns list of results for each entry.\n * @function Dropbox#filesMoveBatchCheck\n * @deprecated\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesRelocationBatchJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.filesMoveBatchCheck = function (arg) {\n return this.request('files/move_batch/check', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Creates a new Paper doc with the provided content.\n * @function Dropbox#filesPaperCreate\n * @arg {FilesPaperCreateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesPaperCreateResult>, Error.<FilesPaperCreateError>>}\n */\nroutes.filesPaperCreate = function (arg) {\n return this.request('files/paper/create', arg, 'user', 'api', 'upload');\n};\n\n/**\n * Updates an existing Paper doc with the provided content.\n * @function Dropbox#filesPaperUpdate\n * @arg {FilesPaperUpdateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesPaperUpdateResult>, Error.<FilesPaperUpdateError>>}\n */\nroutes.filesPaperUpdate = function (arg) {\n return this.request('files/paper/update', arg, 'user', 'api', 'upload');\n};\n\n/**\n * Permanently delete the file or folder at a given path (see\n * https://www.dropbox.com/en/help/40). If the given file or folder is not yet\n * deleted, this route will first delete it. It is possible for this route to\n * successfully delete, then fail to permanently delete. Note: This endpoint is\n * only available for Dropbox Business apps.\n * @function Dropbox#filesPermanentlyDelete\n * @arg {FilesDeleteArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilesDeleteError>>}\n */\nroutes.filesPermanentlyDelete = function (arg) {\n return this.request('files/permanently_delete', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * @function Dropbox#filesPropertiesAdd\n * @deprecated\n * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilePropertiesAddPropertiesError>>}\n */\nroutes.filesPropertiesAdd = function (arg) {\n return this.request('files/properties/add', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * @function Dropbox#filesPropertiesOverwrite\n * @deprecated\n * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilePropertiesInvalidPropertyGroupError>>}\n */\nroutes.filesPropertiesOverwrite = function (arg) {\n return this.request('files/properties/overwrite', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * @function Dropbox#filesPropertiesRemove\n * @deprecated\n * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilePropertiesRemovePropertiesError>>}\n */\nroutes.filesPropertiesRemove = function (arg) {\n return this.request('files/properties/remove', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * @function Dropbox#filesPropertiesTemplateGet\n * @deprecated\n * @arg {FilePropertiesGetTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesGetTemplateResult>, Error.<FilePropertiesTemplateError>>}\n */\nroutes.filesPropertiesTemplateGet = function (arg) {\n return this.request('files/properties/template/get', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * @function Dropbox#filesPropertiesTemplateList\n * @deprecated\n * @returns {Promise.<DropboxResponse<FilePropertiesListTemplateResult>, Error.<FilePropertiesTemplateError>>}\n */\nroutes.filesPropertiesTemplateList = function () {\n return this.request('files/properties/template/list', null, 'user', 'api', 'rpc');\n};\n\n/**\n * @function Dropbox#filesPropertiesUpdate\n * @deprecated\n * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilePropertiesUpdatePropertiesError>>}\n */\nroutes.filesPropertiesUpdate = function (arg) {\n return this.request('files/properties/update', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Restore a specific revision of a file to the given path.\n * @function Dropbox#filesRestore\n * @arg {FilesRestoreArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesFileMetadata>, Error.<FilesRestoreError>>}\n */\nroutes.filesRestore = function (arg) {\n return this.request('files/restore', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Save the data from a specified URL into a file in user's Dropbox. Note that\n * the transfer from the URL must complete within 5 minutes, or the operation\n * will time out and the job will fail. If the given path already exists, the\n * file will be renamed to avoid the conflict (e.g. myfile (1).txt).\n * @function Dropbox#filesSaveUrl\n * @arg {FilesSaveUrlArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesSaveUrlResult>, Error.<FilesSaveUrlError>>}\n */\nroutes.filesSaveUrl = function (arg) {\n return this.request('files/save_url', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Check the status of a save_url job.\n * @function Dropbox#filesSaveUrlCheckJobStatus\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesSaveUrlJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.filesSaveUrlCheckJobStatus = function (arg) {\n return this.request('files/save_url/check_job_status', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Searches for files and folders. Note: Recent changes will be reflected in\n * search results within a few seconds and older revisions of existing files may\n * still match your query for up to a few days.\n * @function Dropbox#filesSearch\n * @deprecated\n * @arg {FilesSearchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesSearchResult>, Error.<FilesSearchError>>}\n */\nroutes.filesSearch = function (arg) {\n return this.request('files/search', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Searches for files and folders. Note: search_v2 along with search/continue_v2\n * can only be used to retrieve a maximum of 10,000 matches. Recent changes may\n * not immediately be reflected in search results due to a short delay in\n * indexing. Duplicate results may be returned across pages. Some results may\n * not be returned.\n * @function Dropbox#filesSearchV2\n * @arg {FilesSearchV2Arg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesSearchV2Result>, Error.<FilesSearchError>>}\n */\nroutes.filesSearchV2 = function (arg) {\n return this.request('files/search_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Fetches the next page of search results returned from search_v2. Note:\n * search_v2 along with search/continue_v2 can only be used to retrieve a\n * maximum of 10,000 matches. Recent changes may not immediately be reflected in\n * search results due to a short delay in indexing. Duplicate results may be\n * returned across pages. Some results may not be returned.\n * @function Dropbox#filesSearchContinueV2\n * @arg {FilesSearchV2ContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesSearchV2Result>, Error.<FilesSearchError>>}\n */\nroutes.filesSearchContinueV2 = function (arg) {\n return this.request('files/search/continue_v2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Unlock the files at the given paths. A locked file can only be unlocked by\n * the lock holder or, if a business account, a team admin. A successful\n * response indicates that the file has been unlocked. Returns a list of the\n * unlocked file paths and their metadata after this operation.\n * @function Dropbox#filesUnlockFileBatch\n * @arg {FilesUnlockFileBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesLockFileBatchResult>, Error.<FilesLockFileError>>}\n */\nroutes.filesUnlockFileBatch = function (arg) {\n return this.request('files/unlock_file_batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Create a new file with the contents provided in the request. Do not use this\n * to upload a file larger than 150 MB. Instead, create an upload session with\n * upload_session/start. Calls to this endpoint will count as data transport\n * calls for any Dropbox Business teams with a limit on the number of data\n * transport calls allowed per month. For more information, see the Data\n * transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit.\n * @function Dropbox#filesUpload\n * @arg {FilesCommitInfo} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesFileMetadata>, Error.<FilesUploadError>>}\n */\nroutes.filesUpload = function (arg) {\n return this.request('files/upload', arg, 'user', 'content', 'upload');\n};\n\n/**\n * Append more data to an upload session. When the parameter close is set, this\n * call will close the session. A single request should not upload more than 150\n * MB. The maximum size of a file one can upload to an upload session is 350 GB.\n * Calls to this endpoint will count as data transport calls for any Dropbox\n * Business teams with a limit on the number of data transport calls allowed per\n * month. For more information, see the Data transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit.\n * @function Dropbox#filesUploadSessionAppendV2\n * @arg {FilesUploadSessionAppendArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilesUploadSessionLookupError>>}\n */\nroutes.filesUploadSessionAppendV2 = function (arg) {\n return this.request('files/upload_session/append_v2', arg, 'user', 'content', 'upload');\n};\n\n/**\n * Append more data to an upload session. A single request should not upload\n * more than 150 MB. The maximum size of a file one can upload to an upload\n * session is 350 GB. Calls to this endpoint will count as data transport calls\n * for any Dropbox Business teams with a limit on the number of data transport\n * calls allowed per month. For more information, see the Data transport limit\n * page https://www.dropbox.com/developers/reference/data-transport-limit.\n * @function Dropbox#filesUploadSessionAppend\n * @deprecated\n * @arg {FilesUploadSessionCursor} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<FilesUploadSessionLookupError>>}\n */\nroutes.filesUploadSessionAppend = function (arg) {\n return this.request('files/upload_session/append', arg, 'user', 'content', 'upload');\n};\n\n/**\n * Finish an upload session and save the uploaded data to the given file path. A\n * single request should not upload more than 150 MB. The maximum size of a file\n * one can upload to an upload session is 350 GB. Calls to this endpoint will\n * count as data transport calls for any Dropbox Business teams with a limit on\n * the number of data transport calls allowed per month. For more information,\n * see the Data transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit.\n * @function Dropbox#filesUploadSessionFinish\n * @arg {FilesUploadSessionFinishArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesFileMetadata>, Error.<FilesUploadSessionFinishError>>}\n */\nroutes.filesUploadSessionFinish = function (arg) {\n return this.request('files/upload_session/finish', arg, 'user', 'content', 'upload');\n};\n\n/**\n * This route helps you commit many files at once into a user's Dropbox. Use\n * upload_session/start and upload_session/append_v2 to upload file contents. We\n * recommend uploading many files in parallel to increase throughput. Once the\n * file contents have been uploaded, rather than calling upload_session/finish,\n * use this route to finish all your upload sessions in a single request.\n * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true\n * for the last upload_session/start or upload_session/append_v2 call. The\n * maximum size of a file one can upload to an upload session is 350 GB. This\n * route will return a job_id immediately and do the async commit job in\n * background. Use upload_session/finish_batch/check to check the job status.\n * For the same account, this route should be executed serially. That means you\n * should not start the next job before current job finishes. We allow up to\n * 1000 entries in a single request. Calls to this endpoint will count as data\n * transport calls for any Dropbox Business teams with a limit on the number of\n * data transport calls allowed per month. For more information, see the Data\n * transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit.\n * @function Dropbox#filesUploadSessionFinishBatch\n * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesUploadSessionFinishBatchLaunch>, Error.<void>>}\n */\nroutes.filesUploadSessionFinishBatch = function (arg) {\n return this.request('files/upload_session/finish_batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job for upload_session/finish_batch. If\n * success, it returns list of result for each entry.\n * @function Dropbox#filesUploadSessionFinishBatchCheck\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesUploadSessionFinishBatchJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.filesUploadSessionFinishBatchCheck = function (arg) {\n return this.request('files/upload_session/finish_batch/check', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Upload sessions allow you to upload a single file in one or more requests,\n * for example where the size of the file is greater than 150 MB. This call\n * starts a new upload session with the given data. You can then use\n * upload_session/append_v2 to add more data and upload_session/finish to save\n * all the data to a file in Dropbox. A single request should not upload more\n * than 150 MB. The maximum size of a file one can upload to an upload session\n * is 350 GB. An upload session can be used for a maximum of 7 days. Attempting\n * to use an UploadSessionStartResult.session_id with upload_session/append_v2\n * or upload_session/finish more than 7 days after its creation will return a\n * UploadSessionLookupError.not_found. Calls to this endpoint will count as data\n * transport calls for any Dropbox Business teams with a limit on the number of\n * data transport calls allowed per month. For more information, see the Data\n * transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit. By\n * default, upload sessions require you to send content of the file in\n * sequential order via consecutive upload_session/start,\n * upload_session/append_v2, upload_session/finish calls. For better\n * performance, you can instead optionally use a UploadSessionType.concurrent\n * upload session. To start a new concurrent session, set\n * UploadSessionStartArg.session_type to UploadSessionType.concurrent. After\n * that, you can send file data in concurrent upload_session/append_v2 requests.\n * Finally finish the session with upload_session/finish. There are couple of\n * constraints with concurrent sessions to make them work. You can not send data\n * with upload_session/start or upload_session/finish call, only with\n * upload_session/append_v2 call. Also data uploaded in upload_session/append_v2\n * call must be multiple of 4194304 bytes (except for last\n * upload_session/append_v2 with UploadSessionStartArg.close to true, that may\n * contain any remaining data).\n * @function Dropbox#filesUploadSessionStart\n * @arg {FilesUploadSessionStartArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilesUploadSessionStartResult>, Error.<FilesUploadSessionStartError>>}\n */\nroutes.filesUploadSessionStart = function (arg) {\n return this.request('files/upload_session/start', arg, 'user', 'content', 'upload');\n};\n\n/**\n * Marks the given Paper doc as archived. This action can be performed or undone\n * by anyone with edit permissions to the doc. Note that this endpoint will\n * continue to work for content created by users on the older version of Paper.\n * To check which version of Paper a user is on, use /users/features/get_values.\n * If the paper_as_files feature is enabled, then the user is running the new\n * version of Paper. This endpoint will be retired in September 2020. Refer to\n * the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * more information.\n * @function Dropbox#paperDocsArchive\n * @deprecated\n * @arg {PaperRefPaperDoc} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<PaperDocLookupError>>}\n */\nroutes.paperDocsArchive = function (arg) {\n return this.request('paper/docs/archive', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Creates a new Paper doc with the provided content. Note that this endpoint\n * will continue to work for content created by users on the older version of\n * Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. This endpoint will be retired\n * in September 2020. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * more information.\n * @function Dropbox#paperDocsCreate\n * @deprecated\n * @arg {PaperPaperDocCreateArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperPaperDocCreateUpdateResult>, Error.<PaperPaperDocCreateError>>}\n */\nroutes.paperDocsCreate = function (arg) {\n return this.request('paper/docs/create', arg, 'user', 'api', 'upload');\n};\n\n/**\n * Exports and downloads Paper doc either as HTML or markdown. Note that this\n * endpoint will continue to work for content created by users on the older\n * version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * @function Dropbox#paperDocsDownload\n * @deprecated\n * @arg {PaperPaperDocExport} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperPaperDocExportResult>, Error.<PaperDocLookupError>>}\n */\nroutes.paperDocsDownload = function (arg) {\n return this.request('paper/docs/download', arg, 'user', 'api', 'download');\n};\n\n/**\n * Lists the users who are explicitly invited to the Paper folder in which the\n * Paper doc is contained. For private folders all users (including owner)\n * shared on the folder are listed and for team folders all non-team users\n * shared on the folder are returned. Note that this endpoint will continue to\n * work for content created by users on the older version of Paper. To check\n * which version of Paper a user is on, use /users/features/get_values. If the\n * paper_as_files feature is enabled, then the user is running the new version\n * of Paper. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * @function Dropbox#paperDocsFolderUsersList\n * @deprecated\n * @arg {PaperListUsersOnFolderArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperListUsersOnFolderResponse>, Error.<PaperDocLookupError>>}\n */\nroutes.paperDocsFolderUsersList = function (arg) {\n return this.request('paper/docs/folder_users/list', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from docs/folder_users/list, use this to\n * paginate through all users on the Paper folder. Note that this endpoint will\n * continue to work for content created by users on the older version of Paper.\n * To check which version of Paper a user is on, use /users/features/get_values.\n * If the paper_as_files feature is enabled, then the user is running the new\n * version of Paper. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * @function Dropbox#paperDocsFolderUsersListContinue\n * @deprecated\n * @arg {PaperListUsersOnFolderContinueArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperListUsersOnFolderResponse>, Error.<PaperListUsersCursorError>>}\n */\nroutes.paperDocsFolderUsersListContinue = function (arg) {\n return this.request('paper/docs/folder_users/list/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Retrieves folder information for the given Paper doc. This includes: -\n * folder sharing policy; permissions for subfolders are set by the top-level\n * folder. - full 'filepath', i.e. the list of folders (both folderId and\n * folderName) from the root folder to the folder directly containing the\n * Paper doc. If the Paper doc is not in any folder (aka unfiled) the response\n * will be empty. Note that this endpoint will continue to work for content\n * created by users on the older version of Paper. To check which version of\n * Paper a user is on, use /users/features/get_values. If the paper_as_files\n * feature is enabled, then the user is running the new version of Paper. Refer\n * to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * @function Dropbox#paperDocsGetFolderInfo\n * @deprecated\n * @arg {PaperRefPaperDoc} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperFoldersContainingPaperDoc>, Error.<PaperDocLookupError>>}\n */\nroutes.paperDocsGetFolderInfo = function (arg) {\n return this.request('paper/docs/get_folder_info', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Return the list of all Paper docs according to the argument specifications.\n * To iterate over through the full pagination, pass the cursor to\n * docs/list/continue. Note that this endpoint will continue to work for content\n * created by users on the older version of Paper. To check which version of\n * Paper a user is on, use /users/features/get_values. If the paper_as_files\n * feature is enabled, then the user is running the new version of Paper. Refer\n * to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * @function Dropbox#paperDocsList\n * @deprecated\n * @arg {PaperListPaperDocsArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperListPaperDocsResponse>, Error.<void>>}\n */\nroutes.paperDocsList = function (arg) {\n return this.request('paper/docs/list', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from docs/list, use this to paginate through\n * all Paper doc. Note that this endpoint will continue to work for content\n * created by users on the older version of Paper. To check which version of\n * Paper a user is on, use /users/features/get_values. If the paper_as_files\n * feature is enabled, then the user is running the new version of Paper. Refer\n * to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * @function Dropbox#paperDocsListContinue\n * @deprecated\n * @arg {PaperListPaperDocsContinueArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperListPaperDocsResponse>, Error.<PaperListDocsCursorError>>}\n */\nroutes.paperDocsListContinue = function (arg) {\n return this.request('paper/docs/list/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Permanently deletes the given Paper doc. This operation is final as the doc\n * cannot be recovered. This action can be performed only by the doc owner. Note\n * that this endpoint will continue to work for content created by users on the\n * older version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * @function Dropbox#paperDocsPermanentlyDelete\n * @deprecated\n * @arg {PaperRefPaperDoc} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<PaperDocLookupError>>}\n */\nroutes.paperDocsPermanentlyDelete = function (arg) {\n return this.request('paper/docs/permanently_delete', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Gets the default sharing policy for the given Paper doc. Note that this\n * endpoint will continue to work for content created by users on the older\n * version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * @function Dropbox#paperDocsSharingPolicyGet\n * @deprecated\n * @arg {PaperRefPaperDoc} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperSharingPolicy>, Error.<PaperDocLookupError>>}\n */\nroutes.paperDocsSharingPolicyGet = function (arg) {\n return this.request('paper/docs/sharing_policy/get', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Sets the default sharing policy for the given Paper doc. The default\n * 'team_sharing_policy' can be changed only by teams, omit this field for\n * personal accounts. The 'public_sharing_policy' policy can't be set to the\n * value 'disabled' because this setting can be changed only via the team admin\n * console. Note that this endpoint will continue to work for content created by\n * users on the older version of Paper. To check which version of Paper a user\n * is on, use /users/features/get_values. If the paper_as_files feature is\n * enabled, then the user is running the new version of Paper. Refer to the\n * Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * @function Dropbox#paperDocsSharingPolicySet\n * @deprecated\n * @arg {PaperPaperDocSharingPolicy} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<PaperDocLookupError>>}\n */\nroutes.paperDocsSharingPolicySet = function (arg) {\n return this.request('paper/docs/sharing_policy/set', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Updates an existing Paper doc with the provided content. Note that this\n * endpoint will continue to work for content created by users on the older\n * version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. This endpoint will be retired\n * in September 2020. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * more information.\n * @function Dropbox#paperDocsUpdate\n * @deprecated\n * @arg {PaperPaperDocUpdateArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperPaperDocCreateUpdateResult>, Error.<PaperPaperDocUpdateError>>}\n */\nroutes.paperDocsUpdate = function (arg) {\n return this.request('paper/docs/update', arg, 'user', 'api', 'upload');\n};\n\n/**\n * Allows an owner or editor to add users to a Paper doc or change their\n * permissions using their email address or Dropbox account ID. The doc owner's\n * permissions cannot be changed. Note that this endpoint will continue to work\n * for content created by users on the older version of Paper. To check which\n * version of Paper a user is on, use /users/features/get_values. If the\n * paper_as_files feature is enabled, then the user is running the new version\n * of Paper. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * @function Dropbox#paperDocsUsersAdd\n * @deprecated\n * @arg {PaperAddPaperDocUser} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Array.<PaperAddPaperDocUserMemberResult>>, Error.<PaperDocLookupError>>}\n */\nroutes.paperDocsUsersAdd = function (arg) {\n return this.request('paper/docs/users/add', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Lists all users who visited the Paper doc or users with explicit access. This\n * call excludes users who have been removed. The list is sorted by the date of\n * the visit or the share date. The list will include both users, the explicitly\n * shared ones as well as those who came in using the Paper url link. Note that\n * this endpoint will continue to work for content created by users on the older\n * version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * @function Dropbox#paperDocsUsersList\n * @deprecated\n * @arg {PaperListUsersOnPaperDocArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperListUsersOnPaperDocResponse>, Error.<PaperDocLookupError>>}\n */\nroutes.paperDocsUsersList = function (arg) {\n return this.request('paper/docs/users/list', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from docs/users/list, use this to paginate\n * through all users on the Paper doc. Note that this endpoint will continue to\n * work for content created by users on the older version of Paper. To check\n * which version of Paper a user is on, use /users/features/get_values. If the\n * paper_as_files feature is enabled, then the user is running the new version\n * of Paper. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * @function Dropbox#paperDocsUsersListContinue\n * @deprecated\n * @arg {PaperListUsersOnPaperDocContinueArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperListUsersOnPaperDocResponse>, Error.<PaperListUsersCursorError>>}\n */\nroutes.paperDocsUsersListContinue = function (arg) {\n return this.request('paper/docs/users/list/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Allows an owner or editor to remove users from a Paper doc using their email\n * address or Dropbox account ID. The doc owner cannot be removed. Note that\n * this endpoint will continue to work for content created by users on the older\n * version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * @function Dropbox#paperDocsUsersRemove\n * @deprecated\n * @arg {PaperRemovePaperDocUser} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<PaperDocLookupError>>}\n */\nroutes.paperDocsUsersRemove = function (arg) {\n return this.request('paper/docs/users/remove', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Create a new Paper folder with the provided info. Note that this endpoint\n * will continue to work for content created by users on the older version of\n * Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * @function Dropbox#paperFoldersCreate\n * @deprecated\n * @arg {PaperPaperFolderCreateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<PaperPaperFolderCreateResult>, Error.<PaperPaperFolderCreateError>>}\n */\nroutes.paperFoldersCreate = function (arg) {\n return this.request('paper/folders/create', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Adds specified members to a file.\n * @function Dropbox#sharingAddFileMember\n * @arg {SharingAddFileMemberArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Array.<SharingFileMemberActionResult>>, Error.<SharingAddFileMemberError>>}\n */\nroutes.sharingAddFileMember = function (arg) {\n return this.request('sharing/add_file_member', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Allows an owner or editor (if the ACL update policy allows) of a shared\n * folder to add another member. For the new member to get access to all the\n * functionality for this folder, you will need to call mount_folder on their\n * behalf.\n * @function Dropbox#sharingAddFolderMember\n * @arg {SharingAddFolderMemberArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<SharingAddFolderMemberError>>}\n */\nroutes.sharingAddFolderMember = function (arg) {\n return this.request('sharing/add_folder_member', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Identical to update_file_member but with less information returned.\n * @function Dropbox#sharingChangeFileMemberAccess\n * @deprecated\n * @arg {SharingChangeFileMemberAccessArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingFileMemberActionResult>, Error.<SharingFileMemberActionError>>}\n */\nroutes.sharingChangeFileMemberAccess = function (arg) {\n return this.request('sharing/change_file_member_access', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job.\n * @function Dropbox#sharingCheckJobStatus\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.sharingCheckJobStatus = function (arg) {\n return this.request('sharing/check_job_status', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job for sharing a folder.\n * @function Dropbox#sharingCheckRemoveMemberJobStatus\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingRemoveMemberJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.sharingCheckRemoveMemberJobStatus = function (arg) {\n return this.request('sharing/check_remove_member_job_status', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job for sharing a folder.\n * @function Dropbox#sharingCheckShareJobStatus\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingShareFolderJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.sharingCheckShareJobStatus = function (arg) {\n return this.request('sharing/check_share_job_status', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Create a shared link. If a shared link already exists for the given path,\n * that link is returned. Note that in the returned PathLinkMetadata, the\n * PathLinkMetadata.url field is the shortened URL if\n * CreateSharedLinkArg.short_url argument is set to true. Previously, it was\n * technically possible to break a shared link by moving or renaming the\n * corresponding file or folder. In the future, this will no longer be the case,\n * so your app shouldn't rely on this behavior. Instead, if your app needs to\n * revoke a shared link, use revoke_shared_link.\n * @function Dropbox#sharingCreateSharedLink\n * @deprecated\n * @arg {SharingCreateSharedLinkArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingPathLinkMetadata>, Error.<SharingCreateSharedLinkError>>}\n */\nroutes.sharingCreateSharedLink = function (arg) {\n return this.request('sharing/create_shared_link', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Create a shared link with custom settings. If no settings are given then the\n * default visibility is RequestedVisibility.public (The resolved visibility,\n * though, may depend on other aspects such as team and shared folder settings).\n * @function Dropbox#sharingCreateSharedLinkWithSettings\n * @arg {SharingCreateSharedLinkWithSettingsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<(SharingFileLinkMetadata|SharingFolderLinkMetadata|SharingSharedLinkMetadata)>, Error.<SharingCreateSharedLinkWithSettingsError>>}\n */\nroutes.sharingCreateSharedLinkWithSettings = function (arg) {\n return this.request('sharing/create_shared_link_with_settings', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns shared file metadata.\n * @function Dropbox#sharingGetFileMetadata\n * @arg {SharingGetFileMetadataArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingSharedFileMetadata>, Error.<SharingGetFileMetadataError>>}\n */\nroutes.sharingGetFileMetadata = function (arg) {\n return this.request('sharing/get_file_metadata', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns shared file metadata.\n * @function Dropbox#sharingGetFileMetadataBatch\n * @arg {SharingGetFileMetadataBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Array.<SharingGetFileMetadataBatchResult>>, Error.<SharingSharingUserError>>}\n */\nroutes.sharingGetFileMetadataBatch = function (arg) {\n return this.request('sharing/get_file_metadata/batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns shared folder metadata by its folder ID.\n * @function Dropbox#sharingGetFolderMetadata\n * @arg {SharingGetMetadataArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingSharedFolderMetadata>, Error.<SharingSharedFolderAccessError>>}\n */\nroutes.sharingGetFolderMetadata = function (arg) {\n return this.request('sharing/get_folder_metadata', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Download the shared link's file from a user's Dropbox.\n * @function Dropbox#sharingGetSharedLinkFile\n * @arg {Object} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<(SharingFileLinkMetadata|SharingFolderLinkMetadata|SharingSharedLinkMetadata)>, Error.<SharingGetSharedLinkFileError>>}\n */\nroutes.sharingGetSharedLinkFile = function (arg) {\n return this.request('sharing/get_shared_link_file', arg, 'user', 'content', 'download');\n};\n\n/**\n * Get the shared link's metadata.\n * @function Dropbox#sharingGetSharedLinkMetadata\n * @arg {SharingGetSharedLinkMetadataArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<(SharingFileLinkMetadata|SharingFolderLinkMetadata|SharingSharedLinkMetadata)>, Error.<SharingSharedLinkError>>}\n */\nroutes.sharingGetSharedLinkMetadata = function (arg) {\n return this.request('sharing/get_shared_link_metadata', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns a list of LinkMetadata objects for this user, including collection\n * links. If no path is given, returns a list of all shared links for the\n * current user, including collection links, up to a maximum of 1000 links. If a\n * non-empty path is given, returns a list of all shared links that allow access\n * to the given path. Collection links are never returned in this case. Note\n * that the url field in the response is never the shortened URL.\n * @function Dropbox#sharingGetSharedLinks\n * @deprecated\n * @arg {SharingGetSharedLinksArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingGetSharedLinksResult>, Error.<SharingGetSharedLinksError>>}\n */\nroutes.sharingGetSharedLinks = function (arg) {\n return this.request('sharing/get_shared_links', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Use to obtain the members who have been invited to a file, both inherited and\n * uninherited members.\n * @function Dropbox#sharingListFileMembers\n * @arg {SharingListFileMembersArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingSharedFileMembers>, Error.<SharingListFileMembersError>>}\n */\nroutes.sharingListFileMembers = function (arg) {\n return this.request('sharing/list_file_members', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get members of multiple files at once. The arguments to this route are more\n * limited, and the limit on query result size per file is more strict. To\n * customize the results more, use the individual file endpoint. Inherited users\n * and groups are not included in the result, and permissions are not returned\n * for this endpoint.\n * @function Dropbox#sharingListFileMembersBatch\n * @arg {SharingListFileMembersBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Array.<SharingListFileMembersBatchResult>>, Error.<SharingSharingUserError>>}\n */\nroutes.sharingListFileMembersBatch = function (arg) {\n return this.request('sharing/list_file_members/batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from list_file_members or\n * list_file_members/batch, use this to paginate through all shared file\n * members.\n * @function Dropbox#sharingListFileMembersContinue\n * @arg {SharingListFileMembersContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingSharedFileMembers>, Error.<SharingListFileMembersContinueError>>}\n */\nroutes.sharingListFileMembersContinue = function (arg) {\n return this.request('sharing/list_file_members/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns shared folder membership by its folder ID.\n * @function Dropbox#sharingListFolderMembers\n * @arg {SharingListFolderMembersArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingSharedFolderMembers>, Error.<SharingSharedFolderAccessError>>}\n */\nroutes.sharingListFolderMembers = function (arg) {\n return this.request('sharing/list_folder_members', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from list_folder_members, use this to\n * paginate through all shared folder members.\n * @function Dropbox#sharingListFolderMembersContinue\n * @arg {SharingListFolderMembersContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingSharedFolderMembers>, Error.<SharingListFolderMembersContinueError>>}\n */\nroutes.sharingListFolderMembersContinue = function (arg) {\n return this.request('sharing/list_folder_members/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Return the list of all shared folders the current user has access to.\n * @function Dropbox#sharingListFolders\n * @arg {SharingListFoldersArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingListFoldersResult>, Error.<void>>}\n */\nroutes.sharingListFolders = function (arg) {\n return this.request('sharing/list_folders', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from list_folders, use this to paginate\n * through all shared folders. The cursor must come from a previous call to\n * list_folders or list_folders/continue.\n * @function Dropbox#sharingListFoldersContinue\n * @arg {SharingListFoldersContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingListFoldersResult>, Error.<SharingListFoldersContinueError>>}\n */\nroutes.sharingListFoldersContinue = function (arg) {\n return this.request('sharing/list_folders/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Return the list of all shared folders the current user can mount or unmount.\n * @function Dropbox#sharingListMountableFolders\n * @arg {SharingListFoldersArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingListFoldersResult>, Error.<void>>}\n */\nroutes.sharingListMountableFolders = function (arg) {\n return this.request('sharing/list_mountable_folders', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from list_mountable_folders, use this to\n * paginate through all mountable shared folders. The cursor must come from a\n * previous call to list_mountable_folders or list_mountable_folders/continue.\n * @function Dropbox#sharingListMountableFoldersContinue\n * @arg {SharingListFoldersContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingListFoldersResult>, Error.<SharingListFoldersContinueError>>}\n */\nroutes.sharingListMountableFoldersContinue = function (arg) {\n return this.request('sharing/list_mountable_folders/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Returns a list of all files shared with current user. Does not include files\n * the user has received via shared folders, and does not include unclaimed\n * invitations.\n * @function Dropbox#sharingListReceivedFiles\n * @arg {SharingListFilesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingListFilesResult>, Error.<SharingSharingUserError>>}\n */\nroutes.sharingListReceivedFiles = function (arg) {\n return this.request('sharing/list_received_files', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get more results with a cursor from list_received_files.\n * @function Dropbox#sharingListReceivedFilesContinue\n * @arg {SharingListFilesContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingListFilesResult>, Error.<SharingListFilesContinueError>>}\n */\nroutes.sharingListReceivedFilesContinue = function (arg) {\n return this.request('sharing/list_received_files/continue', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * List shared links of this user. If no path is given, returns a list of all\n * shared links for the current user. For members of business teams using team\n * space and member folders, returns all shared links in the team member's home\n * folder unless the team space ID is specified in the request header. For more\n * information, refer to the Namespace Guide\n * https://www.dropbox.com/developers/reference/namespace-guide. If a non-empty\n * path is given, returns a list of all shared links that allow access to the\n * given path - direct links to the given path and links to parent folders of\n * the given path. Links to parent folders can be suppressed by setting\n * direct_only to true.\n * @function Dropbox#sharingListSharedLinks\n * @arg {SharingListSharedLinksArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingListSharedLinksResult>, Error.<SharingListSharedLinksError>>}\n */\nroutes.sharingListSharedLinks = function (arg) {\n return this.request('sharing/list_shared_links', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Modify the shared link's settings. If the requested visibility conflict with\n * the shared links policy of the team or the shared folder (in case the linked\n * file is part of a shared folder) then the LinkPermissions.resolved_visibility\n * of the returned SharedLinkMetadata will reflect the actual visibility of the\n * shared link and the LinkPermissions.requested_visibility will reflect the\n * requested visibility.\n * @function Dropbox#sharingModifySharedLinkSettings\n * @arg {SharingModifySharedLinkSettingsArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<(SharingFileLinkMetadata|SharingFolderLinkMetadata|SharingSharedLinkMetadata)>, Error.<SharingModifySharedLinkSettingsError>>}\n */\nroutes.sharingModifySharedLinkSettings = function (arg) {\n return this.request('sharing/modify_shared_link_settings', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * The current user mounts the designated folder. Mount a shared folder for a\n * user after they have been added as a member. Once mounted, the shared folder\n * will appear in their Dropbox.\n * @function Dropbox#sharingMountFolder\n * @arg {SharingMountFolderArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingSharedFolderMetadata>, Error.<SharingMountFolderError>>}\n */\nroutes.sharingMountFolder = function (arg) {\n return this.request('sharing/mount_folder', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * The current user relinquishes their membership in the designated file. Note\n * that the current user may still have inherited access to this file through\n * the parent folder.\n * @function Dropbox#sharingRelinquishFileMembership\n * @arg {SharingRelinquishFileMembershipArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<SharingRelinquishFileMembershipError>>}\n */\nroutes.sharingRelinquishFileMembership = function (arg) {\n return this.request('sharing/relinquish_file_membership', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * The current user relinquishes their membership in the designated shared\n * folder and will no longer have access to the folder. A folder owner cannot\n * relinquish membership in their own folder. This will run synchronously if\n * leave_a_copy is false, and asynchronously if leave_a_copy is true.\n * @function Dropbox#sharingRelinquishFolderMembership\n * @arg {SharingRelinquishFolderMembershipArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AsyncLaunchEmptyResult>, Error.<SharingRelinquishFolderMembershipError>>}\n */\nroutes.sharingRelinquishFolderMembership = function (arg) {\n return this.request('sharing/relinquish_folder_membership', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Identical to remove_file_member_2 but with less information returned.\n * @function Dropbox#sharingRemoveFileMember\n * @deprecated\n * @arg {SharingRemoveFileMemberArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingFileMemberActionIndividualResult>, Error.<SharingRemoveFileMemberError>>}\n */\nroutes.sharingRemoveFileMember = function (arg) {\n return this.request('sharing/remove_file_member', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Removes a specified member from the file.\n * @function Dropbox#sharingRemoveFileMember2\n * @arg {SharingRemoveFileMemberArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingFileMemberRemoveActionResult>, Error.<SharingRemoveFileMemberError>>}\n */\nroutes.sharingRemoveFileMember2 = function (arg) {\n return this.request('sharing/remove_file_member_2', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Allows an owner or editor (if the ACL update policy allows) of a shared\n * folder to remove another member.\n * @function Dropbox#sharingRemoveFolderMember\n * @arg {SharingRemoveFolderMemberArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AsyncLaunchResultBase>, Error.<SharingRemoveFolderMemberError>>}\n */\nroutes.sharingRemoveFolderMember = function (arg) {\n return this.request('sharing/remove_folder_member', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Revoke a shared link. Note that even after revoking a shared link to a file,\n * the file may be accessible if there are shared links leading to any of the\n * file parent folders. To list all shared links that enable access to a\n * specific file, you can use the list_shared_links with the file as the\n * ListSharedLinksArg.path argument.\n * @function Dropbox#sharingRevokeSharedLink\n * @arg {SharingRevokeSharedLinkArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<SharingRevokeSharedLinkError>>}\n */\nroutes.sharingRevokeSharedLink = function (arg) {\n return this.request('sharing/revoke_shared_link', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Change the inheritance policy of an existing Shared Folder. Only permitted\n * for shared folders in a shared team root. If a ShareFolderLaunch.async_job_id\n * is returned, you'll need to call check_share_job_status until the action\n * completes to get the metadata for the folder.\n * @function Dropbox#sharingSetAccessInheritance\n * @arg {SharingSetAccessInheritanceArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingShareFolderLaunch>, Error.<SharingSetAccessInheritanceError>>}\n */\nroutes.sharingSetAccessInheritance = function (arg) {\n return this.request('sharing/set_access_inheritance', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Share a folder with collaborators. Most sharing will be completed\n * synchronously. Large folders will be completed asynchronously. To make\n * testing the async case repeatable, set `ShareFolderArg.force_async`. If a\n * ShareFolderLaunch.async_job_id is returned, you'll need to call\n * check_share_job_status until the action completes to get the metadata for the\n * folder.\n * @function Dropbox#sharingShareFolder\n * @arg {SharingShareFolderArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingShareFolderLaunch>, Error.<SharingShareFolderError>>}\n */\nroutes.sharingShareFolder = function (arg) {\n return this.request('sharing/share_folder', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Transfer ownership of a shared folder to a member of the shared folder. User\n * must have AccessLevel.owner access to the shared folder to perform a\n * transfer.\n * @function Dropbox#sharingTransferFolder\n * @arg {SharingTransferFolderArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<SharingTransferFolderError>>}\n */\nroutes.sharingTransferFolder = function (arg) {\n return this.request('sharing/transfer_folder', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * The current user unmounts the designated folder. They can re-mount the folder\n * at a later time using mount_folder.\n * @function Dropbox#sharingUnmountFolder\n * @arg {SharingUnmountFolderArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<SharingUnmountFolderError>>}\n */\nroutes.sharingUnmountFolder = function (arg) {\n return this.request('sharing/unmount_folder', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Remove all members from this file. Does not remove inherited members.\n * @function Dropbox#sharingUnshareFile\n * @arg {SharingUnshareFileArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<SharingUnshareFileError>>}\n */\nroutes.sharingUnshareFile = function (arg) {\n return this.request('sharing/unshare_file', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Allows a shared folder owner to unshare the folder. You'll need to call\n * check_job_status to determine if the action has completed successfully.\n * @function Dropbox#sharingUnshareFolder\n * @arg {SharingUnshareFolderArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AsyncLaunchEmptyResult>, Error.<SharingUnshareFolderError>>}\n */\nroutes.sharingUnshareFolder = function (arg) {\n return this.request('sharing/unshare_folder', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Changes a member's access on a shared file.\n * @function Dropbox#sharingUpdateFileMember\n * @arg {SharingUpdateFileMemberArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingMemberAccessLevelResult>, Error.<SharingFileMemberActionError>>}\n */\nroutes.sharingUpdateFileMember = function (arg) {\n return this.request('sharing/update_file_member', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Allows an owner or editor of a shared folder to update another member's\n * permissions.\n * @function Dropbox#sharingUpdateFolderMember\n * @arg {SharingUpdateFolderMemberArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingMemberAccessLevelResult>, Error.<SharingUpdateFolderMemberError>>}\n */\nroutes.sharingUpdateFolderMember = function (arg) {\n return this.request('sharing/update_folder_member', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Update the sharing policies for a shared folder. User must have\n * AccessLevel.owner access to the shared folder to update its policies.\n * @function Dropbox#sharingUpdateFolderPolicy\n * @arg {SharingUpdateFolderPolicyArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<SharingSharedFolderMetadata>, Error.<SharingUpdateFolderPolicyError>>}\n */\nroutes.sharingUpdateFolderPolicy = function (arg) {\n return this.request('sharing/update_folder_policy', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * List all device sessions of a team's member.\n * @function Dropbox#teamDevicesListMemberDevices\n * @arg {TeamListMemberDevicesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamListMemberDevicesResult>, Error.<TeamListMemberDevicesError>>}\n */\nroutes.teamDevicesListMemberDevices = function (arg) {\n return this.request('team/devices/list_member_devices', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * List all device sessions of a team. Permission : Team member file access.\n * @function Dropbox#teamDevicesListMembersDevices\n * @arg {TeamListMembersDevicesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamListMembersDevicesResult>, Error.<TeamListMembersDevicesError>>}\n */\nroutes.teamDevicesListMembersDevices = function (arg) {\n return this.request('team/devices/list_members_devices', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * List all device sessions of a team. Permission : Team member file access.\n * @function Dropbox#teamDevicesListTeamDevices\n * @deprecated\n * @arg {TeamListTeamDevicesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamListTeamDevicesResult>, Error.<TeamListTeamDevicesError>>}\n */\nroutes.teamDevicesListTeamDevices = function (arg) {\n return this.request('team/devices/list_team_devices', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Revoke a device session of a team's member.\n * @function Dropbox#teamDevicesRevokeDeviceSession\n * @arg {TeamRevokeDeviceSessionArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<TeamRevokeDeviceSessionError>>}\n */\nroutes.teamDevicesRevokeDeviceSession = function (arg) {\n return this.request('team/devices/revoke_device_session', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Revoke a list of device sessions of team members.\n * @function Dropbox#teamDevicesRevokeDeviceSessionBatch\n * @arg {TeamRevokeDeviceSessionBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamRevokeDeviceSessionBatchResult>, Error.<TeamRevokeDeviceSessionBatchError>>}\n */\nroutes.teamDevicesRevokeDeviceSessionBatch = function (arg) {\n return this.request('team/devices/revoke_device_session_batch', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Get the values for one or more featues. This route allows you to check your\n * account's capability for what feature you can access or what value you have\n * for certain features. Permission : Team information.\n * @function Dropbox#teamFeaturesGetValues\n * @arg {TeamFeaturesGetValuesBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamFeaturesGetValuesBatchResult>, Error.<TeamFeaturesGetValuesBatchError>>}\n */\nroutes.teamFeaturesGetValues = function (arg) {\n return this.request('team/features/get_values', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Retrieves information about a team.\n * @function Dropbox#teamGetInfo\n * @returns {Promise.<DropboxResponse<TeamTeamGetInfoResult>, Error.<void>>}\n */\nroutes.teamGetInfo = function () {\n return this.request('team/get_info', null, 'team', 'api', 'rpc');\n};\n\n/**\n * Creates a new, empty group, with a requested name. Permission : Team member\n * management.\n * @function Dropbox#teamGroupsCreate\n * @arg {TeamGroupCreateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGroupFullInfo>, Error.<TeamGroupCreateError>>}\n */\nroutes.teamGroupsCreate = function (arg) {\n return this.request('team/groups/create', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Deletes a group. The group is deleted immediately. However the revoking of\n * group-owned resources may take additional time. Use the groups/job_status/get\n * to determine whether this process has completed. Permission : Team member\n * management.\n * @function Dropbox#teamGroupsDelete\n * @arg {TeamGroupSelector} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AsyncLaunchEmptyResult>, Error.<TeamGroupDeleteError>>}\n */\nroutes.teamGroupsDelete = function (arg) {\n return this.request('team/groups/delete', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Retrieves information about one or more groups. Note that the optional field\n * GroupFullInfo.members is not returned for system-managed groups. Permission :\n * Team Information.\n * @function Dropbox#teamGroupsGetInfo\n * @arg {TeamGroupsSelector} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Object>, Error.<TeamGroupsGetInfoError>>}\n */\nroutes.teamGroupsGetInfo = function (arg) {\n return this.request('team/groups/get_info', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Once an async_job_id is returned from groups/delete, groups/members/add , or\n * groups/members/remove use this method to poll the status of granting/revoking\n * group members' access to group-owned resources. Permission : Team member\n * management.\n * @function Dropbox#teamGroupsJobStatusGet\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AsyncPollEmptyResult>, Error.<TeamGroupsPollError>>}\n */\nroutes.teamGroupsJobStatusGet = function (arg) {\n return this.request('team/groups/job_status/get', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Lists groups on a team. Permission : Team Information.\n * @function Dropbox#teamGroupsList\n * @arg {TeamGroupsListArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGroupsListResult>, Error.<void>>}\n */\nroutes.teamGroupsList = function (arg) {\n return this.request('team/groups/list', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from groups/list, use this to paginate\n * through all groups. Permission : Team Information.\n * @function Dropbox#teamGroupsListContinue\n * @arg {TeamGroupsListContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGroupsListResult>, Error.<TeamGroupsListContinueError>>}\n */\nroutes.teamGroupsListContinue = function (arg) {\n return this.request('team/groups/list/continue', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Adds members to a group. The members are added immediately. However the\n * granting of group-owned resources may take additional time. Use the\n * groups/job_status/get to determine whether this process has completed.\n * Permission : Team member management.\n * @function Dropbox#teamGroupsMembersAdd\n * @arg {TeamGroupMembersAddArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGroupMembersChangeResult>, Error.<TeamGroupMembersAddError>>}\n */\nroutes.teamGroupsMembersAdd = function (arg) {\n return this.request('team/groups/members/add', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Lists members of a group. Permission : Team Information.\n * @function Dropbox#teamGroupsMembersList\n * @arg {TeamGroupsMembersListArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGroupsMembersListResult>, Error.<TeamGroupSelectorError>>}\n */\nroutes.teamGroupsMembersList = function (arg) {\n return this.request('team/groups/members/list', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from groups/members/list, use this to\n * paginate through all members of the group. Permission : Team information.\n * @function Dropbox#teamGroupsMembersListContinue\n * @arg {TeamGroupsMembersListContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGroupsMembersListResult>, Error.<TeamGroupsMembersListContinueError>>}\n */\nroutes.teamGroupsMembersListContinue = function (arg) {\n return this.request('team/groups/members/list/continue', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Removes members from a group. The members are removed immediately. However\n * the revoking of group-owned resources may take additional time. Use the\n * groups/job_status/get to determine whether this process has completed. This\n * method permits removing the only owner of a group, even in cases where this\n * is not possible via the web client. Permission : Team member management.\n * @function Dropbox#teamGroupsMembersRemove\n * @arg {TeamGroupMembersRemoveArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGroupMembersChangeResult>, Error.<TeamGroupMembersRemoveError>>}\n */\nroutes.teamGroupsMembersRemove = function (arg) {\n return this.request('team/groups/members/remove', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Sets a member's access type in a group. Permission : Team member management.\n * @function Dropbox#teamGroupsMembersSetAccessType\n * @arg {TeamGroupMembersSetAccessTypeArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Object>, Error.<TeamGroupMemberSetAccessTypeError>>}\n */\nroutes.teamGroupsMembersSetAccessType = function (arg) {\n return this.request('team/groups/members/set_access_type', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Updates a group's name and/or external ID. Permission : Team member\n * management.\n * @function Dropbox#teamGroupsUpdate\n * @arg {TeamGroupUpdateArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGroupFullInfo>, Error.<TeamGroupUpdateError>>}\n */\nroutes.teamGroupsUpdate = function (arg) {\n return this.request('team/groups/update', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Creates new legal hold policy. Note: Legal Holds is a paid add-on. Not all\n * teams have the feature. Permission : Team member file access.\n * @function Dropbox#teamLegalHoldsCreatePolicy\n * @arg {TeamLegalHoldsPolicyCreateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Object>, Error.<TeamLegalHoldsPolicyCreateError>>}\n */\nroutes.teamLegalHoldsCreatePolicy = function (arg) {\n return this.request('team/legal_holds/create_policy', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Gets a legal hold by Id. Note: Legal Holds is a paid add-on. Not all teams\n * have the feature. Permission : Team member file access.\n * @function Dropbox#teamLegalHoldsGetPolicy\n * @arg {TeamLegalHoldsGetPolicyArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Object>, Error.<TeamLegalHoldsGetPolicyError>>}\n */\nroutes.teamLegalHoldsGetPolicy = function (arg) {\n return this.request('team/legal_holds/get_policy', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * List the file metadata that's under the hold. Note: Legal Holds is a paid\n * add-on. Not all teams have the feature. Permission : Team member file access.\n * @function Dropbox#teamLegalHoldsListHeldRevisions\n * @arg {TeamLegalHoldsListHeldRevisionsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamLegalHoldsListHeldRevisionResult>, Error.<TeamLegalHoldsListHeldRevisionsError>>}\n */\nroutes.teamLegalHoldsListHeldRevisions = function (arg) {\n return this.request('team/legal_holds/list_held_revisions', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Continue listing the file metadata that's under the hold. Note: Legal Holds\n * is a paid add-on. Not all teams have the feature. Permission : Team member\n * file access.\n * @function Dropbox#teamLegalHoldsListHeldRevisionsContinue\n * @arg {TeamLegalHoldsListHeldRevisionsContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamLegalHoldsListHeldRevisionResult>, Error.<TeamLegalHoldsListHeldRevisionsError>>}\n */\nroutes.teamLegalHoldsListHeldRevisionsContinue = function (arg) {\n return this.request('team/legal_holds/list_held_revisions_continue', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Lists legal holds on a team. Note: Legal Holds is a paid add-on. Not all\n * teams have the feature. Permission : Team member file access.\n * @function Dropbox#teamLegalHoldsListPolicies\n * @arg {TeamLegalHoldsListPoliciesArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamLegalHoldsListPoliciesResult>, Error.<TeamLegalHoldsListPoliciesError>>}\n */\nroutes.teamLegalHoldsListPolicies = function (arg) {\n return this.request('team/legal_holds/list_policies', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Releases a legal hold by Id. Note: Legal Holds is a paid add-on. Not all\n * teams have the feature. Permission : Team member file access.\n * @function Dropbox#teamLegalHoldsReleasePolicy\n * @arg {TeamLegalHoldsPolicyReleaseArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<TeamLegalHoldsPolicyReleaseError>>}\n */\nroutes.teamLegalHoldsReleasePolicy = function (arg) {\n return this.request('team/legal_holds/release_policy', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Updates a legal hold. Note: Legal Holds is a paid add-on. Not all teams have\n * the feature. Permission : Team member file access.\n * @function Dropbox#teamLegalHoldsUpdatePolicy\n * @arg {TeamLegalHoldsPolicyUpdateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Object>, Error.<TeamLegalHoldsPolicyUpdateError>>}\n */\nroutes.teamLegalHoldsUpdatePolicy = function (arg) {\n return this.request('team/legal_holds/update_policy', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * List all linked applications of the team member. Note, this endpoint does not\n * list any team-linked applications.\n * @function Dropbox#teamLinkedAppsListMemberLinkedApps\n * @arg {TeamListMemberAppsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamListMemberAppsResult>, Error.<TeamListMemberAppsError>>}\n */\nroutes.teamLinkedAppsListMemberLinkedApps = function (arg) {\n return this.request('team/linked_apps/list_member_linked_apps', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * List all applications linked to the team members' accounts. Note, this\n * endpoint does not list any team-linked applications.\n * @function Dropbox#teamLinkedAppsListMembersLinkedApps\n * @arg {TeamListMembersAppsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamListMembersAppsResult>, Error.<TeamListMembersAppsError>>}\n */\nroutes.teamLinkedAppsListMembersLinkedApps = function (arg) {\n return this.request('team/linked_apps/list_members_linked_apps', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * List all applications linked to the team members' accounts. Note, this\n * endpoint doesn't list any team-linked applications.\n * @function Dropbox#teamLinkedAppsListTeamLinkedApps\n * @deprecated\n * @arg {TeamListTeamAppsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamListTeamAppsResult>, Error.<TeamListTeamAppsError>>}\n */\nroutes.teamLinkedAppsListTeamLinkedApps = function (arg) {\n return this.request('team/linked_apps/list_team_linked_apps', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Revoke a linked application of the team member.\n * @function Dropbox#teamLinkedAppsRevokeLinkedApp\n * @arg {TeamRevokeLinkedApiAppArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<TeamRevokeLinkedAppError>>}\n */\nroutes.teamLinkedAppsRevokeLinkedApp = function (arg) {\n return this.request('team/linked_apps/revoke_linked_app', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Revoke a list of linked applications of the team members.\n * @function Dropbox#teamLinkedAppsRevokeLinkedAppBatch\n * @arg {TeamRevokeLinkedApiAppBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamRevokeLinkedAppBatchResult>, Error.<TeamRevokeLinkedAppBatchError>>}\n */\nroutes.teamLinkedAppsRevokeLinkedAppBatch = function (arg) {\n return this.request('team/linked_apps/revoke_linked_app_batch', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Add users to member space limits excluded users list.\n * @function Dropbox#teamMemberSpaceLimitsExcludedUsersAdd\n * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamExcludedUsersUpdateResult>, Error.<TeamExcludedUsersUpdateError>>}\n */\nroutes.teamMemberSpaceLimitsExcludedUsersAdd = function (arg) {\n return this.request('team/member_space_limits/excluded_users/add', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * List member space limits excluded users.\n * @function Dropbox#teamMemberSpaceLimitsExcludedUsersList\n * @arg {TeamExcludedUsersListArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamExcludedUsersListResult>, Error.<TeamExcludedUsersListError>>}\n */\nroutes.teamMemberSpaceLimitsExcludedUsersList = function (arg) {\n return this.request('team/member_space_limits/excluded_users/list', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Continue listing member space limits excluded users.\n * @function Dropbox#teamMemberSpaceLimitsExcludedUsersListContinue\n * @arg {TeamExcludedUsersListContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamExcludedUsersListResult>, Error.<TeamExcludedUsersListContinueError>>}\n */\nroutes.teamMemberSpaceLimitsExcludedUsersListContinue = function (arg) {\n return this.request('team/member_space_limits/excluded_users/list/continue', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Remove users from member space limits excluded users list.\n * @function Dropbox#teamMemberSpaceLimitsExcludedUsersRemove\n * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamExcludedUsersUpdateResult>, Error.<TeamExcludedUsersUpdateError>>}\n */\nroutes.teamMemberSpaceLimitsExcludedUsersRemove = function (arg) {\n return this.request('team/member_space_limits/excluded_users/remove', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Get users custom quota. Returns none as the custom quota if none was set. A\n * maximum of 1000 members can be specified in a single call.\n * @function Dropbox#teamMemberSpaceLimitsGetCustomQuota\n * @arg {TeamCustomQuotaUsersArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Array.<TeamCustomQuotaResult>>, Error.<TeamCustomQuotaError>>}\n */\nroutes.teamMemberSpaceLimitsGetCustomQuota = function (arg) {\n return this.request('team/member_space_limits/get_custom_quota', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Remove users custom quota. A maximum of 1000 members can be specified in a\n * single call.\n * @function Dropbox#teamMemberSpaceLimitsRemoveCustomQuota\n * @arg {TeamCustomQuotaUsersArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Array.<TeamRemoveCustomQuotaResult>>, Error.<TeamCustomQuotaError>>}\n */\nroutes.teamMemberSpaceLimitsRemoveCustomQuota = function (arg) {\n return this.request('team/member_space_limits/remove_custom_quota', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Set users custom quota. Custom quota has to be at least 15GB. A maximum of\n * 1000 members can be specified in a single call.\n * @function Dropbox#teamMemberSpaceLimitsSetCustomQuota\n * @arg {TeamSetCustomQuotaArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Array.<TeamCustomQuotaResult>>, Error.<TeamSetCustomQuotaError>>}\n */\nroutes.teamMemberSpaceLimitsSetCustomQuota = function (arg) {\n return this.request('team/member_space_limits/set_custom_quota', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Adds members to a team. Permission : Team member management A maximum of 20\n * members can be specified in a single call. If no Dropbox account exists with\n * the email address specified, a new Dropbox account will be created with the\n * given email address, and that account will be invited to the team. If a\n * personal Dropbox account exists with the email address specified in the call,\n * this call will create a placeholder Dropbox account for the user on the team\n * and send an email inviting the user to migrate their existing personal\n * account onto the team. Team member management apps are required to set an\n * initial given_name and surname for a user to use in the team invitation and\n * for 'Perform as team member' actions taken on the user before they become\n * 'active'.\n * @function Dropbox#teamMembersAdd\n * @arg {TeamMembersAddArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamMembersAddLaunch>, Error.<void>>}\n */\nroutes.teamMembersAdd = function (arg) {\n return this.request('team/members/add', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Once an async_job_id is returned from members/add , use this to poll the\n * status of the asynchronous request. Permission : Team member management.\n * @function Dropbox#teamMembersAddJobStatusGet\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamMembersAddJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.teamMembersAddJobStatusGet = function (arg) {\n return this.request('team/members/add/job_status/get', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Deletes a team member's profile photo. Permission : Team member management.\n * @function Dropbox#teamMembersDeleteProfilePhoto\n * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamMemberInfo>, Error.<TeamMembersDeleteProfilePhotoError>>}\n */\nroutes.teamMembersDeleteProfilePhoto = function (arg) {\n return this.request('team/members/delete_profile_photo', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Returns information about multiple team members. Permission : Team\n * information This endpoint will return MembersGetInfoItem.id_not_found, for\n * IDs (or emails) that cannot be matched to a valid team member.\n * @function Dropbox#teamMembersGetInfo\n * @arg {TeamMembersGetInfoArgs} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Object>, Error.<TeamMembersGetInfoError>>}\n */\nroutes.teamMembersGetInfo = function (arg) {\n return this.request('team/members/get_info', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Lists members of a team. Permission : Team information.\n * @function Dropbox#teamMembersList\n * @arg {TeamMembersListArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamMembersListResult>, Error.<TeamMembersListError>>}\n */\nroutes.teamMembersList = function (arg) {\n return this.request('team/members/list', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from members/list, use this to paginate\n * through all team members. Permission : Team information.\n * @function Dropbox#teamMembersListContinue\n * @arg {TeamMembersListContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamMembersListResult>, Error.<TeamMembersListContinueError>>}\n */\nroutes.teamMembersListContinue = function (arg) {\n return this.request('team/members/list/continue', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Moves removed member's files to a different member. This endpoint initiates\n * an asynchronous job. To obtain the final result of the job, the client should\n * periodically poll members/move_former_member_files/job_status/check.\n * Permission : Team member management.\n * @function Dropbox#teamMembersMoveFormerMemberFiles\n * @arg {TeamMembersDataTransferArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AsyncLaunchEmptyResult>, Error.<TeamMembersTransferFormerMembersFilesError>>}\n */\nroutes.teamMembersMoveFormerMemberFiles = function (arg) {\n return this.request('team/members/move_former_member_files', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Once an async_job_id is returned from members/move_former_member_files , use\n * this to poll the status of the asynchronous request. Permission : Team member\n * management.\n * @function Dropbox#teamMembersMoveFormerMemberFilesJobStatusCheck\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AsyncPollEmptyResult>, Error.<AsyncPollError>>}\n */\nroutes.teamMembersMoveFormerMemberFilesJobStatusCheck = function (arg) {\n return this.request('team/members/move_former_member_files/job_status/check', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Recover a deleted member. Permission : Team member management Exactly one of\n * team_member_id, email, or external_id must be provided to identify the user\n * account.\n * @function Dropbox#teamMembersRecover\n * @arg {TeamMembersRecoverArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<TeamMembersRecoverError>>}\n */\nroutes.teamMembersRecover = function (arg) {\n return this.request('team/members/recover', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Removes a member from a team. Permission : Team member management Exactly one\n * of team_member_id, email, or external_id must be provided to identify the\n * user account. Accounts can be recovered via members/recover for a 7 day\n * period or until the account has been permanently deleted or transferred to\n * another account (whichever comes first). Calling members/add while a user is\n * still recoverable on your team will return with\n * MemberAddResult.user_already_on_team. Accounts can have their files\n * transferred via the admin console for a limited time, based on the version\n * history length associated with the team (180 days for most teams). This\n * endpoint may initiate an asynchronous job. To obtain the final result of the\n * job, the client should periodically poll members/remove/job_status/get.\n * @function Dropbox#teamMembersRemove\n * @arg {TeamMembersRemoveArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AsyncLaunchEmptyResult>, Error.<TeamMembersRemoveError>>}\n */\nroutes.teamMembersRemove = function (arg) {\n return this.request('team/members/remove', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Once an async_job_id is returned from members/remove , use this to poll the\n * status of the asynchronous request. Permission : Team member management.\n * @function Dropbox#teamMembersRemoveJobStatusGet\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<AsyncPollEmptyResult>, Error.<AsyncPollError>>}\n */\nroutes.teamMembersRemoveJobStatusGet = function (arg) {\n return this.request('team/members/remove/job_status/get', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Add secondary emails to users. Permission : Team member management. Emails\n * that are on verified domains will be verified automatically. For each email\n * address not on a verified domain a verification email will be sent.\n * @function Dropbox#teamMembersSecondaryEmailsAdd\n * @arg {TeamAddSecondaryEmailsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamAddSecondaryEmailsResult>, Error.<TeamAddSecondaryEmailsError>>}\n */\nroutes.teamMembersSecondaryEmailsAdd = function (arg) {\n return this.request('team/members/secondary_emails/add', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Delete secondary emails from users Permission : Team member management. Users\n * will be notified of deletions of verified secondary emails at both the\n * secondary email and their primary email.\n * @function Dropbox#teamMembersSecondaryEmailsDelete\n * @arg {TeamDeleteSecondaryEmailsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamDeleteSecondaryEmailsResult>, Error.<void>>}\n */\nroutes.teamMembersSecondaryEmailsDelete = function (arg) {\n return this.request('team/members/secondary_emails/delete', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Resend secondary email verification emails. Permission : Team member\n * management.\n * @function Dropbox#teamMembersSecondaryEmailsResendVerificationEmails\n * @arg {TeamResendVerificationEmailArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamResendVerificationEmailResult>, Error.<void>>}\n */\nroutes.teamMembersSecondaryEmailsResendVerificationEmails = function (arg) {\n return this.request('team/members/secondary_emails/resend_verification_emails', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Sends welcome email to pending team member. Permission : Team member\n * management Exactly one of team_member_id, email, or external_id must be\n * provided to identify the user account. No-op if team member is not pending.\n * @function Dropbox#teamMembersSendWelcomeEmail\n * @arg {TeamUserSelectorArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<TeamMembersSendWelcomeError>>}\n */\nroutes.teamMembersSendWelcomeEmail = function (arg) {\n return this.request('team/members/send_welcome_email', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Updates a team member's permissions. Permission : Team member management.\n * @function Dropbox#teamMembersSetAdminPermissions\n * @arg {TeamMembersSetPermissionsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamMembersSetPermissionsResult>, Error.<TeamMembersSetPermissionsError>>}\n */\nroutes.teamMembersSetAdminPermissions = function (arg) {\n return this.request('team/members/set_admin_permissions', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Updates a team member's profile. Permission : Team member management.\n * @function Dropbox#teamMembersSetProfile\n * @arg {TeamMembersSetProfileArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamMemberInfo>, Error.<TeamMembersSetProfileError>>}\n */\nroutes.teamMembersSetProfile = function (arg) {\n return this.request('team/members/set_profile', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Updates a team member's profile photo. Permission : Team member management.\n * @function Dropbox#teamMembersSetProfilePhoto\n * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamMemberInfo>, Error.<TeamMembersSetProfilePhotoError>>}\n */\nroutes.teamMembersSetProfilePhoto = function (arg) {\n return this.request('team/members/set_profile_photo', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Suspend a member from a team. Permission : Team member management Exactly one\n * of team_member_id, email, or external_id must be provided to identify the\n * user account.\n * @function Dropbox#teamMembersSuspend\n * @arg {TeamMembersDeactivateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<TeamMembersSuspendError>>}\n */\nroutes.teamMembersSuspend = function (arg) {\n return this.request('team/members/suspend', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Unsuspend a member from a team. Permission : Team member management Exactly\n * one of team_member_id, email, or external_id must be provided to identify the\n * user account.\n * @function Dropbox#teamMembersUnsuspend\n * @arg {TeamMembersUnsuspendArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<TeamMembersUnsuspendError>>}\n */\nroutes.teamMembersUnsuspend = function (arg) {\n return this.request('team/members/unsuspend', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Returns a list of all team-accessible namespaces. This list includes team\n * folders, shared folders containing team members, team members' home\n * namespaces, and team members' app folders. Home namespaces and app folders\n * are always owned by this team or members of the team, but shared folders may\n * be owned by other users or other teams. Duplicates may occur in the list.\n * @function Dropbox#teamNamespacesList\n * @arg {TeamTeamNamespacesListArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamNamespacesListResult>, Error.<TeamTeamNamespacesListError>>}\n */\nroutes.teamNamespacesList = function (arg) {\n return this.request('team/namespaces/list', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from namespaces/list, use this to paginate\n * through all team-accessible namespaces. Duplicates may occur in the list.\n * @function Dropbox#teamNamespacesListContinue\n * @arg {TeamTeamNamespacesListContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamNamespacesListResult>, Error.<TeamTeamNamespacesListContinueError>>}\n */\nroutes.teamNamespacesListContinue = function (arg) {\n return this.request('team/namespaces/list/continue', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Permission : Team member file access.\n * @function Dropbox#teamPropertiesTemplateAdd\n * @deprecated\n * @arg {FilePropertiesAddTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesAddTemplateResult>, Error.<FilePropertiesModifyTemplateError>>}\n */\nroutes.teamPropertiesTemplateAdd = function (arg) {\n return this.request('team/properties/template/add', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Permission : Team member file access. The scope for the route is\n * files.team_metadata.write.\n * @function Dropbox#teamPropertiesTemplateGet\n * @deprecated\n * @arg {FilePropertiesGetTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesGetTemplateResult>, Error.<FilePropertiesTemplateError>>}\n */\nroutes.teamPropertiesTemplateGet = function (arg) {\n return this.request('team/properties/template/get', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Permission : Team member file access. The scope for the route is\n * files.team_metadata.write.\n * @function Dropbox#teamPropertiesTemplateList\n * @deprecated\n * @returns {Promise.<DropboxResponse<FilePropertiesListTemplateResult>, Error.<FilePropertiesTemplateError>>}\n */\nroutes.teamPropertiesTemplateList = function () {\n return this.request('team/properties/template/list', null, 'team', 'api', 'rpc');\n};\n\n/**\n * Permission : Team member file access.\n * @function Dropbox#teamPropertiesTemplateUpdate\n * @deprecated\n * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<FilePropertiesUpdateTemplateResult>, Error.<FilePropertiesModifyTemplateError>>}\n */\nroutes.teamPropertiesTemplateUpdate = function (arg) {\n return this.request('team/properties/template/update', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Retrieves reporting data about a team's user activity. Deprecated: Will be\n * removed on July 1st 2021.\n * @function Dropbox#teamReportsGetActivity\n * @deprecated\n * @arg {TeamDateRange} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGetActivityReport>, Error.<TeamDateRangeError>>}\n */\nroutes.teamReportsGetActivity = function (arg) {\n return this.request('team/reports/get_activity', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Retrieves reporting data about a team's linked devices. Deprecated: Will be\n * removed on July 1st 2021.\n * @function Dropbox#teamReportsGetDevices\n * @deprecated\n * @arg {TeamDateRange} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGetDevicesReport>, Error.<TeamDateRangeError>>}\n */\nroutes.teamReportsGetDevices = function (arg) {\n return this.request('team/reports/get_devices', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Retrieves reporting data about a team's membership. Deprecated: Will be\n * removed on July 1st 2021.\n * @function Dropbox#teamReportsGetMembership\n * @deprecated\n * @arg {TeamDateRange} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGetMembershipReport>, Error.<TeamDateRangeError>>}\n */\nroutes.teamReportsGetMembership = function (arg) {\n return this.request('team/reports/get_membership', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Retrieves reporting data about a team's storage usage. Deprecated: Will be\n * removed on July 1st 2021.\n * @function Dropbox#teamReportsGetStorage\n * @deprecated\n * @arg {TeamDateRange} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamGetStorageReport>, Error.<TeamDateRangeError>>}\n */\nroutes.teamReportsGetStorage = function (arg) {\n return this.request('team/reports/get_storage', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Sets an archived team folder's status to active. Permission : Team member\n * file access.\n * @function Dropbox#teamTeamFolderActivate\n * @arg {TeamTeamFolderIdArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamFolderMetadata>, Error.<TeamTeamFolderActivateError>>}\n */\nroutes.teamTeamFolderActivate = function (arg) {\n return this.request('team/team_folder/activate', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Sets an active team folder's status to archived and removes all folder and\n * file members. Permission : Team member file access.\n * @function Dropbox#teamTeamFolderArchive\n * @arg {TeamTeamFolderArchiveArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamFolderArchiveLaunch>, Error.<TeamTeamFolderArchiveError>>}\n */\nroutes.teamTeamFolderArchive = function (arg) {\n return this.request('team/team_folder/archive', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Returns the status of an asynchronous job for archiving a team folder.\n * Permission : Team member file access.\n * @function Dropbox#teamTeamFolderArchiveCheck\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamFolderArchiveJobStatus>, Error.<AsyncPollError>>}\n */\nroutes.teamTeamFolderArchiveCheck = function (arg) {\n return this.request('team/team_folder/archive/check', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Creates a new, active, team folder with no members. Permission : Team member\n * file access.\n * @function Dropbox#teamTeamFolderCreate\n * @arg {TeamTeamFolderCreateArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamFolderMetadata>, Error.<TeamTeamFolderCreateError>>}\n */\nroutes.teamTeamFolderCreate = function (arg) {\n return this.request('team/team_folder/create', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Retrieves metadata for team folders. Permission : Team member file access.\n * @function Dropbox#teamTeamFolderGetInfo\n * @arg {TeamTeamFolderIdListArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Array.<TeamTeamFolderGetInfoItem>>, Error.<void>>}\n */\nroutes.teamTeamFolderGetInfo = function (arg) {\n return this.request('team/team_folder/get_info', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Lists all team folders. Permission : Team member file access.\n * @function Dropbox#teamTeamFolderList\n * @arg {TeamTeamFolderListArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamFolderListResult>, Error.<TeamTeamFolderListError>>}\n */\nroutes.teamTeamFolderList = function (arg) {\n return this.request('team/team_folder/list', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from team_folder/list, use this to paginate\n * through all team folders. Permission : Team member file access.\n * @function Dropbox#teamTeamFolderListContinue\n * @arg {TeamTeamFolderListContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamFolderListResult>, Error.<TeamTeamFolderListContinueError>>}\n */\nroutes.teamTeamFolderListContinue = function (arg) {\n return this.request('team/team_folder/list/continue', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Permanently deletes an archived team folder. Permission : Team member file\n * access.\n * @function Dropbox#teamTeamFolderPermanentlyDelete\n * @arg {TeamTeamFolderIdArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<void>, Error.<TeamTeamFolderPermanentlyDeleteError>>}\n */\nroutes.teamTeamFolderPermanentlyDelete = function (arg) {\n return this.request('team/team_folder/permanently_delete', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Changes an active team folder's name. Permission : Team member file access.\n * @function Dropbox#teamTeamFolderRename\n * @arg {TeamTeamFolderRenameArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamFolderMetadata>, Error.<TeamTeamFolderRenameError>>}\n */\nroutes.teamTeamFolderRename = function (arg) {\n return this.request('team/team_folder/rename', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Updates the sync settings on a team folder or its contents. Use of this\n * endpoint requires that the team has team selective sync enabled.\n * @function Dropbox#teamTeamFolderUpdateSyncSettings\n * @arg {TeamTeamFolderUpdateSyncSettingsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamTeamFolderMetadata>, Error.<TeamTeamFolderUpdateSyncSettingsError>>}\n */\nroutes.teamTeamFolderUpdateSyncSettings = function (arg) {\n return this.request('team/team_folder/update_sync_settings', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Returns the member profile of the admin who generated the team access token\n * used to make the call.\n * @function Dropbox#teamTokenGetAuthenticatedAdmin\n * @returns {Promise.<DropboxResponse<TeamTokenGetAuthenticatedAdminResult>, Error.<TeamTokenGetAuthenticatedAdminError>>}\n */\nroutes.teamTokenGetAuthenticatedAdmin = function () {\n return this.request('team/token/get_authenticated_admin', null, 'team', 'api', 'rpc');\n};\n\n/**\n * Retrieves team events. If the result's GetTeamEventsResult.has_more field is\n * true, call get_events/continue with the returned cursor to retrieve more\n * entries. If end_time is not specified in your request, you may use the\n * returned cursor to poll get_events/continue for new events. Many attributes\n * note 'may be missing due to historical data gap'. Note that the\n * file_operations category and & analogous paper events are not available on\n * all Dropbox Business plans /business/plans-comparison. Use\n * features/get_values\n * /developers/documentation/http/teams#team-features-get_values to check for\n * this feature. Permission : Team Auditing.\n * @function Dropbox#teamLogGetEvents\n * @arg {TeamLogGetTeamEventsArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamLogGetTeamEventsResult>, Error.<TeamLogGetTeamEventsError>>}\n */\nroutes.teamLogGetEvents = function (arg) {\n return this.request('team_log/get_events', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Once a cursor has been retrieved from get_events, use this to paginate\n * through all events. Permission : Team Auditing.\n * @function Dropbox#teamLogGetEventsContinue\n * @arg {TeamLogGetTeamEventsContinueArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<TeamLogGetTeamEventsResult>, Error.<TeamLogGetTeamEventsContinueError>>}\n */\nroutes.teamLogGetEventsContinue = function (arg) {\n return this.request('team_log/get_events/continue', arg, 'team', 'api', 'rpc');\n};\n\n/**\n * Get a list of feature values that may be configured for the current account.\n * @function Dropbox#usersFeaturesGetValues\n * @arg {UsersUserFeaturesGetValuesBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<UsersUserFeaturesGetValuesBatchResult>, Error.<UsersUserFeaturesGetValuesBatchError>>}\n */\nroutes.usersFeaturesGetValues = function (arg) {\n return this.request('users/features/get_values', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get information about a user's account.\n * @function Dropbox#usersGetAccount\n * @arg {UsersGetAccountArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<UsersBasicAccount>, Error.<UsersGetAccountError>>}\n */\nroutes.usersGetAccount = function (arg) {\n return this.request('users/get_account', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get information about multiple user accounts. At most 300 accounts may be\n * queried per request.\n * @function Dropbox#usersGetAccountBatch\n * @arg {UsersGetAccountBatchArg} arg - The request parameters.\n * @returns {Promise.<DropboxResponse<Object>, Error.<UsersGetAccountBatchError>>}\n */\nroutes.usersGetAccountBatch = function (arg) {\n return this.request('users/get_account_batch', arg, 'user', 'api', 'rpc');\n};\n\n/**\n * Get information about the current user's account.\n * @function Dropbox#usersGetCurrentAccount\n * @returns {Promise.<DropboxResponse<UsersFullAccount>, Error.<void>>}\n */\nroutes.usersGetCurrentAccount = function () {\n return this.request('users/get_current_account', null, 'user', 'api', 'rpc');\n};\n\n/**\n * Get the space usage information for the current user's account.\n * @function Dropbox#usersGetSpaceUsage\n * @returns {Promise.<DropboxResponse<UsersSpaceUsage>, Error.<void>>}\n */\nroutes.usersGetSpaceUsage = function () {\n return this.request('users/get_space_usage', null, 'user', 'api', 'rpc');\n};\n\nexport { routes };\n","function getSafeUnicode(c) {\n const unicode = `000${c.charCodeAt(0).toString(16)}`.slice(-4);\n return `\\\\u${unicode}`;\n}\n\nexport function getBaseURL(host) {\n return `https://${host}.dropboxapi.com/2/`;\n}\n\n// source https://www.dropboxforum.com/t5/API-support/HTTP-header-quot-Dropbox-API-Arg-quot-could-not-decode-input-as/m-p/173823/highlight/true#M6786\nexport function httpHeaderSafeJson(args) {\n return JSON.stringify(args).replace(/[\\u007f-\\uffff]/g, getSafeUnicode);\n}\n\nexport function getTokenExpiresAtDate(expiresIn) {\n return new Date(Date.now() + (expiresIn * 1000));\n}\n\n/* global WorkerGlobalScope */\nexport function isWindowOrWorker() {\n return (\n (\n typeof WorkerGlobalScope !== 'undefined'\n && self instanceof WorkerGlobalScope // eslint-disable-line no-restricted-globals\n )\n || (\n typeof module === 'undefined'\n || typeof window !== 'undefined'\n )\n );\n}\n\nexport function isBrowserEnv() {\n return typeof window !== 'undefined';\n}\n\nexport function createBrowserSafeString(toBeConverted) {\n const convertedString = toBeConverted.toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n return convertedString;\n}\n","/**\n * The response class of HTTP errors from API calls using the Dropbox SDK.\n * @class DropboxResponseError\n * @classdesc The response class of HTTP errors from API calls using the Dropbox SDK.\n * @arg {number} status - HTTP Status code of the call\n * @arg {Object} headers - Headers returned from the call\n * @arg {Object} error - Serialized Error of the call\n */\nexport class DropboxResponseError extends Error {\n constructor(status, headers, error) {\n super(`Response failed with a ${status} code`);\n this.name = 'DropboxResponseError';\n this.status = status;\n this.headers = headers;\n this.error = error;\n }\n}\n","import { isWindowOrWorker } from './utils.js';\nimport { DropboxResponseError } from './error.js';\n\nexport class DropboxResponse {\n constructor(status, headers, result) {\n this.status = status;\n this.headers = headers;\n this.result = result;\n }\n}\n\nfunction throwAsError(res) {\n return res.text()\n .then((data) => {\n let errorObject;\n try {\n errorObject = JSON.parse(data);\n } catch (error) {\n errorObject = data;\n }\n\n throw new DropboxResponseError(res.status, res.headers, errorObject);\n });\n}\n\nexport function parseResponse(res) {\n if (!res.ok) {\n return throwAsError(res);\n }\n return res.text()\n .then((data) => {\n let responseObject;\n try {\n responseObject = JSON.parse(data);\n } catch (error) {\n responseObject = data;\n }\n\n return new DropboxResponse(res.status, res.headers, responseObject);\n });\n}\n\nexport function parseDownloadResponse(res) {\n if (!res.ok) {\n return throwAsError(res);\n }\n return new Promise((resolve) => {\n if (isWindowOrWorker()) {\n res.blob().then((data) => resolve(data));\n } else {\n res.buffer().then((data) => resolve(data));\n }\n }).then((data) => {\n const result = JSON.parse(res.headers.get('dropbox-api-result'));\n\n if (isWindowOrWorker()) {\n result.fileBlob = data;\n } else {\n result.fileBinary = data;\n }\n\n return new DropboxResponse(res.status, res.headers, result);\n });\n}\n","import {\n getTokenExpiresAtDate,\n isBrowserEnv,\n createBrowserSafeString,\n} from './utils.js';\nimport { parseResponse } from './response.js';\n\nlet fetch;\nif (isBrowserEnv()) {\n fetch = window.fetch.bind(window);\n} else {\n fetch = require('node-fetch'); // eslint-disable-line global-require\n}\n\nlet crypto;\nif (isBrowserEnv()) {\n crypto = window.crypto || window.msCrypto; // for IE11\n} else {\n crypto = require('crypto'); // eslint-disable-line global-require\n}\n\nlet Encoder;\nif (typeof TextEncoder === 'undefined') {\n Encoder = require('util').TextEncoder; // eslint-disable-line global-require\n} else {\n Encoder = TextEncoder;\n}\n\n// Expiration is 300 seconds but needs to be in milliseconds for Date object\nconst TokenExpirationBuffer = 300 * 1000;\nconst PKCELength = 128;\nconst TokenAccessTypes = ['legacy', 'offline', 'online'];\nconst GrantTypes = ['code', 'token'];\nconst IncludeGrantedScopes = ['none', 'user', 'team'];\nconst BaseAuthorizeUrl = 'https://www.dropbox.com/oauth2/authorize';\nconst BaseTokenUrl = 'https://api.dropboxapi.com/oauth2/token';\n\n/**\n * @class DropboxAuth\n * @classdesc The DropboxAuth class that provides methods to manage, acquire, and refresh tokens.\n * @arg {Object} options\n * @arg {Function} [options.fetch] - fetch library for making requests.\n * @arg {String} [options.accessToken] - An access token for making authenticated\n * requests.\n * @arg {Date} [options.AccessTokenExpiresAt] - Date of the current access token's\n * expiration (if available)\n * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens\n * @arg {String} [options.clientId] - The client id for your app. Used to create\n * authentication URL.\n * @arg {String} [options.clientSecret] - The client secret for your app. Used to create\n * authentication URL and refresh access tokens.\n */\nexport default class DropboxAuth {\n constructor(options) {\n options = options || {};\n\n this.fetch = options.fetch || fetch;\n this.accessToken = options.accessToken;\n this.accessTokenExpiresAt = options.accessTokenExpiresAt;\n this.refreshToken = options.refreshToken;\n this.clientId = options.clientId;\n this.clientSecret = options.clientSecret;\n }\n\n /**\n * Set the access token used to authenticate requests to the API.\n * @arg {String} accessToken - An access token\n * @returns {undefined}\n */\n setAccessToken(accessToken) {\n this.accessToken = accessToken;\n }\n\n /**\n * Get the access token\n * @returns {String} Access token\n */\n getAccessToken() {\n return this.accessToken;\n }\n\n /**\n * Set the client id, which is used to help gain an access token.\n * @arg {String} clientId - Your apps client id\n * @returns {undefined}\n */\n setClientId(clientId) {\n this.clientId = clientId;\n }\n\n /**\n * Get the client id\n * @returns {String} Client id\n */\n getClientId() {\n return this.clientId;\n }\n\n /**\n * Set the client secret\n * @arg {String} clientSecret - Your app's client secret\n * @returns {undefined}\n */\n setClientSecret(clientSecret) {\n this.clientSecret = clientSecret;\n }\n\n /**\n * Get the client secret\n * @returns {String} Client secret\n */\n getClientSecret() {\n return this.clientSecret;\n }\n\n /**\n * Gets the refresh token\n * @returns {String} Refresh token\n */\n getRefreshToken() {\n return this.refreshToken;\n }\n\n /**\n * Sets the refresh token\n * @param refreshToken - A refresh token\n */\n setRefreshToken(refreshToken) {\n this.refreshToken = refreshToken;\n }\n\n /**\n * Gets the access token's expiration date\n * @returns {Date} date of token expiration\n */\n getAccessTokenExpiresAt() {\n return this.accessTokenExpiresAt;\n }\n\n /**\n * Sets the access token's expiration date\n * @param accessTokenExpiresAt - new expiration date\n */\n setAccessTokenExpiresAt(accessTokenExpiresAt) {\n this.accessTokenExpiresAt = accessTokenExpiresAt;\n }\n\n generatePKCECodes() {\n let codeVerifier;\n if (isBrowserEnv()) {\n const array = new Uint8Array(PKCELength);\n const randomValueArray = crypto.getRandomValues(array);\n const base64String = btoa(randomValueArray);\n codeVerifier = createBrowserSafeString(base64String).substr(0, 128);\n } else {\n const randomBytes = crypto.randomBytes(PKCELength);\n codeVerifier = createBrowserSafeString(randomBytes).substr(0, 128);\n }\n this.codeVerifier = codeVerifier;\n\n const encoder = new Encoder();\n const codeData = encoder.encode(codeVerifier);\n let codeChallenge;\n if (isBrowserEnv()) {\n return crypto.subtle.digest('SHA-256', codeData)\n .then((digestedHash) => {\n const typedArray = new Uint8Array(digestedHash);\n const base64String = btoa(typedArray);\n codeChallenge = createBrowserSafeString(base64String).substr(0, 128);\n this.codeChallenge = codeChallenge;\n });\n }\n const digestedHash = crypto.createHash('sha256').update(codeData).digest();\n codeChallenge = createBrowserSafeString(digestedHash);\n this.codeChallenge = codeChallenge;\n return Promise.resolve();\n }\n\n /**\n * Get a URL that can be used to authenticate users for the Dropbox API.\n * @arg {String} redirectUri - A URL to redirect the user to after\n * authenticating. This must be added to your app through the admin interface.\n * @arg {String} [state] - State that will be returned in the redirect URL to help\n * prevent cross site scripting attacks.\n * @arg {String} [authType] - auth type, defaults to 'token', other option is 'code'\n * @arg {String} [tokenAccessType] - type of token to request. From the following:\n * null - creates a token with the app default (either legacy or online)\n * legacy - creates one long-lived token with no expiration\n * online - create one short-lived token with an expiration\n * offline - create one short-lived token with an expiration with a refresh token\n * @arg {Array<String>} [scope] - scopes to request for the grant\n * @arg {String} [includeGrantedScopes] - whether or not to include previously granted scopes.\n * From the following:\n * user - include user scopes in the grant\n * team - include team scopes in the grant\n * Note: if this user has never linked the app, include_granted_scopes must be None\n * @arg {boolean} [usePKCE] - Whether or not to use Sha256 based PKCE. PKCE should be only use on\n * client apps which doesn't call your server. It is less secure than non-PKCE flow but\n * can be used if you are unable to safely retrieve your app secret\n * @returns {Promise<String>} - Url to send user to for Dropbox API authentication\n * returned in a promise\n */\n getAuthenticationUrl(redirectUri, state, authType = 'token', tokenAccessType = null, scope = null, includeGrantedScopes = 'none', usePKCE = false) {\n const clientId = this.getClientId();\n const baseUrl = BaseAuthorizeUrl;\n\n if (!clientId) {\n throw new Error('A client id is required. You can set the client id using .setClientId().');\n }\n if (authType !== 'code' && !redirectUri) {\n throw new Error('A redirect uri is required.');\n }\n if (!GrantTypes.includes(authType)) {\n throw new Error('Authorization type must be code or token');\n }\n if (tokenAccessType && !TokenAccessTypes.includes(tokenAccessType)) {\n throw new Error('Token Access Type must be legacy, offline, or online');\n }\n if (scope && !(scope instanceof Array)) {\n throw new Error('Scope must be an array of strings');\n }\n if (!IncludeGrantedScopes.includes(includeGrantedScopes)) {\n throw new Error('includeGrantedScopes must be none, user, or team');\n }\n\n let authUrl;\n if (authType === 'code') {\n authUrl = `${baseUrl}?response_type=code&client_id=${clientId}`;\n } else {\n authUrl = `${baseUrl}?response_type=token&client_id=${clientId}`;\n }\n\n if (redirectUri) {\n authUrl += `&redirect_uri=${redirectUri}`;\n }\n if (state) {\n authUrl += `&state=${state}`;\n }\n if (tokenAccessType) {\n authUrl += `&token_access_type=${tokenAccessType}`;\n }\n if (scope) {\n authUrl += `&scope=${scope.join(' ')}`;\n }\n if (includeGrantedScopes !== 'none') {\n authUrl += `&include_granted_scopes=${includeGrantedScopes}`;\n }\n if (usePKCE) {\n return this.generatePKCECodes()\n .then(() => {\n authUrl += '&code_challenge_method=S256';\n authUrl += `&code_challenge=${this.codeChallenge}`;\n return authUrl;\n });\n }\n return Promise.resolve(authUrl);\n }\n\n /**\n * Get an OAuth2 access token from an OAuth2 Code.\n * @arg {String} redirectUri - A URL to redirect the user to after\n * authenticating. This must be added to your app through the admin interface.\n * @arg {String} code - An OAuth2 code.\n * @returns {Object} An object containing the token and related info (if applicable)\n */\n getAccessTokenFromCode(redirectUri, code) {\n const clientId = this.getClientId();\n const clientSecret = this.getClientSecret();\n\n if (!clientId) {\n throw new Error('A client id is required. You can set the client id using .setClientId().');\n }\n let path = BaseTokenUrl;\n path += '?grant_type=authorization_code';\n path += `&code=${code}`;\n path += `&client_id=${clientId}`;\n\n if (clientSecret) {\n path += `&client_secret=${clientSecret}`;\n } else {\n if (!this.codeChallenge) {\n throw new Error('You must use PKCE when generating the authorization URL to not include a client secret');\n }\n path += `&code_verifier=${this.codeVerifier}`;\n }\n if (redirectUri) {\n path += `&redirect_uri=${redirectUri}`;\n }\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n return this.fetch(path, fetchOptions)\n .then((res) => parseResponse(res));\n }\n\n /**\n * Checks if a token is needed, can be refreshed and if the token is expired.\n * If so, attempts to refresh access token\n * @returns {Promise<*>}\n */\n checkAndRefreshAccessToken() {\n const canRefresh = this.getRefreshToken() && this.getClientId();\n const needsRefresh = !this.getAccessTokenExpiresAt()\n || (new Date(Date.now() + TokenExpirationBuffer)) >= this.getAccessTokenExpiresAt();\n const needsToken = !this.getAccessToken();\n if ((needsRefresh || needsToken) && canRefresh) {\n return this.refreshAccessToken();\n }\n return Promise.resolve();\n }\n\n /**\n * Refreshes the access token using the refresh token, if available\n * @arg {Array<String>} scope - a subset of scopes from the original\n * refresh to acquire with an access token\n * @returns {Promise<*>}\n */\n refreshAccessToken(scope = null) {\n let refreshUrl = BaseTokenUrl;\n const clientId = this.getClientId();\n const clientSecret = this.getClientSecret();\n\n if (!clientId) {\n throw new Error('A client id is required. You can set the client id using .setClientId().');\n }\n if (scope && !(scope instanceof Array)) {\n throw new Error('Scope must be an array of strings');\n }\n\n const headers = {};\n headers['Content-Type'] = 'application/json';\n refreshUrl += `?grant_type=refresh_token&refresh_token=${this.getRefreshToken()}`;\n refreshUrl += `&client_id=${clientId}`;\n if (clientSecret) {\n refreshUrl += `&client_secret=${clientSecret}`;\n }\n if (scope) {\n refreshUrl += `&scope=${scope.join(' ')}`;\n }\n const fetchOptions = {\n method: 'POST',\n };\n\n fetchOptions.headers = headers;\n\n return this.fetch(refreshUrl, fetchOptions)\n .then((res) => parseResponse(res))\n .then((res) => {\n this.setAccessToken(res.result.access_token);\n this.setAccessTokenExpiresAt(getTokenExpiresAtDate(res.result.expires_in));\n });\n }\n\n /**\n * An authentication process that works with cordova applications.\n * @param {successCallback} successCallback\n * @param {errorCallback} errorCallback\n */\n authenticateWithCordova(successCallback, errorCallback) {\n const redirectUrl = 'https://www.dropbox.com/1/oauth2/redirect_receiver';\n this.getAuthenticationUrl(redirectUrl)\n .then((url) => {\n let removed = false;\n const browser = window.open(url, '_blank');\n\n function onLoadError(event) {\n // Workaround to fix wrong behavior on cordova-plugin-inappbrowser\n if (event.code !== -999) {\n // Try to avoid a browser crash on browser.close().\n window.setTimeout(() => { browser.close(); }, 10);\n errorCallback();\n }\n }\n\n function onLoadStop(event) {\n const errorLabel = '&error=';\n const errorIndex = event.url.indexOf(errorLabel);\n\n if (errorIndex > -1) {\n // Try to avoid a browser crash on browser.close().\n window.setTimeout(() => { browser.close(); }, 10);\n errorCallback();\n } else {\n const tokenLabel = '#access_token=';\n let tokenIndex = event.url.indexOf(tokenLabel);\n const tokenTypeIndex = event.url.indexOf('&token_type=');\n if (tokenIndex > -1) {\n tokenIndex += tokenLabel.length;\n // Try to avoid a browser crash on browser.close().\n window.setTimeout(() => { browser.close(); }, 10);\n\n const accessToken = event.url.substring(tokenIndex, tokenTypeIndex);\n successCallback(accessToken);\n }\n }\n }\n\n function onExit() {\n if (removed) {\n return;\n }\n browser.removeEventListener('loaderror', onLoadError);\n browser.removeEventListener('loadstop', onLoadStop);\n browser.removeEventListener('exit', onExit);\n removed = true;\n }\n\n browser.addEventListener('loaderror', onLoadError);\n browser.addEventListener('loadstop', onLoadStop);\n browser.addEventListener('exit', onExit);\n });\n }\n}\n","import {\n UPLOAD,\n DOWNLOAD,\n RPC,\n APP_AUTH,\n TEAM_AUTH,\n USER_AUTH,\n NO_AUTH,\n} from './constants.js';\nimport { routes } from '../lib/routes.js';\nimport DropboxAuth from './auth.js';\nimport { getBaseURL, httpHeaderSafeJson } from './utils.js';\nimport { parseDownloadResponse, parseResponse } from './response.js';\n\nlet fetch;\nif (typeof window !== 'undefined') {\n fetch = window.fetch.bind(window);\n} else {\n fetch = require('node-fetch'); // eslint-disable-line global-require\n}\n\nconst b64 = typeof btoa === 'undefined'\n ? (str) => Buffer.from(str).toString('base64')\n : btoa;\n\n/**\n * @class Dropbox\n * @classdesc The Dropbox SDK class that provides methods to read, write and\n * create files or folders in a user or team's Dropbox.\n * @arg {Object} options\n * @arg {Function} [options.fetch] - fetch library for making requests.\n * @arg {String} [options.selectUser] - Select user is only used for team functionality.\n * It specifies which user the team access token should be acting as.\n * @arg {String} [options.pathRoot] - root path to access other namespaces\n * Use to access team folders for example\n * @arg {String} [options.selectAdmin] - Select admin is only used by team functionality.\n * It specifies which team admin the team access token should be acting as.\n * @arg {DropboxAuth} [options.auth] - The DropboxAuth object used to authenticate requests.\n * If this is set, the remaining parameters will be ignored.\n * @arg {String} [options.accessToken] - An access token for making authenticated\n * requests.\n * @arg {Date} [options.accessTokenExpiresAt] - Date of the current access token's\n * expiration (if available)\n * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens\n * @arg {String} [options.clientId] - The client id for your app. Used to create\n * authentication URL.\n * @arg {String} [options.clientSecret] - The client secret for your app. Used to create\n * authentication URL and refresh access tokens.\n */\nexport default class Dropbox {\n constructor(options) {\n options = options || {};\n\n if (options.auth) {\n this.auth = options.auth;\n } else {\n this.auth = new DropboxAuth(options);\n }\n\n this.fetch = options.fetch || fetch;\n this.selectUser = options.selectUser;\n this.selectAdmin = options.selectAdmin;\n this.pathRoot = options.pathRoot;\n\n Object.assign(this, routes);\n }\n\n request(path, args, auth, host, style) {\n switch (style) {\n case RPC:\n return this.rpcRequest(path, args, auth, host);\n case DOWNLOAD:\n return this.downloadRequest(path, args, auth, host);\n case UPLOAD:\n return this.uploadRequest(path, args, auth, host);\n default:\n throw new Error(`Invalid request style: ${style}`);\n }\n }\n\n rpcRequest(path, body, auth, host) {\n return this.auth.checkAndRefreshAccessToken()\n .then(() => {\n const fetchOptions = {\n method: 'POST',\n body: (body) ? JSON.stringify(body) : null,\n headers: {},\n };\n\n if (body) {\n fetchOptions.headers['Content-Type'] = 'application/json';\n }\n\n let authHeader;\n switch (auth) {\n case APP_AUTH:\n if (!this.auth.clientId || !this.auth.clientSecret) {\n throw new Error('A client id and secret is required for this function');\n }\n authHeader = b64(`${this.auth.clientId}:${this.auth.clientSecret}`);\n fetchOptions.headers.Authorization = `Basic ${authHeader}`;\n break;\n case TEAM_AUTH:\n case USER_AUTH:\n fetchOptions.headers.Authorization = `Bearer ${this.auth.getAccessToken()}`;\n break;\n case NO_AUTH:\n break;\n default:\n throw new Error(`Unhandled auth type: ${auth}`);\n }\n\n this.setCommonHeaders(fetchOptions);\n return fetchOptions;\n })\n .then((fetchOptions) => this.fetch(getBaseURL(host) + path, fetchOptions))\n .then((res) => parseResponse(res));\n }\n\n downloadRequest(path, args, auth, host) {\n return this.auth.checkAndRefreshAccessToken()\n .then(() => {\n if (auth !== USER_AUTH) {\n throw new Error(`Unexpected auth type: ${auth}`);\n }\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${this.auth.getAccessToken()}`,\n 'Dropbox-API-Arg': httpHeaderSafeJson(args),\n },\n };\n\n this.setCommonHeaders(fetchOptions);\n\n return fetchOptions;\n })\n .then((fetchOptions) => fetch(getBaseURL(host) + path, fetchOptions))\n .then((res) => parseDownloadResponse(res));\n }\n\n uploadRequest(path, args, auth, host) {\n return this.auth.checkAndRefreshAccessToken()\n .then(() => {\n if (auth !== USER_AUTH) {\n throw new Error(`Unexpected auth type: ${auth}`);\n }\n\n const { contents } = args;\n delete args.contents;\n\n const fetchOptions = {\n body: contents,\n method: 'POST',\n headers: {\n Authorization: `Bearer ${this.auth.getAccessToken()}`,\n 'Content-Type': 'application/octet-stream',\n 'Dropbox-API-Arg': httpHeaderSafeJson(args),\n },\n };\n\n this.setCommonHeaders(fetchOptions);\n\n return fetchOptions;\n })\n .then((fetchOptions) => this.fetch(getBaseURL(host) + path, fetchOptions))\n .then((res) => parseResponse(res));\n }\n\n setCommonHeaders(options) {\n if (this.selectUser) {\n options.headers['Dropbox-API-Select-User'] = this.selectUser;\n }\n if (this.selectAdmin) {\n options.headers['Dropbox-API-Select-Admin'] = this.selectAdmin;\n }\n if (this.pathRoot) {\n options.headers['Dropbox-API-Path-Root'] = this.pathRoot;\n }\n }\n}\n"],"names":["RPC","UPLOAD","DOWNLOAD","APP_AUTH","USER_AUTH","TEAM_AUTH","NO_AUTH","routes","accountSetProfilePhoto","arg","request","authTokenFromOauth1","authTokenRevoke","checkApp","checkUser","contactsDeleteManualContacts","contactsDeleteManualContactsBatch","filePropertiesPropertiesAdd","filePropertiesPropertiesOverwrite","filePropertiesPropertiesRemove","filePropertiesPropertiesSearch","filePropertiesPropertiesSearchContinue","filePropertiesPropertiesUpdate","filePropertiesTemplatesAddForTeam","filePropertiesTemplatesAddForUser","filePropertiesTemplatesGetForTeam","filePropertiesTemplatesGetForUser","filePropertiesTemplatesListForTeam","filePropertiesTemplatesListForUser","filePropertiesTemplatesRemoveForTeam","filePropertiesTemplatesRemoveForUser","filePropertiesTemplatesUpdateForTeam","filePropertiesTemplatesUpdateForUser","fileRequestsCount","fileRequestsCreate","fileRequestsDelete","fileRequestsDeleteAllClosed","fileRequestsGet","fileRequestsListV2","fileRequestsList","fileRequestsListContinue","fileRequestsUpdate","filesAlphaGetMetadata","filesAlphaUpload","filesCopyV2","filesCopy","filesCopyBatchV2","filesCopyBatch","filesCopyBatchCheckV2","filesCopyBatchCheck","filesCopyReferenceGet","filesCopyReferenceSave","filesCreateFolderV2","filesCreateFolder","filesCreateFolderBatch","filesCreateFolderBatchCheck","filesDeleteV2","filesDelete","filesDeleteBatch","filesDeleteBatchCheck","filesDownload","filesDownloadZip","filesExport","filesGetFileLockBatch","filesGetMetadata","filesGetPreview","filesGetTemporaryLink","filesGetTemporaryUploadLink","filesGetThumbnail","filesGetThumbnailV2","filesGetThumbnailBatch","filesListFolder","filesListFolderContinue","filesListFolderGetLatestCursor","filesListFolderLongpoll","filesListRevisions","filesLockFileBatch","filesMoveV2","filesMove","filesMoveBatchV2","filesMoveBatch","filesMoveBatchCheckV2","filesMoveBatchCheck","filesPaperCreate","filesPaperUpdate","filesPermanentlyDelete","filesPropertiesAdd","filesPropertiesOverwrite","filesPropertiesRemove","filesPropertiesTemplateGet","filesPropertiesTemplateList","filesPropertiesUpdate","filesRestore","filesSaveUrl","filesSaveUrlCheckJobStatus","filesSearch","filesSearchV2","filesSearchContinueV2","filesUnlockFileBatch","filesUpload","filesUploadSessionAppendV2","filesUploadSessionAppend","filesUploadSessionFinish","filesUploadSessionFinishBatch","filesUploadSessionFinishBatchCheck","filesUploadSessionStart","paperDocsArchive","paperDocsCreate","paperDocsDownload","paperDocsFolderUsersList","paperDocsFolderUsersListContinue","paperDocsGetFolderInfo","paperDocsList","paperDocsListContinue","paperDocsPermanentlyDelete","paperDocsSharingPolicyGet","paperDocsSharingPolicySet","paperDocsUpdate","paperDocsUsersAdd","paperDocsUsersList","paperDocsUsersListContinue","paperDocsUsersRemove","paperFoldersCreate","sharingAddFileMember","sharingAddFolderMember","sharingChangeFileMemberAccess","sharingCheckJobStatus","sharingCheckRemoveMemberJobStatus","sharingCheckShareJobStatus","sharingCreateSharedLink","sharingCreateSharedLinkWithSettings","sharingGetFileMetadata","sharingGetFileMetadataBatch","sharingGetFolderMetadata","sharingGetSharedLinkFile","sharingGetSharedLinkMetadata","sharingGetSharedLinks","sharingListFileMembers","sharingListFileMembersBatch","sharingListFileMembersContinue","sharingListFolderMembers","sharingListFolderMembersContinue","sharingListFolders","sharingListFoldersContinue","sharingListMountableFolders","sharingListMountableFoldersContinue","sharingListReceivedFiles","sharingListReceivedFilesContinue","sharingListSharedLinks","sharingModifySharedLinkSettings","sharingMountFolder","sharingRelinquishFileMembership","sharingRelinquishFolderMembership","sharingRemoveFileMember","sharingRemoveFileMember2","sharingRemoveFolderMember","sharingRevokeSharedLink","sharingSetAccessInheritance","sharingShareFolder","sharingTransferFolder","sharingUnmountFolder","sharingUnshareFile","sharingUnshareFolder","sharingUpdateFileMember","sharingUpdateFolderMember","sharingUpdateFolderPolicy","teamDevicesListMemberDevices","teamDevicesListMembersDevices","teamDevicesListTeamDevices","teamDevicesRevokeDeviceSession","teamDevicesRevokeDeviceSessionBatch","teamFeaturesGetValues","teamGetInfo","teamGroupsCreate","teamGroupsDelete","teamGroupsGetInfo","teamGroupsJobStatusGet","teamGroupsList","teamGroupsListContinue","teamGroupsMembersAdd","teamGroupsMembersList","teamGroupsMembersListContinue","teamGroupsMembersRemove","teamGroupsMembersSetAccessType","teamGroupsUpdate","teamLegalHoldsCreatePolicy","teamLegalHoldsGetPolicy","teamLegalHoldsListHeldRevisions","teamLegalHoldsListHeldRevisionsContinue","teamLegalHoldsListPolicies","teamLegalHoldsReleasePolicy","teamLegalHoldsUpdatePolicy","teamLinkedAppsListMemberLinkedApps","teamLinkedAppsListMembersLinkedApps","teamLinkedAppsListTeamLinkedApps","teamLinkedAppsRevokeLinkedApp","teamLinkedAppsRevokeLinkedAppBatch","teamMemberSpaceLimitsExcludedUsersAdd","teamMemberSpaceLimitsExcludedUsersList","teamMemberSpaceLimitsExcludedUsersListContinue","teamMemberSpaceLimitsExcludedUsersRemove","teamMemberSpaceLimitsGetCustomQuota","teamMemberSpaceLimitsRemoveCustomQuota","teamMemberSpaceLimitsSetCustomQuota","teamMembersAdd","teamMembersAddJobStatusGet","teamMembersDeleteProfilePhoto","teamMembersGetInfo","teamMembersList","teamMembersListContinue","teamMembersMoveFormerMemberFiles","teamMembersMoveFormerMemberFilesJobStatusCheck","teamMembersRecover","teamMembersRemove","teamMembersRemoveJobStatusGet","teamMembersSecondaryEmailsAdd","teamMembersSecondaryEmailsDelete","teamMembersSecondaryEmailsResendVerificationEmails","teamMembersSendWelcomeEmail","teamMembersSetAdminPermissions","teamMembersSetProfile","teamMembersSetProfilePhoto","teamMembersSuspend","teamMembersUnsuspend","teamNamespacesList","teamNamespacesListContinue","teamPropertiesTemplateAdd","teamPropertiesTemplateGet","teamPropertiesTemplateList","teamPropertiesTemplateUpdate","teamReportsGetActivity","teamReportsGetDevices","teamReportsGetMembership","teamReportsGetStorage","teamTeamFolderActivate","teamTeamFolderArchive","teamTeamFolderArchiveCheck","teamTeamFolderCreate","teamTeamFolderGetInfo","teamTeamFolderList","teamTeamFolderListContinue","teamTeamFolderPermanentlyDelete","teamTeamFolderRename","teamTeamFolderUpdateSyncSettings","teamTokenGetAuthenticatedAdmin","teamLogGetEvents","teamLogGetEventsContinue","usersFeaturesGetValues","usersGetAccount","usersGetAccountBatch","usersGetCurrentAccount","usersGetSpaceUsage","getSafeUnicode","c","unicode","charCodeAt","toString","slice","getBaseURL","host","httpHeaderSafeJson","args","JSON","stringify","replace","getTokenExpiresAtDate","expiresIn","Date","now","isWindowOrWorker","WorkerGlobalScope","self","module","window","isBrowserEnv","createBrowserSafeString","toBeConverted","convertedString","DropboxResponseError","status","headers","error","name","Error","DropboxResponse","result","throwAsError","res","text","then","data","errorObject","parse","parseResponse","ok","responseObject","parseDownloadResponse","Promise","resolve","blob","buffer","get","fileBlob","fileBinary","fetch","bind","require","crypto","msCrypto","Encoder","TextEncoder","TokenExpirationBuffer","PKCELength","TokenAccessTypes","GrantTypes","IncludeGrantedScopes","BaseAuthorizeUrl","BaseTokenUrl","DropboxAuth","options","accessToken","accessTokenExpiresAt","refreshToken","clientId","clientSecret","codeVerifier","array","Uint8Array","randomValueArray","getRandomValues","base64String","btoa","substr","randomBytes","encoder","codeData","encode","codeChallenge","subtle","digest","digestedHash","typedArray","createHash","update","redirectUri","state","authType","tokenAccessType","scope","includeGrantedScopes","usePKCE","getClientId","baseUrl","includes","Array","authUrl","join","generatePKCECodes","code","getClientSecret","path","fetchOptions","method","canRefresh","getRefreshToken","needsRefresh","getAccessTokenExpiresAt","needsToken","getAccessToken","refreshAccessToken","refreshUrl","setAccessToken","access_token","setAccessTokenExpiresAt","expires_in","successCallback","errorCallback","redirectUrl","getAuthenticationUrl","url","removed","browser","open","onLoadError","event","setTimeout","close","onLoadStop","errorLabel","errorIndex","indexOf","tokenLabel","tokenIndex","tokenTypeIndex","length","substring","onExit","removeEventListener","addEventListener","b64","str","Buffer","from","Dropbox","auth","selectUser","selectAdmin","pathRoot","Object","assign","style","rpcRequest","downloadRequest","uploadRequest","body","checkAndRefreshAccessToken","authHeader","Authorization","setCommonHeaders","contents"],"mappings":"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"}
\No newline at end of file