{"version":3,"file":"js/2-private-ad-3c69706e.40568940.js","mappings":"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","sources":["webpack://baseline/./src/vimeoUpload.js"],"sourcesContent":["/* eslint-disable */\r\n/*\r\n | EDIT: This has been modified to work with Vimeo's new API\r\n | Vimeo-Upload: Upload videos to your Vimeo account directly from a\r\n | browser or a Node.js app\r\n |\r\n | _ ___\r\n | | | / (_)___ ___ ___ ____\r\n | | | / / / __ `__ \\/ _ \\/ __ \\ ┌───────────────────────────┐\r\n | | |/ / / / / / / / __/ /_/ / | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ %75 |\r\n | |___/_/_/ /_/ /_/\\___/\\____/ └───────────────────────────┘\r\n | Upload\r\n |\r\n |\r\n | This project was released under Apache 2.0\" license.\r\n |\r\n | @link http://websemantics.ca\r\n | @author Web Semantics, Inc. Dev Team \r\n | @author Adnan M.Sagar, PhD. \r\n | @credits Built on cors-upload-sample, https://github.com/googledrive/cors-upload-sample\r\n */\r\n\r\n// ;(function(root, factory) {\r\n// if (typeof define === 'function' && define.amd) {\r\n// define([], function() {\r\n// return (root.VimeoUpload = factory())\r\n// })\r\n// } else if (typeof module === 'object' && module.exports) {\r\n// module.exports = factory()\r\n// } else {\r\n// root.VimeoUpload = factory()\r\n// }\r\n// })\r\n;(function (root, factory) {\r\n if (typeof define === 'function') {\r\n return (root.vimeoUpload = factory())\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory()\r\n } else {\r\n root.vimeoUpload = factory()\r\n }\r\n})(this, function () {\r\n // -------------------------------------------------------------------------\r\n // RetryHandler Class\r\n\r\n /**\r\n * Helper for implementing retries with backoff. Initial retry\r\n * delay is 1 second, increasing by 2x (+jitter) for subsequent retries\r\n *\r\n * @constructor\r\n */\r\n var RetryHandler = function () {\r\n this.interval = 1000 // Start at one second\r\n this.maxInterval = 60 * 1000 // Don't wait longer than a minute\r\n }\r\n\r\n /**\r\n * Invoke the function after waiting\r\n *\r\n * @param {function} fn Function to invoke\r\n */\r\n RetryHandler.prototype.retry = function (fn) {\r\n setTimeout(fn, this.interval)\r\n this.interval = this.nextInterval_()\r\n }\r\n\r\n /**\r\n * Reset the counter (e.g. after successful request)\r\n */\r\n RetryHandler.prototype.reset = function () {\r\n this.interval = 1000\r\n }\r\n\r\n /**\r\n * Calculate the next wait time.\r\n * @return {number} Next wait interval, in milliseconds\r\n *\r\n * @private\r\n */\r\n RetryHandler.prototype.nextInterval_ = function () {\r\n var interval = this.interval * 2 + this.getRandomInt_(0, 1000)\r\n return Math.min(interval, this.maxInterval)\r\n }\r\n\r\n /**\r\n * Get a random int in the range of min to max. Used to add jitter to wait times.\r\n *\r\n * @param {number} min Lower bounds\r\n * @param {number} max Upper bounds\r\n * @private\r\n */\r\n RetryHandler.prototype.getRandomInt_ = function (min, max) {\r\n return Math.floor(Math.random() * (max - min + 1) + min)\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Private data\r\n\r\n /* Library defaults, can be changed using the 'defaults' member method,\r\n\r\n - api_url (string), vimeo api url\r\n - name (string), default video name\r\n - description (string), default video description\r\n - contentType (string), video content type\r\n - token (string), vimeo api token\r\n - file (object), video file\r\n - metadata (array), data to associate with the video\r\n - upgrade_to_1080 (boolean), set video resolution to high definition\r\n - offset (int),\r\n - chunkSize (int),\r\n - retryHandler (RetryHandler), hanlder class\r\n - onComplete (function), handler for onComplete event\r\n - onProgress (function), handler for onProgress event\r\n - onError (function), handler for onError event\r\n\r\n */\r\n\r\n var defaults = {\r\n api_url: 'https://api.vimeo.com',\r\n name: 'Default name',\r\n description: 'Default description',\r\n contentType: 'application/octet-stream',\r\n token: null,\r\n file: {},\r\n metadata: [],\r\n upgrade_to_1080: false,\r\n offset: 0,\r\n chunkSize: 0,\r\n retryHandler: new RetryHandler(),\r\n onComplete: function () {},\r\n onProgress: function () {},\r\n onError: function () {},\r\n }\r\n\r\n /**\r\n * Helper class for resumable uploads using XHR/CORS. Can upload any Blob-like item, whether\r\n * files or in-memory constructs.\r\n *\r\n * @example\r\n * var content = new Blob([\"Hello world\"], {\"type\": \"text/plain\"})\r\n * var uploader = new VimeoUpload({\r\n * file: content,\r\n * token: accessToken,\r\n * onComplete: function(data) { ... }\r\n * onError: function(data) { ... }\r\n * })\r\n * uploader.upload()\r\n *\r\n * @constructor\r\n * @param {object} options Hash of options\r\n * @param {string} options.token Access token\r\n * @param {blob} options.file Blob-like item to upload\r\n * @param {string} [options.fileId] ID of file if replacing\r\n * @param {object} [options.params] Additional query parameters\r\n * @param {string} [options.contentType] Content-type, if overriding the type of the blob.\r\n * @param {object} [options.metadata] File metadata\r\n * @param {function} [options.onComplete] Callback for when upload is complete\r\n * @param {function} [options.onProgress] Callback for status for the in-progress upload\r\n * @param {function} [options.onError] Callback if upload fails\r\n */\r\n var me = function (opts) {\r\n /* copy user options or use default values */\r\n for (var i in defaults) {\r\n this[i] = opts[i] !== undefined ? opts[i] : defaults[i]\r\n }\r\n\r\n this.contentType =\r\n opts.contentType || this.file.type || defaults.contentType\r\n this.httpMethod = opts.fileId ? 'PUT' : 'POST'\r\n\r\n this.videoData = {\r\n name: opts.name > '' ? opts.name : defaults.name,\r\n description:\r\n opts.description > '' ? opts.description : defaults.description,\r\n 'privacy.view': opts.private ? 'nobody' : 'anybody',\r\n }\r\n\r\n if (!(this.url = opts.url)) {\r\n var params = opts.params || {} /* TODO params.uploadType = 'resumable' */\r\n this.url = this.buildUrl_(opts.fileId, params, opts.baseUrl)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public methods\r\n\r\n /*\r\n Override class defaults\r\n\r\n Parameters:\r\n - opts (object): name value pairs\r\n\r\n */\r\n\r\n me.prototype.defaults = function () {\r\n return defaults /* TODO $.extend(true, defaults, opts) */\r\n }\r\n\r\n /**\r\n * Initiate the upload (Get vimeo ticket number and upload url)\r\n */\r\n me.prototype.upload = function () {\r\n var xhr = new XMLHttpRequest()\r\n xhr.open(this.httpMethod, this.url, true)\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + this.token)\r\n xhr.setRequestHeader('Content-Type', 'application/json')\r\n xhr.setRequestHeader('Accept', 'application/vnd.vimeo.*+json;version=3.4')\r\n\r\n xhr.onload = function (e) {\r\n // get vimeo upload url, user (for available quote), ticket id and complete url\r\n if (e.target.status < 400) {\r\n var response = JSON.parse(e.target.responseText)\r\n this.url = response.upload.upload_link\r\n this.user = response.user\r\n this.video_id = response.uri.split('/')[2]\r\n this.sendFile_()\r\n } else {\r\n this.onUploadError_(e)\r\n }\r\n }.bind(this)\r\n\r\n xhr.onerror = this.onUploadError_.bind(this)\r\n xhr.send(\r\n JSON.stringify({\r\n upload: {\r\n approach: 'tus',\r\n size: this.file.size,\r\n },\r\n })\r\n )\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Private methods\r\n\r\n /**\r\n * Send the actual file content.\r\n *\r\n * @private\r\n */\r\n me.prototype.sendFile_ = function () {\r\n var content = this.file\r\n var end = this.file.size\r\n\r\n if (this.offset || this.chunkSize) {\r\n // Only bother to slice the file if we're either resuming or uploading in chunks\r\n if (this.chunkSize) {\r\n end = Math.min(this.offset + this.chunkSize, this.file.size)\r\n }\r\n content = content.slice(this.offset, end)\r\n }\r\n\r\n var xhr = new XMLHttpRequest()\r\n xhr.open('PATCH', this.url, true)\r\n xhr.setRequestHeader('Content-Type', 'application/offset+octet-stream')\r\n xhr.setRequestHeader('Upload-Offset', '0')\r\n xhr.setRequestHeader('Tus-Resumable', '1.0.0')\r\n\r\n if (xhr.upload) {\r\n xhr.upload.addEventListener('progress', this.onProgress)\r\n }\r\n xhr.onload = this.onContentUploadSuccess_.bind(this)\r\n xhr.onerror = this.onContentUploadError_.bind(this)\r\n xhr.send(content)\r\n }\r\n\r\n /**\r\n * Query for the state of the file for resumption.\r\n *\r\n * @private\r\n */\r\n me.prototype.resume_ = function () {\r\n var xhr = new XMLHttpRequest()\r\n xhr.open('HEAD', this.url, true)\r\n xhr.setRequestHeader('Tus-Resumable', '1.0.0')\r\n xhr.setRequestHeader('Accept', 'application/vnd.vimeo.*+json;version=3.4')\r\n if (xhr.upload) {\r\n xhr.upload.addEventListener('progress', this.onProgress)\r\n }\r\n xhr.onload = this.onContentUploadSuccess_.bind(this)\r\n xhr.onerror = this.onContentUploadError_.bind(this)\r\n xhr.send()\r\n }\r\n\r\n /**\r\n * Extract the last saved range if available in the request.\r\n *\r\n * @param {XMLHttpRequest} xhr Request object\r\n */\r\n me.prototype.extractRange_ = function (xhr) {\r\n var range = xhr.getResponseHeader('Range')\r\n if (range) {\r\n this.offset = parseInt(range.match(/\\d+/g).pop(), 10) + 1\r\n }\r\n }\r\n\r\n /**\r\n * The final step is to call vimeo.videos.upload.complete to queue up\r\n * the video for transcoding.\r\n *\r\n * If successful call 'onUpdateVideoData_'\r\n *\r\n * @private\r\n */\r\n me.prototype.complete_ = function () {\r\n this.onUpdateVideoData_(this.video_id)\r\n }\r\n\r\n /**\r\n * Update the Video Data and add the metadata to the upload object\r\n *\r\n * @private\r\n * @param {string} [id] Video Id\r\n */\r\n me.prototype.onUpdateVideoData_ = function (video_id) {\r\n var url = this.buildUrl_(video_id, [], defaults.api_url + '/videos/')\r\n var httpMethod = 'PATCH'\r\n var xhr = new XMLHttpRequest()\r\n\r\n xhr.open(httpMethod, url, true)\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + this.token)\r\n xhr.onload = function (e) {\r\n // add the metadata\r\n this.onGetMetadata_(e, video_id)\r\n }.bind(this)\r\n xhr.send(this.buildQuery_(this.videoData))\r\n }\r\n\r\n /**\r\n * Retrieve the metadata from a successful onUpdateVideoData_ response\r\n * This is is useful when uploading unlisted videos as the URI has changed.\r\n *\r\n * If successful call 'onUpdateVideoData_'\r\n *\r\n * @private\r\n * @param {object} e XHR event\r\n * @param {string} [id] Video Id\r\n */\r\n me.prototype.onGetMetadata_ = function (e, video_id) {\r\n // Get the video location (videoId)\r\n if (e.target.status < 400) {\r\n if (e.target.response) {\r\n // add the returned metadata to the metadata array\r\n var meta = JSON.parse(e.target.response)\r\n // get the new index of the item\r\n var index = this.metadata.push(meta) - 1\r\n // call the complete method\r\n this.onComplete(video_id, index)\r\n } else {\r\n this.onCompleteError_(e)\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Handle successful responses for uploads. Depending on the context,\r\n * may continue with uploading the next chunk of the file or, if complete,\r\n * invokes vimeo complete service.\r\n *\r\n * @private\r\n * @param {object} e XHR event\r\n */\r\n me.prototype.onContentUploadSuccess_ = function (e) {\r\n if (\r\n e.target.status == 200 ||\r\n e.target.status == 201 ||\r\n e.target.status == 204\r\n ) {\r\n this.complete_()\r\n } else if (e.target.status == 308) {\r\n this.extractRange_(e.target)\r\n this.retryHandler.reset()\r\n this.sendFile_()\r\n }\r\n }\r\n\r\n /**\r\n * Handles errors for uploads. Either retries or aborts depending\r\n * on the error.\r\n *\r\n * @private\r\n * @param {object} e XHR event\r\n */\r\n me.prototype.onContentUploadError_ = function (e) {\r\n if (e.target.status && e.target.status < 500) {\r\n this.onError(e.target.response)\r\n } else {\r\n this.retryHandler.retry(this.resume_())\r\n }\r\n }\r\n\r\n /**\r\n * Handles errors for the complete request.\r\n *\r\n * @private\r\n * @param {object} e XHR event\r\n */\r\n me.prototype.onCompleteError_ = function (e) {\r\n this.onError(e.target.response) // TODO - Retries for initial upload\r\n }\r\n\r\n /**\r\n * Handles errors for the initial request.\r\n *\r\n * @private\r\n * @param {object} e XHR event\r\n */\r\n me.prototype.onUploadError_ = function (e) {\r\n this.onError(e.target.response) // TODO - Retries for initial upload\r\n }\r\n\r\n /**\r\n * Construct a query string from a hash/object\r\n *\r\n * @private\r\n * @param {object} [params] Key/value pairs for query string\r\n * @return {string} query string\r\n */\r\n me.prototype.buildQuery_ = function (params) {\r\n params = params || {}\r\n return Object.keys(params)\r\n .map(function (key) {\r\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key])\r\n })\r\n .join('&')\r\n }\r\n\r\n /**\r\n * Build the drive upload URL\r\n *\r\n * @private\r\n * @param {string} [id] File ID if replacing\r\n * @param {object} [params] Query parameters\r\n * @return {string} URL\r\n */\r\n me.prototype.buildUrl_ = function (id, params, baseUrl) {\r\n var url = baseUrl || defaults.api_url + '/me/videos'\r\n if (id) {\r\n url += id\r\n }\r\n var query = this.buildQuery_(params)\r\n if (query) {\r\n url += '?' + query\r\n }\r\n return url\r\n }\r\n\r\n return me\r\n})\r\n"],"names":["root","factory","vimeoUpload","this","RetryHandler","interval","maxInterval","prototype","retry","fn","setTimeout","nextInterval_","reset","getRandomInt_","Math","min","max","floor","random","defaults","api_url","name","description","contentType","token","file","metadata","upgrade_to_1080","offset","chunkSize","retryHandler","onComplete","onProgress","onError","me","opts","i","undefined","type","httpMethod","fileId","videoData","private","url","params","buildUrl_","baseUrl","upload","xhr","XMLHttpRequest","open","setRequestHeader","onload","e","target","status","response","JSON","parse","responseText","upload_link","user","video_id","uri","split","sendFile_","onUploadError_","bind","onerror","send","stringify","approach","size","content","end","slice","addEventListener","onContentUploadSuccess_","onContentUploadError_","resume_","extractRange_","range","getResponseHeader","parseInt","match","pop","complete_","onUpdateVideoData_","onGetMetadata_","buildQuery_","meta","index","push","onCompleteError_","Object","keys","map","key","encodeURIComponent","join","id","query"],"sourceRoot":""}