first commit
This commit is contained in:
22
app_vue/node_modules/postcss-discard-comments/LICENSE-MIT
generated
vendored
Normal file
22
app_vue/node_modules/postcss-discard-comments/LICENSE-MIT
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
Copyright (c) Ben Briggs <beneb.info@gmail.com> (http://beneb.info)
|
||||
|
||||
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.
|
114
app_vue/node_modules/postcss-discard-comments/README.md
generated
vendored
Normal file
114
app_vue/node_modules/postcss-discard-comments/README.md
generated
vendored
Normal file
@ -0,0 +1,114 @@
|
||||
# [postcss][postcss]-discard-comments
|
||||
|
||||
> Discard comments in your CSS files with PostCSS.
|
||||
|
||||
|
||||
## Install
|
||||
|
||||
With [npm](https://npmjs.org/package/postcss-discard-comments) do:
|
||||
|
||||
```
|
||||
npm install postcss-discard-comments --save
|
||||
```
|
||||
|
||||
|
||||
## Example
|
||||
|
||||
### Input
|
||||
|
||||
```css
|
||||
h1/* heading */{
|
||||
margin: 0 auto
|
||||
}
|
||||
```
|
||||
|
||||
### Output
|
||||
|
||||
```css
|
||||
h1 {
|
||||
margin: 0 auto
|
||||
}
|
||||
```
|
||||
|
||||
This module discards comments from your CSS files; by default, it will remove
|
||||
all regular comments (`/* comment */`) and preserve comments marked as important
|
||||
(`/*! important */`).
|
||||
|
||||
Note that this module does not handle source map comments because they are not
|
||||
available to it; PostCSS handles this internally, so if they are removed then
|
||||
you will have to [configure source maps in PostCSS][maps].
|
||||
|
||||
[maps]: https://github.com/postcss/postcss/blob/master/docs/source-maps.md
|
||||
|
||||
|
||||
## API
|
||||
|
||||
### comments([options])
|
||||
|
||||
#### options
|
||||
|
||||
##### remove(function)
|
||||
|
||||
Type: `function`
|
||||
Return: `boolean`
|
||||
Variable: `comment` contains a comment without `/**/`
|
||||
|
||||
For each comment, return true to remove, or false to keep the comment.
|
||||
|
||||
```js
|
||||
function(comment) {}
|
||||
```
|
||||
|
||||
```js
|
||||
var css = '/* headings *//*@ h1 */h1{margin:0 auto}/*@ h2 */h2{color:red}';
|
||||
console.log(postcss(comments({
|
||||
remove: function(comment) { return comment[0] == "@"; }
|
||||
})).process(css).css);
|
||||
//=> /* headings */h1{margin:0 auto}h2{color:red}
|
||||
```
|
||||
**NOTE:** If you use the `remove` function other options will not be available.
|
||||
|
||||
##### removeAll
|
||||
|
||||
Type: `boolean`
|
||||
Default: `false`
|
||||
|
||||
Remove all comments marked as important.
|
||||
|
||||
```js
|
||||
var css = '/*! heading */h1{margin:0 auto}/*! heading 2 */h2{color:red}';
|
||||
console.log(postcss(comments({removeAll: true})).process(css).css);
|
||||
//=> h1{margin:0 auto}h2{color:red}
|
||||
```
|
||||
|
||||
##### removeAllButFirst
|
||||
|
||||
Type: `boolean`
|
||||
Default: `false`
|
||||
|
||||
Remove all comments marked as important, but the first one.
|
||||
|
||||
```js
|
||||
var css = '/*! heading */h1{margin:0 auto}/*! heading 2 */h2{color:red}';
|
||||
console.log(postcss(comments({removeAllButFirst: true})).process(css).css);
|
||||
//=> /*! heading */h1{margin:0 auto}h2{color:red}
|
||||
```
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
See the [PostCSS documentation](https://github.com/postcss/postcss#usage) for
|
||||
examples for your environment.
|
||||
|
||||
|
||||
## Contributors
|
||||
|
||||
See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).
|
||||
|
||||
|
||||
## License
|
||||
|
||||
MIT © [Ben Briggs](http://beneb.info)
|
||||
|
||||
|
||||
[postcss]: https://github.com/postcss/postcss
|
38
app_vue/node_modules/postcss-discard-comments/package.json
generated
vendored
Normal file
38
app_vue/node_modules/postcss-discard-comments/package.json
generated
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
{
|
||||
"name": "postcss-discard-comments",
|
||||
"version": "5.1.2",
|
||||
"description": "Discard comments in your CSS files with PostCSS.",
|
||||
"main": "src/index.js",
|
||||
"types": "types/index.d.ts",
|
||||
"files": [
|
||||
"src",
|
||||
"LICENSE-MIT",
|
||||
"types"
|
||||
],
|
||||
"keywords": [
|
||||
"css",
|
||||
"comments",
|
||||
"postcss",
|
||||
"postcss-plugin"
|
||||
],
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/cssnano/cssnano",
|
||||
"author": {
|
||||
"name": "Ben Briggs",
|
||||
"email": "beneb.info@gmail.com",
|
||||
"url": "http://beneb.info"
|
||||
},
|
||||
"repository": "cssnano/cssnano",
|
||||
"bugs": {
|
||||
"url": "https://github.com/cssnano/cssnano/issues"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"postcss": "^8.2.15"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.2.15"
|
||||
}
|
||||
}
|
153
app_vue/node_modules/postcss-discard-comments/src/index.js
generated
vendored
Normal file
153
app_vue/node_modules/postcss-discard-comments/src/index.js
generated
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
'use strict';
|
||||
const CommentRemover = require('./lib/commentRemover');
|
||||
const commentParser = require('./lib/commentParser');
|
||||
|
||||
/** @typedef {object} Options
|
||||
* @property {boolean=} removeAll
|
||||
* @property {boolean=} removeAllButFirst
|
||||
* @property {(s: string) => boolean=} remove
|
||||
*/
|
||||
/**
|
||||
* @type {import('postcss').PluginCreator<Options>}
|
||||
* @param {Options} opts
|
||||
* @return {import('postcss').Plugin}
|
||||
*/
|
||||
function pluginCreator(opts = {}) {
|
||||
const remover = new CommentRemover(opts);
|
||||
const matcherCache = new Map();
|
||||
const replacerCache = new Map();
|
||||
|
||||
/**
|
||||
* @param {string} source
|
||||
* @return {[number, number, number][]}
|
||||
*/
|
||||
function matchesComments(source) {
|
||||
if (matcherCache.has(source)) {
|
||||
return matcherCache.get(source);
|
||||
}
|
||||
|
||||
const result = commentParser(source).filter(([type]) => type);
|
||||
|
||||
matcherCache.set(source, result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} source
|
||||
* @param {(s: string) => string[]} space
|
||||
* @return {string}
|
||||
*/
|
||||
function replaceComments(source, space, separator = ' ') {
|
||||
const key = source + '@|@' + separator;
|
||||
|
||||
if (replacerCache.has(key)) {
|
||||
return replacerCache.get(key);
|
||||
}
|
||||
const parsed = commentParser(source).reduce((value, [type, start, end]) => {
|
||||
const contents = source.slice(start, end);
|
||||
|
||||
if (!type) {
|
||||
return value + contents;
|
||||
}
|
||||
|
||||
if (remover.canRemove(contents)) {
|
||||
return value + separator;
|
||||
}
|
||||
|
||||
return `${value}/*${contents}*/`;
|
||||
}, '');
|
||||
|
||||
const result = space(parsed).join(' ');
|
||||
|
||||
replacerCache.set(key, result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return {
|
||||
postcssPlugin: 'postcss-discard-comments',
|
||||
|
||||
OnceExit(css, { list }) {
|
||||
css.walk((node) => {
|
||||
if (node.type === 'comment' && remover.canRemove(node.text)) {
|
||||
node.remove();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (typeof node.raws.between === 'string') {
|
||||
node.raws.between = replaceComments(node.raws.between, list.space);
|
||||
}
|
||||
|
||||
if (node.type === 'decl') {
|
||||
if (node.raws.value && node.raws.value.raw) {
|
||||
if (node.raws.value.value === node.value) {
|
||||
node.value = replaceComments(node.raws.value.raw, list.space);
|
||||
} else {
|
||||
node.value = replaceComments(node.value, list.space);
|
||||
}
|
||||
|
||||
/** @type {null | {value: string, raw: string}} */ (
|
||||
node.raws.value
|
||||
) = null;
|
||||
}
|
||||
|
||||
if (node.raws.important) {
|
||||
node.raws.important = replaceComments(
|
||||
node.raws.important,
|
||||
list.space
|
||||
);
|
||||
|
||||
const b = matchesComments(node.raws.important);
|
||||
|
||||
node.raws.important = b.length ? node.raws.important : '!important';
|
||||
} else {
|
||||
node.value = replaceComments(node.value, list.space);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
node.type === 'rule' &&
|
||||
node.raws.selector &&
|
||||
node.raws.selector.raw
|
||||
) {
|
||||
node.raws.selector.raw = replaceComments(
|
||||
node.raws.selector.raw,
|
||||
list.space,
|
||||
''
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (node.type === 'atrule') {
|
||||
if (node.raws.afterName) {
|
||||
const commentsReplaced = replaceComments(
|
||||
node.raws.afterName,
|
||||
list.space
|
||||
);
|
||||
|
||||
if (!commentsReplaced.length) {
|
||||
node.raws.afterName = commentsReplaced + ' ';
|
||||
} else {
|
||||
node.raws.afterName = ' ' + commentsReplaced + ' ';
|
||||
}
|
||||
}
|
||||
|
||||
if (node.raws.params && node.raws.params.raw) {
|
||||
node.raws.params.raw = replaceComments(
|
||||
node.raws.params.raw,
|
||||
list.space
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
pluginCreator.postcss = true;
|
||||
module.exports = pluginCreator;
|
31
app_vue/node_modules/postcss-discard-comments/src/lib/commentParser.js
generated
vendored
Normal file
31
app_vue/node_modules/postcss-discard-comments/src/lib/commentParser.js
generated
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @param {string} input
|
||||
* @return {[number, number, number][]}
|
||||
*/
|
||||
module.exports = function commentParser(input) {
|
||||
/** @type [number, number, number][] */
|
||||
const tokens = [];
|
||||
const length = input.length;
|
||||
let pos = 0;
|
||||
let next;
|
||||
|
||||
while (pos < length) {
|
||||
next = input.indexOf('/*', pos);
|
||||
|
||||
if (~next) {
|
||||
tokens.push([0, pos, next]);
|
||||
pos = next;
|
||||
|
||||
next = input.indexOf('*/', pos + 2);
|
||||
tokens.push([1, pos + 2, next]);
|
||||
pos = next + 2;
|
||||
} else {
|
||||
tokens.push([0, pos, length]);
|
||||
pos = length;
|
||||
}
|
||||
}
|
||||
|
||||
return tokens;
|
||||
};
|
32
app_vue/node_modules/postcss-discard-comments/src/lib/commentRemover.js
generated
vendored
Normal file
32
app_vue/node_modules/postcss-discard-comments/src/lib/commentRemover.js
generated
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
'use strict';
|
||||
|
||||
/** @param {import('../index.js').Options} options */
|
||||
function CommentRemover(options) {
|
||||
this.options = options;
|
||||
}
|
||||
/**
|
||||
* @param {string} comment
|
||||
* @return {boolean | undefined}
|
||||
*/
|
||||
CommentRemover.prototype.canRemove = function (comment) {
|
||||
const remove = this.options.remove;
|
||||
|
||||
if (remove) {
|
||||
return remove(comment);
|
||||
} else {
|
||||
const isImportant = comment.indexOf('!') === 0;
|
||||
|
||||
if (!isImportant) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (this.options.removeAll || this._hasFirst) {
|
||||
return true;
|
||||
} else if (this.options.removeAllButFirst && !this._hasFirst) {
|
||||
this._hasFirst = true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = CommentRemover;
|
21
app_vue/node_modules/postcss-discard-comments/types/index.d.ts
generated
vendored
Normal file
21
app_vue/node_modules/postcss-discard-comments/types/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
export = pluginCreator;
|
||||
/** @typedef {object} Options
|
||||
* @property {boolean=} removeAll
|
||||
* @property {boolean=} removeAllButFirst
|
||||
* @property {(s: string) => boolean=} remove
|
||||
*/
|
||||
/**
|
||||
* @type {import('postcss').PluginCreator<Options>}
|
||||
* @param {Options} opts
|
||||
* @return {import('postcss').Plugin}
|
||||
*/
|
||||
declare function pluginCreator(opts?: Options): import('postcss').Plugin;
|
||||
declare namespace pluginCreator {
|
||||
export { postcss, Options };
|
||||
}
|
||||
type Options = {
|
||||
removeAll?: boolean | undefined;
|
||||
removeAllButFirst?: boolean | undefined;
|
||||
remove?: ((s: string) => boolean) | undefined;
|
||||
};
|
||||
declare var postcss: true;
|
2
app_vue/node_modules/postcss-discard-comments/types/lib/commentParser.d.ts
generated
vendored
Normal file
2
app_vue/node_modules/postcss-discard-comments/types/lib/commentParser.d.ts
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
declare function _exports(input: string): [number, number, number][];
|
||||
export = _exports;
|
14
app_vue/node_modules/postcss-discard-comments/types/lib/commentRemover.d.ts
generated
vendored
Normal file
14
app_vue/node_modules/postcss-discard-comments/types/lib/commentRemover.d.ts
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
export = CommentRemover;
|
||||
/** @param {import('../index.js').Options} options */
|
||||
declare function CommentRemover(options: import('../index.js').Options): void;
|
||||
declare class CommentRemover {
|
||||
/** @param {import('../index.js').Options} options */
|
||||
constructor(options: import('../index.js').Options);
|
||||
options: import("../index.js").Options;
|
||||
/**
|
||||
* @param {string} comment
|
||||
* @return {boolean | undefined}
|
||||
*/
|
||||
canRemove(comment: string): boolean | undefined;
|
||||
_hasFirst: boolean | undefined;
|
||||
}
|
Reference in New Issue
Block a user