mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
Merge pull request #95 from tailwindcss/Add-ESLint-and-Prettier
Add ESLint and Prettier formatting and run initial formatting
This commit is contained in:
commit
05b5bbd741
3
.eslintignore
Normal file
3
.eslintignore
Normal file
@ -0,0 +1,3 @@
|
||||
/lib
|
||||
/docs
|
||||
defaultConfig.js
|
||||
26
.eslintrc
Normal file
26
.eslintrc
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"env": {
|
||||
"jest": true
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 6,
|
||||
"sourceType": "module"
|
||||
},
|
||||
"extends": ["eslint-config-postcss", "prettier"],
|
||||
"plugins": ["prettier"],
|
||||
"rules": {
|
||||
"prettier/prettier": [
|
||||
"error",
|
||||
{
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"printWidth": 100,
|
||||
"tabWidth": 2,
|
||||
"useTabs": false,
|
||||
"trailingComma": "es5",
|
||||
"bracketSpacing": true,
|
||||
"parser": "flow"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -2,20 +2,20 @@ import postcss from 'postcss'
|
||||
import plugin from '../src/lib/substituteClassApplyAtRules'
|
||||
|
||||
function run(input, opts = () => {}) {
|
||||
return postcss([plugin(opts)]).process(input)
|
||||
return postcss([plugin(opts)]).process(input)
|
||||
}
|
||||
|
||||
test("it copies a class's declarations into itself", () => {
|
||||
const output = '.a { color: red; } .b { color: red; }'
|
||||
const output = '.a { color: red; } .b { color: red; }'
|
||||
|
||||
return run('.a { color: red; } .b { @apply .a; }').then(result => {
|
||||
expect(result.css).toEqual(output)
|
||||
expect(result.warnings().length).toBe(0)
|
||||
})
|
||||
return run('.a { color: red; } .b { @apply .a; }').then(result => {
|
||||
expect(result.css).toEqual(output)
|
||||
expect(result.warnings().length).toBe(0)
|
||||
})
|
||||
})
|
||||
|
||||
test("it doesn't copy a media query definition into itself", () => {
|
||||
const output = `.a {
|
||||
const output = `.a {
|
||||
color: red;
|
||||
}
|
||||
|
||||
@ -27,8 +27,8 @@ test("it doesn't copy a media query definition into itself", () => {
|
||||
color: red;
|
||||
}`
|
||||
|
||||
return run(
|
||||
`.a {
|
||||
return run(
|
||||
`.a {
|
||||
color: red;
|
||||
}
|
||||
|
||||
@ -38,15 +38,15 @@ test("it doesn't copy a media query definition into itself", () => {
|
||||
|
||||
.b {
|
||||
@apply .a;
|
||||
}`)
|
||||
.then(result => {
|
||||
expect(result.css).toEqual(output)
|
||||
expect(result.warnings().length).toBe(0)
|
||||
})
|
||||
}`
|
||||
).then(result => {
|
||||
expect(result.css).toEqual(output)
|
||||
expect(result.warnings().length).toBe(0)
|
||||
})
|
||||
})
|
||||
|
||||
test('it fails if the class does not exist', () => {
|
||||
run('.b { @apply .a; }').catch(error => {
|
||||
expect(error.reason).toEqual('No .a class found.')
|
||||
})
|
||||
run('.b { @apply .a; }').catch(error => {
|
||||
expect(error.reason).toEqual('No .a class found.')
|
||||
})
|
||||
})
|
||||
|
||||
@ -5,7 +5,7 @@ function run(input, opts = {}) {
|
||||
return postcss([plugin(() => opts)]).process(input)
|
||||
}
|
||||
|
||||
test("it looks up values in the config using dot notation", () => {
|
||||
test('it looks up values in the config using dot notation', () => {
|
||||
const input = `
|
||||
.banana { color: config('colors.yellow'); }
|
||||
`
|
||||
@ -17,14 +17,14 @@ test("it looks up values in the config using dot notation", () => {
|
||||
return run(input, {
|
||||
colors: {
|
||||
yellow: '#f7cc50',
|
||||
}
|
||||
},
|
||||
}).then(result => {
|
||||
expect(result.css).toEqual(output)
|
||||
expect(result.warnings().length).toBe(0)
|
||||
})
|
||||
})
|
||||
|
||||
test("quotes are optional around the lookup path", () => {
|
||||
test('quotes are optional around the lookup path', () => {
|
||||
const input = `
|
||||
.banana { color: config(colors.yellow); }
|
||||
`
|
||||
@ -36,14 +36,14 @@ test("quotes are optional around the lookup path", () => {
|
||||
return run(input, {
|
||||
colors: {
|
||||
yellow: '#f7cc50',
|
||||
}
|
||||
},
|
||||
}).then(result => {
|
||||
expect(result.css).toEqual(output)
|
||||
expect(result.warnings().length).toBe(0)
|
||||
})
|
||||
})
|
||||
|
||||
test("a default value can be provided", () => {
|
||||
test('a default value can be provided', () => {
|
||||
const input = `
|
||||
.cookieMonster { color: config('colors.blue', #0000ff); }
|
||||
`
|
||||
@ -55,14 +55,14 @@ test("a default value can be provided", () => {
|
||||
return run(input, {
|
||||
colors: {
|
||||
yellow: '#f7cc50',
|
||||
}
|
||||
},
|
||||
}).then(result => {
|
||||
expect(result.css).toEqual(output)
|
||||
expect(result.warnings().length).toBe(0)
|
||||
})
|
||||
})
|
||||
|
||||
test("quotes are preserved around default values", () => {
|
||||
test('quotes are preserved around default values', () => {
|
||||
const input = `
|
||||
.heading { font-family: config('fonts.sans', "Helvetica Neue"); }
|
||||
`
|
||||
@ -73,8 +73,8 @@ test("quotes are preserved around default values", () => {
|
||||
|
||||
return run(input, {
|
||||
fonts: {
|
||||
serif: "Constantia",
|
||||
}
|
||||
serif: 'Constantia',
|
||||
},
|
||||
}).then(result => {
|
||||
expect(result.css).toEqual(output)
|
||||
expect(result.warnings().length).toBe(0)
|
||||
|
||||
@ -1,6 +1,3 @@
|
||||
import postcss from 'postcss'
|
||||
import fs from 'fs'
|
||||
import _ from 'lodash'
|
||||
import c from '../src/util/collapseWhitespace'
|
||||
import defineClass from '../src/util/defineClass'
|
||||
|
||||
@ -8,21 +5,23 @@ import defineClass from '../src/util/defineClass'
|
||||
* Tests
|
||||
*/
|
||||
it('creates a proper single-word class with rules', () => {
|
||||
let output = defineClass('flex', {display: 'flex'})
|
||||
let output = defineClass('flex', { display: 'flex' })
|
||||
expect(c(output.toString())).toEqual(`.flex { display: flex }`)
|
||||
})
|
||||
|
||||
it('does not modify the case of selector names', () => {
|
||||
let output = defineClass('inlineBlock', {display: 'inline-block'})
|
||||
let output = defineClass('inlineBlock', { display: 'inline-block' })
|
||||
expect(c(output.toString())).toEqual(`.inlineBlock { display: inline-block }`)
|
||||
})
|
||||
|
||||
it('does not modify the case of property names', () => {
|
||||
let output = defineClass('smooth', {'-webkit-font-smoothing': 'antialiased'})
|
||||
let output = defineClass('smooth', {
|
||||
'-webkit-font-smoothing': 'antialiased',
|
||||
})
|
||||
expect(c(output.toString())).toEqual(`.smooth { -webkit-font-smoothing: antialiased }`)
|
||||
})
|
||||
|
||||
it('escapes non-standard characters in selectors', () => {
|
||||
let output = defineClass('w-1/4', {'width': '25%'})
|
||||
let output = defineClass('w-1/4', { width: '25%' })
|
||||
expect(c(output.toString())).toEqual(`.w-1\\/4 { width: 25% }`)
|
||||
})
|
||||
|
||||
@ -1,6 +1,3 @@
|
||||
import postcss from 'postcss'
|
||||
import fs from 'fs'
|
||||
import _ from 'lodash'
|
||||
import c from '../src/util/collapseWhitespace'
|
||||
import defineClasses from '../src/util/defineClasses'
|
||||
|
||||
@ -9,7 +6,7 @@ import defineClasses from '../src/util/defineClasses'
|
||||
*/
|
||||
it('it generates a set of helper classes from a config', () => {
|
||||
let output = defineClasses({
|
||||
'flex': {
|
||||
flex: {
|
||||
display: 'flex',
|
||||
},
|
||||
'inline-flex': {
|
||||
|
||||
@ -5,7 +5,7 @@ function run(input, opts = () => {}) {
|
||||
return postcss([plugin(opts)]).process(input)
|
||||
}
|
||||
|
||||
test("it adds a focusable variant to each nested class definition", () => {
|
||||
test('it adds a focusable variant to each nested class definition', () => {
|
||||
const input = `
|
||||
@focusable {
|
||||
.banana { color: yellow; }
|
||||
|
||||
@ -5,7 +5,7 @@ function run(input, opts = () => {}) {
|
||||
return postcss([plugin(opts)]).process(input)
|
||||
}
|
||||
|
||||
test("it adds a hoverable variant to each nested class definition", () => {
|
||||
test('it adds a hoverable variant to each nested class definition', () => {
|
||||
const input = `
|
||||
@hoverable {
|
||||
.banana { color: yellow; }
|
||||
|
||||
@ -12,7 +12,10 @@ it('generates the right CSS', () => {
|
||||
return postcss([tailwind()])
|
||||
.process(input)
|
||||
.then(result => {
|
||||
const expected = fs.readFileSync(path.resolve(`${__dirname}/fixtures/tailwind-output.css`), 'utf8')
|
||||
const expected = fs.readFileSync(
|
||||
path.resolve(`${__dirname}/fixtures/tailwind-output.css`),
|
||||
'utf8'
|
||||
)
|
||||
|
||||
expect(result.css).toBe(expected)
|
||||
})
|
||||
|
||||
12
package.json
12
package.json
@ -20,7 +20,8 @@
|
||||
"babelify": "babel src --out-dir lib",
|
||||
"prepare": "npm run babelify && babel-node src/build.js",
|
||||
"watch": "nodemon -e js,css --watch src --exec 'babel-node src/build.js'",
|
||||
"test": "jest"
|
||||
"style": "eslint .",
|
||||
"test": "jest && eslint ."
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^7.1.6",
|
||||
@ -32,7 +33,12 @@
|
||||
"babel-preset-stage-2": "^6.24.1",
|
||||
"babel-preset-stage-3": "^6.24.1",
|
||||
"clean-css": "^4.1.9",
|
||||
"eslint": "^4.10.0",
|
||||
"eslint-config-postcss": "^2.0.2",
|
||||
"eslint-config-prettier": "^2.7.0",
|
||||
"eslint-plugin-prettier": "^2.3.1",
|
||||
"jest": "^20.0.4",
|
||||
"prettier": "^1.7.4",
|
||||
"rimraf": "^2.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
@ -44,9 +50,7 @@
|
||||
"postcss-functions": "^3.0.0",
|
||||
"stylefmt": "^6.0.0"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%"
|
||||
],
|
||||
"browserslist": ["> 1%"],
|
||||
"babel": {
|
||||
"presets": [
|
||||
[
|
||||
|
||||
@ -8,10 +8,9 @@ function buildDistFile(filename) {
|
||||
console.log(`Processing ./css/${filename}.css...`)
|
||||
|
||||
fs.readFile(`./css/${filename}.css`, (err, css) => {
|
||||
return postcss([
|
||||
tailwind(),
|
||||
require('autoprefixer'),
|
||||
])
|
||||
if (err) throw err
|
||||
|
||||
return postcss([tailwind(), require('autoprefixer')])
|
||||
.process(css, {
|
||||
from: `./css/${filename}.css`,
|
||||
to: `./dist/${filename}.css`,
|
||||
@ -46,4 +45,3 @@ Promise.all([
|
||||
]).then(() => {
|
||||
console.log('Finished Building Tailwind!')
|
||||
})
|
||||
|
||||
|
||||
53
src/cli.js
53
src/cli.js
@ -1,19 +1,19 @@
|
||||
#!/usr/bin/env node
|
||||
/* eslint-disable no-process-exit */
|
||||
|
||||
import fs from 'fs-extra'
|
||||
import _ from 'lodash'
|
||||
import path from 'path'
|
||||
import postcss from 'postcss'
|
||||
import defaultConfig from '../defaultConfig'
|
||||
import program from 'commander'
|
||||
import fs from 'fs-extra'
|
||||
import tailwind from '..'
|
||||
import postcss from 'postcss'
|
||||
import process from 'process'
|
||||
import program from 'commander'
|
||||
|
||||
function loadConfig(configPath) {
|
||||
if (configPath === undefined) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
if (! fs.existsSync(path.resolve(configPath))) {
|
||||
if (!fs.existsSync(path.resolve(configPath))) {
|
||||
console.error(`Config file [${configPath}] does not exist.`)
|
||||
process.exit(1)
|
||||
}
|
||||
@ -23,11 +23,11 @@ function loadConfig(configPath) {
|
||||
|
||||
function writeStrategy(options) {
|
||||
if (options.output === undefined) {
|
||||
return (output) => {
|
||||
return output => {
|
||||
process.stdout.write(output)
|
||||
}
|
||||
}
|
||||
return (output) => {
|
||||
return output => {
|
||||
fs.outputFileSync(options.output, output)
|
||||
}
|
||||
}
|
||||
@ -46,16 +46,17 @@ function buildTailwind(inputFile, config, write) {
|
||||
.catch(error => console.log(error))
|
||||
}
|
||||
|
||||
const packageJson = require(path.resolve(__dirname + '/../package.json'))
|
||||
const packageJson = require(path.resolve(__dirname, '/../package.json'))
|
||||
|
||||
program.version(packageJson.version).usage('<command> [<args>]')
|
||||
|
||||
program.command('init [filename]')
|
||||
program
|
||||
.command('init [filename]')
|
||||
.usage('[options] [filename]')
|
||||
.action(function (filename = 'tailwind.js') {
|
||||
.action((filename = 'tailwind.js') => {
|
||||
let destination = path.resolve(filename)
|
||||
|
||||
if (! path.extname(filename).includes('.js')) {
|
||||
|
||||
if (!path.extname(filename).includes('.js')) {
|
||||
destination += '.js'
|
||||
}
|
||||
|
||||
@ -64,40 +65,40 @@ program.command('init [filename]')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const output = fs.readFileSync(path.resolve(__dirname + '/../defaultConfig.js'), 'utf8')
|
||||
const output = fs.readFileSync(path.resolve(__dirname, '/../defaultConfig.js'), 'utf8')
|
||||
fs.outputFileSync(destination, output.replace('// var defaultConfig', 'var defaultConfig'))
|
||||
process.exit()
|
||||
})
|
||||
|
||||
program.command('build')
|
||||
program
|
||||
.command('build')
|
||||
.usage('[options] <file ...>')
|
||||
.option('-c, --config [path]', 'Path to config file')
|
||||
.option('-o, --output [path]', 'Output file')
|
||||
.action(function (file, options) {
|
||||
.action((file, options) => {
|
||||
let inputFile = program.args[0]
|
||||
|
||||
if (! inputFile) {
|
||||
if (!inputFile) {
|
||||
console.error('No input file given!')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
buildTailwind(inputFile, loadConfig(options.config), writeStrategy(options))
|
||||
.then(function () {
|
||||
process.exit()
|
||||
})
|
||||
buildTailwind(inputFile, loadConfig(options.config), writeStrategy(options)).then(() => {
|
||||
process.exit()
|
||||
})
|
||||
})
|
||||
|
||||
program.command('*', null, {
|
||||
noHelp: true
|
||||
program
|
||||
.command('*', null, {
|
||||
noHelp: true,
|
||||
})
|
||||
.action(function () {
|
||||
.action(() => {
|
||||
program.help()
|
||||
})
|
||||
|
||||
|
||||
program.parse(process.argv)
|
||||
|
||||
if (program.args.length === 0 ) {
|
||||
if (program.args.length === 0) {
|
||||
program.help()
|
||||
process.exit()
|
||||
}
|
||||
|
||||
@ -2,10 +2,12 @@ import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
import hoverable from '../util/hoverable'
|
||||
|
||||
export default function ({ backgroundColors }) {
|
||||
return hoverable(_.map(backgroundColors, (color, className) => {
|
||||
return defineClass(`bg-${className}`, {
|
||||
'background-color': color,
|
||||
export default function({ backgroundColors }) {
|
||||
return hoverable(
|
||||
_.map(backgroundColors, (color, className) => {
|
||||
return defineClass(`bg-${className}`, {
|
||||
'background-color': color,
|
||||
})
|
||||
})
|
||||
}))
|
||||
)
|
||||
}
|
||||
|
||||
@ -2,10 +2,12 @@ import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
import hoverable from '../util/hoverable'
|
||||
|
||||
export default function ({ borderColors }) {
|
||||
return hoverable(_.map(_.omit(borderColors, 'default'), (color, className) => {
|
||||
return defineClass(`border-${className}`, {
|
||||
'border-color': color,
|
||||
export default function({ borderColors }) {
|
||||
return hoverable(
|
||||
_.map(_.omit(borderColors, 'default'), (color, className) => {
|
||||
return defineClass(`border-${className}`, {
|
||||
'border-color': color,
|
||||
})
|
||||
})
|
||||
}))
|
||||
)
|
||||
}
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
import defineClasses from '../util/defineClasses'
|
||||
|
||||
function defaultBorder(width, color) {
|
||||
return defineClasses({
|
||||
'border': {
|
||||
'border': `${width} solid ${color}`,
|
||||
border: {
|
||||
border: `${width} solid ${color}`,
|
||||
},
|
||||
'border-t': {
|
||||
'border-top': `${width} solid ${color}`,
|
||||
@ -23,11 +22,11 @@ function defaultBorder(width, color) {
|
||||
}
|
||||
|
||||
function sizedBorder(size, width, color) {
|
||||
const style = width == 0 ? '0' : `${width} solid ${color}`
|
||||
const style = width == 0 ? '0' : `${width} solid ${color}` // eslint-disable-line eqeqeq
|
||||
|
||||
return defineClasses({
|
||||
[`border-${size}`]: {
|
||||
'border': `${style}`,
|
||||
border: `${style}`,
|
||||
},
|
||||
[`border-t-${size}`]: {
|
||||
'border-top': `${style}`,
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
/* eslint-disable no-shadow */
|
||||
import _ from 'lodash'
|
||||
import postcss from 'postcss'
|
||||
import defineClass from '../util/defineClass'
|
||||
|
||||
function extractMinWidths(breakpoints) {
|
||||
return _.flatMap(breakpoints, (breakpoints) => {
|
||||
return _.flatMap(breakpoints, breakpoints => {
|
||||
if (_.isString(breakpoints)) {
|
||||
breakpoints = { min: breakpoints }
|
||||
}
|
||||
@ -12,32 +13,37 @@ function extractMinWidths(breakpoints) {
|
||||
breakpoints = [breakpoints]
|
||||
}
|
||||
|
||||
return _(breakpoints).filter((breakpoint) => {
|
||||
return _.has(breakpoint, 'min') || _.has(breakpoint, 'min-width')
|
||||
}).map((breakpoint) => {
|
||||
return _.get(breakpoint, 'min-width', breakpoint.min)
|
||||
}).value()
|
||||
return _(breakpoints)
|
||||
.filter(breakpoint => {
|
||||
return _.has(breakpoint, 'min') || _.has(breakpoint, 'min-width')
|
||||
})
|
||||
.map(breakpoint => {
|
||||
return _.get(breakpoint, 'min-width', breakpoint.min)
|
||||
})
|
||||
.value()
|
||||
})
|
||||
}
|
||||
|
||||
export default function ({ screens }) {
|
||||
export default function({ screens }) {
|
||||
const minWidths = extractMinWidths(screens)
|
||||
|
||||
const atRules = _.map(minWidths, (minWidth) => {
|
||||
const atRules = _.map(minWidths, minWidth => {
|
||||
const atRule = postcss.atRule({
|
||||
name: 'media',
|
||||
params: `(min-width: ${minWidth})`,
|
||||
})
|
||||
atRule.append(defineClass('container', {
|
||||
'max-width': minWidth
|
||||
}))
|
||||
atRule.append(
|
||||
defineClass('container', {
|
||||
'max-width': minWidth,
|
||||
})
|
||||
)
|
||||
return atRule
|
||||
})
|
||||
|
||||
return [
|
||||
defineClass('container', {
|
||||
width: '100%'
|
||||
width: '100%',
|
||||
}),
|
||||
...atRules
|
||||
...atRules,
|
||||
]
|
||||
}
|
||||
|
||||
@ -2,8 +2,8 @@ import defineClasses from '../util/defineClasses'
|
||||
|
||||
export default function() {
|
||||
return defineClasses({
|
||||
'cursor-auto': { 'cursor': 'auto' },
|
||||
'cursor-pointer': { 'cursor': 'pointer' },
|
||||
'cursor-not-allowed': { 'cursor': 'not-allowed' },
|
||||
'cursor-auto': { cursor: 'auto' },
|
||||
'cursor-pointer': { cursor: 'pointer' },
|
||||
'cursor-not-allowed': { cursor: 'not-allowed' },
|
||||
})
|
||||
}
|
||||
|
||||
@ -2,26 +2,26 @@ import defineClasses from '../util/defineClasses'
|
||||
|
||||
export default function() {
|
||||
return defineClasses({
|
||||
'block': {
|
||||
'display': 'block',
|
||||
block: {
|
||||
display: 'block',
|
||||
},
|
||||
'inline-block': {
|
||||
'display': 'inline-block',
|
||||
display: 'inline-block',
|
||||
},
|
||||
'inline': {
|
||||
'display': 'inline',
|
||||
inline: {
|
||||
display: 'inline',
|
||||
},
|
||||
'table': {
|
||||
'display': 'table',
|
||||
table: {
|
||||
display: 'table',
|
||||
},
|
||||
'table-row': {
|
||||
'display': 'table-row',
|
||||
display: 'table-row',
|
||||
},
|
||||
'table-cell': {
|
||||
'display': 'table-cell',
|
||||
display: 'table-cell',
|
||||
},
|
||||
'hidden': {
|
||||
'display': 'none',
|
||||
hidden: {
|
||||
display: 'none',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@ -2,11 +2,11 @@ import defineClasses from '../util/defineClasses'
|
||||
|
||||
export default function() {
|
||||
return defineClasses({
|
||||
'flex': {
|
||||
'display': 'flex',
|
||||
flex: {
|
||||
display: 'flex',
|
||||
},
|
||||
'inline-flex': {
|
||||
'display': 'inline-flex',
|
||||
display: 'inline-flex',
|
||||
},
|
||||
'flex-row': {
|
||||
'flex-direction': 'row',
|
||||
@ -90,16 +90,16 @@ export default function() {
|
||||
'align-content': 'space-around',
|
||||
},
|
||||
'flex-1': {
|
||||
'flex': '1',
|
||||
flex: '1',
|
||||
},
|
||||
'flex-auto': {
|
||||
'flex': 'auto',
|
||||
flex: 'auto',
|
||||
},
|
||||
'flex-initial': {
|
||||
'flex': 'initial',
|
||||
flex: 'initial',
|
||||
},
|
||||
'flex-none': {
|
||||
'flex': 'none',
|
||||
flex: 'none',
|
||||
},
|
||||
'flex-grow': {
|
||||
'flex-grow': '1',
|
||||
|
||||
@ -3,16 +3,18 @@ import postcss from 'postcss'
|
||||
import defineClasses from '../util/defineClasses'
|
||||
|
||||
export default function() {
|
||||
return _.concat(defineClasses({
|
||||
'float-right': { 'float': 'right' },
|
||||
'float-left': { 'float': 'left' },
|
||||
'float-none': { 'float': 'none' },
|
||||
}), postcss.parse(`
|
||||
return _.concat(
|
||||
defineClasses({
|
||||
'float-right': { float: 'right' },
|
||||
'float-left': { float: 'left' },
|
||||
'float-none': { float: 'none' },
|
||||
}),
|
||||
postcss.parse(`
|
||||
.clearfix:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
`).nodes
|
||||
);
|
||||
)
|
||||
}
|
||||
|
||||
@ -2,6 +2,6 @@ import defineClasses from '../util/defineClasses'
|
||||
|
||||
export default function() {
|
||||
return defineClasses({
|
||||
'appearance-none': { 'appearance': 'none' },
|
||||
'appearance-none': { appearance: 'none' },
|
||||
})
|
||||
}
|
||||
|
||||
@ -4,8 +4,8 @@ export default function() {
|
||||
return defineClasses({
|
||||
'list-reset': {
|
||||
'list-style': 'none',
|
||||
'margin': '0',
|
||||
'padding': '0',
|
||||
margin: '0',
|
||||
padding: '0',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
|
||||
export default function ({ opacity }) {
|
||||
export default function({ opacity }) {
|
||||
return _.map(opacity, (value, modifier) => {
|
||||
return defineClass(`opacity-${modifier}`, {
|
||||
'opacity': value,
|
||||
opacity: value,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@ -6,8 +6,14 @@ export default function() {
|
||||
'overflow-hidden': { overflow: 'hidden' },
|
||||
'overflow-visible': { overflow: 'visible' },
|
||||
'overflow-scroll': { overflow: 'scroll' },
|
||||
'overflow-x-scroll': { 'overflow-x': 'auto', '-ms-overflow-style': '-ms-autohiding-scrollbar' },
|
||||
'overflow-y-scroll': { 'overflow-y': 'auto', '-ms-overflow-style': '-ms-autohiding-scrollbar' },
|
||||
'overflow-x-scroll': {
|
||||
'overflow-x': 'auto',
|
||||
'-ms-overflow-style': '-ms-autohiding-scrollbar',
|
||||
},
|
||||
'overflow-y-scroll': {
|
||||
'overflow-y': 'auto',
|
||||
'-ms-overflow-style': '-ms-autohiding-scrollbar',
|
||||
},
|
||||
'scrolling-touch': { '-webkit-overflow-scrolling': 'touch' },
|
||||
'scrolling-auto': { '-webkit-overflow-scrolling': 'auto' },
|
||||
})
|
||||
|
||||
@ -2,16 +2,23 @@ import defineClasses from '../util/defineClasses'
|
||||
|
||||
export default function() {
|
||||
return defineClasses({
|
||||
'static': { position: 'static' },
|
||||
'fixed': { position: 'fixed' },
|
||||
'absolute': { position: 'absolute' },
|
||||
'relative': { position: 'relative' },
|
||||
static: { position: 'static' },
|
||||
fixed: { position: 'fixed' },
|
||||
absolute: { position: 'absolute' },
|
||||
relative: { position: 'relative' },
|
||||
'pin-t': { top: 0 },
|
||||
'pin-r': { right: 0 },
|
||||
'pin-b': { bottom: 0 },
|
||||
'pin-l': { left: 0 },
|
||||
'pin-y': { top: 0, bottom: 0 },
|
||||
'pin-x': { right: 0, left: 0 },
|
||||
'pin': { top: 0, right: 0, bottom: 0, left: 0, width: '100%', height: '100%' },
|
||||
pin: {
|
||||
top: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@ -2,8 +2,8 @@ import defineClasses from '../util/defineClasses'
|
||||
|
||||
export default function() {
|
||||
return defineClasses({
|
||||
'resize-none': { 'resize': 'none' },
|
||||
'resize-y': { 'resize': 'vertical' },
|
||||
'resize-x': { 'resize': 'horizontal' },
|
||||
'resize-none': { resize: 'none' },
|
||||
'resize-y': { resize: 'vertical' },
|
||||
'resize-x': { resize: 'horizontal' },
|
||||
})
|
||||
}
|
||||
|
||||
@ -24,9 +24,12 @@ function sideVariants() {
|
||||
}
|
||||
|
||||
module.exports = function({ borderRadius }) {
|
||||
return _(borderRadius).map((radius, modifier) => {
|
||||
return defineClass(modifier === 'default' ? 'rounded' : `rounded-${modifier}`, {
|
||||
'border-radius': radius,
|
||||
return _(borderRadius)
|
||||
.map((radius, modifier) => {
|
||||
return defineClass(modifier === 'default' ? 'rounded' : `rounded-${modifier}`, {
|
||||
'border-radius': radius,
|
||||
})
|
||||
})
|
||||
}).concat(sideVariants()).value()
|
||||
.concat(sideVariants())
|
||||
.value()
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
|
||||
export default function({shadows}) {
|
||||
export default function({ shadows }) {
|
||||
return _.map(shadows, (shadow, modifier) => {
|
||||
return defineClass(modifier === 'default' ? 'shadow' : `shadow-${modifier}`, {
|
||||
'box-shadow': shadow,
|
||||
|
||||
@ -4,7 +4,7 @@ import defineClass from '../util/defineClass'
|
||||
function defineWidths(widths) {
|
||||
return _.map(widths, (size, modifer) => {
|
||||
return defineClass(`w-${modifer}`, {
|
||||
'width': `${size}`,
|
||||
width: `${size}`,
|
||||
})
|
||||
})
|
||||
}
|
||||
@ -28,7 +28,7 @@ function defineMaxWidths(widths) {
|
||||
function defineHeights(heights) {
|
||||
return _.map(heights, (size, modifer) => {
|
||||
return defineClass(`h-${modifer}`, {
|
||||
'height': `${size}`,
|
||||
height: `${size}`,
|
||||
})
|
||||
})
|
||||
}
|
||||
@ -49,7 +49,7 @@ function defineMaxHeights(heights) {
|
||||
})
|
||||
}
|
||||
|
||||
export default function (config) {
|
||||
export default function(config) {
|
||||
return _.flatten([
|
||||
defineWidths(config.width),
|
||||
defineMinWidths(config.minWidth),
|
||||
|
||||
@ -25,7 +25,7 @@ function definePadding(padding) {
|
||||
'padding-bottom': `${size}`,
|
||||
},
|
||||
[`p-${modifier}`]: {
|
||||
'padding': `${size}`,
|
||||
padding: `${size}`,
|
||||
},
|
||||
})
|
||||
})
|
||||
@ -55,7 +55,7 @@ function defineMargin(margin) {
|
||||
'margin-bottom': `${size}`,
|
||||
},
|
||||
[`m-${modifier}`]: {
|
||||
'margin': `${size}`,
|
||||
margin: `${size}`,
|
||||
},
|
||||
})
|
||||
})
|
||||
@ -87,13 +87,13 @@ function defineNegativeMargin(negativeMargin) {
|
||||
'margin-bottom': `${size}`,
|
||||
},
|
||||
[`-m-${modifier}`]: {
|
||||
'margin': `${size}`,
|
||||
margin: `${size}`,
|
||||
},
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export default function ({ padding, margin, negativeMargin }) {
|
||||
export default function({ padding, margin, negativeMargin }) {
|
||||
return _.flatten([
|
||||
definePadding(padding),
|
||||
defineMargin(margin),
|
||||
@ -119,7 +119,7 @@ export default function ({ padding, margin, negativeMargin }) {
|
||||
'margin-bottom': 'auto',
|
||||
},
|
||||
'm-auto': {
|
||||
'margin': 'auto',
|
||||
margin: 'auto',
|
||||
},
|
||||
}),
|
||||
defineNegativeMargin(negativeMargin),
|
||||
|
||||
@ -2,10 +2,12 @@ import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
import hoverable from '../util/hoverable'
|
||||
|
||||
export default function ({ textColors }) {
|
||||
return hoverable(_.map(textColors, (color, modifier) => {
|
||||
return defineClass(`text-${modifier}`, {
|
||||
'color': color,
|
||||
export default function({ textColors }) {
|
||||
return hoverable(
|
||||
_.map(textColors, (color, modifier) => {
|
||||
return defineClass(`text-${modifier}`, {
|
||||
color,
|
||||
})
|
||||
})
|
||||
}))
|
||||
)
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
|
||||
export default function ({ fonts }) {
|
||||
export default function({ fonts }) {
|
||||
return _.map(fonts, (families, font) => {
|
||||
if (_.isArray(families)) {
|
||||
families = families.join(', ')
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
|
||||
export default function ({ leading }) {
|
||||
export default function({ leading }) {
|
||||
return _.map(leading, (value, modifier) => {
|
||||
return defineClass(`leading-${modifier}`, {
|
||||
'line-height': `${value}`,
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
|
||||
export default function ({ textSizes }) {
|
||||
export default function({ textSizes }) {
|
||||
return _.map(textSizes, (size, modifier) => {
|
||||
return defineClass(`text-${modifier}`, {
|
||||
'font-size': `${size}`,
|
||||
|
||||
@ -1,30 +1,29 @@
|
||||
import _ from 'lodash'
|
||||
import defineClasses from '../util/defineClasses'
|
||||
import hoverable from '../util/hoverable'
|
||||
|
||||
export default function() {
|
||||
return hoverable(
|
||||
defineClasses({
|
||||
'italic': { 'font-style': 'italic' },
|
||||
'roman': { 'font-style': 'normal' },
|
||||
italic: { 'font-style': 'italic' },
|
||||
roman: { 'font-style': 'normal' },
|
||||
|
||||
'uppercase': { 'text-transform': 'uppercase' },
|
||||
'lowercase': { 'text-transform': 'lowercase' },
|
||||
'capitalize': { 'text-transform': 'capitalize' },
|
||||
uppercase: { 'text-transform': 'uppercase' },
|
||||
lowercase: { 'text-transform': 'lowercase' },
|
||||
capitalize: { 'text-transform': 'capitalize' },
|
||||
'normal-case': { 'text-transform': 'none' },
|
||||
|
||||
'underline': { 'text-decoration': 'underline' },
|
||||
underline: { 'text-decoration': 'underline' },
|
||||
'line-through': { 'text-decoration': 'line-through' },
|
||||
'no-underline': { 'text-decoration': 'none' },
|
||||
|
||||
'antialiased': {
|
||||
antialiased: {
|
||||
'-webkit-font-smoothing': 'antialiased',
|
||||
'-moz-osx-font-smoothing': 'grayscale'
|
||||
'-moz-osx-font-smoothing': 'grayscale',
|
||||
},
|
||||
'subpixel-antialiased': {
|
||||
'-webkit-font-smoothing': 'auto',
|
||||
'-moz-osx-font-smoothing': 'auto'
|
||||
}
|
||||
'-moz-osx-font-smoothing': 'auto',
|
||||
},
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
|
||||
export default function ({ tracking }) {
|
||||
export default function({ tracking }) {
|
||||
return _.map(tracking, (value, modifier) => {
|
||||
return defineClass(`tracking-${modifier}`, {
|
||||
'letter-spacing': `${value}`,
|
||||
|
||||
@ -2,10 +2,12 @@ import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
import hoverable from '../util/hoverable'
|
||||
|
||||
export default function ({ fontWeights }) {
|
||||
return hoverable(_.map(fontWeights, (weight, modifier) => {
|
||||
return defineClass(`font-${modifier}`, {
|
||||
'font-weight': `${weight}`,
|
||||
export default function({ fontWeights }) {
|
||||
return hoverable(
|
||||
_.map(fontWeights, (weight, modifier) => {
|
||||
return defineClass(`font-${modifier}`, {
|
||||
'font-weight': `${weight}`,
|
||||
})
|
||||
})
|
||||
}))
|
||||
)
|
||||
}
|
||||
|
||||
@ -11,8 +11,8 @@ export default function() {
|
||||
'break-words': { 'word-wrap': 'break-word' },
|
||||
'break-normal': { 'word-wrap': 'normal' },
|
||||
|
||||
'truncate': {
|
||||
'overflow': 'hidden',
|
||||
truncate: {
|
||||
overflow: 'hidden',
|
||||
'text-overflow': 'ellipsis',
|
||||
'white-space': 'nowrap',
|
||||
},
|
||||
|
||||
@ -2,7 +2,7 @@ import defineClasses from '../util/defineClasses'
|
||||
|
||||
export default function() {
|
||||
return defineClasses({
|
||||
'visible': { 'visibility': 'visible' },
|
||||
'invisible': { 'visibility': 'hidden' },
|
||||
visible: { visibility: 'visible' },
|
||||
invisible: { visibility: 'hidden' },
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import _ from 'lodash'
|
||||
import defineClass from '../util/defineClass'
|
||||
|
||||
export default function ({ zIndex }) {
|
||||
export default function({ zIndex }) {
|
||||
return _.map(zIndex, (value, modifier) => {
|
||||
return defineClass(`z-${modifier}`, {
|
||||
'z-index': value,
|
||||
|
||||
32
src/index.js
32
src/index.js
@ -1,4 +1,3 @@
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
|
||||
import _ from 'lodash'
|
||||
@ -15,10 +14,10 @@ import substituteResponsiveAtRules from './lib/substituteResponsiveAtRules'
|
||||
import substituteScreenAtRules from './lib/substituteScreenAtRules'
|
||||
import substituteClassApplyAtRules from './lib/substituteClassApplyAtRules'
|
||||
|
||||
const plugin = postcss.plugin('tailwind', (config) => {
|
||||
const plugin = postcss.plugin('tailwind', config => {
|
||||
const plugins = []
|
||||
|
||||
if (! _.isUndefined(config)) {
|
||||
if (!_.isUndefined(config)) {
|
||||
plugins.push(registerConfigAsDependency(path.resolve(config)))
|
||||
}
|
||||
|
||||
@ -31,20 +30,23 @@ const plugin = postcss.plugin('tailwind', (config) => {
|
||||
return require(path.resolve(config))
|
||||
}
|
||||
|
||||
return postcss(...plugins, ...[
|
||||
substitutePreflightAtRule(lazyConfig),
|
||||
evaluateTailwindFunctions(lazyConfig),
|
||||
generateUtilities(lazyConfig),
|
||||
substituteHoverableAtRules(lazyConfig),
|
||||
substituteFocusableAtRules(lazyConfig),
|
||||
substituteResponsiveAtRules(lazyConfig),
|
||||
substituteScreenAtRules(lazyConfig),
|
||||
substituteClassApplyAtRules(lazyConfig),
|
||||
stylefmt,
|
||||
])
|
||||
return postcss(
|
||||
...plugins,
|
||||
...[
|
||||
substitutePreflightAtRule(lazyConfig),
|
||||
evaluateTailwindFunctions(lazyConfig),
|
||||
generateUtilities(lazyConfig),
|
||||
substituteHoverableAtRules(lazyConfig),
|
||||
substituteFocusableAtRules(lazyConfig),
|
||||
substituteResponsiveAtRules(lazyConfig),
|
||||
substituteScreenAtRules(lazyConfig),
|
||||
substituteClassApplyAtRules(lazyConfig),
|
||||
stylefmt,
|
||||
]
|
||||
)
|
||||
})
|
||||
|
||||
plugin.defaultConfig = function () {
|
||||
plugin.defaultConfig = function() {
|
||||
return _.cloneDeep(require('../defaultConfig'))
|
||||
}
|
||||
|
||||
|
||||
@ -6,9 +6,9 @@ export default function(config) {
|
||||
|
||||
return functions({
|
||||
functions: {
|
||||
config: function (path, defaultValue) {
|
||||
config: (path, defaultValue) => {
|
||||
return _.get(options, _.trim(path, `'"`), defaultValue)
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,15 +1,17 @@
|
||||
import fs from 'fs'
|
||||
|
||||
export default function(configFile) {
|
||||
if (! fs.existsSync(configFile)) {
|
||||
if (!fs.existsSync(configFile)) {
|
||||
throw new Error(`Specified Tailwind config file "${configFile}" doesn't exist.`)
|
||||
}
|
||||
|
||||
return function (css, opts) {
|
||||
opts.messages = [{
|
||||
type: 'dependency',
|
||||
file: configFile,
|
||||
parent: css.source.input.file,
|
||||
}]
|
||||
return function(css, opts) {
|
||||
opts.messages = [
|
||||
{
|
||||
type: 'dependency',
|
||||
file: configFile,
|
||||
parent: css.source.input.file,
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,18 +1,17 @@
|
||||
import postcss from 'postcss'
|
||||
import _ from 'lodash'
|
||||
import postcss from 'postcss'
|
||||
import findMixin from '../util/findMixin'
|
||||
import escapeClassName from '../util/escapeClassName'
|
||||
|
||||
function normalizeClassNames(classNames) {
|
||||
return classNames.map((className) => {
|
||||
return classNames.map(className => {
|
||||
return `.${escapeClassName(_.trimStart(className, '.'))}`
|
||||
})
|
||||
}
|
||||
|
||||
export default function(config) {
|
||||
return function (css) {
|
||||
const options = config()
|
||||
css.walkRules(function(rule) {
|
||||
export default function() {
|
||||
return function(css) {
|
||||
css.walkRules(rule => {
|
||||
rule.walkAtRules('apply', atRule => {
|
||||
const mixins = normalizeClassNames(postcss.list.space(atRule.params))
|
||||
|
||||
|
||||
@ -1,20 +1,12 @@
|
||||
import _ from 'lodash'
|
||||
import postcss from 'postcss'
|
||||
import cloneNodes from '../util/cloneNodes'
|
||||
|
||||
export default function(config) {
|
||||
return function (css) {
|
||||
const options = config()
|
||||
|
||||
export default function() {
|
||||
return function(css) {
|
||||
css.walkAtRules('focusable', atRule => {
|
||||
|
||||
atRule.walkRules(rule => {
|
||||
// Might be wise to error if the rule has multiple selectors,
|
||||
// or weird compound selectors like .bg-blue>p>h1
|
||||
rule.selectors = [
|
||||
rule.selector,
|
||||
`.focus\\:${rule.selector.slice(1)}:focus`
|
||||
]
|
||||
rule.selectors = [rule.selector, `.focus\\:${rule.selector.slice(1)}:focus`]
|
||||
})
|
||||
|
||||
atRule.before(cloneNodes(atRule.nodes))
|
||||
|
||||
@ -1,20 +1,12 @@
|
||||
import _ from 'lodash'
|
||||
import postcss from 'postcss'
|
||||
import cloneNodes from '../util/cloneNodes'
|
||||
|
||||
export default function(config) {
|
||||
return function (css) {
|
||||
const options = config()
|
||||
|
||||
export default function() {
|
||||
return function(css) {
|
||||
css.walkAtRules('hoverable', atRule => {
|
||||
|
||||
atRule.walkRules(rule => {
|
||||
// Might be wise to error if the rule has multiple selectors,
|
||||
// or weird compound selectors like .bg-blue>p>h1
|
||||
rule.selectors = [
|
||||
rule.selector,
|
||||
`.hover\\:${rule.selector.slice(1)}:hover`
|
||||
]
|
||||
rule.selectors = [rule.selector, `.hover\\:${rule.selector.slice(1)}:hover`]
|
||||
})
|
||||
|
||||
atRule.before(cloneNodes(atRule.nodes))
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
import fs from 'fs'
|
||||
import postcss from 'postcss'
|
||||
|
||||
export default function(config) {
|
||||
return function (css) {
|
||||
const options = config()
|
||||
|
||||
export default function() {
|
||||
return function(css) {
|
||||
css.walkAtRules('tailwind', atRule => {
|
||||
if (atRule.params === 'preflight') {
|
||||
atRule.before(postcss.parse(fs.readFileSync(`${__dirname}/../../css/preflight.css`, 'utf8')))
|
||||
atRule.remove()
|
||||
atRule.before(
|
||||
postcss.parse(fs.readFileSync(`${__dirname}/../../css/preflight.css`, 'utf8'))
|
||||
)
|
||||
atRule.remove()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -3,9 +3,8 @@ import postcss from 'postcss'
|
||||
import cloneNodes from '../util/cloneNodes'
|
||||
import buildMediaQuery from '../util/buildMediaQuery'
|
||||
|
||||
|
||||
export default function(config) {
|
||||
return function (css) {
|
||||
return function(css) {
|
||||
const screens = config().screens
|
||||
const rules = []
|
||||
|
||||
|
||||
@ -1,17 +1,14 @@
|
||||
import _ from 'lodash'
|
||||
import postcss from 'postcss'
|
||||
import cloneNodes from '../util/cloneNodes'
|
||||
import buildMediaQuery from '../util/buildMediaQuery'
|
||||
|
||||
export default function(config) {
|
||||
return function(css) {
|
||||
const options = config()
|
||||
const rules = []
|
||||
|
||||
css.walkAtRules('screen', atRule => {
|
||||
const screen = atRule.params
|
||||
|
||||
if (! _.has(options.screens, screen)) {
|
||||
if (!_.has(options.screens, screen)) {
|
||||
throw atRule.error(`No \`${screen}\` screen found.`)
|
||||
}
|
||||
|
||||
|
||||
@ -9,21 +9,25 @@ export default function buildMediaQuery(screens) {
|
||||
screens = [screens]
|
||||
}
|
||||
|
||||
return _(screens).map((screen) => {
|
||||
if (_.has(screen, 'raw')) {
|
||||
return screen.raw
|
||||
}
|
||||
return _(screens)
|
||||
.map(screen => {
|
||||
if (_.has(screen, 'raw')) {
|
||||
return screen.raw
|
||||
}
|
||||
|
||||
return _(screen).map((value, feature) => {
|
||||
feature = _.get(
|
||||
{
|
||||
min: 'min-width',
|
||||
max: 'max-width',
|
||||
},
|
||||
feature,
|
||||
feature
|
||||
)
|
||||
return `(${feature}: ${value})`
|
||||
}).join(' and ')
|
||||
}).join(', ')
|
||||
return _(screen)
|
||||
.map((value, feature) => {
|
||||
feature = _.get(
|
||||
{
|
||||
min: 'min-width',
|
||||
max: 'max-width',
|
||||
},
|
||||
feature,
|
||||
feature
|
||||
)
|
||||
return `(${feature}: ${value})`
|
||||
})
|
||||
.join(' and ')
|
||||
})
|
||||
.join(', ')
|
||||
}
|
||||
|
||||
@ -10,7 +10,9 @@ export default function(className, properties) {
|
||||
})
|
||||
})
|
||||
|
||||
return postcss.rule({
|
||||
selector: `.${escapeClassName(className)}`,
|
||||
}).append(decls)
|
||||
return postcss
|
||||
.rule({
|
||||
selector: `.${escapeClassName(className)}`,
|
||||
})
|
||||
.append(decls)
|
||||
}
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import postcss from 'postcss'
|
||||
import _ from 'lodash'
|
||||
import defineClass from './defineClass'
|
||||
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
export default function escapeClassName(className) {
|
||||
return className.replace(/([^A-Za-z0-9\-])/g, "\\$1")
|
||||
return className.replace(/([^A-Za-z0-9\-])/g, '\\$1')
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@ export default function findMixin(css, mixin, onError) {
|
||||
const matches = []
|
||||
|
||||
css.walkRules(rule => {
|
||||
if (rule.selectors.includes(mixin) && rule.parent.type == 'root') {
|
||||
if (rule.selectors.includes(mixin) && rule.parent.type === 'root') {
|
||||
matches.push(rule)
|
||||
}
|
||||
})
|
||||
|
||||
@ -2,7 +2,9 @@ import postcss from 'postcss'
|
||||
import cloneNodes from './cloneNodes'
|
||||
|
||||
export default function focusable(rules) {
|
||||
return postcss.atRule({
|
||||
name: 'focusable',
|
||||
}).append(cloneNodes(rules))
|
||||
return postcss
|
||||
.atRule({
|
||||
name: 'focusable',
|
||||
})
|
||||
.append(cloneNodes(rules))
|
||||
}
|
||||
|
||||
@ -2,7 +2,9 @@ import postcss from 'postcss'
|
||||
import cloneNodes from './cloneNodes'
|
||||
|
||||
export default function hoverable(rules) {
|
||||
return postcss.atRule({
|
||||
name: 'hoverable',
|
||||
}).append(cloneNodes(rules))
|
||||
return postcss
|
||||
.atRule({
|
||||
name: 'hoverable',
|
||||
})
|
||||
.append(cloneNodes(rules))
|
||||
}
|
||||
|
||||
@ -2,7 +2,9 @@ import postcss from 'postcss'
|
||||
import cloneNodes from './cloneNodes'
|
||||
|
||||
export default function responsive(rules) {
|
||||
return postcss.atRule({
|
||||
name: 'responsive',
|
||||
}).append(cloneNodes(rules))
|
||||
return postcss
|
||||
.atRule({
|
||||
name: 'responsive',
|
||||
})
|
||||
.append(cloneNodes(rules))
|
||||
}
|
||||
|
||||
358
yarn.lock
358
yarn.lock
@ -23,10 +23,24 @@ acorn-globals@^3.1.0:
|
||||
dependencies:
|
||||
acorn "^4.0.4"
|
||||
|
||||
acorn-jsx@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
|
||||
dependencies:
|
||||
acorn "^3.0.4"
|
||||
|
||||
acorn@^3.0.4:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
|
||||
|
||||
acorn@^4.0.4:
|
||||
version "4.0.13"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
|
||||
|
||||
acorn@^5.1.1:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7"
|
||||
|
||||
ajv-keywords@^1.0.0:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
|
||||
@ -38,6 +52,15 @@ ajv@^4.7.0, ajv@^4.9.1:
|
||||
co "^4.6.0"
|
||||
json-stable-stringify "^1.0.1"
|
||||
|
||||
ajv@^5.2.0:
|
||||
version "5.3.0"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.3.0.tgz#4414ff74a50879c208ee5fdc826e32c303549eda"
|
||||
dependencies:
|
||||
co "^4.6.0"
|
||||
fast-deep-equal "^1.0.0"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.3.0"
|
||||
|
||||
align-text@^0.1.1, align-text@^0.1.3:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
|
||||
@ -60,6 +83,10 @@ ansi-escapes@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
||||
|
||||
ansi-escapes@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
|
||||
|
||||
ansi-regex@^2.0.0, ansi-regex@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
|
||||
@ -229,7 +256,7 @@ babel-cli@^6.6.5:
|
||||
optionalDependencies:
|
||||
chokidar "^1.6.1"
|
||||
|
||||
babel-code-frame@^6.26.0:
|
||||
babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
|
||||
dependencies:
|
||||
@ -983,6 +1010,16 @@ builtin-modules@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
|
||||
|
||||
caller-path@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
|
||||
dependencies:
|
||||
callsites "^0.2.0"
|
||||
|
||||
callsites@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
|
||||
|
||||
callsites@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
|
||||
@ -1047,17 +1084,17 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
|
||||
strip-ansi "^3.0.0"
|
||||
supports-color "^2.0.0"
|
||||
|
||||
chalk@^2.0.1, chalk@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
|
||||
chalk@^2.0.0, chalk@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
|
||||
dependencies:
|
||||
ansi-styles "^3.1.0"
|
||||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^4.0.0"
|
||||
|
||||
chalk@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
|
||||
chalk@^2.0.1, chalk@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
|
||||
dependencies:
|
||||
ansi-styles "^3.1.0"
|
||||
escape-string-regexp "^1.0.5"
|
||||
@ -1096,6 +1133,16 @@ cli-boxes@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
|
||||
|
||||
cli-cursor@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
|
||||
dependencies:
|
||||
restore-cursor "^2.0.0"
|
||||
|
||||
cli-width@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
|
||||
|
||||
cliui@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
|
||||
@ -1170,6 +1217,14 @@ concat-map@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
|
||||
concat-stream@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
|
||||
dependencies:
|
||||
inherits "^2.0.3"
|
||||
readable-stream "^2.2.2"
|
||||
typedarray "^0.0.6"
|
||||
|
||||
configstore@^3.0.0:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90"
|
||||
@ -1219,7 +1274,7 @@ create-error-class@^3.0.0:
|
||||
dependencies:
|
||||
capture-stack-trace "^1.0.0"
|
||||
|
||||
cross-spawn@^5.0.1:
|
||||
cross-spawn@^5.0.1, cross-spawn@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
|
||||
dependencies:
|
||||
@ -1295,6 +1350,12 @@ debug@^2.2.0, debug@^2.6.0, debug@^2.6.3, debug@^2.6.8:
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@^3.0.1:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||
@ -1358,6 +1419,13 @@ diff@^3.2.0:
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
|
||||
|
||||
doctrine@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
|
||||
dependencies:
|
||||
esutils "^2.0.2"
|
||||
isarray "^1.0.0"
|
||||
|
||||
doiuse@^2.4.1:
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/doiuse/-/doiuse-2.6.0.tgz#1892d10b61a9a356addbf2b614933e81f8bb3834"
|
||||
@ -1468,6 +1536,79 @@ escodegen@^1.6.1:
|
||||
optionalDependencies:
|
||||
source-map "~0.5.6"
|
||||
|
||||
eslint-config-postcss@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-postcss/-/eslint-config-postcss-2.0.2.tgz#cae1c6093ced7850894a5b85fbe1d1e232b72afb"
|
||||
|
||||
eslint-config-prettier@^2.7.0:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.7.0.tgz#7bbfef66ad783277836f4ea556e68b9bcc9da4d0"
|
||||
dependencies:
|
||||
get-stdin "^5.0.1"
|
||||
|
||||
eslint-plugin-prettier@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.3.1.tgz#e7a746c67e716f335274b88295a9ead9f544e44d"
|
||||
dependencies:
|
||||
fast-diff "^1.1.1"
|
||||
jest-docblock "^21.0.0"
|
||||
|
||||
eslint-scope@^3.7.1:
|
||||
version "3.7.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
|
||||
dependencies:
|
||||
esrecurse "^4.1.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
eslint@^4.10.0:
|
||||
version "4.10.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.10.0.tgz#f25d0d7955c81968c2309aa5c9a229e045176bb7"
|
||||
dependencies:
|
||||
ajv "^5.2.0"
|
||||
babel-code-frame "^6.22.0"
|
||||
chalk "^2.1.0"
|
||||
concat-stream "^1.6.0"
|
||||
cross-spawn "^5.1.0"
|
||||
debug "^3.0.1"
|
||||
doctrine "^2.0.0"
|
||||
eslint-scope "^3.7.1"
|
||||
espree "^3.5.1"
|
||||
esquery "^1.0.0"
|
||||
estraverse "^4.2.0"
|
||||
esutils "^2.0.2"
|
||||
file-entry-cache "^2.0.0"
|
||||
functional-red-black-tree "^1.0.1"
|
||||
glob "^7.1.2"
|
||||
globals "^9.17.0"
|
||||
ignore "^3.3.3"
|
||||
imurmurhash "^0.1.4"
|
||||
inquirer "^3.0.6"
|
||||
is-resolvable "^1.0.0"
|
||||
js-yaml "^3.9.1"
|
||||
json-stable-stringify "^1.0.1"
|
||||
levn "^0.3.0"
|
||||
lodash "^4.17.4"
|
||||
minimatch "^3.0.2"
|
||||
mkdirp "^0.5.1"
|
||||
natural-compare "^1.4.0"
|
||||
optionator "^0.8.2"
|
||||
path-is-inside "^1.0.2"
|
||||
pluralize "^7.0.0"
|
||||
progress "^2.0.0"
|
||||
require-uncached "^1.0.3"
|
||||
semver "^5.3.0"
|
||||
strip-ansi "^4.0.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
table "^4.0.1"
|
||||
text-table "~0.2.0"
|
||||
|
||||
espree@^3.5.1:
|
||||
version "3.5.1"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e"
|
||||
dependencies:
|
||||
acorn "^5.1.1"
|
||||
acorn-jsx "^3.0.0"
|
||||
|
||||
esprima@^3.1.3:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
|
||||
@ -1476,7 +1617,20 @@ esprima@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
|
||||
|
||||
estraverse@^4.2.0:
|
||||
esquery@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
|
||||
dependencies:
|
||||
estraverse "^4.0.0"
|
||||
|
||||
esrecurse@^4.1.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163"
|
||||
dependencies:
|
||||
estraverse "^4.1.0"
|
||||
object-assign "^4.0.1"
|
||||
|
||||
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
|
||||
|
||||
@ -1536,6 +1690,14 @@ extend@~3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
|
||||
|
||||
external-editor@^2.0.4:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.5.tgz#52c249a3981b9ba187c7cacf5beb50bf1d91a6bc"
|
||||
dependencies:
|
||||
iconv-lite "^0.4.17"
|
||||
jschardet "^1.4.2"
|
||||
tmp "^0.0.33"
|
||||
|
||||
extglob@^0.3.1:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
|
||||
@ -1546,6 +1708,18 @@ extsprintf@1.3.0, extsprintf@^1.2.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
||||
|
||||
fast-deep-equal@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
|
||||
|
||||
fast-diff@^1.1.1:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
|
||||
|
||||
fast-json-stable-stringify@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
|
||||
|
||||
fast-levenshtein@~2.0.4:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||
@ -1562,6 +1736,12 @@ fb-watchman@^2.0.0:
|
||||
dependencies:
|
||||
bser "^2.0.0"
|
||||
|
||||
figures@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
|
||||
dependencies:
|
||||
escape-string-regexp "^1.0.5"
|
||||
|
||||
file-entry-cache@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
|
||||
@ -1696,6 +1876,10 @@ function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||
|
||||
functional-red-black-tree@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
|
||||
|
||||
gather-stream@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/gather-stream/-/gather-stream-1.0.0.tgz#b33994af457a8115700d410f317733cbe7a0904b"
|
||||
@ -1721,7 +1905,7 @@ get-stdin@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
|
||||
|
||||
get-stdin@^5.0.0:
|
||||
get-stdin@^5.0.0, get-stdin@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398"
|
||||
|
||||
@ -1759,7 +1943,7 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.2:
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
globals@^9.18.0:
|
||||
globals@^9.17.0, globals@^9.18.0:
|
||||
version "9.18.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
|
||||
|
||||
@ -1903,6 +2087,10 @@ iconv-lite@0.4.13:
|
||||
version "0.4.13"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
|
||||
|
||||
iconv-lite@^0.4.17:
|
||||
version "0.4.19"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
|
||||
|
||||
ignore-by-default@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
|
||||
@ -1911,6 +2099,10 @@ ignore@^3.2.0:
|
||||
version "3.3.5"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6"
|
||||
|
||||
ignore@^3.3.3:
|
||||
version "3.3.7"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021"
|
||||
|
||||
import-lazy@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
|
||||
@ -1936,7 +2128,7 @@ inflight@^1.0.4:
|
||||
once "^1.3.0"
|
||||
wrappy "1"
|
||||
|
||||
inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
|
||||
inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||
|
||||
@ -1944,6 +2136,25 @@ ini@~1.3.0:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
|
||||
|
||||
inquirer@^3.0.6:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
|
||||
dependencies:
|
||||
ansi-escapes "^3.0.0"
|
||||
chalk "^2.0.0"
|
||||
cli-cursor "^2.1.0"
|
||||
cli-width "^2.0.0"
|
||||
external-editor "^2.0.4"
|
||||
figures "^2.0.0"
|
||||
lodash "^4.3.0"
|
||||
mute-stream "0.0.7"
|
||||
run-async "^2.2.0"
|
||||
rx-lite "^4.0.8"
|
||||
rx-lite-aggregates "^4.0.8"
|
||||
string-width "^2.1.0"
|
||||
strip-ansi "^4.0.0"
|
||||
through "^2.3.6"
|
||||
|
||||
invariant@^2.2.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
|
||||
@ -2084,6 +2295,10 @@ is-primitive@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
|
||||
|
||||
is-promise@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
|
||||
|
||||
is-redirect@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
|
||||
@ -2098,6 +2313,12 @@ is-regexp@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
|
||||
|
||||
is-resolvable@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
|
||||
dependencies:
|
||||
tryit "^1.0.1"
|
||||
|
||||
is-retry-allowed@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
|
||||
@ -2126,7 +2347,7 @@ isarray@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
|
||||
|
||||
isarray@1.0.0, isarray@~1.0.0:
|
||||
isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||
|
||||
@ -2274,6 +2495,10 @@ jest-docblock@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712"
|
||||
|
||||
jest-docblock@^21.0.0:
|
||||
version "21.2.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414"
|
||||
|
||||
jest-environment-jsdom@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz#048a8ac12ee225f7190417713834bb999787de99"
|
||||
@ -2433,10 +2658,21 @@ js-yaml@^3.4.3, js-yaml@^3.7.0:
|
||||
argparse "^1.0.7"
|
||||
esprima "^4.0.0"
|
||||
|
||||
js-yaml@^3.9.1:
|
||||
version "3.10.0"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
|
||||
dependencies:
|
||||
argparse "^1.0.7"
|
||||
esprima "^4.0.0"
|
||||
|
||||
jsbn@~0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
|
||||
|
||||
jschardet@^1.4.2:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.6.0.tgz#c7d1a71edcff2839db2f9ec30fc5d5ebd3c1a678"
|
||||
|
||||
jsdom@^9.12.0:
|
||||
version "9.12.0"
|
||||
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4"
|
||||
@ -2469,6 +2705,10 @@ jsesc@~0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
|
||||
|
||||
json-schema-traverse@^0.3.0:
|
||||
version "0.3.1"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
|
||||
|
||||
json-schema@0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
||||
@ -2562,7 +2802,7 @@ leven@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
|
||||
|
||||
levn@~0.3.0:
|
||||
levn@^0.3.0, levn@~0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
|
||||
dependencies:
|
||||
@ -2652,7 +2892,7 @@ lodash.restparam@^3.0.0:
|
||||
version "3.6.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
|
||||
|
||||
lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.17.4:
|
||||
lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0:
|
||||
version "4.17.4"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
|
||||
|
||||
@ -2767,6 +3007,10 @@ mime-types@^2.1.12, mime-types@~2.1.7:
|
||||
dependencies:
|
||||
mime-db "~1.30.0"
|
||||
|
||||
mimic-fn@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
|
||||
|
||||
minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
||||
@ -2804,6 +3048,10 @@ multimatch@^2.0.0:
|
||||
arrify "^1.0.0"
|
||||
minimatch "^3.0.0"
|
||||
|
||||
mute-stream@0.0.7:
|
||||
version "0.0.7"
|
||||
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
|
||||
|
||||
nan@^2.3.0:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
|
||||
@ -2951,6 +3199,12 @@ onecolor@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-3.0.4.tgz#75a46f80da6c7aaa5b4daae17a47198bd9652494"
|
||||
|
||||
onetime@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
|
||||
dependencies:
|
||||
mimic-fn "^1.0.0"
|
||||
|
||||
optimist@^0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
|
||||
@ -2958,7 +3212,7 @@ optimist@^0.6.1:
|
||||
minimist "~0.0.1"
|
||||
wordwrap "~0.0.2"
|
||||
|
||||
optionator@^0.8.1:
|
||||
optionator@^0.8.1, optionator@^0.8.2:
|
||||
version "0.8.2"
|
||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
|
||||
dependencies:
|
||||
@ -2979,7 +3233,7 @@ os-locale@^1.4.0:
|
||||
dependencies:
|
||||
lcid "^1.0.0"
|
||||
|
||||
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
|
||||
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||
|
||||
@ -3058,7 +3312,7 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
|
||||
path-is-inside@^1.0.1:
|
||||
path-is-inside@^1.0.1, path-is-inside@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
|
||||
|
||||
@ -3115,6 +3369,10 @@ plur@^2.0.0, plur@^2.1.2:
|
||||
dependencies:
|
||||
irregular-plurals "^1.0.0"
|
||||
|
||||
pluralize@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
|
||||
|
||||
postcss-functions@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e"
|
||||
@ -3224,6 +3482,10 @@ preserve@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
|
||||
|
||||
prettier@^1.7.4:
|
||||
version "1.7.4"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.7.4.tgz#5e8624ae9363c80f95ec644584ecdf55d74f93fa"
|
||||
|
||||
pretty-format@^20.0.3:
|
||||
version "20.0.3"
|
||||
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14"
|
||||
@ -3239,6 +3501,10 @@ process-nextick-args@~1.0.6:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
||||
|
||||
progress@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
|
||||
|
||||
prr@~0.0.0:
|
||||
version "0.0.0"
|
||||
resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
|
||||
@ -3316,7 +3582,7 @@ readable-stream@^1.0.33, readable-stream@~1.1.9:
|
||||
isarray "0.0.1"
|
||||
string_decoder "~0.10.x"
|
||||
|
||||
readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4:
|
||||
readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
|
||||
dependencies:
|
||||
@ -3458,6 +3724,17 @@ require-main-filename@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
|
||||
|
||||
require-uncached@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
|
||||
dependencies:
|
||||
caller-path "^0.1.0"
|
||||
resolve-from "^1.0.0"
|
||||
|
||||
resolve-from@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
|
||||
|
||||
resolve-from@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
|
||||
@ -3472,6 +3749,13 @@ resolve@^1.3.2, resolve@~1.4.0:
|
||||
dependencies:
|
||||
path-parse "^1.0.5"
|
||||
|
||||
restore-cursor@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
|
||||
dependencies:
|
||||
onetime "^2.0.0"
|
||||
signal-exit "^3.0.2"
|
||||
|
||||
resumer@~0.0.0:
|
||||
version "0.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759"
|
||||
@ -3490,6 +3774,22 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1:
|
||||
dependencies:
|
||||
glob "^7.0.5"
|
||||
|
||||
run-async@^2.2.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
|
||||
dependencies:
|
||||
is-promise "^2.1.0"
|
||||
|
||||
rx-lite-aggregates@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
|
||||
dependencies:
|
||||
rx-lite "*"
|
||||
|
||||
rx-lite@*, rx-lite@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
|
||||
|
||||
safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
|
||||
@ -3663,7 +3963,7 @@ string-width@^1.0.1, string-width@^1.0.2:
|
||||
is-fullwidth-code-point "^1.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
|
||||
string-width@^2.0.0:
|
||||
string-width@^2.0.0, string-width@^2.1.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
|
||||
dependencies:
|
||||
@ -3920,7 +4220,7 @@ test-exclude@^4.1.1:
|
||||
read-pkg-up "^1.0.1"
|
||||
require-main-filename "^1.0.1"
|
||||
|
||||
text-table@^0.2.0:
|
||||
text-table@^0.2.0, text-table@~0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||
|
||||
@ -3935,7 +4235,7 @@ through2@^0.6.1, through2@^0.6.3, through2@~0.6.1:
|
||||
readable-stream ">=1.0.33-1 <1.1.0-0"
|
||||
xtend ">=4.0.0 <4.1.0-0"
|
||||
|
||||
through@2, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1, through@~2.3.4, through@~2.3.8:
|
||||
through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.4, through@~2.3.8:
|
||||
version "2.3.8"
|
||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||
|
||||
@ -3943,6 +4243,12 @@ timed-out@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
|
||||
|
||||
tmp@^0.0.33:
|
||||
version "0.0.33"
|
||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
|
||||
dependencies:
|
||||
os-tmpdir "~1.0.2"
|
||||
|
||||
tmpl@1.0.x:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
|
||||
@ -3975,6 +4281,10 @@ trim-right@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
|
||||
|
||||
tryit@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
|
||||
|
||||
tunnel-agent@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
|
||||
@ -3991,6 +4301,10 @@ type-check@~0.3.2:
|
||||
dependencies:
|
||||
prelude-ls "~1.1.2"
|
||||
|
||||
typedarray@^0.0.6:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
|
||||
uglify-js@^2.6:
|
||||
version "2.8.29"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user