Initial commit

This commit is contained in:
Patrick Marsceill
2017-03-09 13:16:08 -05:00
commit b7b0d0d7bf
4147 changed files with 401224 additions and 0 deletions

55
node_modules/postcss-reporter/CHANGELOG.md generated vendored Normal file
View File

@@ -0,0 +1,55 @@
# Changelog
## 3.0.0
- Replace `clearMessages` option with `clearReportedMessages` and `clearAllMessages`.
## 2.0.0
- Only log warning messages (`type: "warning"`) by default.
## 1.4.1
- Add `filter` option.
- Add blacklist functionality to `plugins` option with `!` prefix`.
## 1.3.3
- Fix regression that caused positions from sources without incoming sourcemaps not to be logged.
## 1.3.2
- Find more accurate positions of preprocessed files with sourcemaps.
## 1.3.1
- Fix Windows path bug.
## 1.3.0
- Check individual messages for distinct sources, then group messages by those sources,
instead of always using the PostCSS Result's source.
- Output empty string from `formatter` if there are no messages, instead of `undefined`.
## 1.2.1
- Handle variable and absent input sources.
## 1.2.0
- Add `noIcon` and `noPlugin` options to both reporter and formatter.
## 1.1.0
- Use PostCSS 5's line/column properties on warnings, instead of relying on the source node.
## 1.0.0
- Upgrade to PostCSS 5.
## 0.4.0
- Add `positionless` option (to both the reporter and the formatter), with default value `"first"`.
- Cleaner npm install (files specified in `package.json`).
## 0.3.1
- Remove leftover debugging log statement.
## 0.3.0
- Add `sortByPosition` option (to both the reporter and the formatter), with default value `true`.
## 0.2.0
- Alter `defaultFormatter` to use warning symbol and not repeat `# postcss-reporter`.
## 0.1.0
- First release.

22
node_modules/postcss-reporter/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2015 David Clark
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.

143
node_modules/postcss-reporter/README.md generated vendored Normal file
View File

@@ -0,0 +1,143 @@
# postcss-reporter
[![Build Status](https://travis-ci.org/postcss/postcss-reporter.svg?branch=master)](https://travis-ci.org/postcss/postcss-reporter)
[![AppVeyor Build Status](https://img.shields.io/appveyor/ci/davidtheclark/postcss-reporter/master.svg?label=windows%20build)](https://ci.appveyor.com/project/davidtheclark/postcss-reporter)
A PostCSS plugin to `console.log()` the messages (warnings, etc.) registered by other PostCSS plugins.
## Purpose
As of PostCSS 4.1, a single PostCSS process can accumulate messages from all of the plugins it uses.
Most of these messages are [warnings](https://github.com/postcss/postcss/blob/master/docs/guidelines/plugin.md#32-use-resultwarn-for-warnings).
Presumably, plugin authors want you to see those messages.
So this plugin exists to read the accumulated messages (or messages from only the plugins you've specified), format them, and print them to the console.
By default, the messages are formatted for human legibility and sorted according to the line/column positions attached to the messages. But another formatting function can be passed in with an option, and sorting can be turned of with an option.
*By default, only warnings are logged*. If you would like to see more messages, you can change the `filter` function.
## Example Output
![Example](example.png?raw=true)
## Installation
```
npm install postcss-reporter
```
Version 1.0.0+ is compatible with PostCSS 5+. (Earlier versions are compatible with PostCSS 4.)
## Usage
Add it to your plugin list *after any plugins whose messages you want to log*, and optionally pass it an object of options.
For example, using [gulp-postcss](https://github.com/postcss/gulp-postcss):
```js
gulp.task('css', function() {
return gulp.src('./src/*.css')
.pipe(postcss([
bemLinter(),
customProperties(),
calc(),
rejectAllColors(),
reporter(myOptions) // <------ ding
]))
.pipe(gulp.dest('./dist'));
});
```
## Options
**clearReportedMessages** (boolean, default = `false`)
If true, the plugin will clear the result's messages after it logs them. This prevents other plugins, or the whatever runner you use, from logging the same information again and causing confusion.
**formatter** (function, default = the default formatter)
By default, this reporter will format the messages for human legibility in the console.
To use another formatter, pass a function that
- accepts an object containing a `messages` array and a `source` string
- returns the string to report
For example, you could write a formatter like this:
```js
reporter({
formatter: function(input) {
return input.source + ' produced ' + input.messages.length + ' messages';
}
})
```
**plugins** (array of strings, default = `[]`)
If `plugins` is empty (as it is by default), the reporter will log messages from every PostCSS plugin.
There are 2 ways to limit output:
- **Whitelist:** Provide an array of the plugins whose messages you would like to show.
For example, `{ plugins: ['postcss-bem-linter'] }` will only log messages from the `postcss-bem-linter` plugin.
- **Blacklist:** Prefix all plugins in the array with `!` to specify only those plugins whose messages you would like to hide.
(All other plugins will be shown.)
For example, `{ plugins: ['!postcss-bem-linter'] }` will never log messages from the `postcss-bem-linter` plugin; but will log messages from every other plugin.
**filter** (function)
Provide a filter function. It receives the message object and returns a truthy or falsy value, indicating whether that particular message should be reported or not.
By default, only messages with `type: "warning"` warnings are logged. (These are the messages produced when the plugin author uses PostCSS's `warn()` function.)
For example, `function(message) { return true }` will only every message, regardless of the plugin or whether it's a warning or not.
**clearAllMessages** (boolean, default = `false`)
If `true`, not pass any messages into other plugins, or the whatever runner you use, for logging.
**throwError** (boolean, default = `false`)
If `true`, after the plugin logs your messages it will throw an error if it found any warnings.
**sortByPosition** (boolean, default = `true`)
If `false`, messages will not be sorted by line/column position.
**positionless** (`"first"|"last"|"any"`, default = `"first"`)
By default, messages without line/column positions will be grouped at the beginning of the output.
To put them at the end, instead, use `"last"`.
To not bother sorting these, use `"any"`.
**noIcon** (boolean, default = `false`)
If `true`, no exclamatory triangle icons will be printed next to warnings.
**noPlugin** (boolean, default = `false`)
If `true`, plugin names will not be printed in brackets after messages.
## How to get output without colors
If you would like no colors in the console output, simply pass `--no-colors` when you invoke whatever command runs this plugin. (This works because of [chalk](https://github.com/sindresorhus/chalk).)
## Standalone formatter
You can also use this module's formatter as a library, with following API:
```js
var formatter = require('postcss-reporter/lib/formatter');
var myFormatter = formatter(myOptions);
// to use defaults, just pass no options: `formatter()`
var warningLog = myFormatter({
messages: someMessages,
source: someSource
});
console.log(warningLog);
```
These are the formatter's options:
- sortByPosition (boolean, default = `true`)
- noIcon (boolean, default = `false`) - Do not print any warning exclamatory triangle icons
- noPlugin (boolean, default = `false`) - Do not print plugin names

4
node_modules/postcss-reporter/index.js generated vendored Normal file
View File

@@ -0,0 +1,4 @@
var postcss = require('postcss');
var reporter = require('./lib/reporter');
module.exports = postcss.plugin('postcss-reporter', reporter);

80
node_modules/postcss-reporter/lib/formatter.js generated vendored Normal file
View File

@@ -0,0 +1,80 @@
var chalk = require('chalk');
var path = require('path');
var symbols = require('log-symbols');
var _ = require('lodash');
var util = require('./util');
module.exports = function(opts) {
var options = opts || {};
var sortByPosition = (typeof options.sortByPosition !== 'undefined') ? options.sortByPosition : true;
var positionless = options.positionless || 'first';
return function(input) {
var messages = input.messages;
var source = input.source;
if (!messages.length) return '';
var orderedMessages = _.sortBy(
messages,
function(m) {
if (!m.line) return 1;
if (positionless === 'any') return 1;
if (positionless === 'first') return 2;
if (positionless === 'last') return 0;
},
function(m) {
if (!sortByPosition) return 1;
return m.line;
},
function(m) {
if (!sortByPosition) return 1;
return m.column;
}
);
var output = '\n';
if (source) {
output += chalk.bold.underline(logFrom(source)) + '\n';
}
orderedMessages.forEach(function(w) {
output += messageToString(w) + '\n';
});
return output;
function messageToString(message) {
var location = util.getLocation(message);
var str = '';
if (location.line) {
str += chalk.bold(location.line);
}
if (location.column) {
str += chalk.bold(':' + location.column)
}
if (location.line || location.column) {
str += '\t';
}
if (!options.noIcon && message.type === 'warning') {
str += chalk.yellow(symbols.warning + ' ');
}
str += message.text;
if (!options.noPlugin) {
str += chalk.yellow(' [' + message.plugin + ']');
}
return str;
}
function logFrom(fromValue) {
if (fromValue.charAt(0) === '<') return fromValue;
return path.relative(process.cwd(), fromValue).split(path.sep).join('/');
}
};
};

81
node_modules/postcss-reporter/lib/reporter.js generated vendored Normal file
View File

@@ -0,0 +1,81 @@
var chalk = require('chalk');
var _ = require('lodash');
var defaultFormatter = require('./formatter');
var util = require('./util');
module.exports = function(opts) {
var options = opts || {};
var formatter = options.formatter || defaultFormatter({
sortByPosition: (typeof options.sortByPosition !== 'undefined') ? options.sortByPosition : true,
positionless: options.positionless || 'first',
noIcon: options.noIcon,
noPlugin: options.noPlugin,
});
var pluginFilter;
if (!options.plugins) {
// Every plugin
pluginFilter = function() { return true; };
} else if (options.plugins.every(function(plugin) { return plugin[0] === '!'; })) {
// Blacklist
pluginFilter = function(message) {
return options.plugins.indexOf('!' + message.plugin) === -1;
};
} else {
// Whitelist
pluginFilter = function(message) {
return options.plugins.indexOf(message.plugin) !== -1;
};
}
var messageFilter = options.filter || function(message) { return (message.type === 'warning'); };
return function(css, result) {
var messagesToLog = result.messages
.filter(pluginFilter)
.filter(messageFilter);
var resultSource = (!result.root.source) ? ''
: result.root.source.input.file || result.root.source.input.id
var sourceGroupedMessages = _.groupBy(messagesToLog, function(message) {
return util.getLocation(message).file || resultSource;
});
var report = '';
_.forOwn(sourceGroupedMessages, function(messages, source) {
report += formatter({
messages: messages,
source: source,
});
});
if (options.clearReportedMessages) {
result.messages = _.difference(result.messages, messagesToLog);
}
if (options.clearAllMessages) {
var messagesToClear = result.messages.filter(pluginFilter);
result.messages = _.difference(result.messages, messagesToClear);
}
if (!report) return;
console.log(report);
if (options.throwError && shouldThrowError()) {
throw new Error(chalk.red.bold('\n** postcss-reporter: warnings or errors were found **'));
}
function shouldThrowError() {
return (
messagesToLog.length
&& messagesToLog.some(function(message) {
return message.type === 'warning' || message.type === 'error';
})
);
}
};
};

20
node_modules/postcss-reporter/lib/util.js generated vendored Normal file
View File

@@ -0,0 +1,20 @@
var _ = require('lodash');
exports.getLocation = function(message) {
var messageNode = message.node;
var location = {
line: message.line,
column: message.column,
};
var messageInput = _.get(messageNode, 'source.input');
if (!messageInput) return location;
var originLocation = messageInput.origin && messageInput.origin(message.line, message.column)
if (originLocation) return originLocation
location.file = messageInput.file || messageInput.id;
return location;
};

94
node_modules/postcss-reporter/package.json generated vendored Normal file
View File

@@ -0,0 +1,94 @@
{
"_args": [
[
"postcss-reporter@^3.0.0",
"/Users/pmarsceill/_projects/just-the-docs/node_modules/stylelint"
]
],
"_from": "postcss-reporter@>=3.0.0 <4.0.0",
"_id": "postcss-reporter@3.0.0",
"_inCache": true,
"_installable": true,
"_location": "/postcss-reporter",
"_nodeVersion": "4.6.1",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/postcss-reporter-3.0.0.tgz_1481635728479_0.03525030054152012"
},
"_npmUser": {
"email": "david.dave.clark@gmail.com",
"name": "davidtheclark"
},
"_npmVersion": "4.0.2",
"_phantomChildren": {},
"_requested": {
"name": "postcss-reporter",
"raw": "postcss-reporter@^3.0.0",
"rawSpec": "^3.0.0",
"scope": null,
"spec": ">=3.0.0 <4.0.0",
"type": "range"
},
"_requiredBy": [
"/stylelint"
],
"_resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-3.0.0.tgz",
"_shasum": "09ea0f37a444c5693878606e09b018ebeff7cf8f",
"_shrinkwrap": null,
"_spec": "postcss-reporter@^3.0.0",
"_where": "/Users/pmarsceill/_projects/just-the-docs/node_modules/stylelint",
"author": {
"email": "david.dave.clark@gmail.com",
"name": "David Clark",
"url": "http://davidtheclark.com"
},
"bugs": {
"url": "https://github.com/postcss/postcss-reporter/issues"
},
"dependencies": {
"chalk": "^1.0.0",
"lodash": "^4.1.0",
"log-symbols": "^1.0.2",
"postcss": "^5.0.0"
},
"description": "Log PostCSS messages in the console",
"devDependencies": {
"eslint": "1.3.1",
"less": "2.7.1",
"source-map": "0.5.6",
"stylelint": "6.8.0",
"tape": "4.6.0"
},
"directories": {},
"dist": {
"shasum": "09ea0f37a444c5693878606e09b018ebeff7cf8f",
"tarball": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-3.0.0.tgz"
},
"files": [
"index.js",
"lib"
],
"gitHead": "ea2ff315c11e037642d8b1dc3cd0216b07df5ce3",
"homepage": "https://github.com/postcss/postcss-reporter",
"license": "MIT",
"main": "index.js",
"maintainers": [
{
"name": "davidtheclark",
"email": "david.dave.clark@gmail.com"
}
],
"name": "postcss-reporter",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/postcss/postcss-reporter.git"
},
"scripts": {
"lint": "eslint .",
"test": "npm run lint && tape test",
"visual": "node test/visual.js"
},
"version": "3.0.0"
}