summaryrefslogtreecommitdiff
path: root/node_modules/cssnano-utils
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-10-14 15:05:55 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-10-14 15:05:55 +0800
commitc06f7ee0a40255214c477e13d9b956a7e07c2900 (patch)
treef5982a568ef8fab865d0142e71c7494fea3e4c1b /node_modules/cssnano-utils
parent3fd9400d4dccc25aa29b5702216732e0b7542073 (diff)
postcss,(plugins): nanocss, postcss-preset-env
Diffstat (limited to 'node_modules/cssnano-utils')
-rw-r--r--node_modules/cssnano-utils/LICENSE22
-rw-r--r--node_modules/cssnano-utils/README.md15
-rw-r--r--node_modules/cssnano-utils/package.json27
-rw-r--r--node_modules/cssnano-utils/src/getArguments.js19
-rw-r--r--node_modules/cssnano-utils/src/index.js6
-rw-r--r--node_modules/cssnano-utils/src/rawCache.js34
-rw-r--r--node_modules/cssnano-utils/src/sameParent.js44
-rw-r--r--node_modules/cssnano-utils/types/getArguments.d.ts2
-rw-r--r--node_modules/cssnano-utils/types/index.d.ts4
-rw-r--r--node_modules/cssnano-utils/types/rawCache.d.ts9
-rw-r--r--node_modules/cssnano-utils/types/sameParent.d.ts14
11 files changed, 196 insertions, 0 deletions
diff --git a/node_modules/cssnano-utils/LICENSE b/node_modules/cssnano-utils/LICENSE
new file mode 100644
index 00000000..fd0e863a
--- /dev/null
+++ b/node_modules/cssnano-utils/LICENSE
@@ -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.
diff --git a/node_modules/cssnano-utils/README.md b/node_modules/cssnano-utils/README.md
new file mode 100644
index 00000000..90c57a3b
--- /dev/null
+++ b/node_modules/cssnano-utils/README.md
@@ -0,0 +1,15 @@
+# cssnano-utils
+
+Utility methods and plugin for cssnano projects
+
+## List of methods and plugin(s)
+
+| **utility methods** | **description** |
+| ------------------- | ------------------------------------------------------------------------- |
+| `rawCache` | Postcss plugin to manage the raw value formatting for generated AST nodes |
+| `getArguments` | Get a list of arguments, separated by a comma. |
+| `sameParent` | Check that two PostCSS nodes share the same parent. |
+
+## Contributors
+
+See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).
diff --git a/node_modules/cssnano-utils/package.json b/node_modules/cssnano-utils/package.json
new file mode 100644
index 00000000..8c07ccf3
--- /dev/null
+++ b/node_modules/cssnano-utils/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "cssnano-utils",
+ "version": "4.0.0",
+ "repository": "cssnano/cssnano",
+ "main": "src/index.js",
+ "types": "types/index.d.ts",
+ "description": "Utility methods and plugin for cssnano projects",
+ "homepage": "https://github.com/cssnano/cssnano",
+ "bugs": {
+ "url": "https://github.com/cssnano/cssnano/issues"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "files": [
+ "src",
+ "LICENSE",
+ "types"
+ ],
+ "license": "MIT",
+ "devDependencies": {
+ "postcss": "^8.2.15"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+} \ No newline at end of file
diff --git a/node_modules/cssnano-utils/src/getArguments.js b/node_modules/cssnano-utils/src/getArguments.js
new file mode 100644
index 00000000..7c8e48aa
--- /dev/null
+++ b/node_modules/cssnano-utils/src/getArguments.js
@@ -0,0 +1,19 @@
+'use strict';
+/**
+ * Extracts the arguments of a CSS function or AtRule.
+ *
+ * @param {import('postcss-value-parser').ParsedValue | import('postcss-value-parser').FunctionNode} node
+ * @return {import('postcss-value-parser').Node[][]}
+ */
+module.exports = function getArguments(node) {
+ /** @type {import('postcss-value-parser').Node[][]} */
+ const list = [[]];
+ for (const child of node.nodes) {
+ if (child.type !== 'div') {
+ list[list.length - 1].push(child);
+ } else {
+ list.push([]);
+ }
+ }
+ return list;
+};
diff --git a/node_modules/cssnano-utils/src/index.js b/node_modules/cssnano-utils/src/index.js
new file mode 100644
index 00000000..d0828f44
--- /dev/null
+++ b/node_modules/cssnano-utils/src/index.js
@@ -0,0 +1,6 @@
+'use strict';
+const rawCache = require('./rawCache.js');
+const getArguments = require('./getArguments.js');
+const sameParent = require('./sameParent.js');
+
+module.exports = { rawCache, getArguments, sameParent };
diff --git a/node_modules/cssnano-utils/src/rawCache.js b/node_modules/cssnano-utils/src/rawCache.js
new file mode 100644
index 00000000..42a320e0
--- /dev/null
+++ b/node_modules/cssnano-utils/src/rawCache.js
@@ -0,0 +1,34 @@
+'use strict';
+
+/**
+ * @type {import('postcss').PluginCreator<void>}
+ * @return {import('postcss').Plugin}
+ */
+function pluginCreator() {
+ return {
+ postcssPlugin: 'cssnano-util-raw-cache',
+ /**
+ * @param {import('postcss').Root} css
+ * @param {{result: import('postcss').Result & {root: {rawCache?: any}}}} arg
+ */
+ OnceExit(css, { result }) {
+ result.root.rawCache = {
+ colon: ':',
+ indent: '',
+ beforeDecl: '',
+ beforeRule: '',
+ beforeOpen: '',
+ beforeClose: '',
+ beforeComment: '',
+ after: '',
+ emptyBody: '',
+ commentLeft: '',
+ commentRight: '',
+ };
+ },
+ };
+}
+
+pluginCreator.postcss = true;
+
+module.exports = pluginCreator;
diff --git a/node_modules/cssnano-utils/src/sameParent.js b/node_modules/cssnano-utils/src/sameParent.js
new file mode 100644
index 00000000..6c484e1f
--- /dev/null
+++ b/node_modules/cssnano-utils/src/sameParent.js
@@ -0,0 +1,44 @@
+'use strict';
+
+/**
+ * @param {import('postcss').AnyNode} nodeA
+ * @param {import('postcss').AnyNode} nodeB
+ * @return {boolean}
+ */
+function checkMatch(nodeA, nodeB) {
+ if (nodeA.type === 'atrule' && nodeB.type === 'atrule') {
+ return (
+ nodeA.params === nodeB.params &&
+ nodeA.name.toLowerCase() === nodeB.name.toLowerCase()
+ );
+ }
+ return nodeA.type === nodeB.type;
+}
+
+/** @typedef {import('postcss').AnyNode & {parent?: Child}} Child */
+/**
+ * @param {Child} nodeA
+ * @param {Child} nodeB
+ * @return {boolean}
+ */
+function sameParent(nodeA, nodeB) {
+ if (!nodeA.parent) {
+ // A is orphaned, return if B is orphaned as well
+ return !nodeB.parent;
+ }
+
+ if (!nodeB.parent) {
+ // B is orphaned and A is not
+ return false;
+ }
+
+ // Check if parents match
+ if (!checkMatch(nodeA.parent, nodeB.parent)) {
+ return false;
+ }
+
+ // Check parents' parents
+ return sameParent(nodeA.parent, nodeB.parent);
+}
+
+module.exports = sameParent;
diff --git a/node_modules/cssnano-utils/types/getArguments.d.ts b/node_modules/cssnano-utils/types/getArguments.d.ts
new file mode 100644
index 00000000..da525c59
--- /dev/null
+++ b/node_modules/cssnano-utils/types/getArguments.d.ts
@@ -0,0 +1,2 @@
+declare function _exports(node: import('postcss-value-parser').ParsedValue | import('postcss-value-parser').FunctionNode): import('postcss-value-parser').Node[][];
+export = _exports;
diff --git a/node_modules/cssnano-utils/types/index.d.ts b/node_modules/cssnano-utils/types/index.d.ts
new file mode 100644
index 00000000..484de69f
--- /dev/null
+++ b/node_modules/cssnano-utils/types/index.d.ts
@@ -0,0 +1,4 @@
+import rawCache = require("./rawCache.js");
+import getArguments = require("./getArguments.js");
+import sameParent = require("./sameParent.js");
+export { rawCache, getArguments, sameParent };
diff --git a/node_modules/cssnano-utils/types/rawCache.d.ts b/node_modules/cssnano-utils/types/rawCache.d.ts
new file mode 100644
index 00000000..d2beadb6
--- /dev/null
+++ b/node_modules/cssnano-utils/types/rawCache.d.ts
@@ -0,0 +1,9 @@
+export = pluginCreator;
+/**
+ * @type {import('postcss').PluginCreator<void>}
+ * @return {import('postcss').Plugin}
+ */
+declare function pluginCreator(): import('postcss').Plugin;
+declare namespace pluginCreator {
+ const postcss: true;
+}
diff --git a/node_modules/cssnano-utils/types/sameParent.d.ts b/node_modules/cssnano-utils/types/sameParent.d.ts
new file mode 100644
index 00000000..7dd05bd7
--- /dev/null
+++ b/node_modules/cssnano-utils/types/sameParent.d.ts
@@ -0,0 +1,14 @@
+export = sameParent;
+/** @typedef {import('postcss').AnyNode & {parent?: Child}} Child */
+/**
+ * @param {Child} nodeA
+ * @param {Child} nodeB
+ * @return {boolean}
+ */
+declare function sameParent(nodeA: Child, nodeB: Child): boolean;
+declare namespace sameParent {
+ export { Child };
+}
+type Child = import('postcss').AnyNode & {
+ parent?: Child;
+};