diff --git a/.gitignore b/.gitignore index b73b591..00d5924 100644 --- a/.gitignore +++ b/.gitignore @@ -20,9 +20,10 @@ coverage build/Release # Dependency directory -# Deployed apps should consider commenting this line out: +# Deployed apps should consider commenting these line out: # see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git -node_modules +node_modules/** +!node_modules/.gitkeep # Webpack output /dist diff --git a/docker-compose.local.yml b/docker-compose.local.yml new file mode 100644 index 0000000..5f4cc2d --- /dev/null +++ b/docker-compose.local.yml @@ -0,0 +1,45 @@ +version: "2" + +volumes: + web_npm_cache: + +services: + db: + image: mariadb + volumes: + - "./docker/mysql/:/docker-entrypoint-initdb.d/:ro" + environment: + MYSQL_ROOT_PASSWORD: testing + MYSQL_DATABASE: vizon + MYSQL_USER: vizonweb + MYSQL_PASSWORD: vizonweb + + phpmyadmin: + image: phpmyadmin/phpmyadmin + ports: + - "3001:80" + depends_on: + - db + environment: + PMA_HOST: "db" + + web: + # image: node:6-alpine + build: docker/node + command: sh ./docker/web.sh + volumes: + - ".:/src:ro" + - "web_npm_cache:/var/cache/npm" + - "/src/node_modules" + ports: + - "3000:3000" + working_dir: /src + environment: + NPM_CONFIG_CACHE: /var/cache/npm + PORT: "3000" + MYSQL_HOST: db + MYSQL_DATABASE: vizon + MYSQL_USER: vizonweb + MYSQL_PASSWORD: vizonweb + depends_on: + - db diff --git a/docker/mysql/00-structure.sql b/docker/mysql/00-structure.sql new file mode 100644 index 0000000..c9ca4c0 --- /dev/null +++ b/docker/mysql/00-structure.sql @@ -0,0 +1,88 @@ +-- MySQL Script generated by MySQL Workbench +-- 01/15/17 12:21:36 +-- Model: New Model Version: 1.0 +-- MySQL Workbench Forward Engineering + +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; + +-- ----------------------------------------------------- +-- Schema vizon +-- ----------------------------------------------------- + +-- ----------------------------------------------------- +-- Schema vizon +-- ----------------------------------------------------- +CREATE SCHEMA IF NOT EXISTS `vizon` DEFAULT CHARACTER SET latin1 ; +USE `vizon` ; + +-- ----------------------------------------------------- +-- Table `vizon`.`vizon_users` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `vizon`.`vizon_users` ( + `id` INT NOT NULL AUTO_INCREMENT, + `nick` VARCHAR(64) NOT NULL, + `vhost` VARCHAR(64) NULL, + `eligible` TINYINT(1) NULL DEFAULT 0, + `bold` TINYINT(1) NULL DEFAULT 0, + `expires` INT NULL DEFAULT -1, + `obtained` TIMESTAMP NULL, + `multiplier` INT NULL DEFAULT 1, + `jackpot` TINYINT(1) NULL DEFAULT 0, + `permanent` TINYINT(1) NULL DEFAULT 0, + `days` INT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE INDEX `nick_UNIQUE` (`nick` ASC)) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `vizon`.`vizon_drawings` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `vizon`.`vizon_drawings` ( + `id` INT NOT NULL AUTO_INCREMENT, + `first` INT NULL, + `second` INT NULL, + `third` INT NULL, + `fourth` INT NULL, + `fifth` INT NULL, + `sixth` INT NULL, + `drawing_date` TIMESTAMP NOT NULL, + PRIMARY KEY (`id`)) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `vizon`.`vizon_bets` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `vizon`.`vizon_bets` ( + `id` INT NOT NULL AUTO_INCREMENT, + `vizon_users_id` INT NOT NULL, + `vizon_drawings_id` INT NOT NULL, + `first` INT NOT NULL, + `second` INT NOT NULL, + `third` INT NOT NULL, + `fourth` INT NOT NULL, + `fifth` INT NOT NULL, + `sixth` INT NOT NULL, + `placed` TIMESTAMP NOT NULL DEFAULT NOW(), + PRIMARY KEY (`id`), + INDEX `fk_vizon_bets_vizon_users_idx` (`vizon_users_id` ASC), + INDEX `fk_vizon_bets_vizon_drawings1_idx` (`vizon_drawings_id` ASC), + CONSTRAINT `fk_vizon_bets_vizon_users` + FOREIGN KEY (`vizon_users_id`) + REFERENCES `vizon`.`vizon_users` (`id`) + ON DELETE CASCADE + ON UPDATE CASCADE, + CONSTRAINT `fk_vizon_bets_vizon_drawings1` + FOREIGN KEY (`vizon_drawings_id`) + REFERENCES `vizon`.`vizon_drawings` (`id`) + ON DELETE CASCADE + ON UPDATE CASCADE) +ENGINE = InnoDB; + + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; diff --git a/docker/mysql/10-data-vizon_drawings.sql b/docker/mysql/10-data-vizon_drawings.sql new file mode 100644 index 0000000..0f2fb52 --- /dev/null +++ b/docker/mysql/10-data-vizon_drawings.sql @@ -0,0 +1,36 @@ +-- phpMyAdmin SQL Dump +-- version 4.7.3 +-- https://www.phpmyadmin.net/ +-- +-- Host: db +-- Generation Time: Aug 22, 2017 at 08:02 PM +-- Server version: 10.2.8-MariaDB-10.2.8+maria~jessie +-- PHP Version: 7.0.21 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `vizon` +-- + +-- +-- Dumping data for table `vizon_drawings` +-- + +INSERT INTO `vizon_drawings` (`id`, `first`, `second`, `third`, `fourth`, `fifth`, `sixth`, `drawing_date`) VALUES +(1, 2, 4, 9, 11, 13, 24, '2017-08-12 00:00:00'), +(2, 1, 5, 15, 19, 22, 23, '2017-08-15 00:00:00'); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/docker/mysql/10-data-vizon_users.sql b/docker/mysql/10-data-vizon_users.sql new file mode 100644 index 0000000..caf02a3 --- /dev/null +++ b/docker/mysql/10-data-vizon_users.sql @@ -0,0 +1,36 @@ +-- phpMyAdmin SQL Dump +-- version 4.7.3 +-- https://www.phpmyadmin.net/ +-- +-- Host: db +-- Generation Time: Aug 22, 2017 at 08:02 PM +-- Server version: 10.2.8-MariaDB-10.2.8+maria~jessie +-- PHP Version: 7.0.21 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `vizon` +-- + +-- +-- Dumping data for table `vizon_users` +-- + +INSERT INTO `vizon_users` (`id`, `nick`, `vhost`, `eligible`, `bold`, `expires`, `obtained`, `multiplier`, `jackpot`, `permanent`, `days`) VALUES +(4, 'Icedream', '', 1, 0, -1, NULL, 1, 0, 0, 0), +(5, 'MAGIC', 'is.some.op', 0, 1, -1, '2017-03-08 00:00:00', 1, 0, 1, 0); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/docker/node/Dockerfile b/docker/node/Dockerfile new file mode 100644 index 0000000..2d9ed89 --- /dev/null +++ b/docker/node/Dockerfile @@ -0,0 +1,17 @@ +FROM node:7-alpine + +RUN \ + apk add --no-cache \ + gcc \ + g++ \ + musl-dev \ + python \ + openssl \ + curl \ + tar \ + make + +RUN npm install npm@5.x \ + && rm -rf /usr/local/lib/node_modules \ + && mv node_modules /usr/local/lib \ + && npm install -g npm@5.x diff --git a/docker/web.sh b/docker/web.sh new file mode 100755 index 0000000..a445433 --- /dev/null +++ b/docker/web.sh @@ -0,0 +1,3 @@ +#!/bin/sh -e +npm install +npm start diff --git a/index.js b/index.js new file mode 100644 index 0000000..f70272a --- /dev/null +++ b/index.js @@ -0,0 +1,34 @@ +const path = require('path'); +const express = require('express'); +const fs = require('fs'); +const bodyParser = require('body-parser'); + +const frontendDir = path.resolve(__dirname, 'dist'); + +const app = express(); + +app.set('port', (process.env.PORT || 3000)); + +fs.stat(frontendDir, (err) => { + if (!err) { + console.log(`Serving static build from ${frontendDir}`); + console.log('Run `npm run clean` to return to development mode'); + app.use('/', express.static(frontendDir)); + } else { + console.log('Serving development build with nwb middleware'); + console.log('Run `npm run build` to create a production build'); + + // eslint-disable-next-line import/no-extraneous-dependencies + app.use(require('nwb/express')(express, { + entry: 'src/index.jsx', + reload: true, + })); + } +}); + +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ extended: true })); + +app.listen(app.get('port'), () => { + console.log(`Server started: http://localhost:${app.get('port')}/`); +}); diff --git a/node_modules/.gitkeep b/node_modules/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/package-lock.json b/package-lock.json index 0c3ed4b..930b122 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "vizon-countdown-website", - "version": "0.1.0", + "version": "0.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -14,7 +14,6 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", - "dev": true, "requires": { "mime-types": "2.1.16", "negotiator": "0.6.1" @@ -306,7 +305,8 @@ "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true }, "asn1": { "version": "0.2.3", @@ -1680,7 +1680,6 @@ "version": "1.17.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=", - "dev": true, "requires": { "bytes": "2.4.0", "content-type": "1.0.2", @@ -1698,7 +1697,6 @@ "version": "2.6.7", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true, "requires": { "ms": "2.0.0" } @@ -1706,8 +1704,7 @@ "iconv-lite": { "version": "0.4.15", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", - "dev": true + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" } } }, @@ -1890,8 +1887,7 @@ "bytes": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", - "dev": true + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=" }, "caller-path": { "version": "0.1.0", @@ -2358,14 +2354,12 @@ "content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" }, "content-type": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=", - "dev": true + "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" }, "convert-source-map": { "version": "1.5.0", @@ -2376,14 +2370,12 @@ "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "copy-template-dir": { "version": "1.3.0", @@ -2548,6 +2540,7 @@ "version": "15.6.0", "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz", "integrity": "sha1-q0SEl8JlZuHilBPogyB9V8/nvtQ=", + "dev": true, "requires": { "fbjs": "0.8.14", "loose-envify": "1.3.1", @@ -2890,7 +2883,6 @@ "version": "2.6.8", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, "requires": { "ms": "2.0.0" } @@ -2904,7 +2896,8 @@ "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true }, "deep-is": { "version": "0.1.3", @@ -2958,8 +2951,7 @@ "depd": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", - "dev": true + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" }, "des.js": { "version": "1.0.0", @@ -2974,8 +2966,7 @@ "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "detect-indent": { "version": "4.0.0", @@ -3169,8 +3160,7 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { "version": "1.3.18", @@ -3208,13 +3198,13 @@ "encodeurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", - "dev": true + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" }, "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, "requires": { "iconv-lite": "0.4.18" } @@ -3470,8 +3460,7 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { "version": "1.0.5", @@ -3805,8 +3794,7 @@ "etag": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=", - "dev": true + "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=" }, "event-emitter": { "version": "0.3.5", @@ -3872,7 +3860,8 @@ "exenv": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=", + "dev": true }, "exit": { "version": "0.1.2", @@ -3961,7 +3950,6 @@ "version": "4.15.4", "resolved": "https://registry.npmjs.org/express/-/express-4.15.4.tgz", "integrity": "sha1-Ay4iU0ic+PzgJma+yj0R7XotrtE=", - "dev": true, "requires": { "accepts": "1.3.3", "array-flatten": "1.1.1", @@ -3996,14 +3984,12 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "qs": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz", - "integrity": "sha512-fjVFjW9yhqMhVGwRExCXLhJKrLlkYSaxNWdyc9rmHlrVZbk35YHH312dFd7191uQeXkI3mKLZTIbSvIeFwFemg==", - "dev": true + "integrity": "sha512-fjVFjW9yhqMhVGwRExCXLhJKrLlkYSaxNWdyc9rmHlrVZbk35YHH312dFd7191uQeXkI3mKLZTIbSvIeFwFemg==" } } }, @@ -4142,6 +4128,7 @@ "version": "0.8.14", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz", "integrity": "sha1-0dviviVMNakeCfMfnNUKQLKg7Rw=", + "dev": true, "requires": { "core-js": "1.2.7", "isomorphic-fetch": "2.2.1", @@ -4155,12 +4142,14 @@ "core-js": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true }, "promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, "requires": { "asap": "2.0.6" } @@ -4233,7 +4222,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz", "integrity": "sha512-16l/r8RgzlXKmFOhZpHBztvye+lAhC5SU7hXavnerC9UfZqZxxXl3BzL8MhffPT3kF61lj9Oav2LKEzh0ei7tg==", - "dev": true, "requires": { "debug": "2.6.8", "encodeurl": "1.0.1", @@ -4344,14 +4332,12 @@ "forwarded": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=", - "dev": true + "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" }, "fresh": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", - "dev": true + "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" }, "fs-access": { "version": "1.0.1", @@ -4790,6 +4776,7 @@ "version": "4.6.3", "resolved": "https://registry.npmjs.org/history/-/history-4.6.3.tgz", "integrity": "sha1-bXI6hxLFgda+836MJvSu3G64aWc=", + "dev": true, "requires": { "invariant": "2.2.2", "loose-envify": "1.3.1", @@ -4818,7 +4805,8 @@ "hoist-non-react-statics": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", - "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=" + "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=", + "dev": true }, "home-or-tmp": { "version": "2.0.0", @@ -4959,7 +4947,6 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "dev": true, "requires": { "depd": "1.1.1", "inherits": "2.0.3", @@ -5026,7 +5013,8 @@ "iconv-lite": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==" + "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", + "dev": true }, "icss-replace-symbols": { "version": "1.1.0", @@ -5059,6 +5047,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-2.3.1.tgz", "integrity": "sha1-jM/OkhVyCMEgsq+tftBcERFMCG4=", + "dev": true, "requires": { "invariant": "2.2.2" } @@ -5115,8 +5104,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "inquirer": { "version": "3.2.2", @@ -5205,6 +5193,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, "requires": { "loose-envify": "1.3.1" } @@ -5224,8 +5213,7 @@ "ipaddr.js": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", - "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=", - "dev": true + "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=" }, "is-absolute-url": { "version": "2.1.0", @@ -5491,7 +5479,8 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true }, "is-string": { "version": "1.0.4", @@ -5557,6 +5546,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dev": true, "requires": { "node-fetch": "1.7.2", "whatwg-fetch": "2.0.3" @@ -5668,7 +5658,8 @@ "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true }, "js-yaml": { "version": "3.9.1", @@ -6308,6 +6299,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, "requires": { "js-tokens": "3.0.2" } @@ -6386,8 +6378,7 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "mem": { "version": "1.1.0", @@ -6491,14 +6482,12 @@ "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { "version": "2.3.11", @@ -6540,14 +6529,12 @@ "mime-db": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", - "dev": true + "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" }, "mime-types": { "version": "2.1.16", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", - "dev": true, "requires": { "mime-db": "1.29.0" } @@ -6704,12 +6691,14 @@ "moment": { "version": "2.18.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", - "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" + "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=", + "dev": true }, "moment-timezone": { "version": "0.5.13", "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.13.tgz", "integrity": "sha1-mc5cfYJyYusPH3AgRBd/YHRde5A=", + "dev": true, "requires": { "moment": "2.18.1" } @@ -6717,8 +6706,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multicast-dns": { "version": "6.1.1", @@ -6766,8 +6754,7 @@ "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, "no-case": { "version": "2.3.1", @@ -6791,6 +6778,7 @@ "version": "1.7.2", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.2.tgz", "integrity": "sha512-xZZUq2yDhKMIn/UgG5q//IZSNLJIwW2QxS14CNH5spuiXkITM2pUitjdq58yLSaU7m4M0wBNaM2Gh/ggY4YJig==", + "dev": true, "requires": { "encoding": "0.1.12", "is-stream": "1.1.0" @@ -6959,7 +6947,8 @@ "normalize-scss": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/normalize-scss/-/normalize-scss-7.0.0.tgz", - "integrity": "sha1-kuqsZVTMN2M2wGaCoNaiCZu7CIk=" + "integrity": "sha1-kuqsZVTMN2M2wGaCoNaiCZu7CIk=", + "dev": true }, "normalize-url": { "version": "1.9.1", @@ -7226,7 +7215,8 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object-component": { "version": "0.0.3", @@ -7284,7 +7274,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, "requires": { "ee-first": "1.1.1" } @@ -7550,8 +7539,7 @@ "parseurl": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", - "dev": true + "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" }, "path-browserify": { "version": "0.0.0", @@ -7595,8 +7583,7 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "path-type": { "version": "2.0.0", @@ -8873,12 +8860,14 @@ "preact": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.1.tgz", - "integrity": "sha1-Z0JD3wyEeITQGYNARKovzTEecu0=" + "integrity": "sha1-Z0JD3wyEeITQGYNARKovzTEecu0=", + "dev": true }, "preact-compat": { "version": "3.17.0", "resolved": "https://registry.npmjs.org/preact-compat/-/preact-compat-3.17.0.tgz", "integrity": "sha1-Uoz9/DARkMGg9HVnM2vh9L4CZrM=", + "dev": true, "requires": { "immutability-helper": "2.3.1", "preact-render-to-string": "3.6.3", @@ -8891,6 +8880,7 @@ "version": "3.6.3", "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-3.6.3.tgz", "integrity": "sha1-SB0NW9rJGS0zR1V0N9XNAKoxIEM=", + "dev": true, "requires": { "pretty-format": "3.8.0" } @@ -8898,7 +8888,8 @@ "preact-transition-group": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/preact-transition-group/-/preact-transition-group-1.1.1.tgz", - "integrity": "sha1-8KSTJ+pRXs406ivoZMSn0p5dbhA=" + "integrity": "sha1-8KSTJ+pRXs406ivoZMSn0p5dbhA=", + "dev": true }, "prelude-ls": { "version": "1.1.2", @@ -8931,7 +8922,8 @@ "pretty-format": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", - "integrity": "sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=" + "integrity": "sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=", + "dev": true }, "private": { "version": "0.1.7", @@ -8970,6 +8962,7 @@ "version": "15.5.10", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz", "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=", + "dev": true, "requires": { "fbjs": "0.8.14", "loose-envify": "1.3.1" @@ -8979,7 +8972,6 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", - "dev": true, "requires": { "forwarded": "0.1.0", "ipaddr.js": "1.4.0" @@ -9041,8 +9033,7 @@ "qs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" }, "query-string": { "version": "4.3.4", @@ -9125,14 +9116,12 @@ "range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "raw-body": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=", - "dev": true, "requires": { "bytes": "2.4.0", "iconv-lite": "0.4.15", @@ -9142,8 +9131,7 @@ "iconv-lite": { "version": "0.4.15", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", - "dev": true + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" } } }, @@ -9151,6 +9139,7 @@ "version": "15.6.1", "resolved": "https://registry.npmjs.org/react/-/react-15.6.1.tgz", "integrity": "sha1-uqhDTsZ4C96ZfNw4C3nNM7ljk98=", + "dev": true, "requires": { "create-react-class": "15.6.0", "fbjs": "0.8.14", @@ -9169,6 +9158,7 @@ "version": "15.6.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz", "integrity": "sha1-LLDtQZEDjlPCCes6eaI+Kkz5lHA=", + "dev": true, "requires": { "fbjs": "0.8.14", "loose-envify": "1.3.1", @@ -9180,6 +9170,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/react-fontawesome/-/react-fontawesome-1.6.1.tgz", "integrity": "sha1-7dzhfn3HMaoJ/UoYZoimF5OhbFw=", + "dev": true, "requires": { "prop-types": "15.5.10" } @@ -9188,6 +9179,7 @@ "version": "5.1.3", "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-5.1.3.tgz", "integrity": "sha1-zUBiZZOinuz2hLbTjXEfRMSBiK8=", + "dev": true, "requires": { "deep-equal": "1.0.1", "object-assign": "4.1.1", @@ -9209,6 +9201,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.1.2.tgz", "integrity": "sha512-VyM87OP+GkijVkkOXJw39A9fKtFelLoZYYDxtELhpZefjYatxI2SUxZcImo/9Tv52rR9UnNJBPSBpVRQMdvi8A==", + "dev": true, "requires": { "history": "4.6.3", "hoist-non-react-statics": "1.2.0", @@ -9222,12 +9215,14 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "path-to-regexp": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, "requires": { "isarray": "0.0.1" } @@ -9238,6 +9233,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.1.3.tgz", "integrity": "sha1-USwlq+DewXKDTEAB7FxR4E1BvFw=", + "dev": true, "requires": { "exenv": "1.2.2", "shallowequal": "1.0.2" @@ -9643,7 +9639,8 @@ "resolve-pathname": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.1.0.tgz", - "integrity": "sha1-6DWIAbhrg7F1YNTjw4LXrvIQCUQ=" + "integrity": "sha1-6DWIAbhrg7F1YNTjw4LXrvIQCUQ=", + "dev": true }, "resolve-url": { "version": "0.2.1", @@ -10012,7 +10009,6 @@ "version": "0.15.4", "resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz", "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", - "dev": true, "requires": { "debug": "2.6.8", "depd": "1.1.1", @@ -10032,8 +10028,7 @@ "mime": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", - "dev": true + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" } } }, @@ -10056,7 +10051,6 @@ "version": "1.12.4", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz", "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", - "dev": true, "requires": { "encodeurl": "1.0.1", "escape-html": "1.0.3", @@ -10079,13 +10073,13 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true }, "setprototypeof": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", - "dev": true + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" }, "sha.js": { "version": "2.4.8", @@ -10128,7 +10122,8 @@ "shallowequal": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.0.2.tgz", - "integrity": "sha512-zlVXeVUKvo+HEv1e2KQF/csyeMKx2oHvatQ9l6XjCUj3agvC8XGf6R9HvIPDSmp8FNPvx7b5kaEJTRi7CqxtEw==" + "integrity": "sha512-zlVXeVUKvo+HEv1e2KQF/csyeMKx2oHvatQ9l6XjCUj3agvC8XGf6R9HvIPDSmp8FNPvx7b5kaEJTRi7CqxtEw==", + "dev": true }, "shebang-command": { "version": "1.2.0", @@ -10509,13 +10504,13 @@ "standalone-react-addons-pure-render-mixin": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz", - "integrity": "sha1-PHQJ9MecQN6axyxhbPZ5qZTzdVE=" + "integrity": "sha1-PHQJ9MecQN6axyxhbPZ5qZTzdVE=", + "dev": true }, "statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" }, "stdout-stream": { "version": "1.4.0", @@ -10935,7 +10930,6 @@ "version": "1.6.15", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", - "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "2.1.16" @@ -10950,7 +10944,8 @@ "ua-parser-js": { "version": "0.7.14", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.14.tgz", - "integrity": "sha1-EQ1T+kw/MmwSEpK76skE0uAzh8o=" + "integrity": "sha1-EQ1T+kw/MmwSEpK76skE0uAzh8o=", + "dev": true }, "uglify-js": { "version": "3.0.27", @@ -11029,8 +11024,7 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "upper-case": { "version": "1.1.3", @@ -11146,8 +11140,7 @@ "utils-merge": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", - "dev": true + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" }, "uuid": { "version": "3.1.0", @@ -11177,13 +11170,13 @@ "value-equal": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.2.1.tgz", - "integrity": "sha1-wiCjBDYfzmmU277ao8fhobiVhx0=" + "integrity": "sha1-wiCjBDYfzmmU277ao8fhobiVhx0=", + "dev": true }, "vary": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", - "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=", - "dev": true + "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=" }, "vendors": { "version": "1.0.1", @@ -11229,6 +11222,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "dev": true, "requires": { "loose-envify": "1.3.1" } @@ -11256,7 +11250,8 @@ "webfontloader": { "version": "1.6.28", "resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz", - "integrity": "sha1-23hhKSU8tujq5UwvsF+HCvZnW64=" + "integrity": "sha1-23hhKSU8tujq5UwvsF+HCvZnW64=", + "dev": true }, "webpack": { "version": "3.4.1", @@ -11674,7 +11669,8 @@ "whatwg-fetch": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=", + "dev": true }, "whet.extend": { "version": "0.9.9", diff --git a/package.json b/package.json index bafa467..51fda19 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,24 @@ { "name": "vizon-countdown-website", - "version": "0.1.0", + "version": "0.2.0", "description": "Website for a countdown to the next draw on VIzon", "private": true, - "main": "src/index.jsx", + "main": "./index.js", "scripts": { "build": "nwb build-react-app ./src --preact", "clean": "nwb clean-app", - "start": "nwb serve-react-app ./src", - "test": "nwb test-react", + "docker-compose": "docker-compose -f docker-compose.local.yml", + "docker:down:clean": "npm run -s docker:down -- --rmi all -v", + "docker:down": "npm run -s docker-compose -- down", + "docker:up:daemon": "npm run -s docker:up -- -d", + "docker:up": "npm run -s docker-compose -- up --build", + "docker": "npm run -s docker:up", + "lint": "eslint .", + "prepare": "npm run -s build", + "start": "node .", "test:coverage": "nwb test-react --coverage", "test:watch": "nwb test-react --server", - "lint": "eslint ." + "test": "nwb test-react" }, "repository": { "type": "git", @@ -24,35 +31,43 @@ "draw", "countdown" ], + "bin": "./index.js", + "files": [ + "dist", + "index.js", + "README.md" + ], "author": "Carl Kittelberger ", "license": "UNLICENSED", "devDependencies": { "babel-eslint": "^7.2.3", "babel-plugin-transform-class-properties": "^6.24.1", "babel-preset-env": "^1.6.0", - "eslint": "^4.5.0", "eslint-config-airbnb": "^15.1.0", "eslint-plugin-babel": "^4.1.2", "eslint-plugin-import": "^2.7.0", "eslint-plugin-json": "^1.2.0", "eslint-plugin-jsx-a11y": "^5.1.1", "eslint-plugin-react": "^7.2.1", + "eslint": "^4.5.0", "file-loader": "^0.11.2", - "nwb": "^0.18.10", - "nwb-sass": "^0.8.1", - "resolve-url-loader": "^2.1.0" - }, - "dependencies": { "moment-timezone": "^0.5.13", "normalize-scss": "^7.0.0", - "preact": "^8.2.1", + "nwb-sass": "^0.8.1", + "nwb": "^0.18.10", "preact-compat": "^3.17.0", + "preact": "^8.2.1", "prop-types": "^15.5.10", - "react": "^15.6.1", "react-dom": "^15.6.1", "react-fontawesome": "^1.6.1", "react-helmet": "^5.1.3", "react-router": "^4.1.2", + "react": "^15.6.1", + "resolve-url-loader": "^2.1.0", "webfontloader": "^1.6.28" + }, + "dependencies": { + "body-parser": "^1.17.2", + "express": "^4.15.4" } }