├── .babelrc ├── .editorconfig ├── .eslintrc.js ├── .gitignore ├── .idea ├── copyright │ └── profiles_settings.xml ├── jsLibraryMappings.xml ├── libraries │ └── my_proyect_node_modules.xml ├── modules.xml ├── my-proyect.iml ├── vcs.xml └── workspace.xml ├── README.md ├── build ├── build.js ├── dev-client.js ├── dev-server.js ├── utils.js ├── webpack.base.conf.js ├── webpack.dev.conf.js └── webpack.prod.conf.js ├── config ├── dev.env.js ├── index.js ├── prod.env.js └── test.env.js ├── images ├── create_puzzle.png ├── game.png ├── invite.png ├── invites.png ├── puzzles.png ├── user_account.png └── visor.png ├── index.html ├── package-lock.json ├── package.json ├── server ├── app │ └── index.js ├── config.js ├── controllers │ ├── board.server.controller.js │ ├── chat.server.controller.js │ ├── index.js │ ├── index.sublime-workspace │ ├── puzzle.server.controller.js │ ├── user.server.controller.js │ └── utils │ │ └── forkContDown.js ├── install.txt ├── models │ ├── board.server.model.js │ ├── conver.server.model.js │ ├── index.js │ ├── puzzle.server.model.js │ └── user.server.model.js ├── package-lock.json ├── package.json ├── public │ ├── build │ │ └── charts │ │ │ ├── 44 │ │ │ ├── css │ │ │ │ ├── core │ │ │ │ │ └── tooltip.css │ │ │ │ └── util │ │ │ │ │ └── util.css │ │ │ └── js │ │ │ │ ├── jsapi_compiled_corechart_module.js │ │ │ │ ├── jsapi_compiled_default_module.js │ │ │ │ ├── jsapi_compiled_format_module.js │ │ │ │ └── jsapi_compiled_ui_module.js │ │ │ ├── loader.js │ │ │ └── util.css │ ├── static │ │ ├── base.css │ │ ├── css │ │ │ ├── animate.min.css │ │ │ ├── app.bd3eb14d8948f45829bb55d3fee9116d.css │ │ │ ├── app.bd3eb14d8948f45829bb55d3fee9116d.css.map │ │ │ ├── google-icons │ │ │ │ ├── 2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2 │ │ │ │ └── icon.css │ │ │ ├── materialize.min.css │ │ │ ├── myStyles.css │ │ │ ├── vendor.221d34fa0e602f6403b1c89ec77ea455.css │ │ │ └── vendor.221d34fa0e602f6403b1c89ec77ea455.css.map │ │ ├── desktop.css │ │ ├── font │ │ │ ├── material-design-icons │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── Material-Design-Icons.eot │ │ │ │ ├── Material-Design-Icons.svg │ │ │ │ ├── Material-Design-Icons.ttf │ │ │ │ ├── Material-Design-Icons.woff │ │ │ │ └── Material-Design-Icons.woff2 │ │ │ └── roboto │ │ │ │ ├── Roboto-Bold.eot │ │ │ │ ├── Roboto-Bold.ttf │ │ │ │ ├── Roboto-Bold.woff │ │ │ │ ├── Roboto-Bold.woff2 │ │ │ │ ├── Roboto-Light.eot │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ ├── Roboto-Light.woff │ │ │ │ ├── Roboto-Light.woff2 │ │ │ │ ├── Roboto-Medium.eot │ │ │ │ ├── Roboto-Medium.ttf │ │ │ │ ├── Roboto-Medium.woff │ │ │ │ ├── Roboto-Medium.woff2 │ │ │ │ ├── Roboto-Regular.eot │ │ │ │ ├── Roboto-Regular.ttf │ │ │ │ ├── Roboto-Regular.woff │ │ │ │ ├── Roboto-Regular.woff2 │ │ │ │ ├── Roboto-Thin.eot │ │ │ │ ├── Roboto-Thin.ttf │ │ │ │ ├── Roboto-Thin.woff │ │ │ │ └── Roboto-Thin.woff2 │ │ ├── fonts │ │ │ ├── 2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.def4c58.woff2 │ │ │ ├── Material-Design-Icons.2f19889.eot │ │ │ ├── Material-Design-Icons.3892a10.woff2 │ │ │ ├── Material-Design-Icons.4c874dc.woff │ │ │ ├── Material-Design-Icons.7f61c99.ttf │ │ │ ├── Roboto-Bold.39b2c30.woff2 │ │ │ ├── Roboto-Bold.dc81817.woff │ │ │ ├── Roboto-Bold.e31fcf1.ttf │ │ │ ├── Roboto-Bold.ecdd509.eot │ │ │ ├── Roboto-Light.3b813c2.woff │ │ │ ├── Roboto-Light.46e48ce.ttf │ │ │ ├── Roboto-Light.69f8a06.woff2 │ │ │ ├── Roboto-Light.a990f61.eot │ │ │ ├── Roboto-Medium.4d9f3f9.eot │ │ │ ├── Roboto-Medium.574fd0b.woff2 │ │ │ ├── Roboto-Medium.894a2ed.ttf │ │ │ ├── Roboto-Medium.fc78759.woff │ │ │ ├── Roboto-Regular.2751ee4.woff2 │ │ │ ├── Roboto-Regular.30799ef.eot │ │ │ ├── Roboto-Regular.ba3dcd8.woff │ │ │ ├── Roboto-Regular.df7b648.ttf │ │ │ ├── Roboto-Thin.7500519.woff │ │ │ ├── Roboto-Thin.9499847.ttf │ │ │ ├── Roboto-Thin.954bbde.woff2 │ │ │ └── Roboto-Thin.dfe56a8.eot │ │ ├── images │ │ │ ├── board │ │ │ │ ├── 3d │ │ │ │ │ └── Light-Wood.png │ │ │ │ ├── blue2.jpg │ │ │ │ ├── marble.jpg │ │ │ │ └── wood2.jpg │ │ │ ├── linux-avatar.png │ │ │ └── pieces │ │ │ │ ├── cburnett │ │ │ │ ├── bB.svg │ │ │ │ ├── bK-full.svg │ │ │ │ ├── bK.svg │ │ │ │ ├── bN.svg │ │ │ │ ├── bP.svg │ │ │ │ ├── bQ.svg │ │ │ │ ├── bR.svg │ │ │ │ ├── wB.svg │ │ │ │ ├── wK-full.svg │ │ │ │ ├── wK.svg │ │ │ │ ├── wN.svg │ │ │ │ ├── wP.svg │ │ │ │ ├── wQ.svg │ │ │ │ ├── wR.svg │ │ │ │ └── wbK.svg │ │ │ │ ├── merida │ │ │ │ ├── bB.svg │ │ │ │ ├── bK.svg │ │ │ │ ├── bN.svg │ │ │ │ ├── bP.svg │ │ │ │ ├── bQ.svg │ │ │ │ ├── bR.svg │ │ │ │ ├── wB.svg │ │ │ │ ├── wK.svg │ │ │ │ ├── wN.svg │ │ │ │ ├── wP.svg │ │ │ │ ├── wQ.svg │ │ │ │ └── wR.svg │ │ │ │ ├── pirouetti │ │ │ │ ├── bB.svg │ │ │ │ ├── bK.svg │ │ │ │ ├── bN.svg │ │ │ │ ├── bP.svg │ │ │ │ ├── bQ.svg │ │ │ │ ├── bR.svg │ │ │ │ ├── invert │ │ │ │ │ ├── bB.svg │ │ │ │ │ ├── bK.svg │ │ │ │ │ ├── bN.svg │ │ │ │ │ ├── bP.svg │ │ │ │ │ ├── bQ.svg │ │ │ │ │ ├── bR.svg │ │ │ │ │ ├── wB.svg │ │ │ │ │ ├── wK.svg │ │ │ │ │ ├── wN.svg │ │ │ │ │ ├── wP.svg │ │ │ │ │ ├── wQ.svg │ │ │ │ │ └── wR.svg │ │ │ │ ├── wB.svg │ │ │ │ ├── wK.svg │ │ │ │ ├── wN.svg │ │ │ │ ├── wP.svg │ │ │ │ ├── wQ.svg │ │ │ │ └── wR.svg │ │ │ │ └── staunton │ │ │ │ └── basic │ │ │ │ ├── Black-Bishop-Flipped.png │ │ │ │ ├── Black-Bishop.png │ │ │ │ ├── Black-King.png │ │ │ │ ├── Black-Knight-Flipped.png │ │ │ │ ├── Black-Knight.png │ │ │ │ ├── Black-Pawn.png │ │ │ │ ├── Black-Queen.png │ │ │ │ ├── Black-Rook.png │ │ │ │ ├── White-Bishop-Flipped.png │ │ │ │ ├── White-Bishop.png │ │ │ │ ├── White-King.png │ │ │ │ ├── White-Knight-Flipped.png │ │ │ │ ├── White-Knight.png │ │ │ │ ├── White-Pawn.png │ │ │ │ ├── White-Queen.png │ │ │ │ └── White-Rook.png │ │ ├── img │ │ │ ├── 2d.9ccd1d2.png │ │ │ ├── Black-Bishop-Flipped.b96efaf.png │ │ │ ├── Black-Bishop.cc91265.png │ │ │ ├── Black-King.591e986.png │ │ │ ├── Black-Knight-Flipped.1834213.png │ │ │ ├── Black-Knight.0c897c7.png │ │ │ ├── Black-Pawn.81e5a38.png │ │ │ ├── Black-Queen.e157cdb.png │ │ │ ├── Black-Rook.759c4f5.png │ │ │ ├── Light-Wood.697d127.png │ │ │ ├── Material-Design-Icons.2c478c3.svg │ │ │ ├── White-Bishop-Flipped.f66ce5f.png │ │ │ ├── White-Bishop.fbb218f.png │ │ │ ├── White-King.1845a2b.png │ │ │ ├── White-Knight-Flipped.1a85578.png │ │ │ ├── White-Knight.a786aa1.png │ │ │ ├── White-Pawn.6c520e9.png │ │ │ ├── White-Queen.26d99a0.png │ │ │ ├── White-Rook.010f0a8.png │ │ │ ├── blue2.bffddf3.jpg │ │ │ ├── marble.cbc7735.jpg │ │ │ └── wood2.c171ff8.jpg │ │ ├── js │ │ │ ├── 0.7d19780f419711a2d2f5.js │ │ │ ├── 0.7d19780f419711a2d2f5.js.map │ │ │ ├── 1.0f61207d051c2f148d47.js │ │ │ ├── 1.0f61207d051c2f148d47.js.map │ │ │ ├── 2.e0798ff563256086f4c1.js │ │ │ ├── 2.e0798ff563256086f4c1.js.map │ │ │ ├── 3.1f826c1ff4a09752ebf9.js │ │ │ ├── 3.1f826c1ff4a09752ebf9.js.map │ │ │ ├── app.3fbbc7c2d5269ebf0286.js │ │ │ ├── app.3fbbc7c2d5269ebf0286.js.map │ │ │ ├── manifest.c1d6c112ff988c8c65cb.js │ │ │ ├── manifest.c1d6c112ff988c8c65cb.js.map │ │ │ ├── vendor.004f1713f4b7e74797e1.js │ │ │ └── vendor.004f1713f4b7e74797e1.js.map │ │ ├── libs │ │ │ └── garbochess.js │ │ ├── mobile.css │ │ ├── style.css │ │ └── theme.css │ └── uploads │ │ ├── 1483627032984__ext.jpg │ │ ├── 1483712014821__ext.jpg │ │ ├── 1483713616741__393576_141797839262870_1594749992_n.jpg │ │ ├── 1483713993086__decimas Ibis.pdf │ │ ├── 1483819518660__393576_141797839262870_1594749992_n.jpg │ │ ├── 1483820094694__decimas Ibis.pdf │ │ ├── 1483831395620__393576_141797839262870_1594749992_n.jpg │ │ ├── 1483833107627__decimas Ibis.pdf │ │ ├── 1483833687482__decimas Ibis.pdf │ │ ├── 1484000341123__393576_141797839262870_1594749992_n.jpg │ │ ├── 1562261914160__Captura de pantalla de 2019-06-19 10-36-53.png │ │ ├── 1562261931678__Captura de pantalla de 2019-06-19 10-54-31.png │ │ ├── 1562261992355__Captura de pantalla de 2019-06-19 10-39-42.png │ │ └── 50x50defaultAvatar.png ├── routers │ ├── board.server.router.js │ ├── chat.server.router.js │ ├── index.js │ ├── puzzle.server.router.js │ └── user.server.router.js ├── server.js ├── ssl │ ├── cert.csr │ ├── certificate.pem │ ├── generatessl │ └── private.key └── views │ └── client.html ├── src ├── App.vue ├── assets │ ├── 2d.png │ ├── 50x50defaultAvatar.png │ └── logo.png ├── components │ ├── boardVisor │ │ ├── index.vue │ │ └── template.html │ ├── createServer │ │ ├── index.vue │ │ └── template.html │ ├── game │ │ ├── boardHistory.vue │ │ ├── index.vue │ │ ├── template.html │ │ └── userCard.vue │ ├── home │ │ ├── boardVisor.vue │ │ ├── bodyMen.vue │ │ ├── index.vue │ │ ├── invites.vue │ │ ├── template.html │ │ └── uploadFiles.vue │ ├── multiplayer │ │ ├── index.vue │ │ └── template.html │ ├── puzzles │ │ ├── index.vue │ │ ├── puzzle.vue │ │ └── template.html │ └── user │ │ ├── account │ │ ├── activity.vue │ │ ├── data.vue │ │ ├── index.vue │ │ ├── personalData.vue │ │ └── template.html │ │ ├── loguin │ │ └── index.vue │ │ └── register │ │ ├── index.vue │ │ └── template.html ├── directives │ ├── bind-boolean.js │ └── vue.pretty-bytes.js ├── main.js ├── services │ ├── board.js │ ├── garbochess.js │ ├── lenguajes.js │ ├── locales │ │ └── index.js │ ├── lstorage.js │ ├── puzzle.js │ └── user.js └── vuex │ ├── actions.js │ ├── getters.js │ ├── modules │ ├── boards.js │ ├── index.js │ └── user.js │ ├── mutation-types.js │ └── store.js ├── static ├── .gitkeep ├── base.css ├── css │ ├── animate.min.css │ ├── google-icons │ │ ├── 2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2 │ │ └── icon.css │ ├── materialize.min.css │ └── myStyles.css ├── desktop.css ├── font │ ├── material-design-icons │ │ ├── LICENSE.txt │ │ ├── Material-Design-Icons.eot │ │ ├── Material-Design-Icons.svg │ │ ├── Material-Design-Icons.ttf │ │ ├── Material-Design-Icons.woff │ │ └── Material-Design-Icons.woff2 │ └── roboto │ │ ├── Roboto-Bold.eot │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-Light.eot │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-Medium.eot │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-Regular.eot │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Regular.woff │ │ ├── Roboto-Regular.woff2 │ │ ├── Roboto-Thin.eot │ │ ├── Roboto-Thin.ttf │ │ ├── Roboto-Thin.woff │ │ └── Roboto-Thin.woff2 ├── images │ ├── board │ │ ├── 3d │ │ │ └── Light-Wood.png │ │ ├── blue2.jpg │ │ ├── marble.jpg │ │ └── wood2.jpg │ ├── linux-avatar.png │ └── pieces │ │ ├── cburnett │ │ ├── bB.svg │ │ ├── bK-full.svg │ │ ├── bK.svg │ │ ├── bN.svg │ │ ├── bP.svg │ │ ├── bQ.svg │ │ ├── bR.svg │ │ ├── wB.svg │ │ ├── wK-full.svg │ │ ├── wK.svg │ │ ├── wN.svg │ │ ├── wP.svg │ │ ├── wQ.svg │ │ ├── wR.svg │ │ └── wbK.svg │ │ ├── merida │ │ ├── bB.svg │ │ ├── bK.svg │ │ ├── bN.svg │ │ ├── bP.svg │ │ ├── bQ.svg │ │ ├── bR.svg │ │ ├── wB.svg │ │ ├── wK.svg │ │ ├── wN.svg │ │ ├── wP.svg │ │ ├── wQ.svg │ │ └── wR.svg │ │ ├── pirouetti │ │ ├── bB.svg │ │ ├── bK.svg │ │ ├── bN.svg │ │ ├── bP.svg │ │ ├── bQ.svg │ │ ├── bR.svg │ │ ├── invert │ │ │ ├── bB.svg │ │ │ ├── bK.svg │ │ │ ├── bN.svg │ │ │ ├── bP.svg │ │ │ ├── bQ.svg │ │ │ ├── bR.svg │ │ │ ├── wB.svg │ │ │ ├── wK.svg │ │ │ ├── wN.svg │ │ │ ├── wP.svg │ │ │ ├── wQ.svg │ │ │ └── wR.svg │ │ ├── wB.svg │ │ ├── wK.svg │ │ ├── wN.svg │ │ ├── wP.svg │ │ ├── wQ.svg │ │ └── wR.svg │ │ └── staunton │ │ └── basic │ │ ├── Black-Bishop-Flipped.png │ │ ├── Black-Bishop.png │ │ ├── Black-King.png │ │ ├── Black-Knight-Flipped.png │ │ ├── Black-Knight.png │ │ ├── Black-Pawn.png │ │ ├── Black-Queen.png │ │ ├── Black-Rook.png │ │ ├── White-Bishop-Flipped.png │ │ ├── White-Bishop.png │ │ ├── White-King.png │ │ ├── White-Knight-Flipped.png │ │ ├── White-Knight.png │ │ ├── White-Pawn.png │ │ ├── White-Queen.png │ │ └── White-Rook.png ├── libs │ └── garbochess.js ├── mobile.css ├── style.css └── theme.css ├── test ├── e2e │ ├── custom-assertions │ │ └── elementCount.js │ ├── nightwatch.conf.js │ ├── runner.js │ └── specs │ │ └── test.js └── unit │ ├── .eslintrc │ ├── index.js │ ├── karma.conf.js │ └── specs │ └── Hello.spec.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015", "stage-2"], 3 | "plugins": ["transform-runtime"], 4 | "comments": false 5 | } 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style 4 | extends: 'standard', 5 | // required to lint *.vue files 6 | plugins: [ 7 | 'html' 8 | ], 9 | // add your custom rules here 10 | 'rules': { 11 | // allow paren-less arrow functions 12 | 'arrow-parens': 0, 13 | // allow debugger during development 14 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | .idea/ 5 | npm-debug.log 6 | selenium-debug.log 7 | test/unit/coverage 8 | test/e2e/reports 9 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/libraries/my_proyect_node_modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/my-proyect.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /build/build.js: -------------------------------------------------------------------------------- 1 | // https://github.com/shelljs/shelljs 2 | require('shelljs/global') 3 | env.NODE_ENV = 'production' 4 | 5 | var path = require('path') 6 | var config = require('../config') 7 | var ora = require('ora') 8 | var webpack = require('webpack') 9 | var webpackConfig = require('./webpack.prod.conf') 10 | 11 | console.log( 12 | ' Tip:\n' + 13 | ' Built files are meant to be served over an HTTP server.\n' + 14 | ' Opening index.html over file:// won\'t work.\n' 15 | ) 16 | 17 | var spinner = ora('building for production...') 18 | spinner.start() 19 | 20 | var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory) 21 | rm('-rf', assetsPath) 22 | mkdir('-p', assetsPath) 23 | cp('-R', 'static/', assetsPath) 24 | 25 | webpack(webpackConfig, function (err, stats) { 26 | spinner.stop() 27 | if (err) throw err 28 | process.stdout.write(stats.toString({ 29 | colors: true, 30 | modules: false, 31 | children: false, 32 | chunks: false, 33 | chunkModules: false 34 | }) + '\n') 35 | }) 36 | -------------------------------------------------------------------------------- /build/dev-client.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | require('eventsource-polyfill') 3 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') 4 | 5 | hotClient.subscribe(function (event) { 6 | if (event.action === 'reload') { 7 | window.location.reload() 8 | } 9 | }) 10 | -------------------------------------------------------------------------------- /build/dev-server.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var express = require('express') 3 | var webpack = require('webpack') 4 | var config = require('../config') 5 | var proxyMiddleware = require('http-proxy-middleware') 6 | var webpackConfig = process.env.NODE_ENV === 'testing' 7 | ? require('./webpack.prod.conf') 8 | : require('./webpack.dev.conf') 9 | 10 | // default port where dev server listens for incoming traffic 11 | var port = process.env.PORT || config.dev.port 12 | // Define HTTP proxies to your custom API backend 13 | // https://github.com/chimurai/http-proxy-middleware 14 | var proxyTable = config.dev.proxyTable 15 | 16 | var app = express() 17 | var compiler = webpack(webpackConfig) 18 | 19 | var devMiddleware = require('webpack-dev-middleware')(compiler, { 20 | publicPath: webpackConfig.output.publicPath, 21 | stats: { 22 | colors: true, 23 | chunks: false 24 | } 25 | }) 26 | 27 | var hotMiddleware = require('webpack-hot-middleware')(compiler) 28 | // force page reload when html-webpack-plugin template changes 29 | compiler.plugin('compilation', function (compilation) { 30 | compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { 31 | hotMiddleware.publish({ action: 'reload' }) 32 | cb() 33 | }) 34 | }) 35 | 36 | // proxy api requests 37 | Object.keys(proxyTable).forEach(function (context) { 38 | var options = proxyTable[context] 39 | if (typeof options === 'string') { 40 | options = { target: options } 41 | } 42 | app.use(proxyMiddleware(context, options)) 43 | }) 44 | 45 | // handle fallback for HTML5 history API 46 | app.use(require('connect-history-api-fallback')()) 47 | 48 | // serve webpack bundle output 49 | app.use(devMiddleware) 50 | 51 | // enable hot-reload and state-preserving 52 | // compilation error display 53 | app.use(hotMiddleware) 54 | 55 | // serve pure static assets 56 | var staticPath = path.posix.join(config.build.assetsPublicPath, config.build.assetsSubDirectory) 57 | app.use(staticPath, express.static('./static')) 58 | 59 | module.exports = app.listen(port, function (err) { 60 | if (err) { 61 | console.log(err) 62 | return 63 | } 64 | console.log('Listening at http://localhost:' + port + '\n') 65 | }) 66 | -------------------------------------------------------------------------------- /build/utils.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var config = require('../config') 3 | var ExtractTextPlugin = require('extract-text-webpack-plugin') 4 | 5 | exports.assetsPath = function (_path) { 6 | return path.posix.join(config.build.assetsSubDirectory, _path) 7 | } 8 | 9 | exports.cssLoaders = function (options) { 10 | options = options || {} 11 | // generate loader string to be used with extract text plugin 12 | function generateLoaders (loaders) { 13 | var sourceLoader = loaders.map(function (loader) { 14 | var extraParamChar 15 | if (/\?/.test(loader)) { 16 | loader = loader.replace(/\?/, '-loader?') 17 | extraParamChar = '&' 18 | } else { 19 | loader = loader + '-loader' 20 | extraParamChar = '?' 21 | } 22 | return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '') 23 | }).join('!') 24 | 25 | if (options.extract) { 26 | return ExtractTextPlugin.extract('vue-style-loader', sourceLoader) 27 | } else { 28 | return ['vue-style-loader', sourceLoader].join('!') 29 | } 30 | } 31 | 32 | // http://vuejs.github.io/vue-loader/configurations/extract-css.html 33 | return { 34 | css: generateLoaders(['css']), 35 | postcss: generateLoaders(['css']), 36 | less: generateLoaders(['css', 'less']), 37 | sass: generateLoaders(['css', 'sass?indentedSyntax']), 38 | scss: generateLoaders(['css', 'sass']), 39 | stylus: generateLoaders(['css', 'stylus']), 40 | styl: generateLoaders(['css', 'stylus']) 41 | } 42 | } 43 | 44 | // Generate loaders for standalone style files (outside of .vue) 45 | exports.styleLoaders = function (options) { 46 | var output = [] 47 | var loaders = exports.cssLoaders(options) 48 | for (var extension in loaders) { 49 | var loader = loaders[extension] 50 | output.push({ 51 | test: new RegExp('\\.' + extension + '$'), 52 | loader: loader 53 | }) 54 | } 55 | return output 56 | } 57 | -------------------------------------------------------------------------------- /build/webpack.base.conf.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var config = require('../config') 3 | var utils = require('./utils') 4 | var projectRoot = path.resolve(__dirname, '../') 5 | 6 | module.exports = { 7 | entry: { 8 | app: './src/main.js' 9 | }, 10 | output: { 11 | path: config.build.assetsRoot, 12 | publicPath: config.build.assetsPublicPath, 13 | filename: '[name].js' 14 | }, 15 | resolve: { 16 | extensions: ['', '.js', '.vue'], 17 | fallback: [path.join(__dirname, '../node_modules')], 18 | alias: { 19 | 'src': path.resolve(__dirname, '../src'), 20 | 'assets': path.resolve(__dirname, '../src/assets'), 21 | 'components': path.resolve(__dirname, '../src/components') 22 | } 23 | }, 24 | resolveLoader: { 25 | fallback: [path.join(__dirname, '../node_modules')] 26 | }, 27 | module: { 28 | preLoaders: [ 29 | { 30 | test: /\.vue$/, 31 | loader: 'eslint', 32 | include: projectRoot, 33 | exclude: /node_modules/ 34 | }, 35 | { 36 | test: /\.js$/, 37 | loader: 'eslint', 38 | include: projectRoot, 39 | exclude: /node_modules/ 40 | } 41 | ], 42 | loaders: [ 43 | { 44 | test: /\.vue$/, 45 | loader: 'vue' 46 | }, 47 | { 48 | test: /\.js$/, 49 | loader: 'babel', 50 | include: projectRoot, 51 | exclude: /node_modules/ 52 | }, 53 | { 54 | test: /\.json$/, 55 | loader: 'json' 56 | }, 57 | { 58 | test: /\.html$/, 59 | loader: 'vue-html' 60 | }, 61 | { 62 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 63 | loader: 'url', 64 | query: { 65 | limit: 10000, 66 | name: utils.assetsPath('img/[name].[hash:7].[ext]') 67 | } 68 | }, 69 | { 70 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 71 | loader: 'url', 72 | query: { 73 | limit: 10000, 74 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]') 75 | } 76 | } 77 | ] 78 | }, 79 | eslint: { 80 | formatter: require('eslint-friendly-formatter') 81 | }, 82 | vue: { 83 | loaders: utils.cssLoaders() 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /build/webpack.dev.conf.js: -------------------------------------------------------------------------------- 1 | var config = require('../config') 2 | var webpack = require('webpack') 3 | var merge = require('webpack-merge') 4 | var utils = require('./utils') 5 | var baseWebpackConfig = require('./webpack.base.conf') 6 | var HtmlWebpackPlugin = require('html-webpack-plugin') 7 | 8 | // add hot-reload related code to entry chunks 9 | Object.keys(baseWebpackConfig.entry).forEach(function (name) { 10 | baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) 11 | }) 12 | 13 | module.exports = merge(baseWebpackConfig, { 14 | module: { 15 | loaders: utils.styleLoaders() 16 | }, 17 | // eval-source-map is faster for development 18 | devtool: '#eval-source-map', 19 | plugins: [ 20 | new webpack.DefinePlugin({ 21 | 'process.env': config.dev.env 22 | }), 23 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage 24 | new webpack.optimize.OccurenceOrderPlugin(), 25 | new webpack.HotModuleReplacementPlugin(), 26 | new webpack.NoErrorsPlugin(), 27 | // https://github.com/ampedandwired/html-webpack-plugin 28 | new HtmlWebpackPlugin({ 29 | filename: 'index.html', 30 | template: 'index.html', 31 | inject: true 32 | }) 33 | ] 34 | }) 35 | -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | var merge = require('webpack-merge') 2 | var prodEnv = require('./prod.env') 3 | 4 | module.exports = merge(prodEnv, { 5 | NODE_ENV: '"development"' 6 | }) 7 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | // see http://vuejs-templates.github.io/webpack for documentation. 2 | var path = require('path') 3 | 4 | module.exports = { 5 | build: { 6 | env: require('./prod.env'), 7 | index: path.resolve(__dirname, '../dist/index.html'), 8 | assetsRoot: path.resolve(__dirname, '../dist'), 9 | assetsSubDirectory: 'static', 10 | assetsPublicPath: '/', 11 | productionSourceMap: true 12 | }, 13 | dev: { 14 | env: require('./dev.env'), 15 | port: 8080, 16 | proxyTable: {} 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | NODE_ENV: '"production"' 3 | } 4 | -------------------------------------------------------------------------------- /config/test.env.js: -------------------------------------------------------------------------------- 1 | var merge = require('webpack-merge') 2 | var devEnv = require('./dev.env') 3 | 4 | module.exports = merge(devEnv, { 5 | NODE_ENV: '"testing"' 6 | }) 7 | -------------------------------------------------------------------------------- /images/create_puzzle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/images/create_puzzle.png -------------------------------------------------------------------------------- /images/game.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/images/game.png -------------------------------------------------------------------------------- /images/invite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/images/invite.png -------------------------------------------------------------------------------- /images/invites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/images/invites.png -------------------------------------------------------------------------------- /images/puzzles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/images/puzzles.png -------------------------------------------------------------------------------- /images/user_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/images/user_account.png -------------------------------------------------------------------------------- /images/visor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/images/visor.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VueJsChess 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /server/config.js: -------------------------------------------------------------------------------- 1 | 2 | var config = { 3 | db: { 4 | options: { 5 | db: {native_parser: true}, 6 | server: {poolSize: 5}, 7 | // replset: { rs_name: 'myReplicaSetName' }, 8 | // user: 'admin', 9 | // pass: '123456' 10 | }, 11 | uri: process.env.MONGO_URL || 'mongodb://127.0.0.1/vuegustchess' 12 | }, 13 | porthttp: process.env.PORT || 3311, 14 | multicore: false, 15 | https: true, 16 | debug: false 17 | } 18 | module.exports = config; -------------------------------------------------------------------------------- /server/controllers/index.js: -------------------------------------------------------------------------------- 1 | var controllers = {}; 2 | var mongoose = require('mongoose'); 3 | var fs = require('fs') 4 | var config=require('../config.js'); 5 | var db = mongoose.connect(config.db.uri, config.db.options); 6 | require('../models')(mongoose); 7 | 8 | var walk = function(path) { 9 | fs.readdirSync(path).forEach(function(file) { 10 | var newPath = path + '/' + file; 11 | var stat = fs.statSync(newPath); 12 | if (stat.isFile()) { 13 | if (/(.*)\.(js|coffee)/.test(file)) { 14 | if (file != 'index.js') { 15 | var indent = file.split('.'); 16 | controllers[indent[0]] = require(newPath); 17 | } 18 | } 19 | } else if (stat.isDirectory()) { 20 | // walk(newPath); 21 | } 22 | }); 23 | }; 24 | var models_path = __dirname; 25 | walk(models_path); 26 | 27 | module.exports = controllers; 28 | -------------------------------------------------------------------------------- /server/controllers/utils/forkContDown.js: -------------------------------------------------------------------------------- 1 | process.on('message', function (data) { 2 | switch (data.type) { 3 | case 'setTimes': 4 | times = data.data 5 | break; 6 | case 'getTimes': 7 | process.send(times) 8 | break; 9 | case 'contDown': 10 | contDown(data.data) 11 | break; 12 | case 'finish': 13 | clearInterval(twhite) 14 | clearInterval(tblack) 15 | process.exit() 16 | break; 17 | } 18 | }) 19 | var tblack= 1; 20 | var twhite= 1; 21 | 22 | var lastTime = 0 23 | var times= { 24 | white: 1 * 60, 25 | black: 1 * 60 26 | } 27 | var contDown = function (turn) { 28 | clearInterval(twhite) 29 | clearInterval(tblack) 30 | if (turn === 'white') { 31 | twhite = setInterval(function () { 32 | times[turn]= times[turn] - 1 33 | if(times[turn]<=-1){ 34 | times[turn] = 0 35 | clearInterval(twhite) 36 | clearInterval(tblack) 37 | } 38 | process.send(times) 39 | },1000) 40 | }else { 41 | tblack = setInterval(function () { 42 | times[turn]= times[turn] - 1 43 | if(times[turn]<=-1){ 44 | times[turn] = 0 45 | clearInterval(twhite) 46 | clearInterval(tblack) 47 | } 48 | process.send(times) 49 | },1000) 50 | } 51 | } 52 | var getTimes = function () { 53 | return times 54 | } 55 | var setTimes = function (newtimes) { 56 | times= newtimes 57 | lastTime = new Date().getTimes() 58 | } -------------------------------------------------------------------------------- /server/install.txt: -------------------------------------------------------------------------------- 1 | apt-get install nodejs-legacy 2 | apt-get install mongodb 3 | 4 | // directorio raiz 5 | node server 6 | -------------------------------------------------------------------------------- /server/models/board.server.model.js: -------------------------------------------------------------------------------- 1 | exports = module.exports = function(mongoose) { 2 | Schema = mongoose.Schema; 3 | var BoardSchema = new Schema({ 4 | wins:String, 5 | motiv:String, 6 | u1:String, 7 | u2:String, 8 | time: String, 9 | created: { 10 | type: Date, 11 | default: Date.now 12 | }, 13 | type: { 14 | type: String, 15 | default:"public" 16 | }, 17 | pgn: { 18 | type: String, 19 | default:"none" 20 | }, 21 | }); 22 | module.exports = mongoose.model('boards', BoardSchema); 23 | } -------------------------------------------------------------------------------- /server/models/conver.server.model.js: -------------------------------------------------------------------------------- 1 | exports = module.exports = function(mongoose) { 2 | Schema = mongoose.Schema; 3 | 4 | var MensajeSchema = new Schema({ 5 | body: Object, 6 | send:String, 7 | recibe:String, 8 | type:String, 9 | created: { 10 | type: Date, 11 | default: Date.now 12 | } 13 | }); 14 | module.exports = mongoose.model('mensajes', MensajeSchema); 15 | } -------------------------------------------------------------------------------- /server/models/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function(mongoose) { 3 | var fs = require('fs') 4 | var walk = function(path) { 5 | fs.readdirSync(path).forEach(function(file) { 6 | var newPath = path + '/' + file; 7 | var stat = fs.statSync(newPath); 8 | if (stat.isFile()) { 9 | if (/(.*)\.(js|coffee)/.test(file)) { 10 | if (file != 'index.js') { 11 | require(newPath)(mongoose); 12 | } 13 | } 14 | } else if (stat.isDirectory()) { 15 | // walk(newPath); 16 | } 17 | }); 18 | }; 19 | var models_path = __dirname; 20 | walk(models_path); 21 | } -------------------------------------------------------------------------------- /server/models/puzzle.server.model.js: -------------------------------------------------------------------------------- 1 | exports = module.exports = function(mongoose) { 2 | Schema = mongoose.Schema; 3 | var PuzzleSchema = new Schema({ 4 | type:String, 5 | createby:String, 6 | feninit:String, 7 | fenfinish:String, 8 | nummoves:String, 9 | created: { 10 | type: Date, 11 | default: Date.now 12 | }, 13 | corrects: { 14 | type: Number, 15 | default: 0 16 | }, 17 | intents: { 18 | type: Number, 19 | default: 0 20 | } 21 | }); 22 | module.exports = mongoose.model('puzzles', PuzzleSchema); 23 | } -------------------------------------------------------------------------------- /server/models/user.server.model.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | var uniqueValidator = require('mongoose-unique-validator'); 4 | exports = module.exports = function(mongoose) { 5 | Schema = mongoose.Schema; 6 | var UserSchema = new Schema({ 7 | email: { 8 | type: String, 9 | match: [/.+\@.+\..+/, "invalid_email_address"], 10 | unique: true, 11 | required: 'email_required' 12 | }, 13 | name: String, 14 | image: { 15 | type: String, 16 | default: '50x50defaultAvatar.png' 17 | }, 18 | firstName: String, 19 | lastName: String, 20 | username: { 21 | type: String, 22 | unique: true, 23 | required: 'username_required', 24 | trim: true 25 | }, 26 | password: { 27 | type: String 28 | }, 29 | created: { 30 | type: Date, 31 | default: Date.now 32 | }, 33 | role: String, 34 | convAbiertas: { 35 | type: Array, 36 | }, 37 | age: Number, 38 | sexo: String 39 | }); 40 | UserSchema.plugin(uniqueValidator,{ message: 'error_unique_{PATH}' }); 41 | module.exports = mongoose.model('users', UserSchema); 42 | } -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "1.0.0", 4 | "description": "Server socket.io to vuejs-chess", 5 | "main": "server.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "keywords": [ 11 | "socket" 12 | ], 13 | "author": "Gustavo", 14 | "license": "ISC", 15 | "dependencies": { 16 | "async": "^1.5.2", 17 | "bcrypt-nodejs": "0.0.3", 18 | "body-parser": "~1.0.0", 19 | "chess.js": "^0.10.0", 20 | "compression": "^1.6.2", 21 | "ejs": "~1.0.0", 22 | "engine.io-client": "^1.6.9", 23 | "express": "4.x", 24 | "express-jwt": "latest", 25 | "formidable": "^1.0.17", 26 | "hiredis": "^0.5.0", 27 | "jsonwebtoken": "latest", 28 | "moment": "^2.12.0", 29 | "mongoose": "latest", 30 | "mongoose-unique-validator": "^1.0.2", 31 | "morgan": "latest", 32 | "redis": "^2.6.2", 33 | "request": "latest", 34 | "request-ip": "^1.2.2", 35 | "socket.io": "^1.4.6", 36 | "socket.io-emitter": "^1.0.0", 37 | "socket.io-redis": "^1.0.0", 38 | "socketio-jwt": "^4.3.4" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /server/public/build/charts/44/css/core/tooltip.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2012 Google Inc. All Rights Reserved. */ 2 | 3 | .google-visualization-tooltip-action: hover { 4 | background-color: #eeeeee; 5 | } 6 | .google-visualization-tooltip { 7 | border:solid 1px #bdbdbd; 8 | border-radius: 2px; 9 | background-color: white; 10 | position: absolute; 11 | box-shadow: 0px 2px 2px 0px rgba(204, 204, 204, 0.6); 12 | font-size: 12px; 13 | padding: 0px; 14 | -moz-box-shadow: 0px 2px 2px 0px rgba(204, 204, 204, 0.6); 15 | -webkit-box-shadow: 0px 2px 2px 0px rgba(204, 204, 204, 0.6); 16 | } 17 | .google-visualization-tooltip-action-list { 18 | list-style-type: none; 19 | margin: 0; 20 | padding: 0.5em 0em 0.5em 0em; 21 | cursor: hand; 22 | } 23 | .google-visualization-tooltip-action { 24 | margin: 0; 25 | cursor: pointer; 26 | padding: 0.5em 2em 0.5em 1em; 27 | } 28 | .google-visualization-tooltip-action:hover { 29 | background-color: #eeeeee; 30 | } 31 | .google-visualization-tooltip-item-list { 32 | list-style-type: none; 33 | margin: 1em 0 1em 0; 34 | padding: 0em; 35 | } 36 | .google-visualization-tooltip-item { 37 | margin: 0.65em 0em 0.65em 0em; 38 | padding: 0em 2em 0em 1em; 39 | } 40 | .google-visualization-tooltip-item-list 41 | .google-visualization-tooltip-item:first-child { 42 | margin: 1em 0em 1em 0em; 43 | } 44 | .google-visualization-tooltip-separator { 45 | margin: 0; 46 | padding: 0; 47 | height: 1px; 48 | background-color: #dddddd; 49 | } 50 | .google-visualization-tooltip-square { 51 | display: inline-block; 52 | /* IE does not support inline-block fall back to float left */ 53 | float: left\9; 54 | clear: none; 55 | width: 0.5em; 56 | height: 0.5em; 57 | margin: 0.16em 0.7em 0em 0em; 58 | border-bottom: solid 0.1em white; 59 | } 60 | -------------------------------------------------------------------------------- /server/public/static/base.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Chessground base css properties, for clarity. 3 | * 4 | * You can then include either desktop.css or mobile.css. 5 | * 6 | * And you need to include the css files in themes folder in order to have the 7 | * board and pieces displayed! 8 | */ 9 | 10 | .cg-board-wrap { 11 | width: 100%; 12 | height: 100%; 13 | } 14 | .cg-board { 15 | -webkit-user-select: none; 16 | -moz-user-select: none; 17 | -ms-user-select: none; 18 | user-select: none; 19 | line-height: 0; 20 | background-size: cover; 21 | position: relative; 22 | width: 100%; 23 | height: 100%; 24 | } 25 | square { 26 | position: absolute; 27 | width: 12.5%; 28 | height: 12.5%; 29 | } 30 | square[data-coord-x]::after { 31 | position: absolute; 32 | left: 1px; 33 | bottom: 1px; 34 | font-size: 10px; 35 | line-height: 10px; 36 | content: attr(data-coord-x); 37 | color: #fff; 38 | opacity: 0.5; 39 | } 40 | square[data-coord-y]::before { 41 | position: absolute; 42 | right: 1px; 43 | top: 1px; 44 | font-size: 10px; 45 | line-height: 10px; 46 | content: attr(data-coord-y); 47 | color: #fff; 48 | opacity: 0.5; 49 | } 50 | square.move-dest { 51 | background: radial-gradient(rgba(20, 85, 30, 0.5) 22%, #208530 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0); 52 | } 53 | square.premove-dest { 54 | background: radial-gradient(rgba(20, 30, 85, 0.5) 22%, #203085 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0); 55 | } 56 | square.last-move { 57 | background-color: rgba(155, 199, 0, 0.41); 58 | } 59 | square.selected { 60 | background-color: rgba(20, 85, 30, 0.5); 61 | } 62 | square.check { 63 | background: radial-gradient(ellipse at center, rgba(255, 0, 0, 1) 0%, rgba(231, 0, 0, 1) 25%, rgba(169, 0, 0, 0) 89%, rgba(158, 0, 0, 0) 100%); 64 | } 65 | square.current-premove { 66 | background-color: rgba(20, 30, 85, 0.5); 67 | } 68 | piece { 69 | position: absolute; 70 | bottom: 0; 71 | left: 0; 72 | width: 100%; 73 | height: 100%; 74 | background-size: cover; 75 | z-index: 2; 76 | will-change: transform; 77 | } 78 | piece.dragging { 79 | z-index: 9; 80 | } 81 | piece.ghost { 82 | opacity: 0.3; 83 | } 84 | .minimal-dom piece { 85 | position: absolute; 86 | width: 12.5%; 87 | height: 12.5%; 88 | } 89 | -------------------------------------------------------------------------------- /server/public/static/css/google-icons/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/css/google-icons/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2 -------------------------------------------------------------------------------- /server/public/static/css/google-icons/icon.css: -------------------------------------------------------------------------------- 1 | /* fallback */ 2 | @font-face { 3 | font-family: 'Material Icons'; 4 | font-style: normal; 5 | font-weight: 400; 6 | src: local('Material Icons'), local('MaterialIcons-Regular'), url(2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2) format('woff2'); 7 | } 8 | 9 | .material-icons { 10 | font-family: 'Material Icons'; 11 | font-weight: normal; 12 | font-style: normal; 13 | font-size: 24px; 14 | line-height: 1; 15 | letter-spacing: normal; 16 | text-transform: none; 17 | display: inline-block; 18 | white-space: nowrap; 19 | word-wrap: normal; 20 | direction: ltr; 21 | -webkit-font-feature-settings: 'liga'; 22 | -webkit-font-smoothing: antialiased; 23 | } 24 | -------------------------------------------------------------------------------- /server/public/static/desktop.css: -------------------------------------------------------------------------------- 1 | .cg-board { 2 | cursor: pointer; 3 | } 4 | .cg-board .cg-square.move-dest.drag-over, 5 | .cg-board .cg-square.premove-dest.drag-over { 6 | box-shadow: inset 0 0 10px 2px rgba(216, 85, 0, 0.9); 7 | } 8 | piece.dragging { 9 | cursor: move; 10 | } 11 | -------------------------------------------------------------------------------- /server/public/static/font/material-design-icons/Material-Design-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/material-design-icons/Material-Design-Icons.eot -------------------------------------------------------------------------------- /server/public/static/font/material-design-icons/Material-Design-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/material-design-icons/Material-Design-Icons.ttf -------------------------------------------------------------------------------- /server/public/static/font/material-design-icons/Material-Design-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/material-design-icons/Material-Design-Icons.woff -------------------------------------------------------------------------------- /server/public/static/font/material-design-icons/Material-Design-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/material-design-icons/Material-Design-Icons.woff2 -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Bold.eot -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Light.eot -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Medium.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Medium.eot -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Regular.eot -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Thin.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Thin.eot -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /server/public/static/font/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/font/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /server/public/static/fonts/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.def4c58.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.def4c58.woff2 -------------------------------------------------------------------------------- /server/public/static/fonts/Material-Design-Icons.2f19889.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Material-Design-Icons.2f19889.eot -------------------------------------------------------------------------------- /server/public/static/fonts/Material-Design-Icons.3892a10.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Material-Design-Icons.3892a10.woff2 -------------------------------------------------------------------------------- /server/public/static/fonts/Material-Design-Icons.4c874dc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Material-Design-Icons.4c874dc.woff -------------------------------------------------------------------------------- /server/public/static/fonts/Material-Design-Icons.7f61c99.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Material-Design-Icons.7f61c99.ttf -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Bold.39b2c30.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Bold.39b2c30.woff2 -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Bold.dc81817.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Bold.dc81817.woff -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Bold.e31fcf1.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Bold.e31fcf1.ttf -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Bold.ecdd509.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Bold.ecdd509.eot -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Light.3b813c2.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Light.3b813c2.woff -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Light.46e48ce.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Light.46e48ce.ttf -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Light.69f8a06.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Light.69f8a06.woff2 -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Light.a990f61.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Light.a990f61.eot -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Medium.4d9f3f9.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Medium.4d9f3f9.eot -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Medium.574fd0b.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Medium.574fd0b.woff2 -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Medium.894a2ed.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Medium.894a2ed.ttf -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Medium.fc78759.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Medium.fc78759.woff -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Regular.2751ee4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Regular.2751ee4.woff2 -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Regular.30799ef.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Regular.30799ef.eot -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Regular.ba3dcd8.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Regular.ba3dcd8.woff -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Regular.df7b648.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Regular.df7b648.ttf -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Thin.7500519.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Thin.7500519.woff -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Thin.9499847.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Thin.9499847.ttf -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Thin.954bbde.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Thin.954bbde.woff2 -------------------------------------------------------------------------------- /server/public/static/fonts/Roboto-Thin.dfe56a8.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/fonts/Roboto-Thin.dfe56a8.eot -------------------------------------------------------------------------------- /server/public/static/images/board/3d/Light-Wood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/board/3d/Light-Wood.png -------------------------------------------------------------------------------- /server/public/static/images/board/blue2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/board/blue2.jpg -------------------------------------------------------------------------------- /server/public/static/images/board/marble.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/board/marble.jpg -------------------------------------------------------------------------------- /server/public/static/images/board/wood2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/board/wood2.jpg -------------------------------------------------------------------------------- /server/public/static/images/linux-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/linux-avatar.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/bK-full.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/wK-full.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/cburnett/wbK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/merida/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/merida/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/merida/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/merida/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/invert/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/pirouetti/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/Black-Bishop-Flipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/Black-Bishop-Flipped.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/Black-Bishop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/Black-Bishop.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/Black-King.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/Black-King.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/Black-Knight-Flipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/Black-Knight-Flipped.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/Black-Knight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/Black-Knight.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/Black-Pawn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/Black-Pawn.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/Black-Queen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/Black-Queen.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/Black-Rook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/Black-Rook.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/White-Bishop-Flipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/White-Bishop-Flipped.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/White-Bishop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/White-Bishop.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/White-King.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/White-King.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/White-Knight-Flipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/White-Knight-Flipped.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/White-Knight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/White-Knight.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/White-Pawn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/White-Pawn.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/White-Queen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/White-Queen.png -------------------------------------------------------------------------------- /server/public/static/images/pieces/staunton/basic/White-Rook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/images/pieces/staunton/basic/White-Rook.png -------------------------------------------------------------------------------- /server/public/static/img/2d.9ccd1d2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/2d.9ccd1d2.png -------------------------------------------------------------------------------- /server/public/static/img/Black-Bishop-Flipped.b96efaf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/Black-Bishop-Flipped.b96efaf.png -------------------------------------------------------------------------------- /server/public/static/img/Black-Bishop.cc91265.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/Black-Bishop.cc91265.png -------------------------------------------------------------------------------- /server/public/static/img/Black-King.591e986.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/Black-King.591e986.png -------------------------------------------------------------------------------- /server/public/static/img/Black-Knight-Flipped.1834213.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/Black-Knight-Flipped.1834213.png -------------------------------------------------------------------------------- /server/public/static/img/Black-Knight.0c897c7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/Black-Knight.0c897c7.png -------------------------------------------------------------------------------- /server/public/static/img/Black-Pawn.81e5a38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/Black-Pawn.81e5a38.png -------------------------------------------------------------------------------- /server/public/static/img/Black-Queen.e157cdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/Black-Queen.e157cdb.png -------------------------------------------------------------------------------- /server/public/static/img/Black-Rook.759c4f5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/Black-Rook.759c4f5.png -------------------------------------------------------------------------------- /server/public/static/img/Light-Wood.697d127.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/Light-Wood.697d127.png -------------------------------------------------------------------------------- /server/public/static/img/White-Bishop-Flipped.f66ce5f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/White-Bishop-Flipped.f66ce5f.png -------------------------------------------------------------------------------- /server/public/static/img/White-Bishop.fbb218f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/White-Bishop.fbb218f.png -------------------------------------------------------------------------------- /server/public/static/img/White-King.1845a2b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/White-King.1845a2b.png -------------------------------------------------------------------------------- /server/public/static/img/White-Knight-Flipped.1a85578.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/White-Knight-Flipped.1a85578.png -------------------------------------------------------------------------------- /server/public/static/img/White-Knight.a786aa1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/White-Knight.a786aa1.png -------------------------------------------------------------------------------- /server/public/static/img/White-Pawn.6c520e9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/White-Pawn.6c520e9.png -------------------------------------------------------------------------------- /server/public/static/img/White-Queen.26d99a0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/White-Queen.26d99a0.png -------------------------------------------------------------------------------- /server/public/static/img/White-Rook.010f0a8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/White-Rook.010f0a8.png -------------------------------------------------------------------------------- /server/public/static/img/blue2.bffddf3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/blue2.bffddf3.jpg -------------------------------------------------------------------------------- /server/public/static/img/marble.cbc7735.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/marble.cbc7735.jpg -------------------------------------------------------------------------------- /server/public/static/img/wood2.c171ff8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/server/public/static/img/wood2.c171ff8.jpg -------------------------------------------------------------------------------- /server/public/static/js/manifest.c1d6c112ff988c8c65cb.js: -------------------------------------------------------------------------------- 1 | !function(e){function t(r){if(f[r])return f[r].exports;var n=f[r]={exports:{},id:r,loaded:!1};return e[r].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r=window.webpackJsonp;window.webpackJsonp=function(a,c){for(var o,p,l=0,s=[];l { 2 | 'use strict'; 3 | let cluster = require('cluster'); 4 | let config = require('./config.js'); 5 | let runServer = () => { 6 | require('./app')(process.cwd(), config, app => { 7 | app.listen(config.porthttp) 8 | }); 9 | } 10 | if (config.multicore) { 11 | // Condition that checks if we are on the master process, 12 | // before creating child processes. 13 | if (cluster.isMaster) { 14 | // Fork all the workers. 15 | const numCPUs = require('os').cpus().length; 16 | console.log('numCPUs',numCPUs) 17 | // / (parseInt(process.env.CLUSTER_DIVIDER, 10) || 1); 18 | console.log('Process Master', process.pid); 19 | for (let i = 0; i < numCPUs; i++) { 20 | cluster.fork(); 21 | } 22 | 23 | Object.keys(cluster.workers).forEach(id => { 24 | console.log('Running with process ID: ', cluster.workers[id].process.pid); 25 | }); 26 | 27 | // arguments are worker, code, signal 28 | cluster.on('exit', worker => { 29 | const RESTART_DELAY = parseInt(process.env.RESTART_DELAY, 10) || 30000; 30 | console.log('Process ID: ' + worker.process.pid + 31 | ' died, creating new worker in ' + 32 | (RESTART_DELAY / 1000) + ' seconds'); 33 | setTimeout(cluster.fork, RESTART_DELAY); 34 | }); 35 | var allClustersData = {} 36 | cluster.on('message', function(someData){ 37 | allClustersData[someData.name] = someData.data 38 | console.log('everywell',allClustersData) 39 | }) 40 | } else { 41 | runServer() 42 | } 43 | } else { 44 | runServer() 45 | } 46 | })(); 47 | -------------------------------------------------------------------------------- /server/ssl/cert.csr: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIB3jCCAUcCAQAwcjELMAkGA1UEBhMCYXMxETAPBgNVBAgMCGFzZGFzZGFzMQsw 3 | CQYDVQQHDAJzZDEMMAoGA1UECgwDYXNkMQswCQYDVQQLDAJzZDEOMAwGA1UEAwwF 4 | c2Rhc2QxGDAWBgkqhkiG9w0BCQEWCWFzZGFzZGFzZDCBnzANBgkqhkiG9w0BAQEF 5 | AAOBjQAwgYkCgYEAsZwY1qcGTxBYzjz7t6WjEKV2AG16gWOw2a2ndBKKE9ozntkK 6 | KpKGjCLrgNF7+lIl2mibtg2Fw4kWAykHhke7/fu9qcFzVEwBidum+uYlgGTCykoT 7 | R7XahoL2dMklrWJ8W1C6CSCvdx1PomsKJ89+OtqyZ2MprIMv5Tn4lCh+m4UCAwEA 8 | AaAsMBQGCSqGSIb3DQEJAjEHDAVhc2RmZzAUBgkqhkiG9w0BCQcxBwwFYXNkZmcw 9 | DQYJKoZIhvcNAQELBQADgYEAa/ZCkVH0L4Zc4+dbF0bGrLtHzo2w3Kja8/o/tk7V 10 | IDkv9fg42cfC6AtBgooC/L9SjlGSzG+8XS5FKmOfkJGG41Vw7VHrgEJpkwiGr0us 11 | WmqBqpvmBRXKucgliMSw6AP5XxLvSukLmFQi1+Wcf6HwerdcGIEAtiP8Bf0haa2T 12 | 3AA= 13 | -----END CERTIFICATE REQUEST----- 14 | -------------------------------------------------------------------------------- /server/ssl/certificate.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICWzCCAcQCCQC4YB8X0cur6DANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJh 3 | czERMA8GA1UECAwIYXNkYXNkYXMxCzAJBgNVBAcMAnNkMQwwCgYDVQQKDANhc2Qx 4 | CzAJBgNVBAsMAnNkMQ4wDAYDVQQDDAVzZGFzZDEYMBYGCSqGSIb3DQEJARYJYXNk 5 | YXNkYXNkMB4XDTE2MDYyMjEyNDg1MVoXDTE2MDcyMjEyNDg1MVowcjELMAkGA1UE 6 | BhMCYXMxETAPBgNVBAgMCGFzZGFzZGFzMQswCQYDVQQHDAJzZDEMMAoGA1UECgwD 7 | YXNkMQswCQYDVQQLDAJzZDEOMAwGA1UEAwwFc2Rhc2QxGDAWBgkqhkiG9w0BCQEW 8 | CWFzZGFzZGFzZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsZwY1qcGTxBY 9 | zjz7t6WjEKV2AG16gWOw2a2ndBKKE9ozntkKKpKGjCLrgNF7+lIl2mibtg2Fw4kW 10 | AykHhke7/fu9qcFzVEwBidum+uYlgGTCykoTR7XahoL2dMklrWJ8W1C6CSCvdx1P 11 | omsKJ89+OtqyZ2MprIMv5Tn4lCh+m4UCAwEAATANBgkqhkiG9w0BAQsFAAOBgQAr 12 | vLQr+R5ntkCRx7AB70QzkKsc2CiHzzSF5mPkK5bnsThS3sAVGrmVPQiVgBfCVy0h 13 | TbHMqob7wcKxYTkFVJz5OGa3tP1YkYzb0dHf/Lk/rRS5p5bVTSfNeVmC/A8kxjtS 14 | jdMs1oy/fDXPcf9N9HkXg6M3C9YqbZDqRFWHhiVsWA== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /server/ssl/generatessl: -------------------------------------------------------------------------------- 1 | openssl genrsa 1024 > private.key 2 | openssl req -new -key private.key -out cert.csr 3 | openssl x509 -req -in cert.csr -signkey private.key -out certificate.pem 4 | -------------------------------------------------------------------------------- /server/ssl/private.key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQCxnBjWpwZPEFjOPPu3paMQpXYAbXqBY7DZrad0EooT2jOe2Qoq 3 | koaMIuuA0Xv6UiXaaJu2DYXDiRYDKQeGR7v9+72pwXNUTAGJ26b65iWAZMLKShNH 4 | tdqGgvZ0ySWtYnxbULoJIK93HU+iawonz3462rJnYymsgy/lOfiUKH6bhQIDAQAB 5 | AoGABOs0yOURSKlEPFn2Aq0EqhZbAUIG7YRsRmsHwzAsQMZ/PXv3SxyJu2HQMd4b 6 | V+BkifrxrQYM2VB3mpjNS4u7Cg7NzXZKtFfjziRJryqLzZoJ3KR3VXJte1GMThge 7 | qWxRT+VAui2WdGi70gEh+bEkVgxDvnti4HWGmsoupYWxqOECQQDpalHx3KNe3+CE 8 | gHLtIZ0FWlqX+A03eRYuJkCfWTDsN4JZduOdWYiInJvUGnW2Nrk3yD5AlfiH2SLD 9 | v3xwcU+NAkEAwst6NoeCcCSed3mLLy52pd2w9EK73gU63s9oboXi3WlZPSI4ysHV 10 | TpESBWD7JPt0k0mvZK1lOItTWNLgGTUh2QJBAL0LjljcQTj7C6VlPy+NlNYcCtmg 11 | Xlv6Zxtzgc1NeJEomBsLbmgndqxmYtMTpxiwE6z5MmouzL6B/2UY9pk/PJUCQAym 12 | ailgY3gk6KWZnxBRVCMxYmx6aPjiHhCaJ44F49W9Ia52qnmAXPndMe5nfefI7Kkj 13 | /9/p4sjpQ2BhUWxRpwECQEn11UGX3sn0By4HqJaBnTNWC/g4oYUU2jiHQhBT+yf4 14 | BL2P3WJ+uqvWIPMdbm71++eTjJ61fYy+bvJ2+NDO5o0= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /server/views/client.html: -------------------------------------------------------------------------------- 1 | VueJsChess
-------------------------------------------------------------------------------- /src/assets/2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/src/assets/2d.png -------------------------------------------------------------------------------- /src/assets/50x50defaultAvatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/src/assets/50x50defaultAvatar.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/boardVisor/template.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 |
6 | 7 | 8 |
9 | 15 | {{ $t("visor.whiteName") }} 16 | 17 | 18 | 24 | {{ $t("visor.blackName") }} 25 | 26 |
27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 |
{{ board.u1}} vs {{ board.u2}}G. {{ board.wins}} M.{{ board.motiv }}
36 |
37 |
38 |
39 |
40 | 41 |
42 |
43 | 44 | 45 | 52 | 53 | -------------------------------------------------------------------------------- /src/components/createServer/index.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /src/components/createServer/template.html: -------------------------------------------------------------------------------- 1 |
2 |

Creando servidor

3 |
4 | 6 | Nombre de servidor 7 | 8 | 9 | 10 | Cantidad de usuarios permitidos 11 | 12 | 13 | 14 | 15 | Descripcion: 16 | 17 | 18 | 19 | 20 | 21 | Encender 22 | Apagar 23 | 24 | 25 |
26 |
-------------------------------------------------------------------------------- /src/components/game/userCard.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | -------------------------------------------------------------------------------- /src/components/home/bodyMen.vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | -------------------------------------------------------------------------------- /src/components/multiplayer/index.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /src/components/multiplayer/template.html: -------------------------------------------------------------------------------- 1 |
2 |

Conectarse a un servidor

3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
NombreDireccionUsuarios
Servidor 1Servidor 2Servidor 3
20 |
21 | 22 | BOTTOM 23 | 24 | 25 | 26 |
  • 27 | 28 | insert_chart 29 | 30 |
  • 31 |
  • 32 | 33 | format_quote 34 | 35 |
  • 36 |
  • 37 | 38 | publish 39 | 40 |
  • 41 |
  • 42 | 43 | attach_file 44 | 45 |
  • 46 |
    47 |
    -------------------------------------------------------------------------------- /src/components/user/account/data.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /src/components/user/account/personalData.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | -------------------------------------------------------------------------------- /src/components/user/account/template.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 |
    5 | 6 | 7 | {{user.name || user.username}} 8 | 9 |
    10 | 11 | 12 | 20 | edit 21 | 22 | 23 |
    24 |
    25 |
    26 |
    27 | 28 | 29 | {{ $t("account.personalData.title") }} 30 | send 31 | 32 | 33 | {{ $t("account.activity.title") }} 34 | send 35 | 36 | 37 | Configuraciones 38 | send 39 | 40 | 41 |
    42 |
    43 |
    44 | 45 |
    46 |
    47 |
    -------------------------------------------------------------------------------- /src/directives/bind-boolean.js: -------------------------------------------------------------------------------- 1 | // removed DirectiveOption because priority is not boolean 2 | var bindBoolean = { 3 | priority: 850, 4 | update: function (value) { 5 | var arg = this.arg 6 | if (value) { 7 | this.el.setAttribute(arg, arg) 8 | } else { 9 | this.el.removeAttribute(arg) 10 | } 11 | } 12 | } 13 | export default bindBoolean 14 | -------------------------------------------------------------------------------- /src/directives/vue.pretty-bytes.js: -------------------------------------------------------------------------------- 1 | /* globals Vue */ 2 | // optional filter for formatting the bytes in the view 3 | Vue.filter('prettyBytes', function (num) { 4 | // jacked from: https://github.com/sindresorhus/pretty-bytes 5 | if (typeof num !== 'number' || isNaN(num)) { 6 | throw new TypeError('Expected a number'); 7 | } 8 | 9 | var exponent; 10 | var unit; 11 | var neg = num < 0; 12 | var units = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; 13 | 14 | if (neg) { 15 | num = -num; 16 | } 17 | 18 | if (num < 1) { 19 | return (neg ? '-' : '') + num + ' B'; 20 | } 21 | 22 | exponent = Math.min(Math.floor(Math.log(num) / Math.log(1000)), units.length - 1); 23 | num = (num / Math.pow(1000, exponent)).toFixed(2) * 1; 24 | unit = units[exponent]; 25 | 26 | return (neg ? '-' : '') + num + ' ' + unit; 27 | }); -------------------------------------------------------------------------------- /src/services/board.js: -------------------------------------------------------------------------------- 1 | import Storage from './lstorage' 2 | export default { 3 | filter (ctx, data) { 4 | return ctx.$http.post(Storage.get('serverDir') + '/board/filter', data).then(r => { 5 | if (r.status === 200) { 6 | return r.text() 7 | } else { 8 | return r.text().then(d => { 9 | throw d 10 | }) 11 | } 12 | }) 13 | }, 14 | stats (ctx, data) { 15 | return ctx.$http.get(Storage.get('serverDir') + '/board/stats' + this.urlGetParms(data)).then(r => { 16 | if (r.status === 200) { 17 | return r.text() 18 | } else { 19 | return r.text().then(d => { 20 | throw d 21 | }) 22 | } 23 | }) 24 | }, 25 | urlGetParms (data) { 26 | var parms = '?' 27 | for (var key in data) { 28 | parms += (parms === '?' ? '' : '&') + key + '=' + data[key] 29 | } 30 | return parms 31 | }, 32 | boardParms: Storage.get('parmsBoard'), 33 | setParms (parms) { 34 | this.boardParms = parms 35 | Storage.set('parmsBoard', parms) 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /src/services/lenguajes.js: -------------------------------------------------------------------------------- 1 | export default { 2 | lenguajes: [ 3 | { 4 | label: 'Español', 5 | value: 'es' 6 | }, 7 | { 8 | label: 'Ingles', 9 | value: 'en' 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/services/lstorage.js: -------------------------------------------------------------------------------- 1 | export default { 2 | prefix: 'appName', 3 | lStorage: window.localStorage, 4 | setPrefix (name) { 5 | this.prefix = name 6 | }, 7 | get (name, value = false) { 8 | if (this.lStorage.getItem(this.prefix + '-' + name)) { 9 | return JSON.parse(this.lStorage.getItem(this.prefix + '-' + name)) 10 | } else { 11 | return this.set(name, value) 12 | } 13 | }, 14 | set (name, data) { 15 | this.lStorage.setItem(this.prefix + '-' + name, JSON.stringify(data)) 16 | return this.get(name) 17 | }, 18 | del (name) { 19 | this.lStorage.removeItem(this.prefix + '-' + name) 20 | }, 21 | clearLocal (reload = false) { 22 | var prefixRegex = new RegExp('^' + this.prefix) 23 | var store = this.lStorage 24 | Object.keys(store).forEach((key) => { 25 | if (prefixRegex.test(key)) { 26 | store.removeItem(key) 27 | } 28 | }) 29 | if (reload) { 30 | window.location.reload() 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/services/puzzle.js: -------------------------------------------------------------------------------- 1 | import Storage from './lstorage' 2 | export default { 3 | add (ctx, data) { 4 | return ctx.$http.post(Storage.get('serverDir') + '/puzzle', data).then(r => { 5 | if (r.status === 200) { 6 | return r.text() 7 | } else { 8 | return r.text().then(d => { 9 | throw d 10 | }) 11 | } 12 | }) 13 | }, 14 | del (ctx, data) { 15 | return ctx.$http.delete(Storage.get('serverDir') + '/puzzle/del/' + data).then(r => { 16 | if (r.status === 200) { 17 | return r.text() 18 | } else { 19 | return r.text().then(d => { 20 | throw d 21 | }) 22 | } 23 | }) 24 | }, 25 | get (ctx, data) { 26 | return ctx.$http.post(Storage.get('serverDir') + '/puzzle/get', data).then(r => { 27 | if (r.status === 200) { 28 | return r.text() 29 | } else { 30 | return r.text().then(d => { 31 | throw d 32 | }) 33 | } 34 | }) 35 | }, 36 | count (ctx) { 37 | return ctx.$http.get(Storage.get('serverDir') + '/puzzle/get').then(r => { 38 | if (r.status === 200) { 39 | return r.text() 40 | } else { 41 | return r.text().then(d => { 42 | throw d 43 | }) 44 | } 45 | }) 46 | }, 47 | resolve (ctx, data) { 48 | return ctx.$http.put(Storage.get('serverDir') + '/puzzle/get', data).then(r => { 49 | if (r.status === 200) { 50 | return r.text() 51 | } else { 52 | return r.text().then(d => { 53 | throw d 54 | }) 55 | } 56 | }) 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/services/user.js: -------------------------------------------------------------------------------- 1 | import Storage from './lstorage' 2 | export default { 3 | authenticate (ctx, data) { 4 | return ctx.$http.post(Storage.get('serverDir') + '/user/authenticate', data) 5 | }, 6 | signin (ctx, data) { 7 | if (data._id) { 8 | return ctx.$http.put(Storage.get('serverDir') + '/user/signin', data) 9 | } else { 10 | return ctx.$http.post(Storage.get('serverDir') + '/user/signin', data) 11 | } 12 | }, 13 | deleteImage (ctx, data) { 14 | return ctx.$http.put(Storage.get('serverDir') + '/chat/upload', data).then(r => { 15 | if (r.status === 200) { 16 | return r.text() 17 | } else { 18 | return r.text().then(d => { 19 | throw d 20 | }) 21 | } 22 | }) 23 | }, 24 | user: null, 25 | userShow: {}, 26 | setUserShow (some) { 27 | this.userShow = some 28 | }, 29 | getUser () { 30 | return Storage.get('user') 31 | }, 32 | setUser (newUser) { 33 | this.user = Storage.set('user', newUser) 34 | }, 35 | get (ctx, data) { 36 | return ctx.$http.get(Storage.get('serverDir') + '/user/' + data).then(r => { 37 | if (r.status === 200) { 38 | return r.text() 39 | } else { 40 | return r.text().then(d => { 41 | throw d 42 | }) 43 | } 44 | }) 45 | }, 46 | testUser (ctx, data) { 47 | return ctx.$http.post(Storage.get('serverDir') + '/user/test', data).then(r => { 48 | if (r.status === 200) { 49 | return r.text() 50 | } else { 51 | return r.text().then(d => { 52 | throw d 53 | }) 54 | } 55 | }) 56 | }, 57 | logout () { 58 | Storage.clearLocal(true) 59 | this.user = null 60 | }, 61 | init () { 62 | this.user = Storage.get('user') 63 | }, 64 | user_acces (perm = 'authenticate') { 65 | if (this.getUser() && perm !== 'authenticate') { 66 | return this.user.rol === perm 67 | } 68 | if (perm === 'authenticate') { 69 | if (this.getUser()) { 70 | return true 71 | } 72 | } 73 | return false 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/vuex/actions.js: -------------------------------------------------------------------------------- 1 | export const boardGameMove = makeAction('MOVE') 2 | export const boardGameTurn = makeAction('TURN') 3 | export const boardGameCountDown = makeAction('COUNTDOWN') 4 | export const setUser = makeAction('SETUSER') 5 | function makeAction (type) { 6 | return ({ dispatch }, ...args) => dispatch(type, ...args) 7 | } 8 | -------------------------------------------------------------------------------- /src/vuex/getters.js: -------------------------------------------------------------------------------- 1 | export function getGamePgn (state) { 2 | return state.boards.pgn 3 | } 4 | export function getGameTurn (state) { 5 | return state.boards.turn 6 | } 7 | export function getUser (state) { 8 | return state.user.user 9 | } 10 | export function getGameTimesUsers (state) { 11 | const times = { 12 | white: state.boards.twhite, 13 | black: state.boards.tblack 14 | } 15 | return times 16 | } 17 | -------------------------------------------------------------------------------- /src/vuex/modules/boards.js: -------------------------------------------------------------------------------- 1 | import {} from '../mutation-types' 2 | const state = { 3 | pgn: 'none', 4 | turn: 'none', 5 | twhite: 60 * 1, 6 | tblack: 60 * 1 7 | } 8 | const mutations = { 9 | MOVE (state, newPgn) { 10 | state.pgn = newPgn 11 | }, 12 | TURN (state, turnNow) { 13 | state.turn = turnNow 14 | }, 15 | COUNTDOWN (state, time, color) { 16 | state['t' + color] = time 17 | } 18 | } 19 | 20 | export default { 21 | state, 22 | mutations 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/vuex/modules/index.js: -------------------------------------------------------------------------------- 1 | const files = require.context('.', false, /\.js$/) 2 | let modules = {} 3 | 4 | files.keys().forEach((key) => { 5 | if (key === './index.js') return 6 | modules[key.replace(/(\.\/|\.js)/g, '')] = files(key).default 7 | }) 8 | 9 | export default modules 10 | -------------------------------------------------------------------------------- /src/vuex/modules/user.js: -------------------------------------------------------------------------------- 1 | import {} from '../mutation-types' 2 | const state = { 3 | user: {} 4 | } 5 | const mutations = { 6 | SETUSER (state, newValue, key) { 7 | if (key) { 8 | state.user[key] = newValue 9 | } else { 10 | state.user = newValue 11 | } 12 | } 13 | } 14 | 15 | export default { 16 | state, 17 | mutations 18 | } 19 | -------------------------------------------------------------------------------- /src/vuex/mutation-types.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/src/vuex/mutation-types.js -------------------------------------------------------------------------------- /src/vuex/store.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import modules from './modules' 4 | 5 | Vue.use(Vuex) 6 | 7 | export default new Vuex.Store({ 8 | modules, 9 | strict: true 10 | }) 11 | -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/.gitkeep -------------------------------------------------------------------------------- /static/base.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Chessground base css properties, for clarity. 3 | * 4 | * You can then include either desktop.css or mobile.css. 5 | * 6 | * And you need to include the css files in themes folder in order to have the 7 | * board and pieces displayed! 8 | */ 9 | 10 | .cg-board-wrap { 11 | width: 100%; 12 | height: 100%; 13 | } 14 | .cg-board { 15 | -webkit-user-select: none; 16 | -moz-user-select: none; 17 | -ms-user-select: none; 18 | user-select: none; 19 | line-height: 0; 20 | background-size: cover; 21 | position: relative; 22 | width: 100%; 23 | height: 100%; 24 | } 25 | square { 26 | position: absolute; 27 | width: 12.5%; 28 | height: 12.5%; 29 | } 30 | square[data-coord-x]::after { 31 | position: absolute; 32 | left: 1px; 33 | bottom: 1px; 34 | font-size: 10px; 35 | line-height: 10px; 36 | content: attr(data-coord-x); 37 | color: #fff; 38 | opacity: 0.5; 39 | } 40 | square[data-coord-y]::before { 41 | position: absolute; 42 | right: 1px; 43 | top: 1px; 44 | font-size: 10px; 45 | line-height: 10px; 46 | content: attr(data-coord-y); 47 | color: #fff; 48 | opacity: 0.5; 49 | } 50 | square.move-dest { 51 | background: radial-gradient(rgba(20, 85, 30, 0.5) 22%, #208530 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0); 52 | } 53 | square.premove-dest { 54 | background: radial-gradient(rgba(20, 30, 85, 0.5) 22%, #203085 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0); 55 | } 56 | square.last-move { 57 | background-color: rgba(155, 199, 0, 0.41); 58 | } 59 | square.selected { 60 | background-color: rgba(20, 85, 30, 0.5); 61 | } 62 | square.check { 63 | background: radial-gradient(ellipse at center, rgba(255, 0, 0, 1) 0%, rgba(231, 0, 0, 1) 25%, rgba(169, 0, 0, 0) 89%, rgba(158, 0, 0, 0) 100%); 64 | } 65 | square.current-premove { 66 | background-color: rgba(20, 30, 85, 0.5); 67 | } 68 | piece { 69 | position: absolute; 70 | bottom: 0; 71 | left: 0; 72 | width: 100%; 73 | height: 100%; 74 | background-size: cover; 75 | z-index: 2; 76 | will-change: transform; 77 | } 78 | piece.dragging { 79 | z-index: 9; 80 | } 81 | piece.ghost { 82 | opacity: 0.3; 83 | } 84 | .minimal-dom piece { 85 | position: absolute; 86 | width: 12.5%; 87 | height: 12.5%; 88 | } 89 | -------------------------------------------------------------------------------- /static/css/google-icons/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/css/google-icons/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2 -------------------------------------------------------------------------------- /static/css/google-icons/icon.css: -------------------------------------------------------------------------------- 1 | /* fallback */ 2 | @font-face { 3 | font-family: 'Material Icons'; 4 | font-style: normal; 5 | font-weight: 400; 6 | src: local('Material Icons'), local('MaterialIcons-Regular'), url(2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2) format('woff2'); 7 | } 8 | 9 | .material-icons { 10 | font-family: 'Material Icons'; 11 | font-weight: normal; 12 | font-style: normal; 13 | font-size: 24px; 14 | line-height: 1; 15 | letter-spacing: normal; 16 | text-transform: none; 17 | display: inline-block; 18 | white-space: nowrap; 19 | word-wrap: normal; 20 | direction: ltr; 21 | -webkit-font-feature-settings: 'liga'; 22 | -webkit-font-smoothing: antialiased; 23 | } 24 | -------------------------------------------------------------------------------- /static/desktop.css: -------------------------------------------------------------------------------- 1 | .cg-board { 2 | cursor: pointer; 3 | } 4 | .cg-board .cg-square.move-dest.drag-over, 5 | .cg-board .cg-square.premove-dest.drag-over { 6 | box-shadow: inset 0 0 10px 2px rgba(216, 85, 0, 0.9); 7 | } 8 | piece.dragging { 9 | cursor: move; 10 | } 11 | -------------------------------------------------------------------------------- /static/font/material-design-icons/Material-Design-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/material-design-icons/Material-Design-Icons.eot -------------------------------------------------------------------------------- /static/font/material-design-icons/Material-Design-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/material-design-icons/Material-Design-Icons.ttf -------------------------------------------------------------------------------- /static/font/material-design-icons/Material-Design-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/material-design-icons/Material-Design-Icons.woff -------------------------------------------------------------------------------- /static/font/material-design-icons/Material-Design-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/material-design-icons/Material-Design-Icons.woff2 -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Bold.eot -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Light.eot -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Medium.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Medium.eot -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Regular.eot -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Thin.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Thin.eot -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /static/font/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/font/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /static/images/board/3d/Light-Wood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/board/3d/Light-Wood.png -------------------------------------------------------------------------------- /static/images/board/blue2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/board/blue2.jpg -------------------------------------------------------------------------------- /static/images/board/marble.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/board/marble.jpg -------------------------------------------------------------------------------- /static/images/board/wood2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/board/wood2.jpg -------------------------------------------------------------------------------- /static/images/linux-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/linux-avatar.png -------------------------------------------------------------------------------- /static/images/pieces/cburnett/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/bK-full.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/wK-full.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/cburnett/wbK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/merida/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/merida/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/merida/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/merida/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/bB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/bK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/bN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/bP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/bQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/bR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/invert/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/wB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/wK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/wN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/wP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/wQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/pirouetti/wR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/Black-Bishop-Flipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/Black-Bishop-Flipped.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/Black-Bishop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/Black-Bishop.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/Black-King.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/Black-King.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/Black-Knight-Flipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/Black-Knight-Flipped.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/Black-Knight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/Black-Knight.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/Black-Pawn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/Black-Pawn.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/Black-Queen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/Black-Queen.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/Black-Rook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/Black-Rook.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/White-Bishop-Flipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/White-Bishop-Flipped.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/White-Bishop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/White-Bishop.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/White-King.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/White-King.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/White-Knight-Flipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/White-Knight-Flipped.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/White-Knight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/White-Knight.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/White-Pawn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/White-Pawn.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/White-Queen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/White-Queen.png -------------------------------------------------------------------------------- /static/images/pieces/staunton/basic/White-Rook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaYo/vue-chess/13d50b67f1e0bfe1897c1bf68fbb133c62d9ffbf/static/images/pieces/staunton/basic/White-Rook.png -------------------------------------------------------------------------------- /static/mobile.css: -------------------------------------------------------------------------------- 1 | .cg-square.selected { 2 | background: rgba(216, 85, 0, 0.3); 3 | } 4 | piece.dragging { 5 | width: 200%; 6 | height: 200%; 7 | top: -22.5px; 8 | left: -22.5px; 9 | } 10 | #cg-square-target { 11 | position: absolute; 12 | background-color: rgba(0, 0, 0, 0.2); 13 | border-radius: 50%; 14 | -webkit-transform: translate3d(0,0,0); 15 | z-index: 9; 16 | } 17 | -------------------------------------------------------------------------------- /static/style.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | margin:0; 3 | min-height: 100vh; 4 | height: 100vh; 5 | 6 | 7 | } 8 | body { 9 | margin:0; 10 | display: flex; 11 | flex-direction: column; 12 | min-height: 100vh; 13 | height: 100vh; 14 | 15 | 16 | 17 | } 18 | header { 19 | order: 1; 20 | flex-shrink: 0; 21 | flex-basis: 50px; 22 | background:red; 23 | } 24 | article { 25 | order: 2; 26 | overflow-y: scroll; 27 | background:green; 28 | flex-grow: 1; 29 | } 30 | footer { 31 | order: 3; 32 | 33 | flex-basis: 50px; 34 | min-height:50px; 35 | background:blue; 36 | 37 | 38 | 39 | } 40 | 41 | #ground1{ 42 | width:400px; 43 | height:400px; 44 | } -------------------------------------------------------------------------------- /test/e2e/custom-assertions/elementCount.js: -------------------------------------------------------------------------------- 1 | // A custom Nightwatch assertion. 2 | // the name of the method is the filename. 3 | // can be used in tests like this: 4 | // 5 | // browser.assert.elementCount(selector, count) 6 | // 7 | // for how to write custom assertions see 8 | // http://nightwatchjs.org/guide#writing-custom-assertions 9 | exports.assertion = function (selector, count) { 10 | this.message = 'Testing if element <' + selector + '> has count: ' + count 11 | this.expected = count 12 | this.pass = function (val) { 13 | return val === this.expected 14 | } 15 | this.value = function (res) { 16 | return res.value 17 | } 18 | this.command = function (cb) { 19 | var self = this 20 | return this.api.execute(function (selector) { 21 | return document.querySelectorAll(selector).length 22 | }, [selector], function (res) { 23 | cb.call(self, res) 24 | }) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/e2e/nightwatch.conf.js: -------------------------------------------------------------------------------- 1 | // http://nightwatchjs.org/guide#settings-file 2 | module.exports = { 3 | "src_folders": ["test/e2e/specs"], 4 | "output_folder": "test/e2e/reports", 5 | "custom_assertions_path": ["test/e2e/custom-assertions"], 6 | 7 | "selenium": { 8 | "start_process": true, 9 | "server_path": "node_modules/selenium-server/lib/runner/selenium-server-standalone-2.53.0.jar", 10 | "host": "127.0.0.1", 11 | "port": 4444, 12 | "cli_args": { 13 | "webdriver.chrome.driver": require('chromedriver').path 14 | } 15 | }, 16 | 17 | "test_settings": { 18 | "default": { 19 | "selenium_port": 4444, 20 | "selenium_host": "localhost", 21 | "silent": true 22 | }, 23 | 24 | "chrome": { 25 | "desiredCapabilities": { 26 | "browserName": "chrome", 27 | "javascriptEnabled": true, 28 | "acceptSslCerts": true 29 | } 30 | }, 31 | 32 | "firefox": { 33 | "desiredCapabilities": { 34 | "browserName": "firefox", 35 | "javascriptEnabled": true, 36 | "acceptSslCerts": true 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /test/e2e/runner.js: -------------------------------------------------------------------------------- 1 | // 1. start the dev server using production config 2 | process.env.NODE_ENV = 'testing' 3 | var server = require('../../build/dev-server.js') 4 | 5 | // 2. run the nightwatch test suite against it 6 | // to run in additional browsers: 7 | // 1. add an entry in test/e2e/nightwatch.conf.json under "test_settings" 8 | // 2. add it to the --env flag below 9 | // For more information on Nightwatch's config file, see 10 | // http://nightwatchjs.org/guide#settings-file 11 | var spawn = require('cross-spawn') 12 | var runner = spawn( 13 | './node_modules/.bin/nightwatch', 14 | [ 15 | '--config', 'test/e2e/nightwatch.conf.js', 16 | '--env', 'chrome,firefox' 17 | ], 18 | { 19 | stdio: 'inherit' 20 | } 21 | ) 22 | 23 | runner.on('exit', function (code) { 24 | server.close() 25 | process.exit(code) 26 | }) 27 | 28 | runner.on('error', function (err) { 29 | server.close() 30 | throw err 31 | }) 32 | -------------------------------------------------------------------------------- /test/e2e/specs/test.js: -------------------------------------------------------------------------------- 1 | // For authoring Nightwatch tests, see 2 | // http://nightwatchjs.org/guide#usage 3 | 4 | module.exports = { 5 | 'default e2e tests': function (browser) { 6 | browser 7 | .url('http://localhost:8080') 8 | .waitForElementVisible('#app', 5000) 9 | .assert.elementPresent('.logo') 10 | .assert.containsText('h1', 'Hello World!') 11 | .assert.elementCount('p', 3) 12 | .end() 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/unit/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "mocha": true 4 | }, 5 | "globals": { 6 | "expect": true, 7 | "sinon": true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /test/unit/index.js: -------------------------------------------------------------------------------- 1 | // Polyfill fn.bind() for PhantomJS 2 | /* eslint-disable no-extend-native */ 3 | Function.prototype.bind = require('function-bind') 4 | 5 | // require all test files (files that ends with .spec.js) 6 | var testsContext = require.context('./specs', true, /\.spec$/) 7 | testsContext.keys().forEach(testsContext) 8 | 9 | // require all src files except main.js for coverage. 10 | // you can also change this to match only the subset of files that 11 | // you want coverage for. 12 | var srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/) 13 | srcContext.keys().forEach(srcContext) 14 | -------------------------------------------------------------------------------- /test/unit/specs/Hello.spec.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Hello from 'src/components/Hello' 3 | 4 | describe('Hello.vue', () => { 5 | it('should render correct contents', () => { 6 | const vm = new Vue({ 7 | template: '
    ', 8 | components: { Hello } 9 | }).$mount() 10 | expect(vm.$el.querySelector('.hello h1').textContent).to.contain('Hello World!') 11 | }) 12 | }) 13 | --------------------------------------------------------------------------------