diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..d6515a7 --- /dev/null +++ b/.babelrc @@ -0,0 +1,8 @@ +{ + "presets": ["es2015", "stage-0", "react"], + "plugins": [ + ["module-alias", [ + { "src": "./src", "expose": "src" } + ]] + ] +} diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..f5778f1 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,4 @@ +{ + "parser": "babel-eslint", + "extends": "airbnb" +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..05c33d8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +# project specific +dist/ +lib/ + +# Git +.git + +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules +jspm_packages + +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history + +.DS_Store diff --git a/App.js b/App.js new file mode 100644 index 0000000..2d1707e --- /dev/null +++ b/App.js @@ -0,0 +1,10 @@ +import React from 'react'; +import Instant2FAComponent from './src/Instant2fa-component.jsx'; + +const App = () => ( +
+ +
+); + +export default App; diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6529613 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 MadaData + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..467d916 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Instant2fa-component diff --git a/index.html b/index.html new file mode 100644 index 0000000..d53681b --- /dev/null +++ b/index.html @@ -0,0 +1,11 @@ + + + + + Instant2fa-component + + +
+ + + diff --git a/index.js b/index.js new file mode 100644 index 0000000..99105d1 --- /dev/null +++ b/index.js @@ -0,0 +1,2 @@ +var Instant2FAComponent = require('./lib/Instant2fa-component').default; +module.exports = Instant2FAComponent; diff --git a/main.js b/main.js new file mode 100644 index 0000000..b84947f --- /dev/null +++ b/main.js @@ -0,0 +1,8 @@ +import React from 'react'; +import ReactDom from 'react-dom'; +import App from './App'; + +ReactDom.render( + , + document.getElementById('app') +); diff --git a/package.json b/package.json new file mode 100644 index 0000000..f900723 --- /dev/null +++ b/package.json @@ -0,0 +1,66 @@ +{ + "name": "instant2fa-component", + "version": "0.0.1", + "description": "", + "main": "index.js", + "scripts": { + "dev": "webpack-dev-server --inline --hot --port 3000", + "compile": "npm-run-all --parallel compile:source compile:postcss", + "compile:postcss": "postcss --use precss --use postcss-cssnext -d lib src/*.css", + "compile:source": "babel src --out-dir lib", + "prepublish": "npm-run-all clean compile", + "lint": "eslint src test --ext .jsx,.js", + "clean": "rimraf lib dist", + "test:watch": "mocha --watch", + "test": "mocha" + }, + "keywords": [], + "author": "Jesse Pollak", + "license": "MIT", + "config": { + "ghooks": { + "pre-commit": "npm run lint", + "pre-push": "npm run clean" + } + }, + "peerDependencies": { + "react": "15.x", + "react-dom": "15.x" + }, + "devDependencies": { + "babel-cli": "^6.18.0", + "babel-core": "^6.18.2", + "babel-eslint": "^7.1.1", + "babel-loader": "^6.2.8", + "babel-plugin-module-alias": "^1.6.0", + "babel-preset-es2015": "^6.18.0", + "babel-preset-react": "^6.16.0", + "babel-preset-react-hmre": "^1.1.1", + "babel-preset-stage-0": "^6.16.0", + "css-loader": "^0.26.0", + "enzyme": "^2.6.0", + "eslint": "^3.10.2", + "eslint-config-airbnb": "^13.0.0", + "eslint-plugin-import": "^2.2.0", + "eslint-plugin-jsx-a11y": "^3.0.1", + "eslint-plugin-react": "^6.7.1", + "expect": "^1.20.2", + "expect-jsx": "^2.6.0", + "file-loader": "^0.9.0", + "ghooks": "^1.3.2", + "ignore-styles": "^5.0.1", + "jsdom": "^9.8.3", + "mocha": "^3.1.2", + "npm-run-all": "^3.1.1", + "postcss": "^5.2.5", + "postcss-cli": "^2.6.0", + "postcss-cssnext": "^2.8.0", + "postcss-loader": "^1.1.1", + "precss": "^1.4.0", + "react-addons-test-utils": "^15.4.0", + "style-loader": "^0.13.1", + "url-loader": "^0.5.7", + "webpack": "^1.13.3", + "webpack-dev-server": "^1.16.2" + } +} diff --git a/src/Instant2fa-component.css b/src/Instant2fa-component.css new file mode 100644 index 0000000..24844ec --- /dev/null +++ b/src/Instant2fa-component.css @@ -0,0 +1 @@ +/* put your css here */ diff --git a/src/Instant2fa-component.jsx b/src/Instant2fa-component.jsx new file mode 100644 index 0000000..d2e5025 --- /dev/null +++ b/src/Instant2fa-component.jsx @@ -0,0 +1,5 @@ +import React from 'react'; + +const Instant2FAComponent = () =>
Instant2fa-component
; + +export default Instant2FAComponent; diff --git a/test/Instant2fa-component.spec.js b/test/Instant2fa-component.spec.js new file mode 100644 index 0000000..976ac84 --- /dev/null +++ b/test/Instant2fa-component.spec.js @@ -0,0 +1,20 @@ +/* eslint-disable */ +import React from 'react'; +import expect from 'expect'; +import expectJSX from 'expect-jsx'; +import { shallow } from 'enzyme'; +import { createRenderer } from 'react-addons-test-utils'; +import Instant2fa-component from '../src/Instant2fa-component'; + +expect.extend(expectJSX); + +/* eslint-disable no-undef */ +describe('Instant2fa-component', () => { + it('should work', () => { + + }); +}); + +/* eslint-enable */ +// remove eslint-disable and eslint-enable and enable when you start writing test +// keep eslint-disable no-undef. and remove the package you don't need. diff --git a/test/mocha.opts b/test/mocha.opts new file mode 100644 index 0000000..83487d0 --- /dev/null +++ b/test/mocha.opts @@ -0,0 +1,3 @@ +--require babel-register +--require ignore-styles +--require ./test/setup diff --git a/test/setup.js b/test/setup.js new file mode 100644 index 0000000..019485c --- /dev/null +++ b/test/setup.js @@ -0,0 +1,13 @@ +import jsdom from 'jsdom'; + +function setupDom() { + if (typeof document !== 'undefined') { + return; + } + + global.document = jsdom.jsdom(''); + global.window = document.defaultView; + global.navigator = window.navigator; +} + +setupDom(); diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..4316515 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,49 @@ +const cssnext = require('postcss-cssnext'); +const precss = require('precss'); +const path = require('path'); + +module.exports = { + entry: './main.js', + output: { + path: path.join(__dirname, 'dist'), + filename: 'index.js', + publicPath: '/dist/', + }, + extensions: [ + "", ".js", ".jsx", + ], + module: { + loaders: [ + { + test: /\.jsx?$/, + exclude: /node_modules/, + loader: 'babel', + query: { + presets: ['es2015', 'stage-0', 'react', 'react-hmre'], + } + }, + { + test: /\.css$/, + loader: 'style!css!postcss' + }, + { + test: /\.png$/, + loader: 'url-loader' + }, + { + test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, + loader: "url-loader?limit=10000&minetype=application/font-woff" + }, + { + test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, + loader: "file-loader" + } + ] + }, + postcss: function() { + return [ + precss, + cssnext + ]; + } +}