/******/ (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 _audioPlayer = __webpack_require__(/*! ./common/audioPlayer/audioPlayer.actions */ "./app/client/common/audioPlayer/audioPlayer.actions.js");
var audioPlayerActions = _interopRequireWildcard(_audioPlayer);
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], ['audioPlayer', audioPlayerActions]]).map(function (p) {
return [p[0], (0, _redux.bindActionCreators)(p[1], _store.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.destroy = undefined;
exports.crud_fetch = crud_fetch;
exports.post = post;
exports.postBody = postBody;
exports.put = put;
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'
}
};
}
exports.destroy = _destroy;
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 with_type = exports.with_type = function with_type(type, actions) {
return actions.reduce(function (a, b) {
return (a[b] = as_type(type, b)) && a;
}, {});
};
var crud_type = exports.crud_type = function crud_type(type) {
var actions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
return with_type(type, 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']));
};
/***/ }),
/***/ "./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]);
}
});
console.log('/api/' + type + '/' + id + '/upload/');
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) {
var parsed = void 0;
try {
parsed = 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: parsed
}, type, id));
if (parsed.files && parsed.files.length) {
parsed.files.forEach(function (file) {
console.log(file);
dispatch && dispatch({
type: (0, _crud.as_type)('file', 'create'),
data: file
});
});
}
resolve(parsed);
}
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 _util2 = _interopRequireDefault(_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; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
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 = _util2.default;
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 '