/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "./app/client/index.jsx"); /******/ }) /************************************************************************/ /******/ ({ /***/ "./app/client/actions.js": /*!*******************************!*\ !*** ./app/client/actions.js ***! \*******************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _redux = __webpack_require__(/*! redux */ "./node_modules/redux/es/redux.js"); var _api = __webpack_require__(/*! ./api */ "./app/client/api/index.js"); var _live = __webpack_require__(/*! ./live/live.actions */ "./app/client/live/live.actions.js"); var liveActions = _interopRequireWildcard(_live); var _queue = __webpack_require__(/*! ./queue/queue.actions */ "./app/client/queue/queue.actions.js"); var queueActions = _interopRequireWildcard(_queue); var _system = __webpack_require__(/*! ./system/system.actions */ "./app/client/system/system.actions.js"); var systemActions = _interopRequireWildcard(_system); var _socket = __webpack_require__(/*! ./socket/socket.actions */ "./app/client/socket/socket.actions.js"); var socketActions = _interopRequireWildcard(_socket); var _dataset = __webpack_require__(/*! ./dataset/dataset.actions */ "./app/client/dataset/dataset.actions.js"); var datasetActions = _interopRequireWildcard(_dataset); var _store = __webpack_require__(/*! ./store */ "./app/client/store.js"); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } exports.default = Object.keys(_api.actions).map(function (a) { return [a, _api.actions[a]]; }).concat([['live', liveActions], ['queue', queueActions], ['system', systemActions], ['dataset', datasetActions]]).map(function (p) { return [p[0], (0, _redux.bindActionCreators)(p[1], _store.dispatch)]; }).concat([['socket', socketActions]]).reduce(function (a, b) { return (a[b[0]] = b[1]) && a; }, {}); /***/ }), /***/ "./app/client/api/crud.actions.js": /*!****************************************!*\ !*** ./app/client/api/crud.actions.js ***! \****************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.crud_action = undefined; exports.crud_actions = crud_actions; var _crud = __webpack_require__(/*! ./crud.fetch */ "./app/client/api/crud.fetch.js"); var _crud2 = __webpack_require__(/*! ./crud.types */ "./app/client/api/crud.types.js"); var _crud3 = __webpack_require__(/*! ./crud.upload */ "./app/client/api/crud.upload.js"); function crud_actions(type) { var fetch_type = (0, _crud.crud_fetch)(type); return ['index', 'show', 'create', 'update', 'destroy'].reduce(function (lookup, param) { lookup[param] = crud_action(type, param, function (q) { return fetch_type[param](q); }); return lookup; }, { action: function action(method, fn) { return crud_action(type, method, fn); }, upload: function upload(id, fd) { return (0, _crud3.upload_action)(type, id, fd); } }); } var crud_action = exports.crud_action = function crud_action(type, method, fn) { return function (q) { return function (dispatch) { return new Promise(function (resolve, reject) { dispatch({ type: (0, _crud2.as_type)(type, method + '_loading') }); fn(q).then(function (data) { dispatch({ type: (0, _crud2.as_type)(type, method), data: data }); resolve(data); }).catch(function (e) { dispatch({ type: (0, _crud2.as_type)(type, method + '_error') }); reject(e); }); }); }; }; }; /***/ }), /***/ "./app/client/api/crud.fetch.js": /*!**************************************!*\ !*** ./app/client/api/crud.fetch.js ***! \**************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.crud_fetch = crud_fetch; exports.postBody = postBody; var _nodeFetch = __webpack_require__(/*! node-fetch */ "./node_modules/node-fetch/browser.js"); var _nodeFetch2 = _interopRequireDefault(_nodeFetch); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function crud_fetch(type, tag) { var uri = '/api/' + type + '/' + (tag || ''); return { index: function index(q) { return (0, _nodeFetch2.default)(_get_url(uri, q), _get_headers()).then(function (req) { return req.json(); }).catch(error); }, show: function show(id) { return (0, _nodeFetch2.default)(uri + id).then(function (req) { return req.json(); }).catch(error); }, create: function create(data) { return (0, _nodeFetch2.default)(uri, post(data)).then(function (req) { return req.json(); }).catch(error); }, update: function update(data) { return (0, _nodeFetch2.default)(uri + data.id, put(data)).then(function (req) { return req.json(); }).catch(error); }, destroy: function destroy(data) { return (0, _nodeFetch2.default)(uri + data.id, _destroy(data)).then(function (req) { return req.json(); }).catch(error); } }; } function _get_url(_url, data) { var url = new URL(window.location.origin + _url); if (data) { Object.keys(data).forEach(function (key) { return url.searchParams.append(key, data[key]); }); } return url; } function _get_headers() { return { method: 'GET', headers: { 'Accept': 'application/json' } }; } function post(data) { return { method: 'POST', body: JSON.stringify(data), headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' } }; } function postBody(data) { return { method: 'POST', body: data, headers: { 'Accept': 'application/json' } }; } function put(data) { return { method: 'PUT', body: JSON.stringify(data), headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' } }; } function _destroy(data) { return { method: 'DELETE', body: JSON.stringify(data), headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' } }; } function error(err) { console.warn(err); } /***/ }), /***/ "./app/client/api/crud.types.js": /*!**************************************!*\ !*** ./app/client/api/crud.types.js ***! \**************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var as_type = exports.as_type = function as_type(a, b) { return [a, b].join('_').toUpperCase(); }; var crud_type = exports.crud_type = function crud_type(type) { var actions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; return actions.concat(['index_loading', 'index', 'index_error', 'show_loading', 'show', 'show_error', 'create_loading', 'create', 'create_error', 'update_loading', 'update', 'update_error', 'destroy_loading', 'destroy', 'destroy_error', 'upload_loading', 'upload_progress', 'upload_waiting', 'upload_complete', 'upload_error', 'sort']).reduce(function (a, b) { return (a[b] = as_type(type, b)) && a; }, {}); }; /***/ }), /***/ "./app/client/api/crud.upload.js": /*!***************************************!*\ !*** ./app/client/api/crud.upload.js ***! \***************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.upload_action = undefined; exports.crud_upload = crud_upload; var _crud = __webpack_require__(/*! ./crud.types */ "./app/client/api/crud.types.js"); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function crud_upload(type, fd, data, dispatch) { return new Promise(function (resolve, reject) { var id = data.id; Object.keys(data).forEach(function (key) { if (key !== 'id') { fd.append(key, data[key]); } }); var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", uploadProgress, false); xhr.addEventListener("load", uploadComplete, false); xhr.addEventListener("error", uploadFailed, false); xhr.addEventListener("abort", uploadCancelled, false); xhr.open("POST", '/api/' + type + '/' + id + '/upload/'); xhr.send(fd); dispatch && dispatch({ type: (0, _crud.as_type)(type, 'upload_loading') }); var complete = false; function uploadProgress(e) { if (e.lengthComputable) { var percent = Math.round(e.loaded * 100 / e.total) || 0; if (percent > 99) { dispatch && dispatch(_defineProperty({ type: (0, _crud.as_type)(type, 'upload_waiting'), percent: percent }, type, id)); } else { dispatch && dispatch(_defineProperty({ type: (0, _crud.as_type)(type, 'upload_progress'), percent: percent }, type, id)); } } else { dispatch && dispatch(_defineProperty({ type: (0, _crud.as_type)(type, 'upload_error'), error: 'unable to compute upload progress' }, type, id)); } } function uploadComplete(e) { try { var _data = JSON.parse(e.target.responseText); } catch (e) { dispatch && dispatch(_defineProperty({ type: (0, _crud.as_type)(type, 'upload_error'), error: 'upload failed' }, type, id)); reject(e); return; } dispatch && dispatch(_defineProperty({ type: (0, _crud.as_type)(type, 'upload_complete'), data: data }, type, id)); resolve(data); } function uploadFailed(evt) { dispatch && dispatch(_defineProperty({ type: (0, _crud.as_type)(type, 'upload_error'), error: 'upload failed' }, type, id)); reject(evt); } function uploadCancelled(evt) { dispatch && dispatch(_defineProperty({ type: (0, _crud.as_type)(type, 'upload_error'), error: 'upload cancelled' }, type, id)); reject(evt); } }); } var upload_action = exports.upload_action = function upload_action(type, id, fd) { return function (dispatch) { return crud_upload(type, id, fd, dispatch); }; }; /***/ }), /***/ "./app/client/api/index.js": /*!*********************************!*\ !*** ./app/client/api/index.js ***! \*********************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.actions = exports.parser = exports.util = undefined; var _crud = __webpack_require__(/*! ./crud.actions */ "./app/client/api/crud.actions.js"); var _util = __webpack_require__(/*! ../util */ "./app/client/util/index.js"); var util = _interopRequireWildcard(_util); var _parser = __webpack_require__(/*! ./parser */ "./app/client/api/parser.js"); var parser = _interopRequireWildcard(_parser); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } /* for our crud events, create corresponding actions the actions fire a 'loading' event, call the underlying api method, and then resolve. so you can do ... import { folderActions } from '../../api' folderActions.index({ module: 'samplernn' }) folderActions.show(12) folderActions.create({ module: 'samplernn', name: 'foo' }) folderActions.update(12, { module: 'pix2pix' }) folderActions.destroy(12, { confirm: true }) folderActions.upload(12, form_data) */ exports.util = util; exports.parser = parser; var actions = exports.actions = ['folder', 'file', 'dataset', 'task', 'user'].reduce(function (a, b) { return (a[b] = (0, _crud.crud_actions)(b)) && a; }, {}); /***/ }), /***/ "./app/client/api/parser.js": /*!**********************************!*\ !*** ./app/client/api/parser.js ***! \**********************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.tumblr = exports.thumbnail = exports.loadImage = exports.tag = exports.parse = exports.lookup = exports.integrations = undefined; var _nodeFetch = __webpack_require__(/*! node-fetch */ "./node_modules/node-fetch/browser.js"); var _nodeFetch2 = _interopRequireDefault(_nodeFetch); var _fetchJsonp = __webpack_require__(/*! fetch-jsonp */ "./node_modules/fetch-jsonp/build/fetch-jsonp.js"); var _fetchJsonp2 = _interopRequireDefault(_fetchJsonp); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var integrations = exports.integrations = [{ type: 'image', regex: /\.(jpeg|jpg|gif|png|svg)(\?.*)?$/i, fetch: function fetch(url, done) { var img = new Image(); img.onload = function () { if (!img) return; var width = img.naturalWidth, height = img.naturalHeight; img = null; done({ url: url, type: "image", token: "", thumbnail: "", title: "", width: width, height: height }); }; img.src = url; if (img.complete) { img.onload(); } }, tag: function tag(media) { return ''; } }, { type: 'video', regex: /\.(mp4|webm)(\?.*)?$/i, fetch: function fetch(url, done) { var video = document.createElement("video"); var url_parts = url.replace(/\?.*$/, "").split("/"); var filename = url_parts[url_parts.length - 1]; video.addEventListener("loadedmetadata", function () { var width = video.videoWidth, height = video.videoHeight; video = null; done({ url: url, type: "video", token: url, thumbnail: "/public/assets/img/video-thumbnail.png", title: filename, width: width, height: height }); }); video.src = url; video.load(); }, tag: function tag(media) { return '