tailwindcss 0.0.0-insiders.c8e484c → 0.0.0-insiders.c9138b2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/index.css +5 -0
- package/lib/cli/build/index.js +18 -9
- package/lib/cli/build/plugin.js +101 -87
- package/lib/cli/build/utils.js +18 -8
- package/lib/cli/build/watching.js +16 -12
- package/lib/cli/help/index.js +6 -4
- package/lib/cli/index.js +17 -25
- package/lib/cli/init/index.js +28 -11
- package/lib/cli.js +1 -5
- package/lib/corePluginList.js +8 -1
- package/lib/corePlugins.js +189 -54
- package/lib/css/preflight.css +9 -1
- package/lib/featureFlags.js +19 -9
- package/lib/index.js +1 -5
- package/lib/lib/cacheInvalidation.js +7 -5
- package/lib/lib/collapseAdjacentRules.js +3 -1
- package/lib/lib/collapseDuplicateDeclarations.js +10 -8
- package/lib/lib/content.js +45 -15
- package/lib/lib/defaultExtractor.js +6 -4
- package/lib/lib/detectNesting.js +3 -1
- package/lib/lib/evaluateTailwindFunctions.js +20 -16
- package/lib/lib/expandApplyAtRules.js +41 -33
- package/lib/lib/expandTailwindAtRules.js +18 -15
- package/lib/lib/findAtConfigPath.js +6 -4
- package/lib/lib/generateRules.js +70 -57
- package/lib/lib/getModuleDependencies.js +85 -37
- package/lib/lib/handleImportAtRules.js +50 -0
- package/lib/lib/load-config.js +42 -0
- package/lib/lib/normalizeTailwindDirectives.js +5 -18
- package/lib/lib/offsets.js +12 -5
- package/lib/lib/partitionApplyAtRules.js +3 -1
- package/lib/lib/regex.js +21 -7
- package/lib/lib/remap-bitfield.js +3 -1
- package/lib/lib/resolveDefaultsAtRules.js +24 -20
- package/lib/lib/setupContextUtils.js +102 -75
- package/lib/lib/setupTrackingContext.js +28 -25
- package/lib/lib/sharedState.js +29 -28
- package/lib/lib/substituteScreenAtRules.js +5 -3
- package/lib/plugin.js +58 -6
- package/lib/postcss-plugins/nesting/index.js +3 -1
- package/lib/postcss-plugins/nesting/plugin.js +8 -6
- package/lib/processTailwindFeatures.js +14 -12
- package/lib/public/colors.js +49 -25
- package/lib/public/create-plugin.js +5 -3
- package/lib/public/default-config.js +6 -4
- package/lib/public/default-theme.js +6 -4
- package/lib/public/load-config.js +12 -0
- package/lib/public/resolve-config.js +6 -4
- package/lib/util/applyImportantSelector.js +36 -0
- package/lib/util/bigSign.js +3 -1
- package/lib/util/buildMediaQuery.js +3 -1
- package/lib/util/cloneDeep.js +3 -1
- package/lib/util/cloneNodes.js +3 -1
- package/lib/util/color.js +26 -8
- package/lib/util/colorNames.js +752 -0
- package/lib/util/configurePlugins.js +3 -1
- package/lib/util/createPlugin.js +3 -1
- package/lib/util/createUtilityPlugin.js +5 -3
- package/lib/util/dataTypes.js +59 -21
- package/lib/util/defaults.js +6 -4
- package/lib/util/escapeClassName.js +7 -5
- package/lib/util/escapeCommas.js +3 -1
- package/lib/util/flattenColorPalette.js +3 -1
- package/lib/util/formatVariantSelector.js +30 -118
- package/lib/util/getAllConfigs.js +6 -4
- package/lib/util/hashConfig.js +6 -4
- package/lib/util/isKeyframeRule.js +3 -1
- package/lib/util/isPlainObject.js +3 -1
- package/lib/util/isSyntacticallyValidPropertyValue.js +3 -1
- package/lib/util/log.js +25 -4
- package/lib/util/nameClass.js +12 -6
- package/lib/util/negateValue.js +3 -1
- package/lib/util/normalizeConfig.js +30 -17
- package/lib/util/normalizeScreens.js +12 -4
- package/lib/util/parseAnimationValue.js +3 -1
- package/lib/util/parseBoxShadowValue.js +6 -2
- package/lib/util/parseDependency.js +3 -1
- package/lib/util/parseGlob.js +6 -4
- package/lib/util/parseObjectStyles.js +9 -7
- package/lib/util/pluginUtils.js +34 -43
- package/lib/util/prefixSelector.js +6 -4
- package/lib/util/pseudoElements.js +229 -0
- package/lib/util/removeAlphaVariables.js +3 -1
- package/lib/util/resolveConfig.js +10 -8
- package/lib/util/resolveConfigPath.js +26 -10
- package/lib/util/responsive.js +6 -4
- package/lib/util/splitAtTopLevelOnly.js +10 -2
- package/lib/util/tap.js +3 -1
- package/lib/util/toColorValue.js +3 -1
- package/lib/util/toPath.js +3 -1
- package/lib/util/transformThemeValue.js +6 -4
- package/lib/util/validateConfig.js +27 -3
- package/lib/util/validateFormalSyntax.js +3 -1
- package/lib/util/withAlphaVariable.js +6 -2
- package/lib/value-parser/LICENSE +22 -0
- package/lib/value-parser/README.md +3 -0
- package/lib/value-parser/index.d.js +2 -0
- package/lib/value-parser/index.js +22 -0
- package/lib/value-parser/parse.js +259 -0
- package/lib/value-parser/stringify.js +38 -0
- package/lib/value-parser/unit.js +86 -0
- package/lib/value-parser/walk.js +16 -0
- package/loadConfig.d.ts +4 -0
- package/loadConfig.js +2 -0
- package/package.json +44 -51
- package/src/cli/build/index.js +11 -7
- package/src/cli/build/plugin.js +83 -65
- package/src/cli/build/watching.js +4 -2
- package/src/cli/index.js +9 -26
- package/src/cli/init/index.js +37 -8
- package/src/cli.js +1 -5
- package/src/corePluginList.js +1 -1
- package/src/corePlugins.js +168 -35
- package/src/css/preflight.css +9 -1
- package/src/featureFlags.js +6 -2
- package/src/index.js +1 -5
- package/src/lib/content.js +33 -1
- package/src/lib/defaultExtractor.js +1 -1
- package/src/lib/evaluateTailwindFunctions.js +4 -1
- package/src/lib/expandApplyAtRules.js +8 -1
- package/src/lib/expandTailwindAtRules.js +6 -6
- package/src/lib/generateRules.js +50 -26
- package/src/lib/getModuleDependencies.js +70 -30
- package/src/lib/handleImportAtRules.js +34 -0
- package/src/lib/load-config.ts +31 -0
- package/src/lib/normalizeTailwindDirectives.js +0 -27
- package/src/lib/offsets.js +6 -0
- package/src/lib/setupContextUtils.js +33 -23
- package/src/lib/setupTrackingContext.js +6 -8
- package/src/lib/sharedState.js +10 -20
- package/src/plugin.js +60 -0
- package/src/public/colors.js +22 -0
- package/src/public/default-config.js +1 -1
- package/src/public/default-theme.js +2 -2
- package/src/public/load-config.js +2 -0
- package/src/util/applyImportantSelector.js +27 -0
- package/src/util/color.js +18 -3
- package/src/util/colorNames.js +150 -0
- package/src/util/dataTypes.js +17 -6
- package/src/util/formatVariantSelector.js +4 -100
- package/src/util/getAllConfigs.js +2 -2
- package/src/util/log.js +24 -0
- package/src/util/normalizeConfig.js +24 -11
- package/src/util/pluginUtils.js +11 -38
- package/src/util/pseudoElements.js +170 -0
- package/src/util/resolveConfigPath.js +12 -1
- package/src/util/splitAtTopLevelOnly.js +8 -1
- package/src/util/validateConfig.js +23 -0
- package/src/value-parser/LICENSE +22 -0
- package/src/value-parser/README.md +3 -0
- package/src/value-parser/index.d.ts +177 -0
- package/src/value-parser/index.js +28 -0
- package/src/value-parser/parse.js +303 -0
- package/src/value-parser/stringify.js +41 -0
- package/src/value-parser/unit.js +118 -0
- package/src/value-parser/walk.js +18 -0
- package/stubs/.gitignore +1 -0
- package/stubs/.prettierrc.json +6 -0
- package/stubs/{defaultConfig.stub.js → config.full.js} +49 -2
- package/stubs/{simpleConfig.stub.js → config.simple.js} +1 -2
- package/stubs/{defaultPostCssConfig.stub.js → postcss.config.cjs} +0 -1
- package/stubs/postcss.config.js +5 -0
- package/stubs/tailwind.config.cjs +2 -0
- package/stubs/tailwind.config.js +2 -0
- package/stubs/tailwind.config.ts +3 -0
- package/types/config.d.ts +8 -7
- package/types/generated/colors.d.ts +22 -0
- package/types/generated/corePluginList.d.ts +1 -1
- package/types/generated/default-theme.d.ts +28 -1
- package/lib/cli/build/deps.js +0 -54
- package/lib/cli-peer-dependencies.js +0 -28
- package/lib/constants.js +0 -44
- package/lib/oxide/cli/build/deps.js +0 -81
- package/lib/oxide/cli/build/index.js +0 -47
- package/lib/oxide/cli/build/plugin.js +0 -364
- package/lib/oxide/cli/build/utils.js +0 -77
- package/lib/oxide/cli/build/watching.js +0 -177
- package/lib/oxide/cli/help/index.js +0 -70
- package/lib/oxide/cli/index.js +0 -220
- package/lib/oxide/cli/init/index.js +0 -35
- package/lib/oxide/cli.js +0 -5
- package/lib/oxide/postcss-plugin.js +0 -2
- package/oxide-node-api-shim/index.js +0 -21
- package/oxide-node-api-shim/package.json +0 -5
- package/peers/index.js +0 -79461
- package/scripts/swap-engines.js +0 -40
- package/src/cli/build/deps.js +0 -56
- package/src/cli-peer-dependencies.js +0 -15
- package/src/constants.js +0 -17
- package/src/oxide/cli/build/deps.ts +0 -91
- package/src/oxide/cli/build/index.ts +0 -47
- package/src/oxide/cli/build/plugin.ts +0 -436
- package/src/oxide/cli/build/utils.ts +0 -74
- package/src/oxide/cli/build/watching.ts +0 -225
- package/src/oxide/cli/help/index.ts +0 -69
- package/src/oxide/cli/index.ts +0 -212
- package/src/oxide/cli/init/index.ts +0 -32
- package/src/oxide/cli.ts +0 -1
- package/src/oxide/postcss-plugin.ts +0 -1
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
17
|
-
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/actions/workflow/status/tailwindlabs/tailwindcss/ci
|
|
17
|
+
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/actions/workflow/status/tailwindlabs/tailwindcss/ci.yml?branch=master" alt="Build Status"></a>
|
|
18
18
|
<a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
|
|
19
19
|
<a href="https://github.com/tailwindcss/tailwindcss/releases"><img src="https://img.shields.io/npm/v/tailwindcss.svg" alt="Latest Release"></a>
|
|
20
20
|
<a href="https://github.com/tailwindcss/tailwindcss/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/tailwindcss.svg" alt="License"></a>
|
package/index.css
ADDED
package/lib/cli/build/index.js
CHANGED
|
@@ -5,17 +5,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "build", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: ()
|
|
8
|
+
get: function() {
|
|
9
|
+
return build;
|
|
10
|
+
}
|
|
9
11
|
});
|
|
10
|
-
const _fs = /*#__PURE__*/
|
|
11
|
-
const _path = /*#__PURE__*/
|
|
12
|
-
const
|
|
13
|
-
|
|
12
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
13
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
14
|
+
const _resolveConfigPath = require("../../util/resolveConfigPath.js");
|
|
15
|
+
const _plugin = require("./plugin.js");
|
|
16
|
+
function _interop_require_default(obj) {
|
|
14
17
|
return obj && obj.__esModule ? obj : {
|
|
15
18
|
default: obj
|
|
16
19
|
};
|
|
17
20
|
}
|
|
18
|
-
async function build(args
|
|
21
|
+
async function build(args) {
|
|
19
22
|
let input = args["--input"];
|
|
20
23
|
let shouldWatch = args["--watch"];
|
|
21
24
|
// TODO: Deprecate this in future versions
|
|
@@ -31,9 +34,12 @@ async function build(args, configs) {
|
|
|
31
34
|
console.error(`Specified config file ${args["--config"]} does not exist.`);
|
|
32
35
|
process.exit(9);
|
|
33
36
|
}
|
|
37
|
+
if (args["--no-autoprefixer"]) {
|
|
38
|
+
console.error("[deprecation] The --no-autoprefixer flag is deprecated and has no effect.");
|
|
39
|
+
}
|
|
34
40
|
// TODO: Reference the @config path here if exists
|
|
35
|
-
let configPath = args["--config"] ? args["--config"] : (
|
|
36
|
-
let processor = await (0,
|
|
41
|
+
let configPath = args["--config"] ? args["--config"] : (0, _resolveConfigPath.resolveDefaultConfigPath)();
|
|
42
|
+
let processor = await (0, _plugin.createProcessor)(args, configPath);
|
|
37
43
|
if (shouldWatch) {
|
|
38
44
|
// Abort the watcher if stdin is closed to avoid zombie processes
|
|
39
45
|
// You can disable this behavior with --watch=always
|
|
@@ -43,6 +49,9 @@ async function build(args, configs) {
|
|
|
43
49
|
process.stdin.resume();
|
|
44
50
|
await processor.watch();
|
|
45
51
|
} else {
|
|
46
|
-
await processor.build()
|
|
52
|
+
await processor.build().catch((e)=>{
|
|
53
|
+
console.error(e);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
});
|
|
47
56
|
}
|
|
48
57
|
}
|
package/lib/cli/build/plugin.js
CHANGED
|
@@ -5,32 +5,69 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "createProcessor", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: ()
|
|
8
|
+
get: function() {
|
|
9
|
+
return createProcessor;
|
|
10
|
+
}
|
|
9
11
|
});
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
12
|
+
const _packagejson = /*#__PURE__*/ _interop_require_default(require("../../../package.json"));
|
|
13
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
14
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
15
|
+
const _postcss = /*#__PURE__*/ _interop_require_default(require("postcss"));
|
|
16
|
+
const _postcssloadconfig = /*#__PURE__*/ _interop_require_default(require("postcss-load-config"));
|
|
17
|
+
const _browserslist = /*#__PURE__*/ _interop_require_default(require("browserslist"));
|
|
18
|
+
const _lightningcss = /*#__PURE__*/ _interop_require_default(require("lightningcss"));
|
|
13
19
|
const _lilconfig = require("lilconfig");
|
|
14
|
-
const _plugins = /*#__PURE__*/
|
|
20
|
+
const _plugins = /*#__PURE__*/ _interop_require_default(require("postcss-load-config/src/plugins" // Little bit scary, looking at private/internal API
|
|
15
21
|
));
|
|
16
|
-
const _options = /*#__PURE__*/
|
|
22
|
+
const _options = /*#__PURE__*/ _interop_require_default(require("postcss-load-config/src/options" // Little bit scary, looking at private/internal API
|
|
17
23
|
));
|
|
18
|
-
const _processTailwindFeatures = /*#__PURE__*/
|
|
19
|
-
const _deps = require("./deps");
|
|
24
|
+
const _processTailwindFeatures = /*#__PURE__*/ _interop_require_default(require("../../processTailwindFeatures"));
|
|
20
25
|
const _utils = require("./utils");
|
|
21
26
|
const _sharedState = require("../../lib/sharedState");
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
27
|
+
const _resolveConfig = /*#__PURE__*/ _interop_require_default(require("../../../resolveConfig.js"));
|
|
28
|
+
const _content = require("../../lib/content.js");
|
|
29
|
+
const _watching = require("./watching.js");
|
|
30
|
+
const _fastglob = /*#__PURE__*/ _interop_require_default(require("fast-glob"));
|
|
31
|
+
const _findAtConfigPath = require("../../lib/findAtConfigPath.js");
|
|
32
|
+
const _log = /*#__PURE__*/ _interop_require_default(require("../../util/log"));
|
|
33
|
+
const _loadconfig = require("../../lib/load-config");
|
|
34
|
+
const _getModuleDependencies = /*#__PURE__*/ _interop_require_default(require("../../lib/getModuleDependencies"));
|
|
35
|
+
const _validateConfig = require("../../util/validateConfig");
|
|
36
|
+
const _handleImportAtRules = require("../../lib/handleImportAtRules");
|
|
37
|
+
const _featureFlags = require("../../featureFlags");
|
|
38
|
+
function _interop_require_default(obj) {
|
|
30
39
|
return obj && obj.__esModule ? obj : {
|
|
31
40
|
default: obj
|
|
32
41
|
};
|
|
33
42
|
}
|
|
43
|
+
async function lightningcss(result, { map =true , minify =true } = {}) {
|
|
44
|
+
try {
|
|
45
|
+
let transformed = _lightningcss.default.transform({
|
|
46
|
+
filename: result.opts.from || "input.css",
|
|
47
|
+
code: Buffer.from(result.css, "utf-8"),
|
|
48
|
+
minify,
|
|
49
|
+
sourceMap: result.map === undefined ? map : !!result.map,
|
|
50
|
+
inputSourceMap: result.map ? result.map.toString() : undefined,
|
|
51
|
+
targets: _lightningcss.default.browserslistToTargets((0, _browserslist.default)(_packagejson.default.browserslist)),
|
|
52
|
+
drafts: {
|
|
53
|
+
nesting: true
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return Object.assign(result, {
|
|
57
|
+
css: transformed.code.toString("utf8"),
|
|
58
|
+
map: result.map ? Object.assign(result.map, {
|
|
59
|
+
toString () {
|
|
60
|
+
var _transformed_map;
|
|
61
|
+
return (_transformed_map = transformed.map) === null || _transformed_map === void 0 ? void 0 : _transformed_map.toString();
|
|
62
|
+
}
|
|
63
|
+
}) : result.map
|
|
64
|
+
});
|
|
65
|
+
} catch (err) {
|
|
66
|
+
console.error("Unable to use Lightning CSS. Using raw version instead.");
|
|
67
|
+
console.error(err);
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
34
71
|
/**
|
|
35
72
|
*
|
|
36
73
|
* @param {string} [customPostCssPath ]
|
|
@@ -54,7 +91,7 @@ function _interopRequireDefault(obj) {
|
|
|
54
91
|
plugins: (0, _plugins.default)(config, file),
|
|
55
92
|
options: (0, _options.default)(config, file)
|
|
56
93
|
};
|
|
57
|
-
})() : await (0,
|
|
94
|
+
})() : await (0, _postcssloadconfig.default)();
|
|
58
95
|
let configPlugins = config.plugins;
|
|
59
96
|
let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
|
|
60
97
|
if (typeof plugin === "function" && plugin.name === "tailwindcss") {
|
|
@@ -73,48 +110,16 @@ function _interopRequireDefault(obj) {
|
|
|
73
110
|
config.options
|
|
74
111
|
];
|
|
75
112
|
}
|
|
76
|
-
function loadBuiltinPostcssPlugins() {
|
|
77
|
-
let postcss = (0, _deps.loadPostcss)();
|
|
78
|
-
let IMPORT_COMMENT = "__TAILWIND_RESTORE_IMPORT__: ";
|
|
79
|
-
return [
|
|
80
|
-
[
|
|
81
|
-
(root)=>{
|
|
82
|
-
root.walkAtRules("import", (rule)=>{
|
|
83
|
-
if (rule.params.slice(1).startsWith("tailwindcss/")) {
|
|
84
|
-
rule.after(postcss.comment({
|
|
85
|
-
text: IMPORT_COMMENT + rule.params
|
|
86
|
-
}));
|
|
87
|
-
rule.remove();
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
},
|
|
91
|
-
(0, _deps.loadPostcssImport)(),
|
|
92
|
-
(root)=>{
|
|
93
|
-
root.walkComments((rule)=>{
|
|
94
|
-
if (rule.text.startsWith(IMPORT_COMMENT)) {
|
|
95
|
-
rule.after(postcss.atRule({
|
|
96
|
-
name: "import",
|
|
97
|
-
params: rule.text.replace(IMPORT_COMMENT, "")
|
|
98
|
-
}));
|
|
99
|
-
rule.remove();
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
],
|
|
104
|
-
[],
|
|
105
|
-
{}
|
|
106
|
-
];
|
|
107
|
-
}
|
|
108
113
|
let state = {
|
|
109
114
|
/** @type {any} */ context: null,
|
|
110
115
|
/** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
|
|
111
116
|
/** @type {{content: string, extension: string}[]} */ changedContent: [],
|
|
112
|
-
|
|
117
|
+
/** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
|
|
113
118
|
contextDependencies: new Set(),
|
|
114
119
|
/** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
|
|
115
120
|
refreshContentPaths () {
|
|
116
121
|
var _this_context;
|
|
117
|
-
this.contentPaths = (0,
|
|
122
|
+
this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
|
|
118
123
|
},
|
|
119
124
|
get config () {
|
|
120
125
|
return this.context.tailwindConfig;
|
|
@@ -127,41 +132,39 @@ let state = {
|
|
|
127
132
|
},
|
|
128
133
|
loadConfig (configPath, content) {
|
|
129
134
|
if (this.watcher && configPath) {
|
|
130
|
-
this.refreshConfigDependencies(
|
|
135
|
+
this.refreshConfigDependencies();
|
|
131
136
|
}
|
|
132
|
-
let config =
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
+
let config = (0, _loadconfig.loadConfig)(configPath);
|
|
138
|
+
let dependencies = (0, _getModuleDependencies.default)(configPath);
|
|
139
|
+
this.configBag = {
|
|
140
|
+
config,
|
|
141
|
+
dependencies,
|
|
142
|
+
dispose () {
|
|
143
|
+
for (let file of dependencies){
|
|
144
|
+
delete require.cache[require.resolve(file)];
|
|
145
|
+
}
|
|
137
146
|
}
|
|
138
|
-
}
|
|
147
|
+
};
|
|
148
|
+
this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
|
|
139
149
|
// Override content files if `--content` has been passed explicitly
|
|
140
150
|
if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
|
|
141
|
-
config.content.files = content;
|
|
151
|
+
this.configBag.config.content.files = content;
|
|
142
152
|
}
|
|
143
|
-
return config;
|
|
153
|
+
return this.configBag.config;
|
|
144
154
|
},
|
|
145
|
-
refreshConfigDependencies (
|
|
155
|
+
refreshConfigDependencies () {
|
|
156
|
+
var _this_configBag;
|
|
146
157
|
_sharedState.env.DEBUG && console.time("Module dependencies");
|
|
147
|
-
|
|
148
|
-
delete require.cache[require.resolve(file)];
|
|
149
|
-
}
|
|
150
|
-
if (configPath) {
|
|
151
|
-
let deps = (0, _getModuleDependenciesJs.default)(configPath).map(({ file })=>file);
|
|
152
|
-
for (let dependency of deps){
|
|
153
|
-
this.configDependencies.add(dependency);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
158
|
+
(_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
|
|
156
159
|
_sharedState.env.DEBUG && console.timeEnd("Module dependencies");
|
|
157
160
|
},
|
|
158
161
|
readContentPaths () {
|
|
159
162
|
let content = [];
|
|
160
163
|
// Resolve globs from the content config
|
|
161
164
|
// TODO: When we make the postcss plugin async-capable this can become async
|
|
162
|
-
let files =
|
|
165
|
+
let files = _fastglob.default.sync(this.contentPatterns.all);
|
|
163
166
|
for (let file of files){
|
|
164
|
-
if (
|
|
167
|
+
if ((0, _featureFlags.flagEnabled)(this.config, "oxideParser")) {
|
|
165
168
|
content.push({
|
|
166
169
|
file,
|
|
167
170
|
extension: _path.default.extname(file).slice(1)
|
|
@@ -191,8 +194,8 @@ let state = {
|
|
|
191
194
|
return this.context;
|
|
192
195
|
}
|
|
193
196
|
_sharedState.env.DEBUG && console.time("Searching for config");
|
|
194
|
-
var
|
|
195
|
-
let configPath = (
|
|
197
|
+
var _findAtConfigPath1;
|
|
198
|
+
let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
|
|
196
199
|
_sharedState.env.DEBUG && console.timeEnd("Searching for config");
|
|
197
200
|
_sharedState.env.DEBUG && console.time("Loading config");
|
|
198
201
|
let config = this.loadConfig(configPath, content);
|
|
@@ -219,12 +222,16 @@ let state = {
|
|
|
219
222
|
};
|
|
220
223
|
async function createProcessor(args, cliConfigPath) {
|
|
221
224
|
var _args_content;
|
|
222
|
-
let postcss = (0, _deps.loadPostcss)();
|
|
223
225
|
let input = args["--input"];
|
|
224
226
|
let output = args["--output"];
|
|
225
227
|
let includePostCss = args["--postcss"];
|
|
226
228
|
let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
|
|
227
|
-
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) :
|
|
229
|
+
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
|
|
230
|
+
[],
|
|
231
|
+
[],
|
|
232
|
+
{}
|
|
233
|
+
];
|
|
234
|
+
beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
|
|
228
235
|
if (args["--purge"]) {
|
|
229
236
|
_log.default.warn("purge-flag-deprecated", [
|
|
230
237
|
"The `--purge` flag has been deprecated.",
|
|
@@ -263,12 +270,10 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
263
270
|
...beforePlugins,
|
|
264
271
|
tailwindPlugin,
|
|
265
272
|
!args["--minify"] && _utils.formatNodes,
|
|
266
|
-
...afterPlugins
|
|
267
|
-
!args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
|
|
268
|
-
args["--minify"] && (0, _deps.loadCssNano)()
|
|
273
|
+
...afterPlugins
|
|
269
274
|
].filter(Boolean);
|
|
270
275
|
/** @type {import('postcss').Processor} */ // @ts-ignore
|
|
271
|
-
let processor =
|
|
276
|
+
let processor = (0, _postcss.default)(plugins);
|
|
272
277
|
async function readInput() {
|
|
273
278
|
// Piping in data, let's drain the stdin
|
|
274
279
|
if (input === "-") {
|
|
@@ -283,10 +288,14 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
283
288
|
}
|
|
284
289
|
async function build() {
|
|
285
290
|
let start = process.hrtime.bigint();
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
291
|
+
let options = {
|
|
292
|
+
...postcssOptions,
|
|
293
|
+
from: input,
|
|
294
|
+
to: output
|
|
295
|
+
};
|
|
296
|
+
return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
|
|
297
|
+
...options,
|
|
298
|
+
minify: !!args["--minify"]
|
|
290
299
|
})).then((result)=>{
|
|
291
300
|
if (!state.watcher) {
|
|
292
301
|
return result;
|
|
@@ -326,7 +335,11 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
326
335
|
// If you fix it and then save the main CSS file so there's no error
|
|
327
336
|
// The watcher will start watching the imported CSS files and will be
|
|
328
337
|
// resilient to future errors.
|
|
329
|
-
|
|
338
|
+
if (state.watcher) {
|
|
339
|
+
console.error(err);
|
|
340
|
+
} else {
|
|
341
|
+
return Promise.reject(err);
|
|
342
|
+
}
|
|
330
343
|
});
|
|
331
344
|
}
|
|
332
345
|
/**
|
|
@@ -343,13 +356,14 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
343
356
|
return {
|
|
344
357
|
build,
|
|
345
358
|
watch: async ()=>{
|
|
346
|
-
state.watcher = (0,
|
|
359
|
+
state.watcher = (0, _watching.createWatcher)(args, {
|
|
347
360
|
state,
|
|
348
361
|
/**
|
|
349
362
|
* @param {{file: string, content(): Promise<string>, extension: string}[]} changes
|
|
350
363
|
*/ async rebuild (changes) {
|
|
351
364
|
let needsNewContext = changes.some((change)=>{
|
|
352
|
-
|
|
365
|
+
var _state_configBag;
|
|
366
|
+
return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
|
|
353
367
|
});
|
|
354
368
|
if (needsNewContext) {
|
|
355
369
|
state.context = null;
|
package/lib/cli/build/utils.js
CHANGED
|
@@ -10,15 +10,25 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
-
indentRecursive: ()
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
indentRecursive: function() {
|
|
14
|
+
return indentRecursive;
|
|
15
|
+
},
|
|
16
|
+
formatNodes: function() {
|
|
17
|
+
return formatNodes;
|
|
18
|
+
},
|
|
19
|
+
readFileWithRetries: function() {
|
|
20
|
+
return readFileWithRetries;
|
|
21
|
+
},
|
|
22
|
+
drainStdin: function() {
|
|
23
|
+
return drainStdin;
|
|
24
|
+
},
|
|
25
|
+
outputFile: function() {
|
|
26
|
+
return outputFile;
|
|
27
|
+
}
|
|
18
28
|
});
|
|
19
|
-
const _fs = /*#__PURE__*/
|
|
20
|
-
const _path = /*#__PURE__*/
|
|
21
|
-
function
|
|
29
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
30
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
31
|
+
function _interop_require_default(obj) {
|
|
22
32
|
return obj && obj.__esModule ? obj : {
|
|
23
33
|
default: obj
|
|
24
34
|
};
|
|
@@ -5,15 +5,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "createWatcher", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: ()
|
|
8
|
+
get: function() {
|
|
9
|
+
return createWatcher;
|
|
10
|
+
}
|
|
9
11
|
});
|
|
10
|
-
const _chokidar = /*#__PURE__*/
|
|
11
|
-
const _fs = /*#__PURE__*/
|
|
12
|
-
const _micromatch = /*#__PURE__*/
|
|
13
|
-
const
|
|
14
|
-
const _path = /*#__PURE__*/
|
|
15
|
-
const
|
|
16
|
-
function
|
|
12
|
+
const _chokidar = /*#__PURE__*/ _interop_require_default(require("chokidar"));
|
|
13
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
14
|
+
const _micromatch = /*#__PURE__*/ _interop_require_default(require("micromatch"));
|
|
15
|
+
const _normalizepath = /*#__PURE__*/ _interop_require_default(require("normalize-path"));
|
|
16
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
17
|
+
const _utils = require("./utils.js");
|
|
18
|
+
function _interop_require_default(obj) {
|
|
17
19
|
return obj && obj.__esModule ? obj : {
|
|
18
20
|
default: obj
|
|
19
21
|
};
|
|
@@ -64,7 +66,9 @@ function createWatcher(args, { state , rebuild }) {
|
|
|
64
66
|
// Clear all pending rebuilds for the about-to-be-built files
|
|
65
67
|
changes.forEach((change)=>pendingRebuilds.delete(change.file));
|
|
66
68
|
// Resolve the promise even when the rebuild fails
|
|
67
|
-
return rebuild(changes).then(()=>{}, ()=>{
|
|
69
|
+
return rebuild(changes).then(()=>{}, (e)=>{
|
|
70
|
+
console.error(e.toString());
|
|
71
|
+
});
|
|
68
72
|
}
|
|
69
73
|
/**
|
|
70
74
|
*
|
|
@@ -109,7 +113,7 @@ function createWatcher(args, { state , rebuild }) {
|
|
|
109
113
|
// This can happen when a file is pseudo-atomically replaced (a copy is created, overwritten, the old one is unlinked, and the new one is renamed)
|
|
110
114
|
// TODO: An an optimization we should allow removal when the config changes
|
|
111
115
|
watcher.on("unlink", (file)=>{
|
|
112
|
-
file = (0,
|
|
116
|
+
file = (0, _normalizepath.default)(file);
|
|
113
117
|
// Only re-add the file if it's not covered by a dynamic pattern
|
|
114
118
|
if (!_micromatch.default.some([
|
|
115
119
|
file
|
|
@@ -148,7 +152,7 @@ function createWatcher(args, { state , rebuild }) {
|
|
|
148
152
|
// We need to read the file as early as possible outside of the chain
|
|
149
153
|
// because it may be gone by the time we get to it. doing the read
|
|
150
154
|
// immediately increases the chance that the file is still there
|
|
151
|
-
let content = await (0,
|
|
155
|
+
let content = await (0, _utils.readFileWithRetries)(_path.default.resolve(filePath));
|
|
152
156
|
if (content === undefined) {
|
|
153
157
|
return;
|
|
154
158
|
}
|
|
@@ -171,7 +175,7 @@ function createWatcher(args, { state , rebuild }) {
|
|
|
171
175
|
fswatcher: watcher,
|
|
172
176
|
refreshWatchedFiles () {
|
|
173
177
|
watcher.add(Array.from(state.contextDependencies));
|
|
174
|
-
watcher.add(Array.from(state.
|
|
178
|
+
watcher.add(Array.from(state.configBag.dependencies));
|
|
175
179
|
watcher.add(state.contentPatterns.all);
|
|
176
180
|
}
|
|
177
181
|
};
|
package/lib/cli/help/index.js
CHANGED
|
@@ -5,10 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "help", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: ()
|
|
8
|
+
get: function() {
|
|
9
|
+
return help;
|
|
10
|
+
}
|
|
9
11
|
});
|
|
10
|
-
const
|
|
11
|
-
function
|
|
12
|
+
const _packagejson = /*#__PURE__*/ _interop_require_default(require("../../../package.json"));
|
|
13
|
+
function _interop_require_default(obj) {
|
|
12
14
|
return obj && obj.__esModule ? obj : {
|
|
13
15
|
default: obj
|
|
14
16
|
};
|
|
@@ -17,7 +19,7 @@ function help({ message , usage , commands , options }) {
|
|
|
17
19
|
let indent = 2;
|
|
18
20
|
// Render header
|
|
19
21
|
console.log();
|
|
20
|
-
console.log(`${
|
|
22
|
+
console.log(`${_packagejson.default.name} v${_packagejson.default.version}`);
|
|
21
23
|
// Render message
|
|
22
24
|
if (message) {
|
|
23
25
|
console.log();
|
package/lib/cli/index.js
CHANGED
|
@@ -3,34 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
const _path = /*#__PURE__*/
|
|
7
|
-
const _arg = /*#__PURE__*/
|
|
8
|
-
const _fs = /*#__PURE__*/
|
|
6
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
7
|
+
const _arg = /*#__PURE__*/ _interop_require_default(require("arg"));
|
|
8
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
9
9
|
const _build = require("./build");
|
|
10
10
|
const _help = require("./help");
|
|
11
11
|
const _init = require("./init");
|
|
12
|
-
function
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
13
|
return obj && obj.__esModule ? obj : {
|
|
14
14
|
default: obj
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
function isESM() {
|
|
18
|
-
const pkgPath = _path.default.resolve("./package.json");
|
|
19
|
-
try {
|
|
20
|
-
let pkg = JSON.parse(_fs.default.readFileSync(pkgPath, "utf8"));
|
|
21
|
-
return pkg.type && pkg.type === "module";
|
|
22
|
-
} catch (err) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
let configs = isESM() ? {
|
|
27
|
-
tailwind: "tailwind.config.cjs",
|
|
28
|
-
postcss: "postcss.config.cjs"
|
|
29
|
-
} : {
|
|
30
|
-
tailwind: "tailwind.config.js",
|
|
31
|
-
postcss: "postcss.config.js"
|
|
32
|
-
};
|
|
33
|
-
// ---
|
|
34
17
|
function oneOf(...options) {
|
|
35
18
|
return Object.assign((value = true)=>{
|
|
36
19
|
for (let option of options){
|
|
@@ -48,13 +31,21 @@ let commands = {
|
|
|
48
31
|
init: {
|
|
49
32
|
run: _init.init,
|
|
50
33
|
args: {
|
|
51
|
-
"--
|
|
34
|
+
"--esm": {
|
|
52
35
|
type: Boolean,
|
|
53
|
-
description: `Initialize
|
|
36
|
+
description: `Initialize configuration file as ESM`
|
|
37
|
+
},
|
|
38
|
+
"--ts": {
|
|
39
|
+
type: Boolean,
|
|
40
|
+
description: `Initialize configuration file as TypeScript`
|
|
54
41
|
},
|
|
55
42
|
"--postcss": {
|
|
56
43
|
type: Boolean,
|
|
57
|
-
description: `Initialize a
|
|
44
|
+
description: `Initialize a \`postcss.config.js\` file`
|
|
45
|
+
},
|
|
46
|
+
"--full": {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
description: `Include the default values for all options in the generated configuration file`
|
|
58
49
|
},
|
|
59
50
|
"-f": "--full",
|
|
60
51
|
"-p": "--postcss"
|
|
@@ -100,6 +91,7 @@ let commands = {
|
|
|
100
91
|
description: "Path to a custom config file"
|
|
101
92
|
},
|
|
102
93
|
"--no-autoprefixer": {
|
|
94
|
+
deprecated: true,
|
|
103
95
|
type: Boolean,
|
|
104
96
|
description: "Disable autoprefixer"
|
|
105
97
|
},
|
|
@@ -236,4 +228,4 @@ if (args["--help"]) {
|
|
|
236
228
|
});
|
|
237
229
|
process.exit(0);
|
|
238
230
|
}
|
|
239
|
-
run(args
|
|
231
|
+
run(args);
|
package/lib/cli/init/index.js
CHANGED
|
@@ -5,35 +5,52 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "init", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: ()
|
|
8
|
+
get: function() {
|
|
9
|
+
return init;
|
|
10
|
+
}
|
|
9
11
|
});
|
|
10
|
-
const _fs = /*#__PURE__*/
|
|
11
|
-
const _path = /*#__PURE__*/
|
|
12
|
-
function
|
|
12
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
13
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
14
|
+
function _interop_require_default(obj) {
|
|
13
15
|
return obj && obj.__esModule ? obj : {
|
|
14
16
|
default: obj
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
|
-
function
|
|
19
|
+
function isESM() {
|
|
20
|
+
const pkgPath = _path.default.resolve("./package.json");
|
|
21
|
+
try {
|
|
22
|
+
let pkg = JSON.parse(_fs.default.readFileSync(pkgPath, "utf8"));
|
|
23
|
+
return pkg.type && pkg.type === "module";
|
|
24
|
+
} catch (err) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function init(args) {
|
|
18
29
|
let messages = [];
|
|
30
|
+
let isProjectESM = args["--ts"] || args["--esm"] || isESM();
|
|
31
|
+
let syntax = args["--ts"] ? "ts" : isProjectESM ? "js" : "cjs";
|
|
32
|
+
let extension = args["--ts"] ? "ts" : "js";
|
|
19
33
|
var _args___;
|
|
20
|
-
let tailwindConfigLocation = _path.default.resolve((_args___ = args["_"][1]) !== null && _args___ !== void 0 ? _args___ :
|
|
34
|
+
let tailwindConfigLocation = _path.default.resolve((_args___ = args["_"][1]) !== null && _args___ !== void 0 ? _args___ : `./tailwind.config.${extension}`);
|
|
21
35
|
if (_fs.default.existsSync(tailwindConfigLocation)) {
|
|
22
36
|
messages.push(`${_path.default.basename(tailwindConfigLocation)} already exists.`);
|
|
23
37
|
} else {
|
|
24
|
-
let
|
|
38
|
+
let stubContentsFile = _fs.default.readFileSync(args["--full"] ? _path.default.resolve(__dirname, "../../../stubs/config.full.js") : _path.default.resolve(__dirname, "../../../stubs/config.simple.js"), "utf8");
|
|
39
|
+
let stubFile = _fs.default.readFileSync(_path.default.resolve(__dirname, `../../../stubs/tailwind.config.${syntax}`), "utf8");
|
|
25
40
|
// Change colors import
|
|
26
|
-
|
|
41
|
+
stubContentsFile = stubContentsFile.replace("../colors", "tailwindcss/colors");
|
|
42
|
+
// Replace contents of {ts,js,cjs} file with the stub {simple,full}.
|
|
43
|
+
stubFile = stubFile.replace("__CONFIG__", stubContentsFile.replace("module.exports =", "").trim()).trim() + "\n\n";
|
|
27
44
|
_fs.default.writeFileSync(tailwindConfigLocation, stubFile, "utf8");
|
|
28
45
|
messages.push(`Created Tailwind CSS config file: ${_path.default.basename(tailwindConfigLocation)}`);
|
|
29
46
|
}
|
|
30
47
|
if (args["--postcss"]) {
|
|
31
|
-
let postcssConfigLocation = _path.default.resolve(
|
|
48
|
+
let postcssConfigLocation = _path.default.resolve("./postcss.config.js");
|
|
32
49
|
if (_fs.default.existsSync(postcssConfigLocation)) {
|
|
33
50
|
messages.push(`${_path.default.basename(postcssConfigLocation)} already exists.`);
|
|
34
51
|
} else {
|
|
35
|
-
let
|
|
36
|
-
_fs.default.writeFileSync(postcssConfigLocation,
|
|
52
|
+
let stubFile = _fs.default.readFileSync(isProjectESM ? _path.default.resolve(__dirname, "../../../stubs/postcss.config.js") : _path.default.resolve(__dirname, "../../../stubs/postcss.config.cjs"), "utf8");
|
|
53
|
+
_fs.default.writeFileSync(postcssConfigLocation, stubFile, "utf8");
|
|
37
54
|
messages.push(`Created PostCSS config file: ${_path.default.basename(postcssConfigLocation)}`);
|
|
38
55
|
}
|
|
39
56
|
}
|