first commit

This commit is contained in:
monjack
2025-06-20 18:01:48 +08:00
commit 6daa6d65c1
24611 changed files with 2512443 additions and 0 deletions

22
app_vue/node_modules/stylehacks/LICENSE-MIT generated vendored Normal file
View 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.

91
app_vue/node_modules/stylehacks/README.md generated vendored Normal file
View File

@ -0,0 +1,91 @@
# stylehacks
> Detect/remove browser hacks from CSS files.
## Install
With [npm](https://npmjs.org/package/stylehacks) do:
```
npm install stylehacks --save
```
## Example
In its default mode, stylehacks will remove hacks from your CSS file, based on
the browsers that you wish to support.
### Input
```css
h1 {
_color: white;
color: rgba(255, 255, 255, 0.5);
}
```
### Output
```css
h1 {
color: rgba(255, 255, 255, 0.5);
}
```
## API
### `stylehacks.detect(node)`
Type: `function`
Returns: `boolean`
This method will take any PostCSS *node*, run applicable plugins depending on
its type, then will return a boolean depending on whether it found any of
the supported hacks. For example, if the `decl` node found below is passed to
the `detect` function, it will return `true`. But if the `rule` node is passed,
it will return `false` instead.
```css
h1 { _color: red }
```
### `postcss([ stylehacks(opts) ])`
stylehacks can also be consumed as a PostCSS plugin. See the
[documentation](https://github.com/postcss/postcss#usage) for examples for
your environment.
#### options
##### lint
Type: `boolean`
Default: `false`
If lint mode is enabled, stylehacks will not remove hacks from the CSS; instead,
it will add warnings to `Result#messages`.
## Related
stylehacks works well with your existing PostCSS setup:
* [stylelint] - Comprehensive & modern CSS linter, to ensure that your code
style rules are respected.
## Contributing
Pull requests are welcome. If you add functionality, then please add unit tests
to cover it.
## License
MIT © [Ben Briggs](http://beneb.info)
[stylelint]: https://github.com/stylelint/stylelint

46
app_vue/node_modules/stylehacks/package.json generated vendored Normal file
View File

@ -0,0 +1,46 @@
{
"name": "stylehacks",
"version": "5.1.1",
"description": "Detect/remove browser hacks from CSS files.",
"main": "src/index.js",
"types": "types/index.d.ts",
"files": [
"LICENSE-MIT",
"src",
"types"
],
"keywords": [
"browsers",
"css",
"hack",
"hacks",
"optimise",
"postcss",
"postcss-plugin",
"stylehacks"
],
"license": "MIT",
"homepage": "https://github.com/cssnano/cssnano",
"author": {
"name": "Ben Briggs",
"email": "beneb.info@gmail.com",
"url": "http://beneb.info"
},
"repository": "cssnano/cssnano",
"dependencies": {
"browserslist": "^4.21.4",
"postcss-selector-parser": "^6.0.4"
},
"bugs": {
"url": "https://github.com/cssnano/cssnano/issues"
},
"engines": {
"node": "^10 || ^12 || >=14.0"
},
"devDependencies": {
"postcss": "^8.2.15"
},
"peerDependencies": {
"postcss": "^8.2.15"
}
}

View File

@ -0,0 +1,9 @@
'use strict';
const FF_2 = 'firefox 2';
const IE_5_5 = 'ie 5.5';
const IE_6 = 'ie 6';
const IE_7 = 'ie 7';
const IE_8 = 'ie 8';
const OP_9 = 'opera 9';
module.exports = { FF_2, IE_5_5, IE_6, IE_7, IE_8, OP_9 };

View File

@ -0,0 +1,7 @@
'use strict';
const MEDIA_QUERY = 'media query';
const PROPERTY = 'property';
const SELECTOR = 'selector';
const VALUE = 'value';
module.exports = { MEDIA_QUERY, PROPERTY, SELECTOR, VALUE };

View File

@ -0,0 +1,6 @@
'use strict';
const ATRULE = 'atrule';
const DECL = 'decl';
const RULE = 'rule';
module.exports = { ATRULE, DECL, RULE };

View File

@ -0,0 +1,5 @@
'use strict';
const BODY = 'body';
const HTML = 'html';
module.exports = { BODY, HTML };

13
app_vue/node_modules/stylehacks/src/exists.js generated vendored Normal file
View File

@ -0,0 +1,13 @@
'use strict';
/**
* @param {import('postcss-selector-parser').Selector} selector
* @param {number} index
* @param {string} value
* @return {boolean | undefined | ''}
*/
module.exports = function exists(selector, index, value) {
const node = selector.at(index);
return node && node.value && node.value.toLowerCase() === value;
};

60
app_vue/node_modules/stylehacks/src/index.js generated vendored Normal file
View File

@ -0,0 +1,60 @@
'use strict';
const browserslist = require('browserslist');
const plugins = require('./plugins');
/** @typedef {{lint?: boolean}} Options */
/**
* @type {import('postcss').PluginCreator<Options>}
* @param {Options} opts
* @return {import('postcss').Plugin}
*/
function pluginCreator(opts = {}) {
return {
postcssPlugin: 'stylehacks',
OnceExit(css, { result }) {
/** @type {typeof result.opts & browserslist.Options} */
const resultOpts = result.opts || {};
const browsers = browserslist(null, {
stats: resultOpts.stats,
path: __dirname,
env: resultOpts.env,
});
/** @type {import('./plugin').Plugin[]} */
const processors = [];
for (const Plugin of plugins) {
const hack = new Plugin(result);
if (!browsers.some((browser) => hack.targets.has(browser))) {
processors.push(hack);
}
}
css.walk((node) => {
processors.forEach((proc) => {
if (!proc.nodeTypes.has(node.type)) {
return;
}
if (opts.lint) {
return proc.detectAndWarn(node);
}
return proc.detectAndResolve(node);
});
});
},
};
}
/** @type {(node: import('postcss').Node) => boolean} */
pluginCreator.detect = (node) => {
return plugins.some((Plugin) => {
const hack = new Plugin();
return hack.any(node);
});
};
pluginCreator.postcss = true;
module.exports = pluginCreator;

15
app_vue/node_modules/stylehacks/src/isMixin.js generated vendored Normal file
View File

@ -0,0 +1,15 @@
'use strict';
/**
* @param {import('postcss').Rule} node
* @return {boolean}
*/
module.exports = function isMixin(node) {
const { selector } = node;
// If the selector ends with a ':' it is likely a part of a custom mixin.
if (!selector || selector[selector.length - 1] === ':') {
return true;
}
return false;
};

108
app_vue/node_modules/stylehacks/src/plugin.js generated vendored Normal file
View File

@ -0,0 +1,108 @@
'use strict';
/**
* @typedef {object} Plugin
* @prop {Set<string>} targets
* @prop {Set<string>} nodeTypes
* @prop {(node: import('postcss').Node) => void} detectAndResolve
* @prop {(node: import('postcss').Node) => void} detectAndWarn
*/
/**
* @typedef {import('postcss').Node & {_stylehacks: {
message: string,
browsers: Set<string>,
identifier: string,
hack: string }}} NodeWithInfo
*/
module.exports = class BasePlugin {
/**
* @param {string[]} targets
* @param {string[]} nodeTypes
* @param {import('postcss').Result=} result
*/
constructor(targets, nodeTypes, result) {
/** @type {NodeWithInfo[]} */
this.nodes = [];
this.targets = new Set(targets);
this.nodeTypes = new Set(nodeTypes);
this.result = result;
}
/**
* @param {import('postcss').Node} node
* @param {{identifier: string, hack: string}} metadata
* @return {void}
*/
push(node, metadata) {
/** @type {NodeWithInfo} */ (node)._stylehacks = Object.assign(
{},
metadata,
{
message: `Bad ${metadata.identifier}: ${metadata.hack}`,
browsers: this.targets,
}
);
this.nodes.push(/** @type {NodeWithInfo} */ (node));
}
/**
* @param {import('postcss').Node} node
* @return {boolean}
*/
any(node) {
if (this.nodeTypes.has(node.type)) {
this.detect(node);
return /** @type {NodeWithInfo} */ (node)._stylehacks !== undefined;
}
return false;
}
/**
* @param {import('postcss').Node} node
* @return {void}
*/
detectAndResolve(node) {
this.nodes = [];
this.detect(node);
return this.resolve();
}
/**
* @param {import('postcss').Node} node
* @return {void}
*/
detectAndWarn(node) {
this.nodes = [];
this.detect(node);
return this.warn();
}
/** @param {import('postcss').Node} node */
// eslint-disable-next-line no-unused-vars
detect(node) {
throw new Error('You need to implement this method in a subclass.');
}
/** @return {void} */
resolve() {
return this.nodes.forEach((node) => node.remove());
}
warn() {
return this.nodes.forEach((node) => {
const { message, browsers, identifier, hack } = node._stylehacks;
return node.warn(
/** @type {import('postcss').Result} */ (this.result),
message + JSON.stringify({ browsers, identifier, hack })
);
});
}
};

View File

@ -0,0 +1,49 @@
'use strict';
const parser = require('postcss-selector-parser');
const exists = require('../exists');
const isMixin = require('../isMixin');
const BasePlugin = require('../plugin');
const { FF_2 } = require('../dictionary/browsers');
const { SELECTOR } = require('../dictionary/identifiers');
const { RULE } = require('../dictionary/postcss');
const { BODY } = require('../dictionary/tags');
module.exports = class BodyEmpty extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result) {
super([FF_2], [RULE], result);
}
/**
* @param {import('postcss').Rule} rule
* @return {void}
*/
detect(rule) {
if (isMixin(rule)) {
return;
}
parser(this.analyse(rule)).processSync(rule.selector);
}
/**
* @param {import('postcss').Rule} rule
* @return {parser.SyncProcessor<void>}
*/
analyse(rule) {
return (selectors) => {
selectors.each((selector) => {
if (
exists(selector, 0, BODY) &&
exists(selector, 1, ':empty') &&
exists(selector, 2, ' ') &&
selector.at(3)
) {
this.push(rule, {
identifier: SELECTOR,
hack: selector.toString(),
});
}
});
};
}
};

View File

@ -0,0 +1,54 @@
'use strict';
const parser = require('postcss-selector-parser');
const exists = require('../exists');
const isMixin = require('../isMixin');
const BasePlugin = require('../plugin');
const { IE_5_5, IE_6, IE_7 } = require('../dictionary/browsers');
const { SELECTOR } = require('../dictionary/identifiers');
const { RULE } = require('../dictionary/postcss');
const { BODY, HTML } = require('../dictionary/tags');
module.exports = class HtmlCombinatorCommentBody extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result) {
super([IE_5_5, IE_6, IE_7], [RULE], result);
}
/**
* @param {import('postcss').Rule} rule
* @return {void}
*/
detect(rule) {
if (isMixin(rule)) {
return;
}
if (rule.raws.selector && rule.raws.selector.raw) {
parser(this.analyse(rule)).processSync(rule.raws.selector.raw);
}
}
/** @param {import('postcss').Rule} rule
* @return {parser.SyncProcessor<void>}
*/
analyse(rule) {
return (selectors) => {
selectors.each((selector) => {
if (
exists(selector, 0, HTML) &&
(exists(selector, 1, '>') || exists(selector, 1, '~')) &&
selector.at(2) &&
selector.at(2).type === 'comment' &&
exists(selector, 3, ' ') &&
exists(selector, 4, BODY) &&
exists(selector, 5, ' ') &&
selector.at(6)
) {
this.push(rule, {
identifier: SELECTOR,
hack: selector.toString(),
});
}
});
};
}
};

View File

@ -0,0 +1,50 @@
'use strict';
const parser = require('postcss-selector-parser');
const exists = require('../exists');
const isMixin = require('../isMixin');
const BasePlugin = require('../plugin');
const { OP_9 } = require('../dictionary/browsers');
const { SELECTOR } = require('../dictionary/identifiers');
const { RULE } = require('../dictionary/postcss');
const { HTML } = require('../dictionary/tags');
module.exports = class HtmlFirstChild extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result) {
super([OP_9], [RULE], result);
}
/**
* @param {import('postcss').Rule} rule
* @return {void}
*/
detect(rule) {
if (isMixin(rule)) {
return;
}
parser(this.analyse(rule)).processSync(rule.selector);
}
/**
* @param {import('postcss').Rule} rule
* @return {parser.SyncProcessor<void>}
*/
analyse(rule) {
return (selectors) => {
selectors.each((selector) => {
if (
exists(selector, 0, HTML) &&
exists(selector, 1, ':first-child') &&
exists(selector, 2, ' ') &&
selector.at(3)
) {
this.push(rule, {
identifier: SELECTOR,
hack: selector.toString(),
});
}
});
};
}
};

View File

@ -0,0 +1,25 @@
'use strict';
const BasePlugin = require('../plugin');
const { IE_5_5, IE_6, IE_7 } = require('../dictionary/browsers');
const { DECL } = require('../dictionary/postcss');
module.exports = class Important extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result) {
super([IE_5_5, IE_6, IE_7], [DECL], result);
}
/**
* @param {import('postcss').Declaration} decl
* @return {void}
*/
detect(decl) {
const match = decl.value.match(/!\w/);
if (match && match.index) {
const hack = decl.value.substr(match.index, decl.value.length - 1);
this.push(decl, {
identifier: '!important',
hack,
});
}
}
};

28
app_vue/node_modules/stylehacks/src/plugins/index.js generated vendored Normal file
View File

@ -0,0 +1,28 @@
'use strict';
const bodyEmpty = require('./bodyEmpty');
const htmlCombinatorCommentBody = require('./htmlCombinatorCommentBody');
const htmlFirstChild = require('./htmlFirstChild');
const important = require('./important');
const leadingStar = require('./leadingStar');
const leadingUnderscore = require('./leadingUnderscore');
const mediaSlash0 = require('./mediaSlash0');
const mediaSlash0Slash9 = require('./mediaSlash0Slash9');
const mediaSlash9 = require('./mediaSlash9');
const slash9 = require('./slash9');
const starHtml = require('./starHtml');
const trailingSlashComma = require('./trailingSlashComma');
module.exports = [
bodyEmpty,
htmlCombinatorCommentBody,
htmlFirstChild,
important,
leadingStar,
leadingUnderscore,
mediaSlash0,
mediaSlash0Slash9,
mediaSlash9,
slash9,
starHtml,
trailingSlashComma,
];

View File

@ -0,0 +1,55 @@
'use strict';
const BasePlugin = require('../plugin');
const { IE_5_5, IE_6, IE_7 } = require('../dictionary/browsers');
const { PROPERTY } = require('../dictionary/identifiers');
const { ATRULE, DECL } = require('../dictionary/postcss');
const hacks = '!_$_&_*_)_=_%_+_,_._/_`_]_#_~_?_:_|'.split('_');
module.exports = class LeadingStar extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result) {
super([IE_5_5, IE_6, IE_7], [ATRULE, DECL], result);
}
/**
* @param {import('postcss').Declaration | import('postcss').AtRule} node
* @return {void}
*/
detect(node) {
if (node.type === DECL) {
// some values are not picked up by before, so ensure they are
// at the beginning of the value
hacks.forEach((hack) => {
if (!node.prop.indexOf(hack)) {
this.push(node, {
identifier: PROPERTY,
hack: node.prop,
});
}
});
const { before } = node.raws;
if (!before) {
return;
}
hacks.forEach((hack) => {
if (before.includes(hack)) {
this.push(node, {
identifier: PROPERTY,
hack: `${before.trim()}${node.prop}`,
});
}
});
} else {
// test for the @property: value; hack
const { name } = node;
const len = name.length - 1;
if (name.lastIndexOf(':') === len) {
this.push(node, {
identifier: PROPERTY,
hack: `@${name.substr(0, len)}`,
});
}
}
}
};

View File

@ -0,0 +1,51 @@
'use strict';
const BasePlugin = require('../plugin');
const { IE_6 } = require('../dictionary/browsers');
const { PROPERTY } = require('../dictionary/identifiers');
const { DECL } = require('../dictionary/postcss');
/**
* @param {string} prop
* @return {string}
*/
function vendorPrefix(prop) {
let match = prop.match(/^(-\w+-)/);
if (match) {
return match[0];
}
return '';
}
module.exports = class LeadingUnderscore extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result) {
super([IE_6], [DECL], result);
}
/**
* @param {import('postcss').Declaration} decl
* @return {void}
*/
detect(decl) {
const { before } = decl.raws;
if (before && before.includes('_')) {
this.push(decl, {
identifier: PROPERTY,
hack: `${before.trim()}${decl.prop}`,
});
}
if (
decl.prop[0] === '-' &&
decl.prop[1] !== '-' &&
vendorPrefix(decl.prop) === ''
) {
this.push(decl, {
identifier: PROPERTY,
hack: decl.prop,
});
}
}
};

View File

@ -0,0 +1,26 @@
'use strict';
const BasePlugin = require('../plugin');
const { IE_8 } = require('../dictionary/browsers');
const { MEDIA_QUERY } = require('../dictionary/identifiers');
const { ATRULE } = require('../dictionary/postcss');
module.exports = class MediaSlash0 extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result) {
super([IE_8], [ATRULE], result);
}
/**
* @param {import('postcss').AtRule} rule
* @return {void}
*/
detect(rule) {
const params = rule.params.trim();
if (params.toLowerCase() === '\\0screen') {
this.push(rule, {
identifier: MEDIA_QUERY,
hack: params,
});
}
}
};

View File

@ -0,0 +1,27 @@
'use strict';
const BasePlugin = require('../plugin');
const { IE_5_5, IE_6, IE_7, IE_8 } = require('../dictionary/browsers');
const { MEDIA_QUERY } = require('../dictionary/identifiers');
const { ATRULE } = require('../dictionary/postcss');
module.exports = class MediaSlash0Slash9 extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result) {
super([IE_5_5, IE_6, IE_7, IE_8], [ATRULE], result);
}
/**
* @param {import('postcss').AtRule} rule
* @return {void}
*/
detect(rule) {
const params = rule.params.trim();
if (params.toLowerCase() === '\\0screen\\,screen\\9') {
this.push(rule, {
identifier: MEDIA_QUERY,
hack: params,
});
}
}
};

View File

@ -0,0 +1,27 @@
'use strict';
const BasePlugin = require('../plugin');
const { IE_5_5, IE_6, IE_7 } = require('../dictionary/browsers');
const { MEDIA_QUERY } = require('../dictionary/identifiers');
const { ATRULE } = require('../dictionary/postcss');
module.exports = class MediaSlash9 extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result) {
super([IE_5_5, IE_6, IE_7], [ATRULE], result);
}
/**
* @param {import('postcss').AtRule} rule
* @return {void}
*/
detect(rule) {
const params = rule.params.trim();
if (params.toLowerCase() === 'screen\\9') {
this.push(rule, {
identifier: MEDIA_QUERY,
hack: params,
});
}
}
};

26
app_vue/node_modules/stylehacks/src/plugins/slash9.js generated vendored Normal file
View File

@ -0,0 +1,26 @@
'use strict';
const BasePlugin = require('../plugin.js');
const { IE_6, IE_7, IE_8 } = require('../dictionary/browsers');
const { VALUE } = require('../dictionary/identifiers');
const { DECL } = require('../dictionary/postcss');
module.exports = class Slash9 extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result) {
super([IE_6, IE_7, IE_8], [DECL], result);
}
/**
* @param {import('postcss').Declaration} decl
* @return {void}
*/
detect(decl) {
let v = decl.value;
if (v && v.length > 2 && v.indexOf('\\9') === v.length - 2) {
this.push(decl, {
identifier: VALUE,
hack: v,
});
}
}
};

View File

@ -0,0 +1,50 @@
'use strict';
const parser = require('postcss-selector-parser');
const exists = require('../exists');
const isMixin = require('../isMixin');
const BasePlugin = require('../plugin');
const { IE_5_5, IE_6 } = require('../dictionary/browsers');
const { SELECTOR } = require('../dictionary/identifiers');
const { RULE } = require('../dictionary/postcss');
const { HTML } = require('../dictionary/tags');
module.exports = class StarHtml extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result) {
super([IE_5_5, IE_6], [RULE], result);
}
/**
* @param {import('postcss').Rule} rule
* @return {void}
*/
detect(rule) {
if (isMixin(rule)) {
return;
}
parser(this.analyse(rule)).processSync(rule.selector);
}
/**
* @param {import('postcss').Rule} rule
* @return {parser.SyncProcessor<void>}
*/
analyse(rule) {
return (selectors) => {
selectors.each((selector) => {
if (
exists(selector, 0, '*') &&
exists(selector, 1, ' ') &&
exists(selector, 2, HTML) &&
exists(selector, 3, ' ') &&
selector.at(4)
) {
this.push(rule, {
identifier: SELECTOR,
hack: selector.toString(),
});
}
});
};
}
};

View File

@ -0,0 +1,36 @@
'use strict';
const BasePlugin = require('../plugin');
const isMixin = require('../isMixin');
const { IE_5_5, IE_6, IE_7 } = require('../dictionary/browsers');
const { SELECTOR } = require('../dictionary/identifiers');
const { RULE } = require('../dictionary/postcss');
module.exports = class TrailingSlashComma extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result) {
super([IE_5_5, IE_6, IE_7], [RULE], result);
}
/**
* @param {import('postcss').Rule} rule
* @return {void}
*/
detect(rule) {
if (isMixin(rule)) {
return;
}
const { selector } = rule;
const trim = selector.trim();
if (
trim.lastIndexOf(',') === selector.length - 1 ||
trim.lastIndexOf('\\') === selector.length - 1
) {
this.push(rule, {
identifier: SELECTOR,
hack: selector,
});
}
}
};

View File

@ -0,0 +1,6 @@
export const FF_2: "firefox 2";
export const IE_5_5: "ie 5.5";
export const IE_6: "ie 6";
export const IE_7: "ie 7";
export const IE_8: "ie 8";
export const OP_9: "opera 9";

View File

@ -0,0 +1,4 @@
export const MEDIA_QUERY: "media query";
export const PROPERTY: "property";
export const SELECTOR: "selector";
export const VALUE: "value";

View File

@ -0,0 +1,3 @@
export const ATRULE: "atrule";
export const DECL: "decl";
export const RULE: "rule";

View File

@ -0,0 +1,2 @@
export const BODY: "body";
export const HTML: "html";

2
app_vue/node_modules/stylehacks/types/exists.d.ts generated vendored Normal file
View File

@ -0,0 +1,2 @@
declare function _exports(selector: import('postcss-selector-parser').Selector, index: number, value: string): boolean | undefined | '';
export = _exports;

16
app_vue/node_modules/stylehacks/types/index.d.ts generated vendored Normal file
View File

@ -0,0 +1,16 @@
export = pluginCreator;
/** @typedef {{lint?: boolean}} Options */
/**
* @type {import('postcss').PluginCreator<Options>}
* @param {Options} opts
* @return {import('postcss').Plugin}
*/
declare function pluginCreator(opts?: Options): import('postcss').Plugin;
declare namespace pluginCreator {
export { detect, postcss, Options };
}
type Options = {
lint?: boolean;
};
declare function detect(node: import('postcss').Node): boolean;
declare var postcss: true;

2
app_vue/node_modules/stylehacks/types/isMixin.d.ts generated vendored Normal file
View File

@ -0,0 +1,2 @@
declare function _exports(node: import('postcss').Rule): boolean;
export = _exports;

60
app_vue/node_modules/stylehacks/types/plugin.d.ts generated vendored Normal file
View File

@ -0,0 +1,60 @@
export = BasePlugin;
declare class BasePlugin {
/**
* @param {string[]} targets
* @param {string[]} nodeTypes
* @param {import('postcss').Result=} result
*/
constructor(targets: string[], nodeTypes: string[], result?: import('postcss').Result | undefined);
/** @type {NodeWithInfo[]} */
nodes: NodeWithInfo[];
targets: Set<string>;
nodeTypes: Set<string>;
result: import("postcss").Result | undefined;
/**
* @param {import('postcss').Node} node
* @param {{identifier: string, hack: string}} metadata
* @return {void}
*/
push(node: import('postcss').Node, metadata: {
identifier: string;
hack: string;
}): void;
/**
* @param {import('postcss').Node} node
* @return {boolean}
*/
any(node: import('postcss').Node): boolean;
/**
* @param {import('postcss').Node} node
* @return {void}
*/
detectAndResolve(node: import('postcss').Node): void;
/**
* @param {import('postcss').Node} node
* @return {void}
*/
detectAndWarn(node: import('postcss').Node): void;
/** @param {import('postcss').Node} node */
detect(node: import('postcss').Node): void;
/** @return {void} */
resolve(): void;
warn(): void;
}
declare namespace BasePlugin {
export { Plugin, NodeWithInfo };
}
type NodeWithInfo = import('postcss').Node & {
_stylehacks: {
message: string;
browsers: Set<string>;
identifier: string;
hack: string;
};
};
type Plugin = {
targets: Set<string>;
nodeTypes: Set<string>;
detectAndResolve: (node: import('postcss').Node) => void;
detectAndWarn: (node: import('postcss').Node) => void;
};

View File

@ -0,0 +1,17 @@
export = BodyEmpty;
declare class BodyEmpty extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result: import('postcss').Result);
/**
* @param {import('postcss').Rule} rule
* @return {void}
*/
detect(rule: import('postcss').Rule): void;
/**
* @param {import('postcss').Rule} rule
* @return {parser.SyncProcessor<void>}
*/
analyse(rule: import('postcss').Rule): parser.SyncProcessor<void>;
}
import BasePlugin = require("../plugin");
import parser = require("postcss-selector-parser");

View File

@ -0,0 +1,16 @@
export = HtmlCombinatorCommentBody;
declare class HtmlCombinatorCommentBody extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result: import('postcss').Result);
/**
* @param {import('postcss').Rule} rule
* @return {void}
*/
detect(rule: import('postcss').Rule): void;
/** @param {import('postcss').Rule} rule
* @return {parser.SyncProcessor<void>}
*/
analyse(rule: import('postcss').Rule): parser.SyncProcessor<void>;
}
import BasePlugin = require("../plugin");
import parser = require("postcss-selector-parser");

View File

@ -0,0 +1,17 @@
export = HtmlFirstChild;
declare class HtmlFirstChild extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result: import('postcss').Result);
/**
* @param {import('postcss').Rule} rule
* @return {void}
*/
detect(rule: import('postcss').Rule): void;
/**
* @param {import('postcss').Rule} rule
* @return {parser.SyncProcessor<void>}
*/
analyse(rule: import('postcss').Rule): parser.SyncProcessor<void>;
}
import BasePlugin = require("../plugin");
import parser = require("postcss-selector-parser");

View File

@ -0,0 +1,11 @@
export = Important;
declare class Important extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result?: import('postcss').Result | undefined);
/**
* @param {import('postcss').Declaration} decl
* @return {void}
*/
detect(decl: import('postcss').Declaration): void;
}
import BasePlugin = require("../plugin");

View File

@ -0,0 +1,6 @@
declare const _exports: ({
new (result?: import("postcss").Result | undefined): important;
} | {
new (result?: import("postcss").Result | undefined): trailingSlashComma;
})[];
export = _exports;

View File

@ -0,0 +1,11 @@
export = LeadingStar;
declare class LeadingStar extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result?: import('postcss').Result | undefined);
/**
* @param {import('postcss').Declaration | import('postcss').AtRule} node
* @return {void}
*/
detect(node: import('postcss').Declaration | import('postcss').AtRule): void;
}
import BasePlugin = require("../plugin");

View File

@ -0,0 +1,11 @@
export = LeadingUnderscore;
declare class LeadingUnderscore extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result?: import('postcss').Result | undefined);
/**
* @param {import('postcss').Declaration} decl
* @return {void}
*/
detect(decl: import('postcss').Declaration): void;
}
import BasePlugin = require("../plugin");

View File

@ -0,0 +1,11 @@
export = MediaSlash0;
declare class MediaSlash0 extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result: import('postcss').Result);
/**
* @param {import('postcss').AtRule} rule
* @return {void}
*/
detect(rule: import('postcss').AtRule): void;
}
import BasePlugin = require("../plugin");

View File

@ -0,0 +1,11 @@
export = MediaSlash0Slash9;
declare class MediaSlash0Slash9 extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result: import('postcss').Result);
/**
* @param {import('postcss').AtRule} rule
* @return {void}
*/
detect(rule: import('postcss').AtRule): void;
}
import BasePlugin = require("../plugin");

View File

@ -0,0 +1,11 @@
export = MediaSlash9;
declare class MediaSlash9 extends BasePlugin {
/** @param {import('postcss').Result} result */
constructor(result: import('postcss').Result);
/**
* @param {import('postcss').AtRule} rule
* @return {void}
*/
detect(rule: import('postcss').AtRule): void;
}
import BasePlugin = require("../plugin");

View File

@ -0,0 +1,11 @@
export = Slash9;
declare class Slash9 extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result?: import('postcss').Result | undefined);
/**
* @param {import('postcss').Declaration} decl
* @return {void}
*/
detect(decl: import('postcss').Declaration): void;
}
import BasePlugin = require("../plugin.js");

View File

@ -0,0 +1,17 @@
export = StarHtml;
declare class StarHtml extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result?: import('postcss').Result | undefined);
/**
* @param {import('postcss').Rule} rule
* @return {void}
*/
detect(rule: import('postcss').Rule): void;
/**
* @param {import('postcss').Rule} rule
* @return {parser.SyncProcessor<void>}
*/
analyse(rule: import('postcss').Rule): parser.SyncProcessor<void>;
}
import BasePlugin = require("../plugin");
import parser = require("postcss-selector-parser");

View File

@ -0,0 +1,11 @@
export = TrailingSlashComma;
declare class TrailingSlashComma extends BasePlugin {
/** @param {import('postcss').Result=} result */
constructor(result?: import('postcss').Result | undefined);
/**
* @param {import('postcss').Rule} rule
* @return {void}
*/
detect(rule: import('postcss').Rule): void;
}
import BasePlugin = require("../plugin");