tailwindcss 0.0.0-insiders.a795e45 → 0.0.0-insiders.a7a1f93
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 +176 -111
- 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 +223 -10
- package/lib/cli/init/index.js +28 -11
- package/lib/cli.js +1 -237
- package/lib/corePluginList.js +8 -1
- package/lib/corePlugins.js +350 -53
- package/lib/css/preflight.css +9 -1
- package/lib/featureFlags.js +22 -9
- package/lib/index.js +1 -47
- 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 +61 -31
- package/lib/lib/defaultExtractor.js +12 -5
- package/lib/lib/detectNesting.js +10 -2
- package/lib/lib/evaluateTailwindFunctions.js +20 -16
- package/lib/lib/expandApplyAtRules.js +41 -33
- package/lib/lib/expandTailwindAtRules.js +85 -18
- package/lib/lib/findAtConfigPath.js +6 -4
- package/lib/lib/generateRules.js +146 -103
- 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 +28 -7
- 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 +158 -103
- package/lib/lib/setupTrackingContext.js +50 -26
- package/lib/lib/sharedState.js +28 -9
- package/lib/lib/substituteScreenAtRules.js +5 -3
- package/lib/plugin.js +160 -0
- 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 +138 -168
- 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 +4 -2
- package/lib/util/normalizeConfig.js +44 -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 +27 -11
- package/lib/util/pseudoElements.js +209 -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 +48 -49
- package/src/cli/build/index.js +11 -7
- package/src/cli/build/plugin.js +102 -71
- package/src/cli/build/watching.js +4 -2
- package/src/cli/index.js +217 -3
- package/src/cli/init/index.js +37 -8
- package/src/cli.js +1 -232
- package/src/corePluginList.js +1 -1
- package/src/corePlugins.js +237 -34
- package/src/css/preflight.css +9 -1
- package/src/featureFlags.js +7 -3
- package/src/index.js +1 -47
- package/src/lib/content.js +45 -18
- package/src/lib/defaultExtractor.js +8 -2
- package/src/lib/detectNesting.js +9 -1
- package/src/lib/evaluateTailwindFunctions.js +4 -1
- package/src/lib/expandApplyAtRules.js +8 -1
- package/src/lib/expandTailwindAtRules.js +73 -12
- package/src/lib/generateRules.js +127 -71
- 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 +25 -3
- package/src/lib/setupContextUtils.js +105 -58
- package/src/lib/setupTrackingContext.js +37 -14
- package/src/lib/sharedState.js +11 -4
- package/src/plugin.js +128 -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 +160 -174
- package/src/util/getAllConfigs.js +2 -2
- package/src/util/log.js +24 -0
- package/src/util/negateValue.js +1 -1
- package/src/util/normalizeConfig.js +39 -11
- package/src/util/pluginUtils.js +11 -38
- package/src/util/prefixSelector.js +28 -10
- package/src/util/pseudoElements.js +167 -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} +51 -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 +14 -8
- package/types/generated/colors.d.ts +22 -0
- package/types/generated/corePluginList.d.ts +1 -1
- package/types/generated/default-theme.d.ts +33 -3
- package/CHANGELOG.md +0 -2353
- package/lib/cli/build/deps.js +0 -54
- package/lib/cli/shared.js +0 -12
- package/lib/cli-peer-dependencies.js +0 -28
- package/lib/constants.js +0 -44
- package/peers/index.js +0 -79537
- package/scripts/install-integrations.js +0 -27
- package/scripts/rebuildFixtures.js +0 -68
- package/src/cli/build/deps.js +0 -56
- package/src/cli/shared.js +0 -5
- package/src/cli-peer-dependencies.js +0 -15
- package/src/constants.js +0 -17
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/
|
|
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,115 @@ 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_wildcard(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
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
26
|
+
const _sharedState = require("../../lib/sharedState");
|
|
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
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
44
|
+
if (typeof WeakMap !== "function") return null;
|
|
45
|
+
var cacheBabelInterop = new WeakMap();
|
|
46
|
+
var cacheNodeInterop = new WeakMap();
|
|
47
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
48
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
49
|
+
})(nodeInterop);
|
|
50
|
+
}
|
|
51
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
52
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
53
|
+
return obj;
|
|
54
|
+
}
|
|
55
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
56
|
+
return {
|
|
57
|
+
default: obj
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
61
|
+
if (cache && cache.has(obj)) {
|
|
62
|
+
return cache.get(obj);
|
|
63
|
+
}
|
|
64
|
+
var newObj = {};
|
|
65
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
66
|
+
for(var key in obj){
|
|
67
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
68
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
69
|
+
if (desc && (desc.get || desc.set)) {
|
|
70
|
+
Object.defineProperty(newObj, key, desc);
|
|
71
|
+
} else {
|
|
72
|
+
newObj[key] = obj[key];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
newObj.default = obj;
|
|
77
|
+
if (cache) {
|
|
78
|
+
cache.set(obj, newObj);
|
|
79
|
+
}
|
|
80
|
+
return newObj;
|
|
81
|
+
}
|
|
82
|
+
async function lightningcss(result, { map =true , minify =true } = {}) {
|
|
83
|
+
try {
|
|
84
|
+
var _browserslist_findConfig;
|
|
85
|
+
var _result_opts_from;
|
|
86
|
+
let resolvedBrowsersListConfig = (_browserslist_findConfig = _browserslist.default.findConfig((_result_opts_from = result.opts.from) !== null && _result_opts_from !== void 0 ? _result_opts_from : process.cwd())) === null || _browserslist_findConfig === void 0 ? void 0 : _browserslist_findConfig.defaults;
|
|
87
|
+
let defaultBrowsersListConfig = _packagejson.default.browserslist;
|
|
88
|
+
let browsersListConfig = resolvedBrowsersListConfig !== null && resolvedBrowsersListConfig !== void 0 ? resolvedBrowsersListConfig : defaultBrowsersListConfig;
|
|
89
|
+
let transformed = _lightningcss.default.transform({
|
|
90
|
+
filename: result.opts.from || "input.css",
|
|
91
|
+
code: Buffer.from(result.css, "utf-8"),
|
|
92
|
+
minify,
|
|
93
|
+
sourceMap: result.map === undefined ? map : !!result.map,
|
|
94
|
+
inputSourceMap: result.map ? result.map.toString() : undefined,
|
|
95
|
+
targets: _lightningcss.default.browserslistToTargets((0, _browserslist.default)(browsersListConfig)),
|
|
96
|
+
drafts: {
|
|
97
|
+
nesting: true
|
|
98
|
+
},
|
|
99
|
+
include: _lightningcss.Features.Nesting,
|
|
100
|
+
exclude: _lightningcss.Features.LogicalProperties
|
|
101
|
+
});
|
|
102
|
+
return Object.assign(result, {
|
|
103
|
+
css: transformed.code.toString("utf8"),
|
|
104
|
+
map: result.map ? Object.assign(result.map, {
|
|
105
|
+
toString () {
|
|
106
|
+
var _transformed_map;
|
|
107
|
+
return (_transformed_map = transformed.map) === null || _transformed_map === void 0 ? void 0 : _transformed_map.toString();
|
|
108
|
+
}
|
|
109
|
+
}) : result.map
|
|
110
|
+
});
|
|
111
|
+
} catch (err) {
|
|
112
|
+
console.error("Unable to use Lightning CSS. Using raw version instead.");
|
|
113
|
+
console.error(err);
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
34
117
|
/**
|
|
35
118
|
*
|
|
36
119
|
* @param {string} [customPostCssPath ]
|
|
@@ -54,7 +137,7 @@ function _interopRequireDefault(obj) {
|
|
|
54
137
|
plugins: (0, _plugins.default)(config, file),
|
|
55
138
|
options: (0, _options.default)(config, file)
|
|
56
139
|
};
|
|
57
|
-
})() : await (0,
|
|
140
|
+
})() : await (0, _postcssloadconfig.default)();
|
|
58
141
|
let configPlugins = config.plugins;
|
|
59
142
|
let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
|
|
60
143
|
if (typeof plugin === "function" && plugin.name === "tailwindcss") {
|
|
@@ -73,48 +156,16 @@ function _interopRequireDefault(obj) {
|
|
|
73
156
|
config.options
|
|
74
157
|
];
|
|
75
158
|
}
|
|
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
159
|
let state = {
|
|
109
160
|
/** @type {any} */ context: null,
|
|
110
161
|
/** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
|
|
111
162
|
/** @type {{content: string, extension: string}[]} */ changedContent: [],
|
|
112
|
-
|
|
163
|
+
/** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
|
|
113
164
|
contextDependencies: new Set(),
|
|
114
165
|
/** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
|
|
115
166
|
refreshContentPaths () {
|
|
116
167
|
var _this_context;
|
|
117
|
-
this.contentPaths = (0,
|
|
168
|
+
this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
|
|
118
169
|
},
|
|
119
170
|
get config () {
|
|
120
171
|
return this.context.tailwindConfig;
|
|
@@ -127,44 +178,49 @@ let state = {
|
|
|
127
178
|
},
|
|
128
179
|
loadConfig (configPath, content) {
|
|
129
180
|
if (this.watcher && configPath) {
|
|
130
|
-
this.refreshConfigDependencies(
|
|
181
|
+
this.refreshConfigDependencies();
|
|
131
182
|
}
|
|
132
|
-
let config =
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
183
|
+
let config = (0, _loadconfig.loadConfig)(configPath);
|
|
184
|
+
let dependencies = (0, _getModuleDependencies.default)(configPath);
|
|
185
|
+
this.configBag = {
|
|
186
|
+
config,
|
|
187
|
+
dependencies,
|
|
188
|
+
dispose () {
|
|
189
|
+
for (let file of dependencies){
|
|
190
|
+
delete require.cache[require.resolve(file)];
|
|
191
|
+
}
|
|
137
192
|
}
|
|
138
|
-
}
|
|
193
|
+
};
|
|
194
|
+
this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
|
|
139
195
|
// Override content files if `--content` has been passed explicitly
|
|
140
196
|
if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
|
|
141
|
-
config.content.files = content;
|
|
197
|
+
this.configBag.config.content.files = content;
|
|
142
198
|
}
|
|
143
|
-
return config;
|
|
199
|
+
return this.configBag.config;
|
|
144
200
|
},
|
|
145
|
-
refreshConfigDependencies (
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
-
}
|
|
156
|
-
_shared.env.DEBUG && console.timeEnd("Module dependencies");
|
|
201
|
+
refreshConfigDependencies () {
|
|
202
|
+
var _this_configBag;
|
|
203
|
+
_sharedState.env.DEBUG && console.time("Module dependencies");
|
|
204
|
+
(_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
|
|
205
|
+
_sharedState.env.DEBUG && console.timeEnd("Module dependencies");
|
|
157
206
|
},
|
|
158
207
|
readContentPaths () {
|
|
159
208
|
let content = [];
|
|
160
209
|
// Resolve globs from the content config
|
|
161
210
|
// TODO: When we make the postcss plugin async-capable this can become async
|
|
162
|
-
let files =
|
|
211
|
+
let files = _fastglob.default.sync(this.contentPatterns.all);
|
|
163
212
|
for (let file of files){
|
|
164
|
-
|
|
165
|
-
content
|
|
166
|
-
|
|
167
|
-
|
|
213
|
+
if ((0, _featureFlags.flagEnabled)(this.config, "oxideParser")) {
|
|
214
|
+
content.push({
|
|
215
|
+
file,
|
|
216
|
+
extension: _path.default.extname(file).slice(1)
|
|
217
|
+
});
|
|
218
|
+
} else {
|
|
219
|
+
content.push({
|
|
220
|
+
content: _fs.default.readFileSync(_path.default.resolve(file), "utf8"),
|
|
221
|
+
extension: _path.default.extname(file).slice(1)
|
|
222
|
+
});
|
|
223
|
+
}
|
|
168
224
|
}
|
|
169
225
|
// Resolve raw content in the tailwind config
|
|
170
226
|
let rawContent = this.config.content.files.filter((file)=>{
|
|
@@ -183,43 +239,45 @@ let state = {
|
|
|
183
239
|
this.context.changedContent = this.changedContent.splice(0);
|
|
184
240
|
return this.context;
|
|
185
241
|
}
|
|
186
|
-
|
|
187
|
-
var
|
|
188
|
-
let configPath = (
|
|
189
|
-
|
|
190
|
-
|
|
242
|
+
_sharedState.env.DEBUG && console.time("Searching for config");
|
|
243
|
+
var _findAtConfigPath1;
|
|
244
|
+
let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
|
|
245
|
+
_sharedState.env.DEBUG && console.timeEnd("Searching for config");
|
|
246
|
+
_sharedState.env.DEBUG && console.time("Loading config");
|
|
191
247
|
let config = this.loadConfig(configPath, content);
|
|
192
|
-
|
|
193
|
-
|
|
248
|
+
_sharedState.env.DEBUG && console.timeEnd("Loading config");
|
|
249
|
+
_sharedState.env.DEBUG && console.time("Creating context");
|
|
194
250
|
this.context = createContext(config, []);
|
|
195
251
|
Object.assign(this.context, {
|
|
196
252
|
userConfigPath: configPath
|
|
197
253
|
});
|
|
198
|
-
|
|
199
|
-
|
|
254
|
+
_sharedState.env.DEBUG && console.timeEnd("Creating context");
|
|
255
|
+
_sharedState.env.DEBUG && console.time("Resolving content paths");
|
|
200
256
|
this.refreshContentPaths();
|
|
201
|
-
|
|
257
|
+
_sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
|
|
202
258
|
if (this.watcher) {
|
|
203
|
-
|
|
259
|
+
_sharedState.env.DEBUG && console.time("Watch new files");
|
|
204
260
|
this.watcher.refreshWatchedFiles();
|
|
205
|
-
|
|
261
|
+
_sharedState.env.DEBUG && console.timeEnd("Watch new files");
|
|
206
262
|
}
|
|
207
|
-
_shared.env.DEBUG && console.time("Reading content files");
|
|
208
263
|
for (let file of this.readContentPaths()){
|
|
209
264
|
this.context.changedContent.push(file);
|
|
210
265
|
}
|
|
211
|
-
_shared.env.DEBUG && console.timeEnd("Reading content files");
|
|
212
266
|
return this.context;
|
|
213
267
|
}
|
|
214
268
|
};
|
|
215
269
|
async function createProcessor(args, cliConfigPath) {
|
|
216
270
|
var _args_content;
|
|
217
|
-
let postcss = (0, _deps.loadPostcss)();
|
|
218
271
|
let input = args["--input"];
|
|
219
272
|
let output = args["--output"];
|
|
220
273
|
let includePostCss = args["--postcss"];
|
|
221
274
|
let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
|
|
222
|
-
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) :
|
|
275
|
+
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
|
|
276
|
+
[],
|
|
277
|
+
[],
|
|
278
|
+
{}
|
|
279
|
+
];
|
|
280
|
+
beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
|
|
223
281
|
if (args["--purge"]) {
|
|
224
282
|
_log.default.warn("purge-flag-deprecated", [
|
|
225
283
|
"The `--purge` flag has been deprecated.",
|
|
@@ -235,7 +293,7 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
235
293
|
return {
|
|
236
294
|
postcssPlugin: "tailwindcss",
|
|
237
295
|
Once (root, { result }) {
|
|
238
|
-
|
|
296
|
+
_sharedState.env.DEBUG && console.time("Compiling CSS");
|
|
239
297
|
(0, _processTailwindFeatures.default)(({ createContext })=>{
|
|
240
298
|
console.error();
|
|
241
299
|
console.error("Rebuilding...");
|
|
@@ -249,7 +307,7 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
249
307
|
});
|
|
250
308
|
};
|
|
251
309
|
})(root, result);
|
|
252
|
-
|
|
310
|
+
_sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
|
|
253
311
|
}
|
|
254
312
|
};
|
|
255
313
|
};
|
|
@@ -258,12 +316,10 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
258
316
|
...beforePlugins,
|
|
259
317
|
tailwindPlugin,
|
|
260
318
|
!args["--minify"] && _utils.formatNodes,
|
|
261
|
-
...afterPlugins
|
|
262
|
-
!args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
|
|
263
|
-
args["--minify"] && (0, _deps.loadCssNano)()
|
|
319
|
+
...afterPlugins
|
|
264
320
|
].filter(Boolean);
|
|
265
321
|
/** @type {import('postcss').Processor} */ // @ts-ignore
|
|
266
|
-
let processor =
|
|
322
|
+
let processor = (0, _postcss.default)(plugins);
|
|
267
323
|
async function readInput() {
|
|
268
324
|
// Piping in data, let's drain the stdin
|
|
269
325
|
if (input === "-") {
|
|
@@ -278,25 +334,29 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
278
334
|
}
|
|
279
335
|
async function build() {
|
|
280
336
|
let start = process.hrtime.bigint();
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
337
|
+
let options = {
|
|
338
|
+
...postcssOptions,
|
|
339
|
+
from: input,
|
|
340
|
+
to: output
|
|
341
|
+
};
|
|
342
|
+
return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
|
|
343
|
+
...options,
|
|
344
|
+
minify: !!args["--minify"]
|
|
285
345
|
})).then((result)=>{
|
|
286
346
|
if (!state.watcher) {
|
|
287
347
|
return result;
|
|
288
348
|
}
|
|
289
|
-
|
|
349
|
+
_sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
|
|
290
350
|
for (let message of result.messages){
|
|
291
351
|
if (message.type === "dependency") {
|
|
292
352
|
state.contextDependencies.add(message.file);
|
|
293
353
|
}
|
|
294
354
|
}
|
|
295
|
-
|
|
355
|
+
_sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
|
|
296
356
|
// TODO: This needs to be in a different spot
|
|
297
|
-
|
|
357
|
+
_sharedState.env.DEBUG && console.time("Watch new files");
|
|
298
358
|
state.watcher.refreshWatchedFiles();
|
|
299
|
-
|
|
359
|
+
_sharedState.env.DEBUG && console.timeEnd("Watch new files");
|
|
300
360
|
return result;
|
|
301
361
|
}).then((result)=>{
|
|
302
362
|
if (!output) {
|
|
@@ -321,7 +381,11 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
321
381
|
// If you fix it and then save the main CSS file so there's no error
|
|
322
382
|
// The watcher will start watching the imported CSS files and will be
|
|
323
383
|
// resilient to future errors.
|
|
324
|
-
|
|
384
|
+
if (state.watcher) {
|
|
385
|
+
console.error(err);
|
|
386
|
+
} else {
|
|
387
|
+
return Promise.reject(err);
|
|
388
|
+
}
|
|
325
389
|
});
|
|
326
390
|
}
|
|
327
391
|
/**
|
|
@@ -338,13 +402,14 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
338
402
|
return {
|
|
339
403
|
build,
|
|
340
404
|
watch: async ()=>{
|
|
341
|
-
state.watcher = (0,
|
|
405
|
+
state.watcher = (0, _watching.createWatcher)(args, {
|
|
342
406
|
state,
|
|
343
407
|
/**
|
|
344
408
|
* @param {{file: string, content(): Promise<string>, extension: string}[]} changes
|
|
345
409
|
*/ async rebuild (changes) {
|
|
346
410
|
let needsNewContext = changes.some((change)=>{
|
|
347
|
-
|
|
411
|
+
var _state_configBag;
|
|
412
|
+
return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
|
|
348
413
|
});
|
|
349
414
|
if (needsNewContext) {
|
|
350
415
|
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();
|