Mejoras en el inicio de sesion.
This commit is contained in:
parent
1b65d4af33
commit
65d434b5fa
27
.gcloudignore
Normal file
27
.gcloudignore
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# This file specifies files that are *not* uploaded to Google Cloud Platform
|
||||||
|
# using gcloud. It follows the same syntax as .gitignore, with the addition of
|
||||||
|
# "#!include" directives (which insert the entries of the given .gitignore-style
|
||||||
|
# file at that point).
|
||||||
|
#
|
||||||
|
# For more information, run:
|
||||||
|
# $ gcloud topic gcloudignore
|
||||||
|
#
|
||||||
|
.gcloudignore
|
||||||
|
# If you would like to upload your .git directory, .gitignore file or files
|
||||||
|
# from your .gitignore file, remove the corresponding line
|
||||||
|
# below:
|
||||||
|
.git
|
||||||
|
.gitignore
|
||||||
|
|
||||||
|
# Node.js dependencies:
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Archivos de desarrollo
|
||||||
|
src/
|
||||||
|
public/
|
||||||
|
|
||||||
|
# Archivos de JetBrains
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# Archivos de TypeScript
|
||||||
|
*.ts
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -19,3 +19,6 @@ yarn-error.log*
|
|||||||
*.njsproj
|
*.njsproj
|
||||||
*.sln
|
*.sln
|
||||||
*.sw*
|
*.sw*
|
||||||
|
|
||||||
|
# Archivos js (ya que estoy usando ts)
|
||||||
|
/Backend/*.js
|
8
Backend/VARIABLES.ts
Normal file
8
Backend/VARIABLES.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
const SQL_CONNECT_DATA:object = {
|
||||||
|
host: '35.193.16.64',
|
||||||
|
user: 'Araozu',
|
||||||
|
password: 'xsakah4b',
|
||||||
|
database: 'Usuarios_DB'
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports.sqlConnectData = SQL_CONNECT_DATA;
|
89
Backend/registrarUsuario.ts
Normal file
89
Backend/registrarUsuario.ts
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
const exec = (nombre:string, email:string, pass:string, sesion:any) =>
|
||||||
|
new Promise((resolve, reject) => {
|
||||||
|
const mysql = require('mysql');
|
||||||
|
const SQL_CONNECT_DATA = require('./VARIABLES').sqlConnectData;
|
||||||
|
|
||||||
|
const con = mysql.createConnection(SQL_CONNECT_DATA);
|
||||||
|
|
||||||
|
con.connect((err:any) => {
|
||||||
|
if (err) reject("Error al conectarse a la BBDD. registrarUsuarios.ts 10.\n" + err);
|
||||||
|
|
||||||
|
con.query(
|
||||||
|
`SELECT email FROM usuarios WHERE email='${email}'`,
|
||||||
|
(err:any, respuesta:any) => {
|
||||||
|
const data = JSON.stringify(respuesta);
|
||||||
|
if (data === "[]") {
|
||||||
|
|
||||||
|
con.query(
|
||||||
|
`INSERT INTO usuarios (GOOGLE_ID, nombre, email, img, carritoActual, contrasena, ROL)
|
||||||
|
VALUES ('0','${nombre}', '${email}', '/img/usuario.png', '{}', '${pass}', 'user' )`,
|
||||||
|
(err:any, respuesta:any) => {
|
||||||
|
if (err) reject ('Error al ejecutar SQL. registrarUsuario.ts 22\n' + err);
|
||||||
|
|
||||||
|
/* El servidor me obligo a hacer esto en vez de usar SELECT LAST_INSERT_ID() */
|
||||||
|
con.query(
|
||||||
|
`SELECT USER_ID FROM usuarios WHERE email='${email}'`,
|
||||||
|
(err:any, respuesta:any) => {
|
||||||
|
if (err) reject ('Error al ejecutar SQL. registrarUsuario.ts 27\n' + err);
|
||||||
|
|
||||||
|
/* Crea la variable de sesion */
|
||||||
|
sesion.nombre = nombre;
|
||||||
|
sesion.email = email;
|
||||||
|
sesion.img = '/img/usuario.png';
|
||||||
|
sesion.carritoActual = '{}';
|
||||||
|
sesion.USER_ID = respuesta[0]["USER_ID"];
|
||||||
|
sesion.ROL = 'user';
|
||||||
|
|
||||||
|
sesion.save((err:any) => {
|
||||||
|
if (err)
|
||||||
|
console.log(`Error :c\n${err}`)
|
||||||
|
});
|
||||||
|
|
||||||
|
const datos = {
|
||||||
|
nombre,
|
||||||
|
email,
|
||||||
|
img: '/img/usuario.png',
|
||||||
|
carritoActual: '{}',
|
||||||
|
'USER_ID': respuesta[0]["USER_ID"],
|
||||||
|
ROL: 'user',
|
||||||
|
logged: true
|
||||||
|
};
|
||||||
|
resolve(`{ "existe": false, "creado": true, "data": ${JSON.stringify(datos)} }`);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
resolve(`{ "existe": true }`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
const registrar = (req:any, res:any) => {
|
||||||
|
res.header('Access-Control-Allow-Origin', 'http://localhost:8081');
|
||||||
|
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
||||||
|
res.header('Access-Control-Allow-Headers', 'Content-Type');
|
||||||
|
|
||||||
|
const sesion = req.session;
|
||||||
|
|
||||||
|
const nombre:string = req.body.nombre;
|
||||||
|
const email:string = req.body.email;
|
||||||
|
const pass:string = req.body.pass;
|
||||||
|
|
||||||
|
if (nombre && email && pass) {
|
||||||
|
exec(nombre, email, pass, sesion)
|
||||||
|
.then(respuesta => {
|
||||||
|
res.send(respuesta);
|
||||||
|
})
|
||||||
|
.catch(reason => console.log("Ups. Un error.\n" + reason));
|
||||||
|
} else {
|
||||||
|
res.send("Error, datos insuficientes.");
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports.registrar = registrar;
|
@ -1,38 +1,28 @@
|
|||||||
declare var require:any;
|
|
||||||
|
|
||||||
const express = require('express');
|
|
||||||
const app = express();
|
|
||||||
app.use(express.json());
|
|
||||||
app.use(express.urlencoded());
|
|
||||||
const port:number = 3000;
|
|
||||||
|
|
||||||
const validator = require('./google_validation.js').validator;
|
const validator = require('./google_validation.js').validator;
|
||||||
|
|
||||||
const crearUsuario = (con:any, data:object) => {
|
const crearUsuario = (con:any, data:object) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
con.query (`INSERT INTO usuarios (nombre, email, img, carritoActual, GOOGLE_ID)\
|
con.query (
|
||||||
VALUES ( '${(data as any)["nombreUsuario"]}', '${(data as any)["emailUsuario"]}',
|
`INSERT INTO usuarios (nombre, email, img, carritoActual, GOOGLE_ID, ROL)\
|
||||||
'${(data as any)["imagenUsuario"]}', '{}', '${(data as any)["googleID"]}')`,
|
VALUES ('${(data as any)["nombreUsuario"]}', '${(data as any)["emailUsuario"]}',
|
||||||
|
'${(data as any)["imagenUsuario"]}', '{}', '${(data as any)["googleID"]}', 'user')`,
|
||||||
(err:any, res:string) => {
|
(err:any, res:string) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
reject("Error al ejecutar query SQL (start.ts fila 18))...\n" + err);
|
reject("Error al ejecutar query SQL (revisarUsuarioG.ts fila 18))...\n" + err);
|
||||||
}
|
}
|
||||||
|
console.log("Resultado de añadir usuario a la BBDD (revisarUsuarioG.ts 22):\n" + res);
|
||||||
resolve("Exito.");
|
resolve("Exito.");
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const revisarUsuarioG = (usuario:object) => {
|
const revisarUsuarioG = (usuario:object, sesion:any) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const mysql = require('mysql');
|
const mysql = require('mysql');
|
||||||
|
const SQL_CONNECT_DATA = require('./VARIABLES').sqlConnectData;
|
||||||
|
|
||||||
const con = mysql.createConnection({
|
const con = mysql.createConnection(SQL_CONNECT_DATA);
|
||||||
host: '35.193.16.64',
|
|
||||||
user: 'Araozu',
|
|
||||||
password: 'xsakah4b',
|
|
||||||
database: 'Usuarios_DB'
|
|
||||||
});
|
|
||||||
|
|
||||||
con.connect( (err:any) => {
|
con.connect( (err:any) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -44,7 +34,7 @@ const revisarUsuarioG = (usuario:object) => {
|
|||||||
const imagenUsuario:string = (usuario as any)["picture"];
|
const imagenUsuario:string = (usuario as any)["picture"];
|
||||||
const googleID:number = (usuario as any)["sub"];
|
const googleID:number = (usuario as any)["sub"];
|
||||||
|
|
||||||
con.query (`SELECT nombre, email, img, carritoActual, USER_ID FROM usuarios WHERE GOOGLE_ID='${googleID}'`,
|
con.query (`SELECT nombre, email, img, carritoActual, USER_ID, ROL FROM usuarios WHERE GOOGLE_ID='${googleID}'`,
|
||||||
(err:any, response:any) => {
|
(err:any, response:any) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
reject("Error al ejecutar query SQL");
|
reject("Error al ejecutar query SQL");
|
||||||
@ -54,7 +44,7 @@ const revisarUsuarioG = (usuario:object) => {
|
|||||||
crearUsuario(con, {nombreUsuario, emailUsuario, imagenUsuario, googleID})
|
crearUsuario(con, {nombreUsuario, emailUsuario, imagenUsuario, googleID})
|
||||||
.then( () => {
|
.then( () => {
|
||||||
resolve(`{ "nombre": "${nombreUsuario}", "email": "${emailUsuario}", "img": "${imagenUsuario}",
|
resolve(`{ "nombre": "${nombreUsuario}", "email": "${emailUsuario}", "img": "${imagenUsuario}",
|
||||||
"carrito": {}`);
|
"carrito": {}, "rol": "user"}`);
|
||||||
})
|
})
|
||||||
.catch((msg:string) => {
|
.catch((msg:string) => {
|
||||||
reject("Error al crear el usuario...\n" + msg);
|
reject("Error al crear el usuario...\n" + msg);
|
||||||
@ -69,8 +59,8 @@ const revisarUsuarioG = (usuario:object) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
app.post('/log-inG',(req:any, res:any) => {
|
const revisarUsuario = (req:any, res:any) => {
|
||||||
res.header('Access-Control-Allow-Origin', 'http://localhost:8080');
|
res.header('Access-Control-Allow-Origin', 'http://localhost:8081');
|
||||||
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
||||||
res.header('Access-Control-Allow-Headers', 'Content-Type');
|
res.header('Access-Control-Allow-Headers', 'Content-Type');
|
||||||
|
|
||||||
@ -78,15 +68,13 @@ app.post('/log-inG',(req:any, res:any) => {
|
|||||||
|
|
||||||
validator(token)
|
validator(token)
|
||||||
.then( (usuario:object) => {
|
.then( (usuario:object) => {
|
||||||
revisarUsuarioG(usuario)
|
revisarUsuarioG(usuario, req.session)
|
||||||
.then(response => res.send(response.toString()))
|
.then(response => res.send(response.toString()))
|
||||||
.catch(err => res.send(err))
|
.catch(err => res.send(err))
|
||||||
|
|
||||||
})
|
})
|
||||||
.catch(console.error);
|
.catch(console.error);
|
||||||
|
|
||||||
});
|
};
|
||||||
|
|
||||||
app.listen(port, () => {
|
module.exports.revisarUsuarioG = revisarUsuario;
|
||||||
console.log(`Estoy escuchando el puerto ${port} we v:`);
|
|
||||||
});
|
|
34
Backend/usuarioLogueado.ts
Normal file
34
Backend/usuarioLogueado.ts
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
function revisarSesion(req:any, res:any) {
|
||||||
|
res.header('Access-Control-Allow-Origin', 'http://localhost:8081');
|
||||||
|
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
||||||
|
res.header('Access-Control-Allow-Headers', 'Content-Type');
|
||||||
|
|
||||||
|
const sesion = req.session;
|
||||||
|
|
||||||
|
const USER_ID = sesion.USER_ID;
|
||||||
|
if (USER_ID) {
|
||||||
|
console.log("Recorde el usuario :3");
|
||||||
|
|
||||||
|
const nombre = sesion.nombre;
|
||||||
|
const email = sesion.email;
|
||||||
|
const img = sesion.img;
|
||||||
|
const carritoActual = sesion.carritoActual;
|
||||||
|
const ROL = sesion.ROL;
|
||||||
|
|
||||||
|
const data = {
|
||||||
|
nombre,
|
||||||
|
email,
|
||||||
|
img,
|
||||||
|
carritoActual: JSON.parse(carritoActual),
|
||||||
|
ROL,
|
||||||
|
USER_ID,
|
||||||
|
logged: true
|
||||||
|
};
|
||||||
|
|
||||||
|
res.send(JSON.stringify(data));
|
||||||
|
} else {
|
||||||
|
res.send(`{ "logged": false }`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.revisarSesion = revisarSesion;
|
41
Backend/usuarios.ts
Normal file
41
Backend/usuarios.ts
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/* Metodo que obtiene los usuarios que existen. */
|
||||||
|
const obtenerUsuarios = () => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const con = require('mysql').createConnection({
|
||||||
|
host: '35.193.16.64',
|
||||||
|
user: 'Araozu',
|
||||||
|
password: 'xsakah4b',
|
||||||
|
database: 'Usuarios_DB'
|
||||||
|
});
|
||||||
|
|
||||||
|
con.connect( (err:any) => {
|
||||||
|
if (err) {
|
||||||
|
console.log("Error en usuarios.ts 13.\n" + err);
|
||||||
|
reject("Error :c");
|
||||||
|
}
|
||||||
|
|
||||||
|
con.query(
|
||||||
|
`SELECT USER_ID, GOOGLE_ID, nombre, ROL FROM usuarios WHERE ROL='user'`,
|
||||||
|
(err:any, response:any) => {
|
||||||
|
if (err) {
|
||||||
|
console.log("Error en usuarios.ts 21.\n" + err);
|
||||||
|
reject("Error :c");
|
||||||
|
}
|
||||||
|
resolve(response);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const procesar = (req:any, res:any) => {
|
||||||
|
res.header('Access-Control-Allow-Origin', 'http://localhost:8081');
|
||||||
|
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
||||||
|
res.header('Access-Control-Allow-Headers', 'Content-Type');
|
||||||
|
|
||||||
|
obtenerUsuarios()
|
||||||
|
.then((resultado:object) => res.send(JSON.stringify(resultado)))
|
||||||
|
.catch(reason => res.send(reason));
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports.usuarios = procesar;
|
25
app.ts
Normal file
25
app.ts
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
const expressr = require('express');
|
||||||
|
const apuri = expressr();
|
||||||
|
const session = require('express-session');
|
||||||
|
|
||||||
|
apuri.use(expressr.json());
|
||||||
|
apuri.use(expressr.urlencoded());
|
||||||
|
apuri.use(expressr.static('dist'));
|
||||||
|
apuri.use(session({
|
||||||
|
secret: 'azopotamadre we v:',
|
||||||
|
resave: false,
|
||||||
|
saveUninitialized: false
|
||||||
|
}));
|
||||||
|
|
||||||
|
/* PUERTO NECESARIO PARA DEPLOYAR EN GOOGLE CLOUD!!! */
|
||||||
|
const puerto = 8080;
|
||||||
|
|
||||||
|
apuri.post('/log-inG', require('./Backend/revisarUsuarioG.js').revisarUsuarioG);
|
||||||
|
apuri.post('/usuarios', require('./Backend/usuarios.js').usuarios);
|
||||||
|
apuri.post('/registro', require('./Backend/registrarUsuario.js').registrar);
|
||||||
|
apuri.post('/sesion', require('./Backend/usuarioLogueado').revisarSesion);
|
||||||
|
|
||||||
|
apuri.get('/');
|
||||||
|
|
||||||
|
|
||||||
|
apuri.listen(puerto, () => console.log(`Estoy escuchando el puerto ${puerto} we v:`));
|
6
app.yaml
Normal file
6
app.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
runtime: nodejs8
|
||||||
|
|
||||||
|
instance_class: F2
|
||||||
|
|
||||||
|
env_variables:
|
||||||
|
BUCKET_NAME: "example-gcs-bucket"
|
@ -2,4 +2,4 @@ module.exports = {
|
|||||||
presets: [
|
presets: [
|
||||||
'@vue/app'
|
'@vue/app'
|
||||||
]
|
]
|
||||||
}
|
};
|
||||||
|
260
package-lock.json
generated
260
package-lock.json
generated
@ -796,6 +796,80 @@
|
|||||||
"integrity": "sha512-yprFYuno9FtNsSHVlSWd+nRlmGoAbqbeCwOryP6sC/zoCjhpArcRMYp19EvpSUSizJAlsXEwJv+wcWS9XaXdMw==",
|
"integrity": "sha512-yprFYuno9FtNsSHVlSWd+nRlmGoAbqbeCwOryP6sC/zoCjhpArcRMYp19EvpSUSizJAlsXEwJv+wcWS9XaXdMw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@types/body-parser": {
|
||||||
|
"version": "1.17.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz",
|
||||||
|
"integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==",
|
||||||
|
"requires": {
|
||||||
|
"@types/connect": "3.4.32",
|
||||||
|
"@types/node": "10.12.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/connect": {
|
||||||
|
"version": "3.4.32",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz",
|
||||||
|
"integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==",
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "10.12.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/events": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "http://registry.npmjs.org/@types/events/-/events-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA=="
|
||||||
|
},
|
||||||
|
"@types/express": {
|
||||||
|
"version": "4.16.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.16.0.tgz",
|
||||||
|
"integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==",
|
||||||
|
"requires": {
|
||||||
|
"@types/body-parser": "1.17.0",
|
||||||
|
"@types/express-serve-static-core": "4.16.0",
|
||||||
|
"@types/serve-static": "1.13.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/express-serve-static-core": {
|
||||||
|
"version": "4.16.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz",
|
||||||
|
"integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==",
|
||||||
|
"requires": {
|
||||||
|
"@types/events": "1.2.0",
|
||||||
|
"@types/node": "10.12.1",
|
||||||
|
"@types/range-parser": "1.2.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/mime": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA=="
|
||||||
|
},
|
||||||
|
"@types/mysql": {
|
||||||
|
"version": "2.15.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.5.tgz",
|
||||||
|
"integrity": "sha512-4QAISTUGZbcFh7bqdndo08xRdES5OTU+JODy8VCZbe1yiXyGjqw1H83G43XjQ3IbC10wn9xlGd44A5RXJwNh0Q==",
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "10.12.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/node": {
|
||||||
|
"version": "10.12.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.1.tgz",
|
||||||
|
"integrity": "sha512-i1sl+WCX2OCHeUi9oi7PiCNUtYFrpWhpcx878vpeq/tlZTKzcFdHePlyFHVbWqeuKN0SRPl/9ZFDSTsfv9h7VQ=="
|
||||||
|
},
|
||||||
|
"@types/range-parser": {
|
||||||
|
"version": "1.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.2.tgz",
|
||||||
|
"integrity": "sha512-HtKGu+qG1NPvYe1z7ezLsyIaXYyi8SoAVqWDZgDQ8dLrsZvSzUNCwZyfX33uhWxL/SU0ZDQZ3nwZ0nimt507Kw=="
|
||||||
|
},
|
||||||
|
"@types/serve-static": {
|
||||||
|
"version": "1.13.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.2.tgz",
|
||||||
|
"integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==",
|
||||||
|
"requires": {
|
||||||
|
"@types/express-serve-static-core": "4.16.0",
|
||||||
|
"@types/mime": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@vue/babel-preset-app": {
|
"@vue/babel-preset-app": {
|
||||||
"version": "3.0.5",
|
"version": "3.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.0.5.tgz",
|
||||||
@ -1171,7 +1245,6 @@
|
|||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
||||||
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
|
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"mime-types": "2.1.20",
|
"mime-types": "2.1.20",
|
||||||
"negotiator": "0.6.1"
|
"negotiator": "0.6.1"
|
||||||
@ -1637,8 +1710,7 @@
|
|||||||
"array-flatten": {
|
"array-flatten": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
||||||
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
|
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"array-map": {
|
"array-map": {
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
@ -2070,7 +2142,6 @@
|
|||||||
"version": "1.18.2",
|
"version": "1.18.2",
|
||||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
|
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
|
||||||
"integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
|
"integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"bytes": "3.0.0",
|
"bytes": "3.0.0",
|
||||||
"content-type": "1.0.4",
|
"content-type": "1.0.4",
|
||||||
@ -2088,7 +2159,6 @@
|
|||||||
"version": "2.6.9",
|
"version": "2.6.9",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ms": "2.0.0"
|
"ms": "2.0.0"
|
||||||
}
|
}
|
||||||
@ -2096,14 +2166,12 @@
|
|||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"qs": {
|
"qs": {
|
||||||
"version": "6.5.1",
|
"version": "6.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
|
||||||
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
|
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2292,8 +2360,7 @@
|
|||||||
"bytes": {
|
"bytes": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
|
||||||
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
|
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"cacache": {
|
"cacache": {
|
||||||
"version": "10.0.4",
|
"version": "10.0.4",
|
||||||
@ -2956,14 +3023,12 @@
|
|||||||
"content-disposition": {
|
"content-disposition": {
|
||||||
"version": "0.5.2",
|
"version": "0.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
|
||||||
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
|
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"content-type": {
|
"content-type": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
|
||||||
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
|
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"convert-source-map": {
|
"convert-source-map": {
|
||||||
"version": "1.6.0",
|
"version": "1.6.0",
|
||||||
@ -2977,14 +3042,12 @@
|
|||||||
"cookie": {
|
"cookie": {
|
||||||
"version": "0.3.1",
|
"version": "0.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
|
||||||
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
|
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"cookie-signature": {
|
"cookie-signature": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
|
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"copy-concurrently": {
|
"copy-concurrently": {
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
@ -3081,6 +3144,11 @@
|
|||||||
"parse-json": "4.0.0"
|
"parse-json": "4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"crc": {
|
||||||
|
"version": "3.4.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz",
|
||||||
|
"integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms="
|
||||||
|
},
|
||||||
"create-ecdh": {
|
"create-ecdh": {
|
||||||
"version": "4.0.3",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
|
||||||
@ -3604,8 +3672,7 @@
|
|||||||
"depd": {
|
"depd": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
||||||
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
|
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"des.js": {
|
"des.js": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@ -3620,8 +3687,7 @@
|
|||||||
"destroy": {
|
"destroy": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
||||||
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
|
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"detect-node": {
|
"detect-node": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
@ -3788,8 +3854,7 @@
|
|||||||
"ee-first": {
|
"ee-first": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||||
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
|
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"ejs": {
|
"ejs": {
|
||||||
"version": "2.6.1",
|
"version": "2.6.1",
|
||||||
@ -3827,8 +3892,7 @@
|
|||||||
"encodeurl": {
|
"encodeurl": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||||
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
|
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"end-of-stream": {
|
"end-of-stream": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
@ -3923,8 +3987,7 @@
|
|||||||
"escape-html": {
|
"escape-html": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
||||||
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
|
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"escape-string-regexp": {
|
"escape-string-regexp": {
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
@ -3972,8 +4035,7 @@
|
|||||||
"etag": {
|
"etag": {
|
||||||
"version": "1.8.1",
|
"version": "1.8.1",
|
||||||
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
||||||
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
|
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"event-pubsub": {
|
"event-pubsub": {
|
||||||
"version": "4.3.0",
|
"version": "4.3.0",
|
||||||
@ -4049,7 +4111,6 @@
|
|||||||
"version": "4.16.3",
|
"version": "4.16.3",
|
||||||
"resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz",
|
"resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz",
|
||||||
"integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
|
"integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"accepts": "1.3.5",
|
"accepts": "1.3.5",
|
||||||
"array-flatten": "1.1.1",
|
"array-flatten": "1.1.1",
|
||||||
@ -4087,7 +4148,6 @@
|
|||||||
"version": "2.6.9",
|
"version": "2.6.9",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ms": "2.0.0"
|
"ms": "2.0.0"
|
||||||
}
|
}
|
||||||
@ -4095,20 +4155,48 @@
|
|||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"qs": {
|
"qs": {
|
||||||
"version": "6.5.1",
|
"version": "6.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
|
||||||
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
|
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.1.1",
|
"version": "5.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
|
||||||
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
|
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
|
||||||
"dev": true
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"express-session": {
|
||||||
|
"version": "1.15.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz",
|
||||||
|
"integrity": "sha512-r0nrHTCYtAMrFwZ0kBzZEXa1vtPVrw0dKvGSrKP4dahwBQ1BJpF2/y1Pp4sCD/0kvxV4zZeclyvfmw0B4RMJQA==",
|
||||||
|
"requires": {
|
||||||
|
"cookie": "0.3.1",
|
||||||
|
"cookie-signature": "1.0.6",
|
||||||
|
"crc": "3.4.4",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "1.1.2",
|
||||||
|
"on-headers": "1.0.1",
|
||||||
|
"parseurl": "1.3.2",
|
||||||
|
"uid-safe": "2.1.5",
|
||||||
|
"utils-merge": "1.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "2.6.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4566,7 +4654,6 @@
|
|||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
|
"resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
|
||||||
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
|
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"encodeurl": "1.0.2",
|
"encodeurl": "1.0.2",
|
||||||
@ -4581,7 +4668,6 @@
|
|||||||
"version": "2.6.9",
|
"version": "2.6.9",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ms": "2.0.0"
|
"ms": "2.0.0"
|
||||||
}
|
}
|
||||||
@ -4589,8 +4675,7 @@
|
|||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4699,8 +4784,7 @@
|
|||||||
"forwarded": {
|
"forwarded": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
||||||
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
|
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"fragment-cache": {
|
"fragment-cache": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
@ -4714,8 +4798,7 @@
|
|||||||
"fresh": {
|
"fresh": {
|
||||||
"version": "0.5.2",
|
"version": "0.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||||
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
|
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"friendly-errors-webpack-plugin": {
|
"friendly-errors-webpack-plugin": {
|
||||||
"version": "1.7.0",
|
"version": "1.7.0",
|
||||||
@ -5916,7 +5999,6 @@
|
|||||||
"version": "1.6.3",
|
"version": "1.6.3",
|
||||||
"resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
|
"resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
|
||||||
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
|
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"depd": "1.1.2",
|
"depd": "1.1.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@ -6288,8 +6370,7 @@
|
|||||||
"iconv-lite": {
|
"iconv-lite": {
|
||||||
"version": "0.4.19",
|
"version": "0.4.19",
|
||||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
||||||
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
|
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"icss-replace-symbols": {
|
"icss-replace-symbols": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
@ -6513,8 +6594,7 @@
|
|||||||
"ipaddr.js": {
|
"ipaddr.js": {
|
||||||
"version": "1.8.0",
|
"version": "1.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
|
||||||
"integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=",
|
"integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"is-absolute-url": {
|
"is-absolute-url": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
@ -7286,8 +7366,7 @@
|
|||||||
"media-typer": {
|
"media-typer": {
|
||||||
"version": "0.3.0",
|
"version": "0.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||||
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
|
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"mem": {
|
"mem": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
@ -7345,8 +7424,7 @@
|
|||||||
"merge-descriptors": {
|
"merge-descriptors": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
||||||
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
|
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"merge-source-map": {
|
"merge-source-map": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
@ -7374,8 +7452,7 @@
|
|||||||
"methods": {
|
"methods": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
||||||
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
|
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"micromatch": {
|
"micromatch": {
|
||||||
"version": "2.3.11",
|
"version": "2.3.11",
|
||||||
@ -7416,14 +7493,12 @@
|
|||||||
"mime-db": {
|
"mime-db": {
|
||||||
"version": "1.36.0",
|
"version": "1.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
|
||||||
"integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==",
|
"integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"mime-types": {
|
"mime-types": {
|
||||||
"version": "2.1.20",
|
"version": "2.1.20",
|
||||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
|
||||||
"integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
|
"integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"mime-db": "1.36.0"
|
"mime-db": "1.36.0"
|
||||||
}
|
}
|
||||||
@ -7669,8 +7744,7 @@
|
|||||||
"negotiator": {
|
"negotiator": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
||||||
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
|
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"neo-async": {
|
"neo-async": {
|
||||||
"version": "2.5.2",
|
"version": "2.5.2",
|
||||||
@ -8135,7 +8209,6 @@
|
|||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
||||||
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
|
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ee-first": "1.1.1"
|
"ee-first": "1.1.1"
|
||||||
}
|
}
|
||||||
@ -8143,8 +8216,7 @@
|
|||||||
"on-headers": {
|
"on-headers": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
|
||||||
"integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
|
"integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"once": {
|
"once": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
@ -8353,8 +8425,7 @@
|
|||||||
"parseurl": {
|
"parseurl": {
|
||||||
"version": "1.3.2",
|
"version": "1.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
|
||||||
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
|
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"pascalcase": {
|
"pascalcase": {
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
@ -8407,8 +8478,7 @@
|
|||||||
"path-to-regexp": {
|
"path-to-regexp": {
|
||||||
"version": "0.1.7",
|
"version": "0.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||||
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
|
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"path-type": {
|
"path-type": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
@ -9147,7 +9217,6 @@
|
|||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
|
||||||
"integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
|
"integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"forwarded": "0.1.2",
|
"forwarded": "0.1.2",
|
||||||
"ipaddr.js": "1.8.0"
|
"ipaddr.js": "1.8.0"
|
||||||
@ -9241,6 +9310,11 @@
|
|||||||
"integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==",
|
"integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"random-bytes": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
|
||||||
|
},
|
||||||
"randomatic": {
|
"randomatic": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
|
||||||
@ -9288,14 +9362,12 @@
|
|||||||
"range-parser": {
|
"range-parser": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
|
||||||
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
|
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"raw-body": {
|
"raw-body": {
|
||||||
"version": "2.3.2",
|
"version": "2.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
|
||||||
"integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
|
"integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"bytes": "3.0.0",
|
"bytes": "3.0.0",
|
||||||
"http-errors": "1.6.2",
|
"http-errors": "1.6.2",
|
||||||
@ -9306,14 +9378,12 @@
|
|||||||
"depd": {
|
"depd": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
|
||||||
"integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
|
"integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"http-errors": {
|
"http-errors": {
|
||||||
"version": "1.6.2",
|
"version": "1.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
|
||||||
"integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
|
"integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"depd": "1.1.1",
|
"depd": "1.1.1",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2.0.3",
|
||||||
@ -9324,8 +9394,7 @@
|
|||||||
"setprototypeof": {
|
"setprototypeof": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
|
||||||
"integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
|
"integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -10339,7 +10408,6 @@
|
|||||||
"version": "0.16.2",
|
"version": "0.16.2",
|
||||||
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
|
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
|
||||||
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
|
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"depd": "1.1.2",
|
"depd": "1.1.2",
|
||||||
@ -10360,7 +10428,6 @@
|
|||||||
"version": "2.6.9",
|
"version": "2.6.9",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ms": "2.0.0"
|
"ms": "2.0.0"
|
||||||
}
|
}
|
||||||
@ -10368,14 +10435,12 @@
|
|||||||
"mime": {
|
"mime": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
|
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -10421,7 +10486,6 @@
|
|||||||
"version": "1.13.2",
|
"version": "1.13.2",
|
||||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
|
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
|
||||||
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
|
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"encodeurl": "1.0.2",
|
"encodeurl": "1.0.2",
|
||||||
"escape-html": "1.0.3",
|
"escape-html": "1.0.3",
|
||||||
@ -10467,8 +10531,7 @@
|
|||||||
"setprototypeof": {
|
"setprototypeof": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
|
||||||
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
|
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"sha.js": {
|
"sha.js": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.11",
|
||||||
@ -10936,8 +10999,7 @@
|
|||||||
"statuses": {
|
"statuses": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
||||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
|
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"stdout-stream": {
|
"stdout-stream": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
@ -11345,7 +11407,6 @@
|
|||||||
"version": "1.6.16",
|
"version": "1.6.16",
|
||||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
|
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
|
||||||
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
|
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"media-typer": "0.3.0",
|
"media-typer": "0.3.0",
|
||||||
"mime-types": "2.1.20"
|
"mime-types": "2.1.20"
|
||||||
@ -11415,6 +11476,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"uid-safe": {
|
||||||
|
"version": "2.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
|
||||||
|
"integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
|
||||||
|
"requires": {
|
||||||
|
"random-bytes": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"unicode-canonical-property-names-ecmascript": {
|
"unicode-canonical-property-names-ecmascript": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
|
||||||
@ -11517,8 +11586,7 @@
|
|||||||
"unpipe": {
|
"unpipe": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||||
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
|
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"unquote": {
|
"unquote": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
@ -11714,8 +11782,7 @@
|
|||||||
"utils-merge": {
|
"utils-merge": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
||||||
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
|
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"uuid": {
|
"uuid": {
|
||||||
"version": "3.3.2",
|
"version": "3.3.2",
|
||||||
@ -11736,8 +11803,7 @@
|
|||||||
"vary": {
|
"vary": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||||
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
|
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"vendors": {
|
"vendors": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
|
11
package.json
11
package.json
@ -3,11 +3,16 @@
|
|||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"backend": "node Backend/start.js",
|
"serve": "vue-cli-service serve --port 8081",
|
||||||
"serve": "vue-cli-service serve",
|
"build": "vue-cli-service build",
|
||||||
"build": "vue-cli-service build"
|
"start": "node app.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@types/express": "^4.16.0",
|
||||||
|
"@types/mysql": "^2.15.5",
|
||||||
|
"@types/node": "^10.12.1",
|
||||||
|
"express": "^4.16.3",
|
||||||
|
"express-session": "^1.15.6",
|
||||||
"google-auth-library": "^2.0.0",
|
"google-auth-library": "^2.0.0",
|
||||||
"mysql": "^2.16.0",
|
"mysql": "^2.16.0",
|
||||||
"vue": "^2.5.17",
|
"vue": "^2.5.17",
|
||||||
|
BIN
public/img/usuario.png
Normal file
BIN
public/img/usuario.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.5 KiB |
19
src/App.vue
19
src/App.vue
@ -5,6 +5,25 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import conexion from './variables'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'App',
|
||||||
|
// Revisa si existe una variable de sesion con el usuario
|
||||||
|
created: function () {
|
||||||
|
const xhr = new XMLHttpRequest();
|
||||||
|
xhr.open("POST",`${conexion}/sesion`);
|
||||||
|
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
|
||||||
|
xhr.onload = () => {
|
||||||
|
const data = JSON.parse(xhr.responseText);
|
||||||
|
if (data["logged"]) {
|
||||||
|
window.usuarioActual.pop();
|
||||||
|
window.usuarioActual.push(data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
xhr.send();
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
15
src/components/Admin/Empleados.vue
Normal file
15
src/components/Admin/Empleados.vue
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
Mirame we, soy un empleado :3
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "Empleados"
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
53
src/components/Admin/Usuarios.vue
Normal file
53
src/components/Admin/Usuarios.vue
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<template>
|
||||||
|
<div class="usuarios">
|
||||||
|
<div class="usuarios--titulos">
|
||||||
|
Usuarios <br>
|
||||||
|
</div>
|
||||||
|
<usuario v-for="user in usuarios" :key="user['USER_ID']"
|
||||||
|
:nombre="user['nombre']"
|
||||||
|
:rol="user['ROL']"
|
||||||
|
:googleId="user['GOOGLE_ID']"
|
||||||
|
:userId="user['USER_ID']"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// const conexion = require('../../variables').conexion;
|
||||||
|
import conexion from '../../variables';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Usuarios",
|
||||||
|
components: {
|
||||||
|
'usuario': () => import('./Usuarios/Usuario')
|
||||||
|
},
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
usuarios: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created: function () {
|
||||||
|
let vm = this;
|
||||||
|
|
||||||
|
let xhr = new XMLHttpRequest();
|
||||||
|
xhr.onload = () => {
|
||||||
|
console.log("Ya cargué we v':\n" + xhr.responseText);
|
||||||
|
vm.usuarios = JSON.parse(xhr.responseText);
|
||||||
|
};
|
||||||
|
|
||||||
|
xhr.open("POST",`${conexion}/usuarios`);
|
||||||
|
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
||||||
|
xhr.send();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
.usuarios
|
||||||
|
margin: 20px 0
|
||||||
|
|
||||||
|
.usuarios--titulos
|
||||||
|
text-align: center
|
||||||
|
font:
|
||||||
|
size: x-large
|
||||||
|
</style>
|
27
src/components/Admin/Usuarios/Usuario.vue
Normal file
27
src/components/Admin/Usuarios/Usuario.vue
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<template>
|
||||||
|
<div class="usuario hoverable">
|
||||||
|
Nombre: {{ nombre }}<br>
|
||||||
|
rol: {{ rol }}<br>
|
||||||
|
ID de Google: {{ googleId }}<br>
|
||||||
|
ID de usuario: {{ (99999999999 - userId).toString(16).toUpperCase() }} ({{ userId }})
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "Usuario",
|
||||||
|
props: {
|
||||||
|
nombre: String,
|
||||||
|
rol: String,
|
||||||
|
googleId: String,
|
||||||
|
userId: Number
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
.usuario
|
||||||
|
margin: 10px
|
||||||
|
padding: 10px
|
||||||
|
border-radius: 3px
|
||||||
|
</style>
|
@ -20,7 +20,8 @@
|
|||||||
<br/>
|
<br/>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="inicio--usuario-registrado">
|
<div v-else class="inicio--usuario-registrado">
|
||||||
Bienvenido, {{ nombreDeUsuario }}
|
Bienvenido, {{ nombreDeUsuario }}<br/>
|
||||||
|
<router-link v-if="esAdmin" to="/a/" class="inicio--usuario-registrado--link">Ir a la zona administrativa.</router-link>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
</div>
|
</div>
|
||||||
@ -30,16 +31,27 @@
|
|||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'HeaderMin',
|
name: 'HeaderMin',
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
usuario: window.usuarioActual
|
||||||
|
}
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
musuarioNoLogeado: function () {
|
musuarioNoLogeado: function () {
|
||||||
return !window.usuarioActual[0].logged;
|
return !this.usuario[0].logged;
|
||||||
},
|
},
|
||||||
nombreDeUsuario: function () {
|
nombreDeUsuario: function () {
|
||||||
return window.usuarioActual[0].nombre;
|
return this.usuario[0].nombre;
|
||||||
|
},
|
||||||
|
esAdmin: function () {
|
||||||
|
return this.usuario[0].ROL === "admin"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style scoped lang="sass">
|
||||||
|
.inicio--usuario-registrado--link
|
||||||
|
color: white
|
||||||
|
text-decoration: underline
|
||||||
</style>
|
</style>
|
@ -3,8 +3,10 @@
|
|||||||
<ul class="linksNavBar">
|
<ul class="linksNavBar">
|
||||||
<li><router-link to="/">Inicio</router-link></li>
|
<li><router-link to="/">Inicio</router-link></li>
|
||||||
<li><router-link to="/platos/">Platos</router-link></li>
|
<li><router-link to="/platos/">Platos</router-link></li>
|
||||||
|
<li>|</li>
|
||||||
<li><router-link to="/mi-cuenta/">Mi cuenta</router-link></li>
|
<li><router-link to="/mi-cuenta/">Mi cuenta</router-link></li>
|
||||||
<li><router-link to="/carrito/">Carrito</router-link></li>
|
<li><router-link to="/carrito/">Mi carrito</router-link></li>
|
||||||
|
<li><router-link to="/mi-pedido/">Mis pedidos</router-link></li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
</template>
|
</template>
|
||||||
|
@ -35,6 +35,20 @@ export default new Router({
|
|||||||
path: '/mi-cuenta/',
|
path: '/mi-cuenta/',
|
||||||
name: 'MiCuenta',
|
name: 'MiCuenta',
|
||||||
component: () => import('./views/MiCuenta')
|
component: () => import('./views/MiCuenta')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/mi-pedido/',
|
||||||
|
name: 'MiPedido',
|
||||||
|
component: () => import('./views/MiPedido')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/a/',
|
||||||
|
name: 'Administracion',
|
||||||
|
component: () => import('./views/Administracion/Inicio'),
|
||||||
|
children: [
|
||||||
|
{ path: 'usuarios', component: () => import('./components/Admin/Usuarios') },
|
||||||
|
{ path: 'empleados', component: () => import('./components/Admin/Empleados') }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
8
src/variables.ts
Normal file
8
src/variables.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
const conexion_backend = "http://localhost:8080";
|
||||||
|
const conexion_gcloud = "";
|
||||||
|
|
||||||
|
/* De este estilo porque por alguna razon a babel no le agrado module.exports en este archivo. */
|
||||||
|
export default conexion_backend;
|
||||||
|
|
||||||
|
|
||||||
|
// module.exports.conexion = conexion_backend;
|
@ -1,13 +1,64 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div style="background-color: #f5f5f5">
|
||||||
|
<header-mini />
|
||||||
|
<div class="container caja inicio">
|
||||||
|
<div class="inicio--titulo">
|
||||||
|
Administración de recursos
|
||||||
|
</div>
|
||||||
|
<div class="inicio--desc">
|
||||||
|
Selecciona un campo para empezar: <br>
|
||||||
|
<router-link to="/a/usuarios" class="inicio--desc--boton hoverable">Usuarios</router-link>
|
||||||
|
<router-link to="/a/empleados" class="inicio--desc--boton hoverable">Empleados</router-link>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<router-view />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import Header from '../../components/headerMini'
|
||||||
|
import Usuarios from '../../components/Admin/Usuarios'
|
||||||
|
import Empleados from '../../components/Admin/Empleados'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Inicio"
|
name: "Inicio",
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
componenteAct: 'header-mini'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
'header-mini': Header,
|
||||||
|
'usuarios-comp': Usuarios,
|
||||||
|
'empleados-comp': Empleados
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="sass">
|
<style scoped lang="sass">
|
||||||
|
.inicio
|
||||||
|
background-color: white
|
||||||
|
|
||||||
|
.inicio--titulo
|
||||||
|
text-align: center
|
||||||
|
font:
|
||||||
|
family: Muli, "Open Sans", sans-serif
|
||||||
|
weight: bold
|
||||||
|
size: x-large
|
||||||
|
|
||||||
|
.inicio--desc
|
||||||
|
text-align: center
|
||||||
|
font:
|
||||||
|
family: Muli, "Open Sans", sans-serif
|
||||||
|
size: large
|
||||||
|
|
||||||
|
.inicio--desc--boton
|
||||||
|
display: inline-block
|
||||||
|
margin: 10px 20px
|
||||||
|
background-color: #4444aa
|
||||||
|
color: white
|
||||||
|
padding: 10px
|
||||||
|
border-radius: 3px
|
||||||
|
|
||||||
</style>
|
</style>
|
@ -22,9 +22,11 @@
|
|||||||
Inicia sesión con tu email: <br>
|
Inicia sesión con tu email: <br>
|
||||||
<br>
|
<br>
|
||||||
<div class="center">
|
<div class="center">
|
||||||
<form name="form-inicio-sesion" class="login--form" v-on:submit.prevent="iniciarSesion('form-inicio-sesion')">
|
<form name="form-inicio-sesion" class="login--form"
|
||||||
|
v-on:submit.prevent="iniciarSesion('form-inicio-sesion')">
|
||||||
<label class="login--form--label">Email:</label>
|
<label class="login--form--label">Email:</label>
|
||||||
<input class="login--form--input" type="email" placeholder="Tu email" name="email" required><br>
|
<input class="login--form--input" type="email" placeholder="Tu email" name="email"
|
||||||
|
required><br>
|
||||||
<br>
|
<br>
|
||||||
<label class="login--form--label">Contraseña</label>
|
<label class="login--form--label">Contraseña</label>
|
||||||
<input class="login--form--input" type="password" placeholder="Contraseña" required><br>
|
<input class="login--form--input" type="password" placeholder="Contraseña" required><br>
|
||||||
@ -39,15 +41,19 @@
|
|||||||
Regístrate con tu email: <br>
|
Regístrate con tu email: <br>
|
||||||
<br>
|
<br>
|
||||||
<div class="center">
|
<div class="center">
|
||||||
<form name="form-registro" action="" class="login--form" v-on:submit.prevent="registrar('form-registro')">
|
<form name="form-registro" class="login--form"
|
||||||
|
v-on:submit.prevent="registrar('form-registro')">
|
||||||
<label class="login--form--label">Nombre</label>
|
<label class="login--form--label">Nombre</label>
|
||||||
<input class="login--form--input" type="text" placeholder="Tu nombre" name="nombre" required><br>
|
<input class="login--form--input" type="text" placeholder="Tu nombre" name="nombre"
|
||||||
|
required><br>
|
||||||
<br>
|
<br>
|
||||||
<label class="login--form--label">Email:</label>
|
<label class="login--form--label">Email:</label>
|
||||||
<input class="login--form--input" type="email" placeholder="Tu email" name="email" required><br>
|
<input class="login--form--input" type="email" placeholder="Tu email" name="email"
|
||||||
|
required><br>
|
||||||
<br>
|
<br>
|
||||||
<label class="login--form--label">Contraseña</label>
|
<label class="login--form--label">Contraseña</label>
|
||||||
<input class="login--form--input" type="password" placeholder="Contraseña" name="pass" required><br>
|
<input class="login--form--input" type="password" placeholder="Contraseña" name="pass"
|
||||||
|
required><br>
|
||||||
<br>
|
<br>
|
||||||
<button class="btn waves-effect waves-light" type="submit" name="action">Regístrame
|
<button class="btn waves-effect waves-light" type="submit" name="action">Regístrame
|
||||||
</button>
|
</button>
|
||||||
@ -57,7 +63,58 @@
|
|||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="pantalla-carga" pantalla-activa="false">
|
||||||
|
Trabajando... <br>
|
||||||
|
<div class="preloader-wrapper active center" id="esfera-carga">
|
||||||
|
<div class="spinner-layer spinner-blue">
|
||||||
|
<div class="circle-clipper left">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
<div class="gap-patch">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
<div class="circle-clipper right">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spinner-layer spinner-red">
|
||||||
|
<div class="circle-clipper left">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
<div class="gap-patch">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
<div class="circle-clipper right">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spinner-layer spinner-yellow">
|
||||||
|
<div class="circle-clipper left">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
<div class="gap-patch">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
<div class="circle-clipper right">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spinner-layer spinner-green">
|
||||||
|
<div class="circle-clipper left">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
<div class="gap-patch">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
<div class="circle-clipper right">
|
||||||
|
<div class="circle"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<br>
|
<br>
|
||||||
</header>
|
</header>
|
||||||
</div>
|
</div>
|
||||||
@ -66,30 +123,43 @@
|
|||||||
<script>
|
<script>
|
||||||
import MiFooter from '@/components/mi-footer.vue'
|
import MiFooter from '@/components/mi-footer.vue'
|
||||||
|
|
||||||
|
/* Cambiado porque a Babel no le gusto es sistema con module.exports/require */
|
||||||
|
// const conex_backend = require('../variables.js').conexion;
|
||||||
|
import conex_backend from '../variables';
|
||||||
|
|
||||||
const procesarUsuario = data => {
|
const procesarUsuario = data => {
|
||||||
|
try {
|
||||||
const obj = JSON.parse(data);
|
const obj = JSON.parse(data);
|
||||||
obj["logged"] = true;
|
obj["logged"] = true;
|
||||||
console.log(JSON.stringify(obj));
|
console.log(JSON.stringify(obj));
|
||||||
window.usuarioActual.pop();
|
window.usuarioActual.pop();
|
||||||
window.usuarioActual.push(obj);
|
window.usuarioActual.push(obj);
|
||||||
window.elRouter.push('/platos/');
|
window.elRouter.push('/platos/');
|
||||||
|
} catch (e) {
|
||||||
|
cambiarPantallaCarga();
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function onSuccess(googleUser) {
|
function onSuccess(googleUser) {
|
||||||
|
cambiarPantallaCarga();
|
||||||
let id_token = googleUser.getAuthResponse().id_token;
|
let id_token = googleUser.getAuthResponse().id_token;
|
||||||
|
|
||||||
let xhr = new XMLHttpRequest();
|
let xhr = new XMLHttpRequest();
|
||||||
xhr.open('POST', 'http://localhost:3000/log-inG');
|
console.log(`Conexion backend es ${conex_backend}`);
|
||||||
|
xhr.open('POST', `${conex_backend}/log-inG`);
|
||||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||||
xhr.onload = function() {
|
xhr.onload = function () {
|
||||||
console.log('Sesión iniciada. Servidor:\n' + xhr.responseText);
|
console.log('Sesión iniciada. Servidor:\n' + xhr.responseText);
|
||||||
procesarUsuario(xhr.responseText);
|
procesarUsuario(xhr.responseText);
|
||||||
};
|
};
|
||||||
xhr.send('idtoken=' + id_token);
|
xhr.send('idtoken=' + id_token);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onFailure(error) {
|
function onFailure(error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderButton() {
|
function renderButton() {
|
||||||
gapi.signin2.render('my-signin2', {
|
gapi.signin2.render('my-signin2', {
|
||||||
'scope': 'profile email',
|
'scope': 'profile email',
|
||||||
@ -102,6 +172,46 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const crearUsuario = data =>
|
||||||
|
new Promise((resolve, reject) => {
|
||||||
|
let xhr = new XMLHttpRequest();
|
||||||
|
|
||||||
|
xhr.open("POST", `${conex_backend}/registro`);
|
||||||
|
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||||
|
xhr.onload = () => {
|
||||||
|
const resultado = JSON.parse(xhr.responseText);
|
||||||
|
|
||||||
|
if (!resultado["existe"] && resultado["creado"]) {
|
||||||
|
resolve(JSON.stringify(resultado["data"]));
|
||||||
|
} else {
|
||||||
|
reject();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
xhr.send(`nombre=${data['nombreUsuario']}&email=${data['emailUsuario']}&pass=${data['passUsuario']}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
const cambiarPantallaCarga = () => {
|
||||||
|
const elem = document.getElementById("pantalla-carga");
|
||||||
|
const pantallaActiva = elem.getAttribute("pantalla-activa") === "true";
|
||||||
|
|
||||||
|
// La pantalla de carga es visible y hay que ocultarla
|
||||||
|
if (pantallaActiva) {
|
||||||
|
elem.setAttribute("pantalla-activa", "false");
|
||||||
|
elem.style.opacity = "0";
|
||||||
|
setTimeout(() => {
|
||||||
|
elem.style.display = "none";
|
||||||
|
}, 250);
|
||||||
|
} else {
|
||||||
|
// Aqui activamos la pantalla
|
||||||
|
elem.setAttribute("pantalla-activa", "true");
|
||||||
|
elem.style.display = "inline-table";
|
||||||
|
setTimeout(() => {
|
||||||
|
elem.style.opacity = "0.7";
|
||||||
|
}, 10);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Inserta el script para el inicio de sesion de gugel */
|
||||||
(() => {
|
(() => {
|
||||||
let scr = document.createElement("script");
|
let scr = document.createElement("script");
|
||||||
scr.src = "https://apis.google.com/js/platform.js";
|
scr.src = "https://apis.google.com/js/platform.js";
|
||||||
@ -117,18 +227,22 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
registrar: function (nombre) {
|
registrar: function (nombre) {
|
||||||
|
cambiarPantallaCarga();
|
||||||
|
|
||||||
const nombreUsuario = document.forms[nombre]['nombre'].value;
|
const nombreUsuario = document.forms[nombre]['nombre'].value;
|
||||||
const emailUsuario = document.forms[nombre]['email'].value;
|
const emailUsuario = document.forms[nombre]['email'].value;
|
||||||
/* const passUsuario = document.forms[nombre]['pass'].value */
|
const passUsuario = document.forms[nombre]['pass'].value;
|
||||||
window.usuarioActual[0].nombre = nombreUsuario;
|
|
||||||
window.usuarioActual[0].email = emailUsuario;
|
crearUsuario({nombreUsuario, emailUsuario, passUsuario})
|
||||||
window.usuarioActual[0].logged = true;
|
.then(respuesta => procesarUsuario(respuesta))
|
||||||
|
.catch(() => {
|
||||||
|
alert("Ya existe un usuario con este email");
|
||||||
|
});
|
||||||
|
|
||||||
window.elRouter.push("/");
|
|
||||||
},
|
},
|
||||||
iniciarSesion: function (nombre) {
|
iniciarSesion: function (nombre) {
|
||||||
const emailUsuario = document.forms[nombre]['email'].value;
|
const emailUsuario = document.forms[nombre]['email'].value;
|
||||||
const nombreUsuario = emailUsuario.substring(0,emailUsuario.search("@"));
|
const nombreUsuario = emailUsuario.substring(0, emailUsuario.search("@"));
|
||||||
|
|
||||||
window.usuarioActual[0].nombre = nombreUsuario;
|
window.usuarioActual[0].nombre = nombreUsuario;
|
||||||
window.usuarioActual[0].email = emailUsuario;
|
window.usuarioActual[0].email = emailUsuario;
|
||||||
@ -142,43 +256,70 @@
|
|||||||
|
|
||||||
<style scoped lang="sass">
|
<style scoped lang="sass">
|
||||||
|
|
||||||
#my-signin2
|
#my-signin2
|
||||||
display: inline-block
|
display: inline-block
|
||||||
|
|
||||||
|
#bordeIzq
|
||||||
#bordeIzq
|
|
||||||
border-left: solid 1px white
|
border-left: solid 1px white
|
||||||
|
|
||||||
.login
|
.login
|
||||||
color: white
|
color: white
|
||||||
|
|
||||||
.login--google
|
.login--google
|
||||||
text-align: center
|
text-align: center
|
||||||
color: white
|
color: white
|
||||||
|
|
||||||
.login--boton
|
.login--boton
|
||||||
border: none
|
border: none
|
||||||
padding: 10px 50px
|
padding: 10px 50px
|
||||||
cursor: pointer
|
cursor: pointer
|
||||||
border-radius: 3px
|
border-radius: 3px
|
||||||
|
|
||||||
.login--botonGoogle
|
.login--botonGoogle
|
||||||
background-color: white
|
background-color: white
|
||||||
|
|
||||||
.login--botonFacebook
|
.login--botonFacebook
|
||||||
background-color: #3b5998
|
background-color: #3b5998
|
||||||
color: white
|
color: white
|
||||||
|
|
||||||
.login--form
|
.login--form
|
||||||
width: 80%
|
width: 80%
|
||||||
display: inline-block
|
display: inline-block
|
||||||
|
|
||||||
.login--form--input
|
.login--form--input
|
||||||
color: white
|
color: white
|
||||||
font-size: large !important
|
font-size: large !important
|
||||||
text-shadow: 1px 1px 2px black
|
text-shadow: 1px 1px 2px black
|
||||||
|
|
||||||
.login--form--label
|
.login--form--label
|
||||||
color: white
|
color: white
|
||||||
|
|
||||||
|
#pantalla-carga
|
||||||
|
background-color: black
|
||||||
|
opacity: 0
|
||||||
|
z-index: 2
|
||||||
|
position: fixed
|
||||||
|
top: 0
|
||||||
|
width: 100%
|
||||||
|
height: 100%
|
||||||
|
transition: opacity 250ms
|
||||||
|
display: none
|
||||||
|
text-align: center
|
||||||
|
padding-top: 20%
|
||||||
|
color: white
|
||||||
|
|
||||||
|
#esfera-carga
|
||||||
|
text-align: center
|
||||||
|
width: 100px
|
||||||
|
height: 100px
|
||||||
|
|
||||||
|
@media only screen and (max-width: 800px)
|
||||||
|
#pantalla-carga
|
||||||
|
padding-top: 40%
|
||||||
|
|
||||||
|
@media only screen and (max-width: 450px)
|
||||||
|
#pantalla-carga
|
||||||
|
padding-top: 70%
|
||||||
|
|
||||||
|
.lol
|
||||||
</style>
|
</style>
|
77
src/views/MiPedido.vue
Normal file
77
src/views/MiPedido.vue
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<header-mini />
|
||||||
|
<login-bar v-if="usuarioNoLogeado" />
|
||||||
|
<nav-bar />
|
||||||
|
|
||||||
|
<div class="container fondoBlanco pedidos">
|
||||||
|
<h2 class="pedidos__titulo">Mis pedidos</h2>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<div v-if="usuarioNoLogeado" class="pedidos__usuario-no-logeado">
|
||||||
|
¡Ups! Parece que no iniciaste sesión.<br>
|
||||||
|
Inicia sesión y controla fácilmente tus pedidos y entregas a domicilio. <br>
|
||||||
|
<br>
|
||||||
|
<div id="contenedorInicio-Registro" class="center mySeccion" data-collapsed="false">
|
||||||
|
<router-link to="/iniciar-sesion/" id="botonRegistro" class="boton">
|
||||||
|
Registrarse
|
||||||
|
</router-link>
|
||||||
|
<router-link to="/iniciar-sesion/" id="botonInicioSesion" class="boton">
|
||||||
|
Iniciar Sesion
|
||||||
|
</router-link>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
We v:
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<mi-footer />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import HeaderMini from '../components/headerMini'
|
||||||
|
import NavBar from '../components/navBar'
|
||||||
|
import LoginBar from '../components/navBarInicioSesion'
|
||||||
|
import MiFooter from '../components/mi-footer'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "MiPedido",
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
usuario: window.usuarioActual[0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
'header-mini': HeaderMini,
|
||||||
|
'nav-bar': NavBar,
|
||||||
|
'login-bar': LoginBar,
|
||||||
|
'mi-footer': MiFooter
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
usuarioNoLogeado: function () {
|
||||||
|
return !this.usuario.logged;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
.pedidos__titulo
|
||||||
|
text-align: center
|
||||||
|
font:
|
||||||
|
size: xx-large
|
||||||
|
weight: bold
|
||||||
|
family: Muli, "Open Sans", sans-serif
|
||||||
|
margin: 10px 0
|
||||||
|
|
||||||
|
.pedidos__usuario-no-logeado
|
||||||
|
font-size: x-large
|
||||||
|
text-align: center
|
||||||
|
|
||||||
|
.pedidos
|
||||||
|
</style>
|
@ -4,7 +4,7 @@
|
|||||||
<nav-bar-inicio-sesion />
|
<nav-bar-inicio-sesion />
|
||||||
<nav-bar />
|
<nav-bar />
|
||||||
|
|
||||||
<section id="sectionCarrito" class="container mySeccion">
|
<section id="sectionCarrito" class="container mySeccion fondoBlanco">
|
||||||
<div class="center">
|
<div class="center">
|
||||||
<div id="carrito--tituloprincipal">
|
<div id="carrito--tituloprincipal">
|
||||||
Carrito de compras
|
Carrito de compras
|
||||||
|
Loading…
Reference in New Issue
Block a user