diff --git a/backend/.env b/backend/.env index 689f0626..e8aa2f7c 100644 --- a/backend/.env +++ b/backend/.env @@ -1,2 +1,2 @@ PEOPLE_DB=https://docs.google.com/spreadsheets/d/1s4Ytz7mf-YpszVTMTTrYd5iG_dsTGjrCpDQbpIx7zkU/edit#gid=0 -PAIRS_LIST=https://docs.google.com/spreadsheets/d/1gPuRhTry3YoJ_ibI2BfL1ue2_YLlhtW56OP39ADJY_4/edit#gid=0 +PAIRS_LIST=https://docs.google.com/spreadsheets/d/1JXtDjajJLZb_iXvDYfBEVYdCfehF_URHeeO7_hBXLrI/edit#gid=0 diff --git a/backend/app.js b/backend/app.js index b4d68fce..ce8a5c44 100644 --- a/backend/app.js +++ b/backend/app.js @@ -5,81 +5,83 @@ var readline = require('readline'); var google = require('googleapis'); var googleAuth = require('google-auth-library'); -require('dotenv').config() - -const PEOPLE_DB = process.env.PEOPLE_DB; -const PAIRS_LIST = process.env.PAIRS_LIST; - const app = express() const router = express.Router(); - router.use(bodyParser.urlencoded({ extended: false })); router.use(bodyParser.json()); -/* -app.get('/', function (req, res) { - res.send('Hello World!') -}) -*/ +require('dotenv').config() -var SCOPES = ['https://www.googleapis.com/auth/spreadsheets.readonly']; +const PEOPLE_DB = process.env.PEOPLE_DB.split('/')[5]; +const PAIRS_LIST = process.env.PAIRS_LIST.split('/')[5]; + +var SCOPES = ['https://www.googleapis.com/auth/spreadsheets']; var TOKEN_DIR = (process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE) + '/.credentials/'; var TOKEN_PATH = TOKEN_DIR + 'sheets.googleapis.com-nodejs-quickstart.json'; -fs.readFile('client_secret.json', function processClientSecrets(err, content) { - console.log("reading client secret"); - if (err) { - console.log('Error loading client secret file: ' + err); - return; - } - // Authorize a client with the loaded credentials, then call the - // Google Sheets API. - authorize(JSON.parse(content), listPairs); -}); +var oauth2Client = null; -function authorize(credentials, callback) { - var clientSecret = credentials.installed.client_secret; - var clientId = credentials.installed.client_id; - var redirectUrl = credentials.installed.redirect_uris[0]; - var auth = new googleAuth(); - var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl); +var pairsForSave = []; +var lastRow = null; //last row with names - // Check if we have previously stored a token. - fs.readFile(TOKEN_PATH, function(err, token) { - console.log(TOKEN_PATH); + +function executeAPI(callback1,callback2){ + fs.readFile('client_secret.json', function processClientSecrets(err, content) { + console.log("reading client secret"); if (err) { - getNewToken(oauth2Client, callback); - } else { - oauth2Client.credentials = JSON.parse(token); - callback(oauth2Client); + console.log('Error loading client secret file: ' + err); + return; } + // Authorize a client with the loaded credentials, then call the + // Google Sheets API. + authorize(JSON.parse(content), callback1, callback2); }); } -function getNewToken(oauth2Client, callback) { - var authUrl = oauth2Client.generateAuthUrl({ - access_type: 'offline', - scope: SCOPES - }); - console.log('Authorize this app by visiting this url: ', authUrl); - var rl = readline.createInterface({ - input: process.stdin, - output: process.stdout - }); - rl.question('Enter the code from that page here: ', function(code) { - rl.close(); - oauth2Client.getToken(code, function(err, token) { +function authorize(credentials, callback1, callback2){ + var clientSecret = credentials.installed.client_secret; + var clientId = credentials.installed.client_id; + var redirectUrl = credentials.installed.redirect_uris[0]; + var auth = new googleAuth(); + + oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl); + + // Check if we have previously stored a token. + fs.readFile(TOKEN_PATH, function(err, token) { + console.log(TOKEN_PATH); if (err) { - console.log('Error while trying to retrieve access token', err); - return; + getNewToken(callback1, callback2); + } else { + oauth2Client.credentials = JSON.parse(token); + callback1(callback2); } - oauth2Client.credentials = token; - storeToken(token); - callback(oauth2Client); }); - }); +} + +function getNewToken(callback1, callback2) { + var authUrl = oauth2Client.generateAuthUrl({ + access_type: 'offline', + scope: SCOPES + }); + console.log('Authorize this app by visiting this url: ', authUrl); + var rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); + rl.question('Enter the code from that page here: ', function(code) { + rl.close(); + oauth2Client.getToken(code, function(err, token) { + if (err) { + console.log('Error while trying to retrieve access token', err); + return; + } + oauth2Client.credentials = token; + storeToken(token); + callback1(callback2); + }); + }); } function storeToken(token) { @@ -95,55 +97,190 @@ function storeToken(token) { console.log('Token stored to ' + TOKEN_PATH); } -function listPairs(auth){ - ranges = ['2017!A:A','2017!B:B']; +function getPairs(callback){ + auth=oauth2Client; + ranges = ['2017!A:A','2017!B:B']; //get all rows with names + var sheets = google.sheets('v4'); + sheets.spreadsheets.values.batchGet({ + auth: auth, + spreadsheetId: PAIRS_LIST, + ranges: ranges + }, function(err, result) { + if(err) { + // Handle error + console.log(err); + return null; + } else { + const pairs = []; + + lastRow = result.valueRanges[0].values.length; + + for (let i=0;i{ + if ((pair.name1==names[i] && pair.name2==names[j])||(pair.name1==names[j] && pair.name2==names[i])){ + console.log("Par pronaden !"); + console.log(names[i] + " i " + names[j]); + found=true; + return; + } + }); + + if (!found){ + usedNames.filter((name)=>{ + if (names[i] === name || names[j] === name){ + console.log("Ime vec koristeno"); + found=true; + return; + } + }); + } + + + if (!found){ + next_i=true; + newPairs.push({name1:names[i], name2:names[j]}); + usedNames.push(names[i]); + usedNames.push(names[j]); + break; + } + } + } + if (next_i) continue; } + pairsForSave=newPairs; + callback.send(newPairs); + }); + }); + //Napravi par -> Provjeri da li postoji -> Snimi ili ponovi postupak + +} + +function SavePairs(callback){ + if (lastRow== null) return; + + auth=oauth2Client; + + const values_column1 = []; + const values_column2 = []; + + for (let i=0;i{ - //resp.send({ime:'Bilal',prezime:'Catic'}); - // Load client secrets from a local file. +} +app.use(function(req, res, next) { + res.header("Access-Control-Allow-Origin", "*"); + res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, X-Last-Record-Id, X-Total-Count"); + res.header("Access-Control-Expose-Headers", "X-Last-Record-Id, X-Total-Count"); + res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); + res.header('Access-Control-Allow-Credentials', 'true'); + next(); }); +app.get('/getPairs',(req,resp)=>{ + pairsForSave=[]; + lastRow=null; + MakePairs(resp); +}); + +app.get('/savePairs', (req,resp)=>{ + SavePairs(resp); + //resp.send({result:true}); +}); + + app.listen(3005, function () { console.log('server na portu 3005'); }) \ No newline at end of file diff --git a/backend/google_api.js b/backend/google_api.js new file mode 100644 index 00000000..da99b9c0 --- /dev/null +++ b/backend/google_api.js @@ -0,0 +1,123 @@ +var fs = require('fs'); +var readline = require('readline'); +var google = require('googleapis'); +var googleAuth = require('google-auth-library'); + +require('dotenv').config() + +const PEOPLE_DB = process.env.PEOPLE_DB.split('/')[5]; +const PAIRS_LIST = process.env.PAIRS_LIST.split('/')[5]; + +var SCOPES = ['https://www.googleapis.com/auth/spreadsheets.readonly']; +var TOKEN_DIR = (process.env.HOME || process.env.HOMEPATH || + process.env.USERPROFILE) + '/.credentials/'; +var TOKEN_PATH = TOKEN_DIR + 'sheets.googleapis.com-nodejs-quickstart.json'; + +var oauth2Client = null; + + +function executeAPI(callback){ + fs.readFile('client_secret.json', function processClientSecrets(err, content) { + console.log("reading client secret"); + if (err) { + console.log('Error loading client secret file: ' + err); + return; + } + // Authorize a client with the loaded credentials, then call the + // Google Sheets API. + return authorize(JSON.parse(content), callback); + }); +} + +function authorize(credentials, callback){ + var clientSecret = credentials.installed.client_secret; + var clientId = credentials.installed.client_id; + var redirectUrl = credentials.installed.redirect_uris[0]; + var auth = new googleAuth(); + + oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl); + + // Check if we have previously stored a token. + fs.readFile(TOKEN_PATH, function(err, token) { + console.log(TOKEN_PATH); + if (err) { + getNewToken(); + return callback(); + } else { + oauth2Client.credentials = JSON.parse(token); + var resultat = callback(); + console.log("resultat"); + console.log(resultat); + //return callback(); + } + }); +} + +function getNewToken() { + var authUrl = oauth2Client.generateAuthUrl({ + access_type: 'offline', + scope: SCOPES + }); + console.log('Authorize this app by visiting this url: ', authUrl); + var rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); + rl.question('Enter the code from that page here: ', function(code) { + rl.close(); + oauth2Client.getToken(code, function(err, token) { + if (err) { + console.log('Error while trying to retrieve access token', err); + return; + } + oauth2Client.credentials = token; + storeToken(token); + }); + }); +} + +function storeToken(token) { + try { + fs.mkdirSync(TOKEN_DIR); + } catch (err) { + if (err.code != 'EEXIST') { + throw err; + } + } + console.log(JSON.stringify(token)); + fs.writeFile(TOKEN_PATH, JSON.stringify(token)); + console.log('Token stored to ' + TOKEN_PATH); +} + +function getPairs(){ + auth=oauth2Client; + ranges = ['2017!A:A','2017!B:B']; //get all rows with names + var sheets = google.sheets('v4'); + sheets.spreadsheets.values.batchGet({ + auth: auth, + spreadsheetId: PAIRS_LIST, + ranges: ranges + }, function(err, result) { + if(err) { + // Handle error + console.log(err); + return null; + } else { + const pairs = []; + + for (let i=0;i= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var decoratorPath = _ref; + + var decorator = decoratorPath.node; + var expression = decorator.expression; + if (!t.isMemberExpression(expression)) continue; + + var temp = decoratorPath.scope.maybeGenerateMemoised(expression.object); + var ref = void 0; + + var nodes = []; + + if (temp) { + ref = temp; + nodes.push(t.assignmentExpression("=", temp, expression.object)); + } else { + ref = expression.object; + } + + nodes.push(t.callExpression(t.memberExpression(t.memberExpression(ref, expression.property, expression.computed), t.identifier("bind")), [ref])); + + if (nodes.length === 1) { + decorator.expression = nodes[0]; + } else { + decorator.expression = t.sequenceExpression(nodes); + } + } +} +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-helper-bindify-decorators/package.json b/web/node_modules/babel-helper-bindify-decorators/package.json new file mode 100644 index 00000000..9b2bd303 --- /dev/null +++ b/web/node_modules/babel-helper-bindify-decorators/package.json @@ -0,0 +1,41 @@ +{ + "_from": "babel-helper-bindify-decorators@^6.24.1", + "_id": "babel-helper-bindify-decorators@6.24.1", + "_inBundle": false, + "_integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "_location": "/babel-helper-bindify-decorators", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-helper-bindify-decorators@^6.24.1", + "name": "babel-helper-bindify-decorators", + "escapedName": "babel-helper-bindify-decorators", + "rawSpec": "^6.24.1", + "saveSpec": null, + "fetchSpec": "^6.24.1" + }, + "_requiredBy": [ + "/babel-helper-explode-class" + ], + "_resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "_shasum": "14c19e5f142d7b47f19a52431e52b1ccbc40a330", + "_spec": "babel-helper-bindify-decorators@^6.24.1", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-helper-explode-class", + "bundleDependencies": false, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + }, + "deprecated": false, + "description": "Helper function to bindify decorators", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-bindify-decorators", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-bindify-decorators" + }, + "version": "6.24.1" +} diff --git a/web/node_modules/babel-helper-explode-class/.npmignore b/web/node_modules/babel-helper-explode-class/.npmignore new file mode 100644 index 00000000..47cdd2c6 --- /dev/null +++ b/web/node_modules/babel-helper-explode-class/.npmignore @@ -0,0 +1,3 @@ +src +test +node_modules diff --git a/web/node_modules/babel-helper-explode-class/README.md b/web/node_modules/babel-helper-explode-class/README.md new file mode 100644 index 00000000..cb4474ab --- /dev/null +++ b/web/node_modules/babel-helper-explode-class/README.md @@ -0,0 +1,5 @@ +# babel-helper-explode-class + +## Usage + +TODO diff --git a/web/node_modules/babel-helper-explode-class/lib/index.js b/web/node_modules/babel-helper-explode-class/lib/index.js new file mode 100644 index 00000000..b9bc56b7 --- /dev/null +++ b/web/node_modules/babel-helper-explode-class/lib/index.js @@ -0,0 +1,93 @@ +"use strict"; + +exports.__esModule = true; + +var _getIterator2 = require("babel-runtime/core-js/get-iterator"); + +var _getIterator3 = _interopRequireDefault(_getIterator2); + +exports.default = function (classPath) { + classPath.assertClass(); + + var memoisedExpressions = []; + + function maybeMemoise(path) { + if (!path.node || path.isPure()) return; + + var uid = classPath.scope.generateDeclaredUidIdentifier(); + memoisedExpressions.push(t.assignmentExpression("=", uid, path.node)); + path.replaceWith(uid); + } + + function memoiseDecorators(paths) { + if (!Array.isArray(paths) || !paths.length) return; + + paths = paths.reverse(); + + (0, _babelHelperBindifyDecorators2.default)(paths); + + for (var _iterator = paths, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var path = _ref; + + maybeMemoise(path); + } + } + + maybeMemoise(classPath.get("superClass")); + memoiseDecorators(classPath.get("decorators"), true); + + var methods = classPath.get("body.body"); + for (var _iterator2 = methods, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) { + var _ref2; + + if (_isArray2) { + if (_i2 >= _iterator2.length) break; + _ref2 = _iterator2[_i2++]; + } else { + _i2 = _iterator2.next(); + if (_i2.done) break; + _ref2 = _i2.value; + } + + var methodPath = _ref2; + + if (methodPath.is("computed")) { + maybeMemoise(methodPath.get("key")); + } + + if (methodPath.has("decorators")) { + memoiseDecorators(classPath.get("decorators")); + } + } + + if (memoisedExpressions) { + classPath.insertBefore(memoisedExpressions.map(function (expr) { + return t.expressionStatement(expr); + })); + } +}; + +var _babelHelperBindifyDecorators = require("babel-helper-bindify-decorators"); + +var _babelHelperBindifyDecorators2 = _interopRequireDefault(_babelHelperBindifyDecorators); + +var _babelTypes = require("babel-types"); + +var t = _interopRequireWildcard(_babelTypes); + +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 }; } + +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-helper-explode-class/package.json b/web/node_modules/babel-helper-explode-class/package.json new file mode 100644 index 00000000..6040d3a9 --- /dev/null +++ b/web/node_modules/babel-helper-explode-class/package.json @@ -0,0 +1,42 @@ +{ + "_from": "babel-helper-explode-class@^6.24.1", + "_id": "babel-helper-explode-class@6.24.1", + "_inBundle": false, + "_integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "_location": "/babel-helper-explode-class", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-helper-explode-class@^6.24.1", + "name": "babel-helper-explode-class", + "escapedName": "babel-helper-explode-class", + "rawSpec": "^6.24.1", + "saveSpec": null, + "fetchSpec": "^6.24.1" + }, + "_requiredBy": [ + "/babel-plugin-transform-decorators" + ], + "_resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "_shasum": "7dc2a3910dee007056e1e31d640ced3d54eaa9eb", + "_spec": "babel-helper-explode-class@^6.24.1", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-plugin-transform-decorators", + "bundleDependencies": false, + "dependencies": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + }, + "deprecated": false, + "description": "Helper function to explode class", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-explode-class", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-explode-class" + }, + "version": "6.24.1" +} diff --git a/web/node_modules/babel-plugin-syntax-async-generators/.npmignore b/web/node_modules/babel-plugin-syntax-async-generators/.npmignore new file mode 100644 index 00000000..47cdd2c6 --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-async-generators/.npmignore @@ -0,0 +1,3 @@ +src +test +node_modules diff --git a/web/node_modules/babel-plugin-syntax-async-generators/README.md b/web/node_modules/babel-plugin-syntax-async-generators/README.md new file mode 100644 index 00000000..330f8e20 --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-async-generators/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-async-generators + +Allow parsing of async generator functions. + +## Installation + +```sh +$ npm install babel-plugin-syntax-async-generators +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-async-generators"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-async-generators script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-async-generators"] +}); +``` diff --git a/web/node_modules/babel-plugin-syntax-async-generators/lib/index.js b/web/node_modules/babel-plugin-syntax-async-generators/lib/index.js new file mode 100644 index 00000000..a43fdf3c --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-async-generators/lib/index.js @@ -0,0 +1,13 @@ +"use strict"; + +exports.__esModule = true; + +exports.default = function () { + return { + manipulateOptions: function manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("asyncGenerators"); + } + }; +}; + +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-plugin-syntax-async-generators/package.json b/web/node_modules/babel-plugin-syntax-async-generators/package.json new file mode 100644 index 00000000..0d9290aa --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-async-generators/package.json @@ -0,0 +1,41 @@ +{ + "_from": "babel-plugin-syntax-async-generators@^6.5.0", + "_id": "babel-plugin-syntax-async-generators@6.13.0", + "_inBundle": false, + "_integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "_location": "/babel-plugin-syntax-async-generators", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-plugin-syntax-async-generators@^6.5.0", + "name": "babel-plugin-syntax-async-generators", + "escapedName": "babel-plugin-syntax-async-generators", + "rawSpec": "^6.5.0", + "saveSpec": null, + "fetchSpec": "^6.5.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-async-generator-functions" + ], + "_resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "_shasum": "6bc963ebb16eccbae6b92b596eb7f35c342a8b9a", + "_spec": "babel-plugin-syntax-async-generators@^6.5.0", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-plugin-transform-async-generator-functions", + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Allow parsing of async generator functions", + "devDependencies": {}, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-async-generators", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-async-generators" + }, + "version": "6.13.0" +} diff --git a/web/node_modules/babel-plugin-syntax-class-constructor-call/.npmignore b/web/node_modules/babel-plugin-syntax-class-constructor-call/.npmignore new file mode 100644 index 00000000..cace0d6d --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-class-constructor-call/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/web/node_modules/babel-plugin-syntax-class-constructor-call/README.md b/web/node_modules/babel-plugin-syntax-class-constructor-call/README.md new file mode 100644 index 00000000..174c8d55 --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-class-constructor-call/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-class-constructor-call (deprecated) + +Allow parsing of do expressions. + +## Installation + +```sh +$ npm install babel-plugin-syntax-class-constructor-call +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-class-constructor-call"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-class-constructor-call script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-class-constructor-call"] +}); +``` diff --git a/web/node_modules/babel-plugin-syntax-class-constructor-call/lib/index.js b/web/node_modules/babel-plugin-syntax-class-constructor-call/lib/index.js new file mode 100644 index 00000000..97663526 --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-class-constructor-call/lib/index.js @@ -0,0 +1,13 @@ +"use strict"; + +exports.__esModule = true; + +exports.default = function () { + return { + manipulateOptions: function manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("classConstructorCall"); + } + }; +}; + +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-plugin-syntax-class-constructor-call/package.json b/web/node_modules/babel-plugin-syntax-class-constructor-call/package.json new file mode 100644 index 00000000..bbb10483 --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-class-constructor-call/package.json @@ -0,0 +1,41 @@ +{ + "_from": "babel-plugin-syntax-class-constructor-call@^6.18.0", + "_id": "babel-plugin-syntax-class-constructor-call@6.18.0", + "_inBundle": false, + "_integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", + "_location": "/babel-plugin-syntax-class-constructor-call", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-plugin-syntax-class-constructor-call@^6.18.0", + "name": "babel-plugin-syntax-class-constructor-call", + "escapedName": "babel-plugin-syntax-class-constructor-call", + "rawSpec": "^6.18.0", + "saveSpec": null, + "fetchSpec": "^6.18.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-class-constructor-call" + ], + "_resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "_shasum": "9cb9d39fe43c8600bec8146456ddcbd4e1a76416", + "_spec": "babel-plugin-syntax-class-constructor-call@^6.18.0", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-plugin-transform-class-constructor-call", + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Allow parsing of class constructor calls (deprecated)", + "devDependencies": {}, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-class-constructor-call", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-class-constructor-call" + }, + "version": "6.18.0" +} diff --git a/web/node_modules/babel-plugin-syntax-decorators/.npmignore b/web/node_modules/babel-plugin-syntax-decorators/.npmignore new file mode 100644 index 00000000..cace0d6d --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-decorators/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/web/node_modules/babel-plugin-syntax-decorators/README.md b/web/node_modules/babel-plugin-syntax-decorators/README.md new file mode 100644 index 00000000..a7b27efc --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-decorators/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-decorators + +Allow parsing of decorators. + +## Installation + +```sh +$ npm install babel-plugin-syntax-decorators +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-decorators"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-decorators script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-decorators"] +}); +``` diff --git a/web/node_modules/babel-plugin-syntax-decorators/lib/index.js b/web/node_modules/babel-plugin-syntax-decorators/lib/index.js new file mode 100644 index 00000000..9e215129 --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-decorators/lib/index.js @@ -0,0 +1,13 @@ +"use strict"; + +exports.__esModule = true; + +exports.default = function () { + return { + manipulateOptions: function manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("decorators"); + } + }; +}; + +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-plugin-syntax-decorators/package.json b/web/node_modules/babel-plugin-syntax-decorators/package.json new file mode 100644 index 00000000..ac99f165 --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-decorators/package.json @@ -0,0 +1,41 @@ +{ + "_from": "babel-plugin-syntax-decorators@^6.13.0", + "_id": "babel-plugin-syntax-decorators@6.13.0", + "_inBundle": false, + "_integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "_location": "/babel-plugin-syntax-decorators", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-plugin-syntax-decorators@^6.13.0", + "name": "babel-plugin-syntax-decorators", + "escapedName": "babel-plugin-syntax-decorators", + "rawSpec": "^6.13.0", + "saveSpec": null, + "fetchSpec": "^6.13.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-decorators" + ], + "_resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "_shasum": "312563b4dbde3cc806cee3e416cceeaddd11ac0b", + "_spec": "babel-plugin-syntax-decorators@^6.13.0", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-plugin-transform-decorators", + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Allow parsing of decorators", + "devDependencies": {}, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-decorators", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-decorators" + }, + "version": "6.13.0" +} diff --git a/web/node_modules/babel-plugin-syntax-export-extensions/.npmignore b/web/node_modules/babel-plugin-syntax-export-extensions/.npmignore new file mode 100644 index 00000000..cace0d6d --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-export-extensions/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/web/node_modules/babel-plugin-syntax-export-extensions/README.md b/web/node_modules/babel-plugin-syntax-export-extensions/README.md new file mode 100644 index 00000000..97e99ccd --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-export-extensions/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-export-extensions + +Allow parsing of export extensions. + +## Installation + +```sh +$ npm install babel-plugin-syntax-export-extensions +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-export-extensions"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-export-extensions script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-export-extensions"] +}); +``` diff --git a/web/node_modules/babel-plugin-syntax-export-extensions/lib/index.js b/web/node_modules/babel-plugin-syntax-export-extensions/lib/index.js new file mode 100644 index 00000000..b07eff52 --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-export-extensions/lib/index.js @@ -0,0 +1,13 @@ +"use strict"; + +exports.__esModule = true; + +exports.default = function () { + return { + manipulateOptions: function manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("exportExtensions"); + } + }; +}; + +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-plugin-syntax-export-extensions/package.json b/web/node_modules/babel-plugin-syntax-export-extensions/package.json new file mode 100644 index 00000000..864e1ad8 --- /dev/null +++ b/web/node_modules/babel-plugin-syntax-export-extensions/package.json @@ -0,0 +1,41 @@ +{ + "_from": "babel-plugin-syntax-export-extensions@^6.8.0", + "_id": "babel-plugin-syntax-export-extensions@6.13.0", + "_inBundle": false, + "_integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", + "_location": "/babel-plugin-syntax-export-extensions", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-plugin-syntax-export-extensions@^6.8.0", + "name": "babel-plugin-syntax-export-extensions", + "escapedName": "babel-plugin-syntax-export-extensions", + "rawSpec": "^6.8.0", + "saveSpec": null, + "fetchSpec": "^6.8.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-export-extensions" + ], + "_resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "_shasum": "70a1484f0f9089a4e84ad44bac353c95b9b12721", + "_spec": "babel-plugin-syntax-export-extensions@^6.8.0", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-plugin-transform-export-extensions", + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Allow parsing of export extensions", + "devDependencies": {}, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-export-extensions", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-export-extensions" + }, + "version": "6.13.0" +} diff --git a/web/node_modules/babel-plugin-transform-async-generator-functions/.npmignore b/web/node_modules/babel-plugin-transform-async-generator-functions/.npmignore new file mode 100644 index 00000000..31852902 --- /dev/null +++ b/web/node_modules/babel-plugin-transform-async-generator-functions/.npmignore @@ -0,0 +1,4 @@ +node_modules +*.log +src +test diff --git a/web/node_modules/babel-plugin-transform-async-generator-functions/README.md b/web/node_modules/babel-plugin-transform-async-generator-functions/README.md new file mode 100644 index 00000000..e8388bbb --- /dev/null +++ b/web/node_modules/babel-plugin-transform-async-generator-functions/README.md @@ -0,0 +1,107 @@ +# babel-plugin-transform-async-generator-functions + +> Turn async generator functions and for-await statements to ES2015 generators + +## Example + +**In** + +```javascript +async function* agf() { + await 1; + yield 2; +} +``` + +**Out** + +```javascript +var _asyncGenerator = ... + +let agf = (() => { + var _ref = _asyncGenerator.wrap(function* () { + yield _asyncGenerator.await(1); + yield 2; + }); + + return function agf() { + return _ref.apply(this, arguments); + }; +})(); +``` + +For await example + +```js +async function f() { + for await (let x of y) { + g(x); + } +} +``` + +**Example Usage** + +```js +async function* genAnswers() { + var stream = [ Promise.resolve(4), Promise.resolve(9), Promise.resolve(12) ]; + var total = 0; + for await (let val of stream) { + total += await val; + yield total; + } +} + +function forEach(ai, fn) { + return ai.next().then(function (r) { + if (!r.done) { + fn(r); + return forEach(ai, fn); + } + }); +} + +var output = 0; +forEach(genAnswers(), function(val) { output += val.value }) +.then(function () { + console.log(output); // 42 +}); +``` + +[Try it Out in the REPL](https://babeljs.io/repl/#?babili=false&evaluate=true&lineWrap=false&presets=stage-3&code=async%20function*%20genAnswers()%20%7B%0A%20%20var%20stream%20%3D%20%5B%20Promise.resolve(4)%2C%20Promise.resolve(9)%2C%20Promise.resolve(12)%20%5D%3B%0A%20%20var%20total%20%3D%200%3B%0A%20%20for%20await%20(let%20val%20of%20stream)%20%7B%0A%20%20%20%20total%20%2B%3D%20await%20val%3B%0A%20%20%20%20yield%20total%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20forEach(ai%2C%20fn)%20%7B%0A%20%20return%20ai.next().then(function%20(r)%20%7B%0A%20%20%20%20if%20(!r.done)%20%7B%0A%20%20%20%20%20%20fn(r)%3B%0A%20%20%20%20%20%20return%20forEach(ai%2C%20fn)%3B%0A%20%20%20%20%7D%0A%20%20%7D)%3B%0A%7D%0A%0Avar%20output%20%3D%200%3B%0AforEach(genAnswers()%2C%20function(val)%20%7B%20output%20%2B%3D%20val.value%20%7D)%0A.then(function%20()%20%7B%0A%20%20console.log(output)%3B%20%2F%2F%2042%0A%7D)%3B&experimental=true&loose=false&spec=false&playground=true&stage=0) + +## Installation + +```sh +npm install --save-dev babel-plugin-transform-async-generator-functions +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-async-generator-functions"] +} +``` + +### Via CLI + +```sh +babel --plugins transform-async-generator-functions script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-async-generator-functions"] +}); +``` + +## References + +* [Proposal: Asynchronous iteration for ECMAScript](https://github.com/tc39/proposal-async-iteration) diff --git a/web/node_modules/babel-plugin-transform-async-generator-functions/lib/index.js b/web/node_modules/babel-plugin-transform-async-generator-functions/lib/index.js new file mode 100644 index 00000000..d003a7e3 --- /dev/null +++ b/web/node_modules/babel-plugin-transform-async-generator-functions/lib/index.js @@ -0,0 +1,44 @@ +"use strict"; + +exports.__esModule = true; + +exports.default = function (_ref) { + var t = _ref.types; + + var yieldStarVisitor = { + Function: function Function(path) { + path.skip(); + }, + YieldExpression: function YieldExpression(_ref2, state) { + var node = _ref2.node; + + if (!node.delegate) return; + var callee = state.addHelper("asyncGeneratorDelegate"); + node.argument = t.callExpression(callee, [t.callExpression(state.addHelper("asyncIterator"), [node.argument]), t.memberExpression(state.addHelper("asyncGenerator"), t.identifier("await"))]); + } + }; + + return { + inherits: require("babel-plugin-syntax-async-generators"), + visitor: { + Function: function Function(path, state) { + if (!path.node.async || !path.node.generator) return; + + path.traverse(yieldStarVisitor, state); + + (0, _babelHelperRemapAsyncToGenerator2.default)(path, state.file, { + wrapAsync: t.memberExpression(state.addHelper("asyncGenerator"), t.identifier("wrap")), + wrapAwait: t.memberExpression(state.addHelper("asyncGenerator"), t.identifier("await")) + }); + } + } + }; +}; + +var _babelHelperRemapAsyncToGenerator = require("babel-helper-remap-async-to-generator"); + +var _babelHelperRemapAsyncToGenerator2 = _interopRequireDefault(_babelHelperRemapAsyncToGenerator); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-plugin-transform-async-generator-functions/package.json b/web/node_modules/babel-plugin-transform-async-generator-functions/package.json new file mode 100644 index 00000000..3dd5b61d --- /dev/null +++ b/web/node_modules/babel-plugin-transform-async-generator-functions/package.json @@ -0,0 +1,47 @@ +{ + "_from": "babel-plugin-transform-async-generator-functions@^6.24.1", + "_id": "babel-plugin-transform-async-generator-functions@6.24.1", + "_inBundle": false, + "_integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "_location": "/babel-plugin-transform-async-generator-functions", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-plugin-transform-async-generator-functions@^6.24.1", + "name": "babel-plugin-transform-async-generator-functions", + "escapedName": "babel-plugin-transform-async-generator-functions", + "rawSpec": "^6.24.1", + "saveSpec": null, + "fetchSpec": "^6.24.1" + }, + "_requiredBy": [ + "/babel-preset-stage-3" + ], + "_resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "_shasum": "f058900145fd3e9907a6ddf28da59f215258a5db", + "_spec": "babel-plugin-transform-async-generator-functions@^6.24.1", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-preset-stage-3", + "bundleDependencies": false, + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + }, + "deprecated": false, + "description": "Turn async generator functions into ES2015 generators", + "devDependencies": { + "babel-helper-plugin-test-runner": "^6.24.1" + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-async-generator-functions", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-async-generator-functions" + }, + "version": "6.24.1" +} diff --git a/web/node_modules/babel-plugin-transform-class-constructor-call/.npmignore b/web/node_modules/babel-plugin-transform-class-constructor-call/.npmignore new file mode 100644 index 00000000..31852902 --- /dev/null +++ b/web/node_modules/babel-plugin-transform-class-constructor-call/.npmignore @@ -0,0 +1,4 @@ +node_modules +*.log +src +test diff --git a/web/node_modules/babel-plugin-transform-class-constructor-call/README.md b/web/node_modules/babel-plugin-transform-class-constructor-call/README.md new file mode 100644 index 00000000..519c27cc --- /dev/null +++ b/web/node_modules/babel-plugin-transform-class-constructor-call/README.md @@ -0,0 +1,99 @@ +# babel-plugin-transform-class-constructor-call (deprecated) + +> Proposal Withdrawn: can be solved with decorators. + +This plugin allows Babel to transform class constructors. + +It basically allows to use the [new.target](http://mdn.io/new.target) feature on ES2015 classes: + +```js +class Point { + + constructor(x, y) { + this.x = x; + this.y = y; + } + + call constructor(x, y) { + return new Point(x, y); + } + +} + +let p1 = new Point(1, 2); // OK +let p2 = Point(3, 4); // OK +``` + +## Example + +### Date example +The javascript [Date](http://mdn.io/date) works this way: + +```js +// You can get a Date instance using the new keyword +let now = new Date(); +console.log(now.getMonth()); // Prints '3' +console.log(now.toString()); // Prints 'Mon Apr 11 2016 13:26:07 GMT+0100 (BST)' + +// You can get a string of the current date using Date as a function: +let nowStr = Date(); +console.log(nowStr); // Prints 'Mon Apr 11 2016 13:26:07 GMT+0100 (BST)' +``` + +It is currently possible to implement something like that using [new.target](http://mdn.io/new.target) (see [example in proposal](https://github.com/tc39/ecma262/blob/master/workingdocs/callconstructor.md#motivating-example)) and this new feature makes it available for ES2015 classes. + +A date implementation could be: + +```js +class Date { + constructor() { + // ... + } + + call constructor() { + let date = new Date(); + return date.toString(); + } +} + +let now = new Date(); // Get a Date instance +let nowStr = Date(); // Use the 'call constructor()' part to get a string value of the current date +``` + +## Installation + +```sh +npm install --save-dev babel-plugin-transform-class-constructor-call +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-class-constructor-call"] +} +``` + +### Via CLI + +```sh +babel --plugins transform-class-constructor-call script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-class-constructor-call"] +}); +``` + +## References + +* [Inactive Proposals](https://github.com/tc39/proposals/blob/master/inactive-proposals.md) +* [Proposal: Call Constructor](https://github.com/tc39/ecma262/blob/master/workingdocs/callconstructor.md) +* [Blog post: ECMAScript proposal: function-callable classes](http://www.2ality.com/2015/10/call-constructor-esprop.html) diff --git a/web/node_modules/babel-plugin-transform-class-constructor-call/lib/index.js b/web/node_modules/babel-plugin-transform-class-constructor-call/lib/index.js new file mode 100644 index 00000000..94141c79 --- /dev/null +++ b/web/node_modules/babel-plugin-transform-class-constructor-call/lib/index.js @@ -0,0 +1,93 @@ +"use strict"; + +exports.__esModule = true; + +var _getIterator2 = require("babel-runtime/core-js/get-iterator"); + +var _getIterator3 = _interopRequireDefault(_getIterator2); + +var _symbol = require("babel-runtime/core-js/symbol"); + +var _symbol2 = _interopRequireDefault(_symbol); + +exports.default = function (_ref) { + var t = _ref.types; + + var ALREADY_VISITED = (0, _symbol2.default)(); + + function findConstructorCall(path) { + var methods = path.get("body.body"); + + for (var _iterator = methods, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) { + var _ref2; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref2 = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref2 = _i.value; + } + + var method = _ref2; + + if (method.node.kind === "constructorCall") { + return method; + } + } + + return null; + } + + function handleClassWithCall(constructorCall, classPath) { + var _classPath = classPath, + node = _classPath.node; + + var ref = node.id || classPath.scope.generateUidIdentifier("class"); + + if (classPath.parentPath.isExportDefaultDeclaration()) { + classPath = classPath.parentPath; + classPath.insertAfter(t.exportDefaultDeclaration(ref)); + } + + classPath.replaceWithMultiple(buildWrapper({ + CLASS_REF: classPath.scope.generateUidIdentifier(ref.name), + CALL_REF: classPath.scope.generateUidIdentifier(ref.name + "Call"), + CALL: t.functionExpression(null, constructorCall.node.params, constructorCall.node.body), + CLASS: t.toExpression(node), + WRAPPER_REF: ref + })); + + constructorCall.remove(); + } + + return { + inherits: require("babel-plugin-syntax-class-constructor-call"), + + visitor: { + Class: function Class(path) { + if (path.node[ALREADY_VISITED]) return; + path.node[ALREADY_VISITED] = true; + + var constructorCall = findConstructorCall(path); + + if (constructorCall) { + handleClassWithCall(constructorCall, path); + } else { + return; + } + } + } + }; +}; + +var _babelTemplate = require("babel-template"); + +var _babelTemplate2 = _interopRequireDefault(_babelTemplate); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var buildWrapper = (0, _babelTemplate2.default)("\n let CLASS_REF = CLASS;\n var CALL_REF = CALL;\n var WRAPPER_REF = function (...args) {\n if (this instanceof WRAPPER_REF) {\n return Reflect.construct(CLASS_REF, args);\n } else {\n return CALL_REF.apply(this, args);\n }\n };\n WRAPPER_REF.__proto__ = CLASS_REF;\n WRAPPER_REF;\n"); + +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-plugin-transform-class-constructor-call/package.json b/web/node_modules/babel-plugin-transform-class-constructor-call/package.json new file mode 100644 index 00000000..9180668b --- /dev/null +++ b/web/node_modules/babel-plugin-transform-class-constructor-call/package.json @@ -0,0 +1,47 @@ +{ + "_from": "babel-plugin-transform-class-constructor-call@^6.24.1", + "_id": "babel-plugin-transform-class-constructor-call@6.24.1", + "_inBundle": false, + "_integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "_location": "/babel-plugin-transform-class-constructor-call", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-plugin-transform-class-constructor-call@^6.24.1", + "name": "babel-plugin-transform-class-constructor-call", + "escapedName": "babel-plugin-transform-class-constructor-call", + "rawSpec": "^6.24.1", + "saveSpec": null, + "fetchSpec": "^6.24.1" + }, + "_requiredBy": [ + "/babel-preset-stage-1" + ], + "_resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", + "_shasum": "80dc285505ac067dcb8d6c65e2f6f11ab7765ef9", + "_spec": "babel-plugin-transform-class-constructor-call@^6.24.1", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-preset-stage-1", + "bundleDependencies": false, + "dependencies": { + "babel-plugin-syntax-class-constructor-call": "^6.18.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + }, + "deprecated": false, + "description": "This plugin allows Babel to transform class constructors (deprecated)", + "devDependencies": { + "babel-helper-plugin-test-runner": "^6.24.1" + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-class-constructor-call", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-class-constructor-call" + }, + "version": "6.24.1" +} diff --git a/web/node_modules/babel-plugin-transform-decorators/.npmignore b/web/node_modules/babel-plugin-transform-decorators/.npmignore new file mode 100644 index 00000000..31852902 --- /dev/null +++ b/web/node_modules/babel-plugin-transform-decorators/.npmignore @@ -0,0 +1,4 @@ +node_modules +*.log +src +test diff --git a/web/node_modules/babel-plugin-transform-decorators/README.md b/web/node_modules/babel-plugin-transform-decorators/README.md new file mode 100644 index 00000000..71fee789 --- /dev/null +++ b/web/node_modules/babel-plugin-transform-decorators/README.md @@ -0,0 +1,83 @@ +# babel-plugin-transform-decorators + +> Compile class and object decorators to ES5 + +## Example + +(examples are from proposal) + +### Simple class decorator + +```js +@annotation +class MyClass { } + +function annotation(target) { + target.annotated = true; +} +``` + +### Class decorator + +```js +@isTestable(true) +class MyClass { } + +function isTestable(value) { + return function decorator(target) { + target.isTestable = value; + } +} +``` + +### Class function decorator + +```js +class C { + @enumerable(false) + method() { } +} + +function enumerable(value) { + return function (target, key, descriptor) { + descriptor.enumerable = value; + return descriptor; + } +} +``` + +## Installation + +```sh +npm install --save-dev babel-plugin-transform-decorators +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-decorators"] +} +``` + +### Via CLI + +```sh +babel --plugins transform-decorators script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-decorators"] +}); +``` + +## References + +* [Proposal: Javascript Decorators](https://github.com/wycats/javascript-decorators/blob/master/README.md) diff --git a/web/node_modules/babel-plugin-transform-decorators/lib/index.js b/web/node_modules/babel-plugin-transform-decorators/lib/index.js new file mode 100644 index 00000000..823555ac --- /dev/null +++ b/web/node_modules/babel-plugin-transform-decorators/lib/index.js @@ -0,0 +1,194 @@ +"use strict"; + +exports.__esModule = true; + +var _create = require("babel-runtime/core-js/object/create"); + +var _create2 = _interopRequireDefault(_create); + +var _getIterator2 = require("babel-runtime/core-js/get-iterator"); + +var _getIterator3 = _interopRequireDefault(_getIterator2); + +exports.default = function (_ref) { + var t = _ref.types; + + function cleanDecorators(decorators) { + return decorators.reverse().map(function (dec) { + return dec.expression; + }); + } + + function transformClass(path, ref, state) { + var nodes = []; + + state; + + var classDecorators = path.node.decorators; + if (classDecorators) { + path.node.decorators = null; + classDecorators = cleanDecorators(classDecorators); + + for (var _iterator = classDecorators, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) { + var _ref2; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref2 = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref2 = _i.value; + } + + var decorator = _ref2; + + nodes.push(buildClassDecorator({ + CLASS_REF: ref, + DECORATOR: decorator + })); + } + } + + var map = (0, _create2.default)(null); + + for (var _iterator2 = path.get("body.body"), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) { + var _ref3; + + if (_isArray2) { + if (_i2 >= _iterator2.length) break; + _ref3 = _iterator2[_i2++]; + } else { + _i2 = _iterator2.next(); + if (_i2.done) break; + _ref3 = _i2.value; + } + + var method = _ref3; + + var decorators = method.node.decorators; + if (!decorators) continue; + + var _alias = t.toKeyAlias(method.node); + map[_alias] = map[_alias] || []; + map[_alias].push(method.node); + + method.remove(); + } + + for (var alias in map) { + var items = map[alias]; + + items; + } + + return nodes; + } + + function hasDecorators(path) { + if (path.isClass()) { + if (path.node.decorators) return true; + + for (var _iterator3 = path.node.body.body, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : (0, _getIterator3.default)(_iterator3);;) { + var _ref4; + + if (_isArray3) { + if (_i3 >= _iterator3.length) break; + _ref4 = _iterator3[_i3++]; + } else { + _i3 = _iterator3.next(); + if (_i3.done) break; + _ref4 = _i3.value; + } + + var method = _ref4; + + if (method.decorators) { + return true; + } + } + } else if (path.isObjectExpression()) { + for (var _iterator4 = path.node.properties, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : (0, _getIterator3.default)(_iterator4);;) { + var _ref5; + + if (_isArray4) { + if (_i4 >= _iterator4.length) break; + _ref5 = _iterator4[_i4++]; + } else { + _i4 = _iterator4.next(); + if (_i4.done) break; + _ref5 = _i4.value; + } + + var prop = _ref5; + + if (prop.decorators) { + return true; + } + } + } + + return false; + } + + function doError(path) { + throw path.buildCodeFrameError("Decorators are not officially supported yet in 6.x pending a proposal update.\nHowever, if you need to use them you can install the legacy decorators transform with:\n\nnpm install babel-plugin-transform-decorators-legacy --save-dev\n\nand add the following line to your .babelrc file:\n\n{\n \"plugins\": [\"transform-decorators-legacy\"]\n}\n\nThe repo url is: https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy.\n "); + } + + return { + inherits: require("babel-plugin-syntax-decorators"), + + visitor: { + ClassExpression: function ClassExpression(path) { + if (!hasDecorators(path)) return; + doError(path); + + (0, _babelHelperExplodeClass2.default)(path); + + var ref = path.scope.generateDeclaredUidIdentifier("ref"); + var nodes = []; + + nodes.push(t.assignmentExpression("=", ref, path.node)); + + nodes = nodes.concat(transformClass(path, ref, this)); + + nodes.push(ref); + + path.replaceWith(t.sequenceExpression(nodes)); + }, + ClassDeclaration: function ClassDeclaration(path) { + if (!hasDecorators(path)) return; + doError(path); + (0, _babelHelperExplodeClass2.default)(path); + + var ref = path.node.id; + var nodes = []; + + nodes = nodes.concat(transformClass(path, ref, this).map(function (expr) { + return t.expressionStatement(expr); + })); + nodes.push(t.expressionStatement(ref)); + + path.insertAfter(nodes); + }, + ObjectExpression: function ObjectExpression(path) { + if (!hasDecorators(path)) return; + doError(path); + } + } + }; +}; + +var _babelTemplate = require("babel-template"); + +var _babelTemplate2 = _interopRequireDefault(_babelTemplate); + +var _babelHelperExplodeClass = require("babel-helper-explode-class"); + +var _babelHelperExplodeClass2 = _interopRequireDefault(_babelHelperExplodeClass); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var buildClassDecorator = (0, _babelTemplate2.default)("\n CLASS_REF = DECORATOR(CLASS_REF) || CLASS_REF;\n"); + +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-plugin-transform-decorators/package.json b/web/node_modules/babel-plugin-transform-decorators/package.json new file mode 100644 index 00000000..e6892504 --- /dev/null +++ b/web/node_modules/babel-plugin-transform-decorators/package.json @@ -0,0 +1,49 @@ +{ + "_from": "babel-plugin-transform-decorators@^6.24.1", + "_id": "babel-plugin-transform-decorators@6.24.1", + "_inBundle": false, + "_integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "_location": "/babel-plugin-transform-decorators", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-plugin-transform-decorators@^6.24.1", + "name": "babel-plugin-transform-decorators", + "escapedName": "babel-plugin-transform-decorators", + "rawSpec": "^6.24.1", + "saveSpec": null, + "fetchSpec": "^6.24.1" + }, + "_requiredBy": [ + "/babel-preset-stage-2" + ], + "_resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "_shasum": "788013d8f8c6b5222bdf7b344390dfd77569e24d", + "_spec": "babel-plugin-transform-decorators@^6.24.1", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-preset-stage-2", + "bundleDependencies": false, + "dependencies": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" + }, + "deprecated": false, + "description": "Compile class and object decorators to ES5", + "devDependencies": { + "babel-helper-plugin-test-runner": "^6.24.1" + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-decorators", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-decorators" + }, + "version": "6.24.1" +} diff --git a/web/node_modules/babel-plugin-transform-export-extensions/.npmignore b/web/node_modules/babel-plugin-transform-export-extensions/.npmignore new file mode 100644 index 00000000..31852902 --- /dev/null +++ b/web/node_modules/babel-plugin-transform-export-extensions/.npmignore @@ -0,0 +1,4 @@ +node_modules +*.log +src +test diff --git a/web/node_modules/babel-plugin-transform-export-extensions/README.md b/web/node_modules/babel-plugin-transform-export-extensions/README.md new file mode 100644 index 00000000..26f7d512 --- /dev/null +++ b/web/node_modules/babel-plugin-transform-export-extensions/README.md @@ -0,0 +1,48 @@ +# babel-plugin-transform-export-extensions + +> Compile additional export-from statements to ES2015 + +## Example + +```js +export * as ns from 'mod'; +export v from 'mod'; +``` +[Try in REPL](http://babeljs.io/repl/#?evaluate=true&presets=es2015%2Cstage-0&code=export%20*%20as%20ns%20from%20'mod'%3B%0Aexport%20v%20from%20'mod'%3B) + +## Installation + +```sh +npm install --save-dev babel-plugin-transform-export-extensions +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-export-extensions"] +} +``` + +### Via CLI + +```sh +babel --plugins transform-export-extensions script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-export-extensions"] +}); +``` +## References + +* ~~[Proposal: Additional export-from statements in ES7](https://github.com/leebyron/ecmascript-more-export-from)~~ (Withdrawn) +* [ECMAScript Proposal: export ns from](https://github.com/leebyron/ecmascript-export-ns-from) +* [ECMAScript Proposal: export default from](https://github.com/leebyron/ecmascript-export-default-from) diff --git a/web/node_modules/babel-plugin-transform-export-extensions/lib/index.js b/web/node_modules/babel-plugin-transform-export-extensions/lib/index.js new file mode 100644 index 00000000..5fcf150d --- /dev/null +++ b/web/node_modules/babel-plugin-transform-export-extensions/lib/index.js @@ -0,0 +1,49 @@ +"use strict"; + +exports.__esModule = true; + +exports.default = function (_ref) { + var t = _ref.types; + + function build(node, nodes, scope) { + var first = node.specifiers[0]; + if (!t.isExportNamespaceSpecifier(first) && !t.isExportDefaultSpecifier(first)) return; + + var specifier = node.specifiers.shift(); + var uid = scope.generateUidIdentifier(specifier.exported.name); + + var newSpecifier = void 0; + if (t.isExportNamespaceSpecifier(specifier)) { + newSpecifier = t.importNamespaceSpecifier(uid); + } else { + newSpecifier = t.importDefaultSpecifier(uid); + } + + nodes.push(t.importDeclaration([newSpecifier], node.source)); + nodes.push(t.exportNamedDeclaration(null, [t.exportSpecifier(uid, specifier.exported)])); + + build(node, nodes, scope); + } + + return { + inherits: require("babel-plugin-syntax-export-extensions"), + + visitor: { + ExportNamedDeclaration: function ExportNamedDeclaration(path) { + var node = path.node, + scope = path.scope; + + var nodes = []; + build(node, nodes, scope); + if (!nodes.length) return; + + if (node.specifiers.length >= 1) { + nodes.push(node); + } + path.replaceWithMultiple(nodes); + } + } + }; +}; + +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-plugin-transform-export-extensions/package.json b/web/node_modules/babel-plugin-transform-export-extensions/package.json new file mode 100644 index 00000000..028fbf63 --- /dev/null +++ b/web/node_modules/babel-plugin-transform-export-extensions/package.json @@ -0,0 +1,46 @@ +{ + "_from": "babel-plugin-transform-export-extensions@^6.22.0", + "_id": "babel-plugin-transform-export-extensions@6.22.0", + "_inBundle": false, + "_integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", + "_location": "/babel-plugin-transform-export-extensions", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-plugin-transform-export-extensions@^6.22.0", + "name": "babel-plugin-transform-export-extensions", + "escapedName": "babel-plugin-transform-export-extensions", + "rawSpec": "^6.22.0", + "saveSpec": null, + "fetchSpec": "^6.22.0" + }, + "_requiredBy": [ + "/babel-preset-stage-1" + ], + "_resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "_shasum": "53738b47e75e8218589eea946cbbd39109bbe653", + "_spec": "babel-plugin-transform-export-extensions@^6.22.0", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-preset-stage-1", + "bundleDependencies": false, + "dependencies": { + "babel-plugin-syntax-export-extensions": "^6.8.0", + "babel-runtime": "^6.22.0" + }, + "deprecated": false, + "description": "Compile export extensions to ES2015", + "devDependencies": { + "babel-helper-plugin-test-runner": "^6.22.0" + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-export-extensions", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-export-extensions" + }, + "version": "6.22.0" +} diff --git a/web/node_modules/babel-preset-stage-1/.npmignore b/web/node_modules/babel-preset-stage-1/.npmignore new file mode 100644 index 00000000..47cdd2c6 --- /dev/null +++ b/web/node_modules/babel-preset-stage-1/.npmignore @@ -0,0 +1,3 @@ +src +test +node_modules diff --git a/web/node_modules/babel-preset-stage-1/README.md b/web/node_modules/babel-preset-stage-1/README.md new file mode 100644 index 00000000..19692c62 --- /dev/null +++ b/web/node_modules/babel-preset-stage-1/README.md @@ -0,0 +1,49 @@ +# babel-preset-stage-1 + +> Babel preset for stage 1 plugins. + +The gist of Stage 1 is: + +> **Stage 1**: proposal +> +> **What is it?** A formal proposal for the feature. +> +> **What’s required?** A so-called champion must be identified who is responsible for the proposal. Either the champion or a co-champion must be a member of TC39 (source). The problem solved by the proposal must be described in prose. The solution must be described via examples, an API and a discussion of semantics and algorithms. Lastly, potential obstacles for the proposal must be identified, such as interactions with other features and implementation challenges. Implementation-wise, polyfills and demos are needed. +> +> **What’s next?** By accepting a proposal for stage 1, TC39 declares its willingness to examine, discuss and contribute to the proposal. Going forward, major changes to the proposal are expected + +## Install + +```sh +npm install --save-dev babel-preset-stage-1 +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "presets": ["stage-1"] +} +``` + +### Via CLI + +```sh +babel script.js --presets stage-1 +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + presets: ["stage-1"] +}); +``` + +## References + +- Chapter "[The TC39 process for ECMAScript features](http://exploringjs.com/es2016-es2017/ch_tc39-process.html)" in "Exploring ES2016 and ES2017" by Axel Rauschmayer diff --git a/web/node_modules/babel-preset-stage-1/lib/index.js b/web/node_modules/babel-preset-stage-1/lib/index.js new file mode 100644 index 00000000..c514f01e --- /dev/null +++ b/web/node_modules/babel-preset-stage-1/lib/index.js @@ -0,0 +1,23 @@ +"use strict"; + +exports.__esModule = true; + +var _babelPresetStage = require("babel-preset-stage-2"); + +var _babelPresetStage2 = _interopRequireDefault(_babelPresetStage); + +var _babelPluginTransformClassConstructorCall = require("babel-plugin-transform-class-constructor-call"); + +var _babelPluginTransformClassConstructorCall2 = _interopRequireDefault(_babelPluginTransformClassConstructorCall); + +var _babelPluginTransformExportExtensions = require("babel-plugin-transform-export-extensions"); + +var _babelPluginTransformExportExtensions2 = _interopRequireDefault(_babelPluginTransformExportExtensions); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = { + presets: [_babelPresetStage2.default], + plugins: [_babelPluginTransformClassConstructorCall2.default, _babelPluginTransformExportExtensions2.default] +}; +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-preset-stage-1/package.json b/web/node_modules/babel-preset-stage-1/package.json new file mode 100644 index 00000000..a00cb45b --- /dev/null +++ b/web/node_modules/babel-preset-stage-1/package.json @@ -0,0 +1,47 @@ +{ + "_from": "babel-preset-stage-1", + "_id": "babel-preset-stage-1@6.24.1", + "_inBundle": false, + "_integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", + "_location": "/babel-preset-stage-1", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "babel-preset-stage-1", + "name": "babel-preset-stage-1", + "escapedName": "babel-preset-stage-1", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", + "_shasum": "7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0", + "_spec": "babel-preset-stage-1", + "_where": "/home/bilal/Saburly/slucajna-televizija/web", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "bundleDependencies": false, + "dependencies": { + "babel-plugin-transform-class-constructor-call": "^6.24.1", + "babel-plugin-transform-export-extensions": "^6.22.0", + "babel-preset-stage-2": "^6.24.1" + }, + "deprecated": false, + "description": "Babel preset for stage 1 plugins", + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-preset-stage-1", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-1" + }, + "version": "6.24.1" +} diff --git a/web/node_modules/babel-preset-stage-2/.npmignore b/web/node_modules/babel-preset-stage-2/.npmignore new file mode 100644 index 00000000..47cdd2c6 --- /dev/null +++ b/web/node_modules/babel-preset-stage-2/.npmignore @@ -0,0 +1,3 @@ +src +test +node_modules diff --git a/web/node_modules/babel-preset-stage-2/README.md b/web/node_modules/babel-preset-stage-2/README.md new file mode 100644 index 00000000..0007aa1a --- /dev/null +++ b/web/node_modules/babel-preset-stage-2/README.md @@ -0,0 +1,50 @@ +# babel-preset-stage-2 + +> Babel preset for stage 2 plugins. + +The gist of Stage 2 is: + +> **Stage 2:** draft +> +> **What is it?** A first version of what will be in the specification. At this point, an eventual inclusion of the feature in the standard is likely. +> +> **What’s required?** The proposal must now additionally have a formal description of the syntax and semantics of the feature (using the formal language of the ECMAScript specification). The description should be as complete as possible, but can contain todos and placeholders. Two experimental implementations of the feature are needed, but one of them can be in a transpiler such as Babel. +> +> **What’s next?** Only incremental changes are expected from now on. + + + +## Install + +```sh +npm install --save-dev babel-preset-stage-2 +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "presets": ["stage-2"] +} +``` + +### Via CLI + +```sh +babel script.js --presets stage-2 +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + presets: ["stage-2"] +}); +``` +## References + +- Chapter "[The TC39 process for ECMAScript features](http://exploringjs.com/es2016-es2017/ch_tc39-process.html)" in "Exploring ES2016 and ES2017" by Axel Rauschmayer diff --git a/web/node_modules/babel-preset-stage-2/lib/index.js b/web/node_modules/babel-preset-stage-2/lib/index.js new file mode 100644 index 00000000..a2fced6f --- /dev/null +++ b/web/node_modules/babel-preset-stage-2/lib/index.js @@ -0,0 +1,27 @@ +"use strict"; + +exports.__esModule = true; + +var _babelPresetStage = require("babel-preset-stage-3"); + +var _babelPresetStage2 = _interopRequireDefault(_babelPresetStage); + +var _babelPluginTransformClassProperties = require("babel-plugin-transform-class-properties"); + +var _babelPluginTransformClassProperties2 = _interopRequireDefault(_babelPluginTransformClassProperties); + +var _babelPluginTransformDecorators = require("babel-plugin-transform-decorators"); + +var _babelPluginTransformDecorators2 = _interopRequireDefault(_babelPluginTransformDecorators); + +var _babelPluginSyntaxDynamicImport = require("babel-plugin-syntax-dynamic-import"); + +var _babelPluginSyntaxDynamicImport2 = _interopRequireDefault(_babelPluginSyntaxDynamicImport); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = { + presets: [_babelPresetStage2.default], + plugins: [_babelPluginSyntaxDynamicImport2.default, _babelPluginTransformClassProperties2.default, _babelPluginTransformDecorators2.default] +}; +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-preset-stage-2/package.json b/web/node_modules/babel-preset-stage-2/package.json new file mode 100644 index 00000000..50de52c1 --- /dev/null +++ b/web/node_modules/babel-preset-stage-2/package.json @@ -0,0 +1,47 @@ +{ + "_from": "babel-preset-stage-2@^6.24.1", + "_id": "babel-preset-stage-2@6.24.1", + "_inBundle": false, + "_integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "_location": "/babel-preset-stage-2", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-preset-stage-2@^6.24.1", + "name": "babel-preset-stage-2", + "escapedName": "babel-preset-stage-2", + "rawSpec": "^6.24.1", + "saveSpec": null, + "fetchSpec": "^6.24.1" + }, + "_requiredBy": [ + "/babel-preset-stage-1" + ], + "_resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "_shasum": "d9e2960fb3d71187f0e64eec62bc07767219bdc1", + "_spec": "babel-preset-stage-2@^6.24.1", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-preset-stage-1", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "bundleDependencies": false, + "dependencies": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + }, + "deprecated": false, + "description": "Babel preset for stage 2 plugins", + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-preset-stage-2", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-2" + }, + "version": "6.24.1" +} diff --git a/web/node_modules/babel-preset-stage-3/.npmignore b/web/node_modules/babel-preset-stage-3/.npmignore new file mode 100644 index 00000000..47cdd2c6 --- /dev/null +++ b/web/node_modules/babel-preset-stage-3/.npmignore @@ -0,0 +1,3 @@ +src +test +node_modules diff --git a/web/node_modules/babel-preset-stage-3/README.md b/web/node_modules/babel-preset-stage-3/README.md new file mode 100644 index 00000000..656cd0d7 --- /dev/null +++ b/web/node_modules/babel-preset-stage-3/README.md @@ -0,0 +1,51 @@ +# babel-preset-stage-3 + +> Babel preset for stage 3 plugins. + +The gist of Stage 3 is: + +> **Stage 3**: candidate +> +> **What is it?** The proposal is mostly finished and now needs feedback from implementations and users to progress further. + +> **What’s required?** The spec text must be complete. Designated reviewers (appointed by TC39, not by the champion) and the ECMAScript spec editor must sign off on the spec text. There must be at least two spec-compliant implementations (which don’t have to be enabled by default). +> +> **What’s next?** Henceforth, changes should only be made in response to critical issues raised by the implementations and their use. + + + +## Install + +```sh +npm install --save-dev babel-preset-stage-3 +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "presets": ["stage-3"] +} +``` + +### Via CLI + +```sh +babel script.js --presets stage-3 +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + presets: ["stage-3"] +}); +``` + +## References + +- Chapter "[The TC39 process for ECMAScript features](http://exploringjs.com/es2016-es2017/ch_tc39-process.html)" in "Exploring ES2016 and ES2017" by Axel Rauschmayer diff --git a/web/node_modules/babel-preset-stage-3/lib/index.js b/web/node_modules/babel-preset-stage-3/lib/index.js new file mode 100644 index 00000000..8336b958 --- /dev/null +++ b/web/node_modules/babel-preset-stage-3/lib/index.js @@ -0,0 +1,30 @@ +"use strict"; + +exports.__esModule = true; + +var _babelPluginSyntaxTrailingFunctionCommas = require("babel-plugin-syntax-trailing-function-commas"); + +var _babelPluginSyntaxTrailingFunctionCommas2 = _interopRequireDefault(_babelPluginSyntaxTrailingFunctionCommas); + +var _babelPluginTransformAsyncToGenerator = require("babel-plugin-transform-async-to-generator"); + +var _babelPluginTransformAsyncToGenerator2 = _interopRequireDefault(_babelPluginTransformAsyncToGenerator); + +var _babelPluginTransformExponentiationOperator = require("babel-plugin-transform-exponentiation-operator"); + +var _babelPluginTransformExponentiationOperator2 = _interopRequireDefault(_babelPluginTransformExponentiationOperator); + +var _babelPluginTransformObjectRestSpread = require("babel-plugin-transform-object-rest-spread"); + +var _babelPluginTransformObjectRestSpread2 = _interopRequireDefault(_babelPluginTransformObjectRestSpread); + +var _babelPluginTransformAsyncGeneratorFunctions = require("babel-plugin-transform-async-generator-functions"); + +var _babelPluginTransformAsyncGeneratorFunctions2 = _interopRequireDefault(_babelPluginTransformAsyncGeneratorFunctions); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = { + plugins: [_babelPluginSyntaxTrailingFunctionCommas2.default, _babelPluginTransformAsyncToGenerator2.default, _babelPluginTransformExponentiationOperator2.default, _babelPluginTransformAsyncGeneratorFunctions2.default, _babelPluginTransformObjectRestSpread2.default] +}; +module.exports = exports["default"]; \ No newline at end of file diff --git a/web/node_modules/babel-preset-stage-3/package.json b/web/node_modules/babel-preset-stage-3/package.json new file mode 100644 index 00000000..229d856c --- /dev/null +++ b/web/node_modules/babel-preset-stage-3/package.json @@ -0,0 +1,48 @@ +{ + "_from": "babel-preset-stage-3@^6.24.1", + "_id": "babel-preset-stage-3@6.24.1", + "_inBundle": false, + "_integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "_location": "/babel-preset-stage-3", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "babel-preset-stage-3@^6.24.1", + "name": "babel-preset-stage-3", + "escapedName": "babel-preset-stage-3", + "rawSpec": "^6.24.1", + "saveSpec": null, + "fetchSpec": "^6.24.1" + }, + "_requiredBy": [ + "/babel-preset-stage-2" + ], + "_resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "_shasum": "836ada0a9e7a7fa37cb138fb9326f87934a48395", + "_spec": "babel-preset-stage-3@^6.24.1", + "_where": "/home/bilal/Saburly/slucajna-televizija/web/node_modules/babel-preset-stage-2", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "bundleDependencies": false, + "dependencies": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + }, + "deprecated": false, + "description": "Babel preset for stage 3 plugins", + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-preset-stage-3", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-3" + }, + "version": "6.24.1" +} diff --git a/web/package-lock.json b/web/package-lock.json index 82e0068f..4224d9b4 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -152,8 +152,7 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "3.2.0", @@ -392,7 +391,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -492,11 +490,20 @@ } } }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "requires": { + "babel-runtime": "6.23.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, "babel-helper-builder-binary-assignment-operator-visitor": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, "requires": { "babel-helper-explode-assignable-expression": "6.24.1", "babel-runtime": "6.23.0", @@ -590,18 +597,27 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, "requires": { "babel-runtime": "6.23.0", "babel-traverse": "6.26.0", "babel-types": "6.26.0" } }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "requires": { + "babel-helper-bindify-decorators": "6.24.1", + "babel-runtime": "6.23.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, "requires": { "babel-helper-get-function-arity": "6.24.1", "babel-runtime": "6.23.0", @@ -614,7 +630,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, "requires": { "babel-runtime": "6.23.0", "babel-types": "6.26.0" @@ -679,7 +694,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, "requires": { "babel-helper-function-name": "6.24.1", "babel-runtime": "6.23.0", @@ -738,7 +752,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, "requires": { "babel-runtime": "6.23.0" } @@ -783,26 +796,42 @@ "babel-plugin-syntax-async-functions": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" + }, + "babel-plugin-syntax-class-constructor-call": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=" }, "babel-plugin-syntax-class-properties": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", - "dev": true + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" }, "babel-plugin-syntax-dynamic-import": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", - "dev": true + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-export-extensions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=" }, "babel-plugin-syntax-flow": { "version": "6.18.0", @@ -819,31 +848,47 @@ "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" }, "babel-plugin-syntax-trailing-function-commas": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-generators": "6.13.0", + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, "requires": { "babel-helper-remap-async-to-generator": "6.24.1", "babel-plugin-syntax-async-functions": "6.13.0", "babel-runtime": "6.23.0" } }, + "babel-plugin-transform-class-constructor-call": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", + "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "requires": { + "babel-plugin-syntax-class-constructor-call": "6.18.0", + "babel-runtime": "6.23.0", + "babel-template": "6.26.0" + } + }, "babel-plugin-transform-class-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "dev": true, "requires": { "babel-helper-function-name": "6.24.1", "babel-plugin-syntax-class-properties": "6.13.0", @@ -851,6 +896,18 @@ "babel-template": "6.26.0" } }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "requires": { + "babel-helper-explode-class": "6.24.1", + "babel-plugin-syntax-decorators": "6.13.0", + "babel-runtime": "6.23.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", @@ -1137,13 +1194,21 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, "requires": { "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", "babel-plugin-syntax-exponentiation-operator": "6.13.0", "babel-runtime": "6.23.0" } }, + "babel-plugin-transform-export-extensions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", + "requires": { + "babel-plugin-syntax-export-extensions": "6.13.0", + "babel-runtime": "6.23.0" + } + }, "babel-plugin-transform-flow-strip-types": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", @@ -1158,7 +1223,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz", "integrity": "sha1-h11ryb52HFiirj/u5dxIldjH+SE=", - "dev": true, "requires": { "babel-plugin-syntax-object-rest-spread": "6.13.0", "babel-runtime": "6.23.0" @@ -1331,6 +1395,39 @@ "babel-preset-react": "6.24.1" } }, + "babel-preset-stage-1": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", + "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", + "requires": { + "babel-plugin-transform-class-constructor-call": "6.24.1", + "babel-plugin-transform-export-extensions": "6.22.0", + "babel-preset-stage-2": "6.24.1" + } + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "requires": { + "babel-plugin-syntax-dynamic-import": "6.18.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-decorators": "6.24.1", + "babel-preset-stage-3": "6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "requires": { + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-generator-functions": "6.24.1", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-object-rest-spread": "6.23.0" + } + }, "babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", @@ -1407,7 +1504,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true, "requires": { "core-js": "2.5.1", "regenerator-runtime": "0.10.5" @@ -1416,8 +1512,7 @@ "core-js": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", - "dev": true + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" } } }, @@ -1425,7 +1520,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -1438,7 +1532,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "2.5.1", "regenerator-runtime": "0.11.0" @@ -1447,14 +1540,12 @@ "core-js": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", - "dev": true + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" }, "regenerator-runtime": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" } } }, @@ -1462,7 +1553,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -1479,7 +1569,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "2.5.1", "regenerator-runtime": "0.11.0" @@ -1488,14 +1577,12 @@ "core-js": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", - "dev": true + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" }, "regenerator-runtime": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" } } }, @@ -1503,7 +1590,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -1515,7 +1601,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "2.5.1", "regenerator-runtime": "0.11.0" @@ -1524,22 +1609,19 @@ "core-js": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", - "dev": true + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" }, "regenerator-runtime": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" } } }, "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "balanced-match": { "version": "1.0.0", @@ -1936,7 +2018,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -1948,14 +2029,12 @@ "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, @@ -2715,7 +2794,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -3171,8 +3249,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { "version": "1.9.0", @@ -3415,8 +3492,7 @@ "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "etag": { "version": "1.8.1", @@ -3939,8 +4015,7 @@ "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "globby": { "version": "5.0.0", @@ -4112,7 +4187,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -4517,7 +4591,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "dev": true, "requires": { "loose-envify": "1.3.1" } @@ -5524,8 +5597,7 @@ "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" }, "lodash._reinterpolate": { "version": "3.0.0", @@ -5834,8 +5906,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "mute-stream": { "version": "0.0.5", @@ -8468,8 +8539,7 @@ "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" }, "regenerator-transform": { "version": "0.9.11", @@ -9249,7 +9319,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -9516,8 +9585,7 @@ "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, "toposort": { "version": "1.0.6", diff --git a/web/package.json b/web/package.json index e442878c..6dc3d3e5 100644 --- a/web/package.json +++ b/web/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "babel-preset-stage-1": "^6.24.1", "react": "^15.6.1", "react-dom": "^15.6.1" }, diff --git a/web/src/App.js b/web/src/App.js index 969c7066..569f69fa 100644 --- a/web/src/App.js +++ b/web/src/App.js @@ -3,23 +3,37 @@ import './App.css'; import PairsListComponent from './PairsListComponent.js'; +const BASE_URL = "localhost"; class App extends Component { constructor(props){ super(props); - this.state = {renderPairsList: false, pairs: []}; + this.state = {renderPairsList: false, pairs: [], waitingPairs:false, waitingSave:false, renderFinish:false}; this.getPairsEventHandler = this.getPairsEventHandler.bind(this); + this.savePairsEventHandler = this.savePairsEventHandler.bind(this); } - getPairsEventHandler(event){ - console.log("Get Pairs"); - this.setState({pairs: ['Bilal Rahima','A1 A2','B1 B2'],renderPairsList:true}); + getPairsEventHandler = (event) =>{ + let url = `http://${BASE_URL}:3005/getPairs`; + + this.setState({waitingPairs:true}); + + fetch(url, {}).then(function(response) { return response.json(); }).then(function(data) { + this.setState({pairs : data, renderPairsList:true, waitingPairs:false}); + }.bind(this)); + + } savePairsEventHandler(event){ + let url = `http://${BASE_URL}:3005/savePairs`; + this.setState({waitingSave:true}); + fetch(url, {}).then(function(response) { return response.json(); }).then(function(data) { + this.setState({waitingSave:false, renderFinish:data.result}); + }.bind(this)); } render() { @@ -30,7 +44,7 @@ class App extends Component {
- +

List of pairs :

@@ -41,7 +55,15 @@ class App extends Component { } { this.state.renderPairsList && - + + } + { + this.state.renderFinish && +

Pairs saved

+ } + { + !this.state.renderFinish && +

Pairs could not be saved !

}
); diff --git a/web/src/PairComponent.js b/web/src/PairComponent.js index 4625450b..e6dd674d 100644 --- a/web/src/PairComponent.js +++ b/web/src/PairComponent.js @@ -10,7 +10,7 @@ export default class PairComponent extends Component{ return (
-
{this.state.pairName}
+
{this.state.pairName.name1} - {this.state.pairName.name2}
)