tailwindcss 0.0.0-insiders.bc115f0 → 0.0.0-insiders.bc1af02
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 +178 -114
- package/lib/cli/build/utils.js +18 -8
- package/lib/cli/build/watching.js +17 -13
- package/lib/cli/help/index.js +8 -6
- package/lib/cli/index.js +20 -28
- package/lib/cli/init/index.js +28 -11
- package/lib/cli.js +1 -5
- package/lib/corePluginList.js +8 -1
- package/lib/corePlugins.js +495 -200
- package/lib/css/preflight.css +9 -1
- package/lib/featureFlags.js +28 -14
- 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 +46 -16
- package/lib/lib/defaultExtractor.js +6 -4
- package/lib/lib/detectNesting.js +3 -1
- package/lib/lib/evaluateTailwindFunctions.js +24 -20
- package/lib/lib/expandApplyAtRules.js +41 -33
- package/lib/lib/expandTailwindAtRules.js +73 -33
- package/lib/lib/findAtConfigPath.js +6 -4
- package/lib/lib/generateRules.js +90 -69
- 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 +14 -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 +25 -21
- package/lib/lib/setupContextUtils.js +156 -108
- package/lib/lib/setupTrackingContext.js +30 -26
- package/lib/lib/sharedState.js +29 -11
- package/lib/lib/substituteScreenAtRules.js +7 -5
- package/lib/plugin.js +124 -8
- package/lib/postcss-plugins/nesting/index.js +4 -2
- package/lib/postcss-plugins/nesting/plugin.js +10 -8
- package/lib/processTailwindFeatures.js +17 -15
- package/lib/public/colors.js +50 -26
- 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 +29 -11
- 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 +7 -5
- package/lib/util/dataTypes.js +59 -21
- package/lib/util/defaults.js +9 -7
- package/lib/util/escapeClassName.js +9 -7
- package/lib/util/escapeCommas.js +3 -1
- package/lib/util/flattenColorPalette.js +3 -1
- package/lib/util/formatVariantSelector.js +39 -126
- package/lib/util/getAllConfigs.js +9 -6
- 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 +68 -36
- package/lib/util/normalizeScreens.js +15 -7
- 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 +40 -49
- package/lib/util/prefixSelector.js +6 -4
- package/lib/util/pseudoElements.js +209 -0
- package/lib/util/removeAlphaVariables.js +3 -1
- package/lib/util/resolveConfig.js +20 -14
- 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 +7 -3
- 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 +43 -58
- package/src/cli/build/index.js +11 -7
- package/src/cli/build/plugin.js +100 -70
- 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 +245 -46
- package/src/css/preflight.css +9 -1
- package/src/featureFlags.js +7 -3
- 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 +70 -39
- package/src/lib/generateRules.js +64 -33
- 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 +9 -3
- package/src/lib/setupContextUtils.js +49 -26
- package/src/lib/setupTrackingContext.js +6 -8
- package/src/lib/sharedState.js +11 -5
- package/src/plugin.js +88 -2
- package/src/processTailwindFeatures.js +3 -2
- 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 +6 -102
- package/src/util/getAllConfigs.js +2 -2
- package/src/util/log.js +24 -0
- package/src/util/normalizeConfig.js +39 -11
- package/src/util/pluginUtils.js +11 -38
- package/src/util/prefixSelector.js +1 -0
- 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} +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 +10 -8
- 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/CHANGELOG.md +0 -2362
- package/lib/cli/build/deps.js +0 -54
- package/lib/cli/shared.js +0 -13
- 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/shared.js +0 -12
- 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 -79531
- 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 -6
- 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/shared.ts +0 -4
- 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/
|
|
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,118 @@ 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
|
+
function license() {
|
|
83
|
+
return `/* ! tailwindcss v${_packagejson.default.version} | MIT License | https://tailwindcss.com */\n`;
|
|
84
|
+
}
|
|
85
|
+
async function lightningcss(result, { map = true, minify = true } = {}) {
|
|
86
|
+
try {
|
|
87
|
+
var _browserslist_findConfig;
|
|
88
|
+
var _result_opts_from;
|
|
89
|
+
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;
|
|
90
|
+
let defaultBrowsersListConfig = _packagejson.default.browserslist;
|
|
91
|
+
let browsersListConfig = resolvedBrowsersListConfig !== null && resolvedBrowsersListConfig !== void 0 ? resolvedBrowsersListConfig : defaultBrowsersListConfig;
|
|
92
|
+
let transformed = _lightningcss.default.transform({
|
|
93
|
+
filename: result.opts.from || "input.css",
|
|
94
|
+
code: Buffer.from(result.css, "utf-8"),
|
|
95
|
+
minify,
|
|
96
|
+
sourceMap: result.map === undefined ? map : !!result.map,
|
|
97
|
+
inputSourceMap: result.map ? result.map.toString() : undefined,
|
|
98
|
+
targets: _lightningcss.default.browserslistToTargets((0, _browserslist.default)(browsersListConfig)),
|
|
99
|
+
drafts: {
|
|
100
|
+
nesting: true
|
|
101
|
+
},
|
|
102
|
+
include: _lightningcss.Features.Nesting,
|
|
103
|
+
exclude: _lightningcss.Features.LogicalProperties
|
|
104
|
+
});
|
|
105
|
+
return Object.assign(result, {
|
|
106
|
+
css: transformed.code.toString("utf8"),
|
|
107
|
+
map: result.map ? Object.assign(result.map, {
|
|
108
|
+
toString () {
|
|
109
|
+
var _transformed_map;
|
|
110
|
+
return (_transformed_map = transformed.map) === null || _transformed_map === void 0 ? void 0 : _transformed_map.toString();
|
|
111
|
+
}
|
|
112
|
+
}) : result.map
|
|
113
|
+
});
|
|
114
|
+
} catch (err) {
|
|
115
|
+
console.error("Unable to use Lightning CSS. Using raw version instead.");
|
|
116
|
+
console.error(err);
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
34
120
|
/**
|
|
35
121
|
*
|
|
36
122
|
* @param {string} [customPostCssPath ]
|
|
@@ -40,7 +126,7 @@ function _interopRequireDefault(obj) {
|
|
|
40
126
|
let file = _path.default.resolve(customPostCssPath);
|
|
41
127
|
// Implementation, see: https://unpkg.com/browse/postcss-load-config@3.1.0/src/index.js
|
|
42
128
|
// @ts-ignore
|
|
43
|
-
let { config ={}
|
|
129
|
+
let { config = {} } = await (0, _lilconfig.lilconfig)("postcss").load(file);
|
|
44
130
|
if (typeof config === "function") {
|
|
45
131
|
config = config();
|
|
46
132
|
} else {
|
|
@@ -54,7 +140,7 @@ function _interopRequireDefault(obj) {
|
|
|
54
140
|
plugins: (0, _plugins.default)(config, file),
|
|
55
141
|
options: (0, _options.default)(config, file)
|
|
56
142
|
};
|
|
57
|
-
})() : await (0,
|
|
143
|
+
})() : await (0, _postcssloadconfig.default)();
|
|
58
144
|
let configPlugins = config.plugins;
|
|
59
145
|
let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
|
|
60
146
|
if (typeof plugin === "function" && plugin.name === "tailwindcss") {
|
|
@@ -73,48 +159,16 @@ function _interopRequireDefault(obj) {
|
|
|
73
159
|
config.options
|
|
74
160
|
];
|
|
75
161
|
}
|
|
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
162
|
let state = {
|
|
109
163
|
/** @type {any} */ context: null,
|
|
110
164
|
/** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
|
|
111
165
|
/** @type {{content: string, extension: string}[]} */ changedContent: [],
|
|
112
|
-
|
|
166
|
+
/** @type {{config: import('../../../types').Config, dependencies: Set<string>, dispose: Function } | null} */ configBag: null,
|
|
113
167
|
contextDependencies: new Set(),
|
|
114
168
|
/** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
|
|
115
169
|
refreshContentPaths () {
|
|
116
170
|
var _this_context;
|
|
117
|
-
this.contentPaths = (0,
|
|
171
|
+
this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
|
|
118
172
|
},
|
|
119
173
|
get config () {
|
|
120
174
|
return this.context.tailwindConfig;
|
|
@@ -126,42 +180,41 @@ let state = {
|
|
|
126
180
|
};
|
|
127
181
|
},
|
|
128
182
|
loadConfig (configPath, content) {
|
|
183
|
+
var _content;
|
|
129
184
|
if (this.watcher && configPath) {
|
|
130
|
-
this.refreshConfigDependencies(
|
|
185
|
+
this.refreshConfigDependencies();
|
|
131
186
|
}
|
|
132
|
-
let config =
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
187
|
+
let config = (0, _loadconfig.loadConfig)(configPath);
|
|
188
|
+
let dependencies = (0, _getModuleDependencies.default)(configPath);
|
|
189
|
+
this.configBag = {
|
|
190
|
+
config,
|
|
191
|
+
dependencies,
|
|
192
|
+
dispose () {
|
|
193
|
+
for (let file of dependencies){
|
|
194
|
+
delete require.cache[require.resolve(file)];
|
|
195
|
+
}
|
|
137
196
|
}
|
|
138
|
-
}
|
|
197
|
+
};
|
|
198
|
+
this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
|
|
139
199
|
// Override content files if `--content` has been passed explicitly
|
|
140
|
-
if ((content === null ||
|
|
141
|
-
config.content.files = content;
|
|
200
|
+
if (((_content = content) === null || _content === void 0 ? void 0 : _content.length) > 0) {
|
|
201
|
+
this.configBag.config.content.files = content;
|
|
142
202
|
}
|
|
143
|
-
return config;
|
|
203
|
+
return this.configBag.config;
|
|
144
204
|
},
|
|
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");
|
|
205
|
+
refreshConfigDependencies () {
|
|
206
|
+
var _this_configBag;
|
|
207
|
+
_sharedState.env.DEBUG && console.time("Module dependencies");
|
|
208
|
+
(_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
|
|
209
|
+
_sharedState.env.DEBUG && console.timeEnd("Module dependencies");
|
|
157
210
|
},
|
|
158
211
|
readContentPaths () {
|
|
159
212
|
let content = [];
|
|
160
213
|
// Resolve globs from the content config
|
|
161
214
|
// TODO: When we make the postcss plugin async-capable this can become async
|
|
162
|
-
let files =
|
|
215
|
+
let files = _fastglob.default.sync(this.contentPatterns.all);
|
|
163
216
|
for (let file of files){
|
|
164
|
-
if (
|
|
217
|
+
if ((0, _featureFlags.flagEnabled)(this.config, "oxideParser")) {
|
|
165
218
|
content.push({
|
|
166
219
|
file,
|
|
167
220
|
extension: _path.default.extname(file).slice(1)
|
|
@@ -177,7 +230,7 @@ let state = {
|
|
|
177
230
|
let rawContent = this.config.content.files.filter((file)=>{
|
|
178
231
|
return file !== null && typeof file === "object";
|
|
179
232
|
});
|
|
180
|
-
for (let { raw: htmlContent
|
|
233
|
+
for (let { raw: htmlContent, extension = "html" } of rawContent){
|
|
181
234
|
content.push({
|
|
182
235
|
content: htmlContent,
|
|
183
236
|
extension
|
|
@@ -185,31 +238,31 @@ let state = {
|
|
|
185
238
|
}
|
|
186
239
|
return content;
|
|
187
240
|
},
|
|
188
|
-
getContext ({ createContext
|
|
241
|
+
getContext ({ createContext, cliConfigPath, root, result, content }) {
|
|
189
242
|
if (this.context) {
|
|
190
243
|
this.context.changedContent = this.changedContent.splice(0);
|
|
191
244
|
return this.context;
|
|
192
245
|
}
|
|
193
|
-
|
|
194
|
-
var
|
|
195
|
-
let configPath = (
|
|
196
|
-
|
|
197
|
-
|
|
246
|
+
_sharedState.env.DEBUG && console.time("Searching for config");
|
|
247
|
+
var _findAtConfigPath1;
|
|
248
|
+
let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
|
|
249
|
+
_sharedState.env.DEBUG && console.timeEnd("Searching for config");
|
|
250
|
+
_sharedState.env.DEBUG && console.time("Loading config");
|
|
198
251
|
let config = this.loadConfig(configPath, content);
|
|
199
|
-
|
|
200
|
-
|
|
252
|
+
_sharedState.env.DEBUG && console.timeEnd("Loading config");
|
|
253
|
+
_sharedState.env.DEBUG && console.time("Creating context");
|
|
201
254
|
this.context = createContext(config, []);
|
|
202
255
|
Object.assign(this.context, {
|
|
203
256
|
userConfigPath: configPath
|
|
204
257
|
});
|
|
205
|
-
|
|
206
|
-
|
|
258
|
+
_sharedState.env.DEBUG && console.timeEnd("Creating context");
|
|
259
|
+
_sharedState.env.DEBUG && console.time("Resolving content paths");
|
|
207
260
|
this.refreshContentPaths();
|
|
208
|
-
|
|
261
|
+
_sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
|
|
209
262
|
if (this.watcher) {
|
|
210
|
-
|
|
263
|
+
_sharedState.env.DEBUG && console.time("Watch new files");
|
|
211
264
|
this.watcher.refreshWatchedFiles();
|
|
212
|
-
|
|
265
|
+
_sharedState.env.DEBUG && console.timeEnd("Watch new files");
|
|
213
266
|
}
|
|
214
267
|
for (let file of this.readContentPaths()){
|
|
215
268
|
this.context.changedContent.push(file);
|
|
@@ -219,12 +272,16 @@ let state = {
|
|
|
219
272
|
};
|
|
220
273
|
async function createProcessor(args, cliConfigPath) {
|
|
221
274
|
var _args_content;
|
|
222
|
-
let postcss = (0, _deps.loadPostcss)();
|
|
223
275
|
let input = args["--input"];
|
|
224
276
|
let output = args["--output"];
|
|
225
277
|
let includePostCss = args["--postcss"];
|
|
226
278
|
let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
|
|
227
|
-
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) :
|
|
279
|
+
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
|
|
280
|
+
[],
|
|
281
|
+
[],
|
|
282
|
+
{}
|
|
283
|
+
];
|
|
284
|
+
beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
|
|
228
285
|
if (args["--purge"]) {
|
|
229
286
|
_log.default.warn("purge-flag-deprecated", [
|
|
230
287
|
"The `--purge` flag has been deprecated.",
|
|
@@ -239,9 +296,9 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
239
296
|
let tailwindPlugin = ()=>{
|
|
240
297
|
return {
|
|
241
298
|
postcssPlugin: "tailwindcss",
|
|
242
|
-
Once (root, { result
|
|
243
|
-
|
|
244
|
-
(0, _processTailwindFeatures.default)(({ createContext
|
|
299
|
+
async Once (root, { result }) {
|
|
300
|
+
_sharedState.env.DEBUG && console.time("Compiling CSS");
|
|
301
|
+
await (0, _processTailwindFeatures.default)(({ createContext })=>{
|
|
245
302
|
console.error();
|
|
246
303
|
console.error("Rebuilding...");
|
|
247
304
|
return ()=>{
|
|
@@ -254,7 +311,7 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
254
311
|
});
|
|
255
312
|
};
|
|
256
313
|
})(root, result);
|
|
257
|
-
|
|
314
|
+
_sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
|
|
258
315
|
}
|
|
259
316
|
};
|
|
260
317
|
};
|
|
@@ -263,12 +320,10 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
263
320
|
...beforePlugins,
|
|
264
321
|
tailwindPlugin,
|
|
265
322
|
!args["--minify"] && _utils.formatNodes,
|
|
266
|
-
...afterPlugins
|
|
267
|
-
!args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
|
|
268
|
-
args["--minify"] && (0, _deps.loadCssNano)()
|
|
323
|
+
...afterPlugins
|
|
269
324
|
].filter(Boolean);
|
|
270
325
|
/** @type {import('postcss').Processor} */ // @ts-ignore
|
|
271
|
-
let processor =
|
|
326
|
+
let processor = (0, _postcss.default)(plugins);
|
|
272
327
|
async function readInput() {
|
|
273
328
|
// Piping in data, let's drain the stdin
|
|
274
329
|
if (input === "-") {
|
|
@@ -283,33 +338,37 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
283
338
|
}
|
|
284
339
|
async function build() {
|
|
285
340
|
let start = process.hrtime.bigint();
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
341
|
+
let options = {
|
|
342
|
+
...postcssOptions,
|
|
343
|
+
from: input,
|
|
344
|
+
to: output
|
|
345
|
+
};
|
|
346
|
+
return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
|
|
347
|
+
...options,
|
|
348
|
+
minify: !!args["--minify"]
|
|
290
349
|
})).then((result)=>{
|
|
291
350
|
if (!state.watcher) {
|
|
292
351
|
return result;
|
|
293
352
|
}
|
|
294
|
-
|
|
353
|
+
_sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
|
|
295
354
|
for (let message of result.messages){
|
|
296
355
|
if (message.type === "dependency") {
|
|
297
356
|
state.contextDependencies.add(message.file);
|
|
298
357
|
}
|
|
299
358
|
}
|
|
300
|
-
|
|
359
|
+
_sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
|
|
301
360
|
// TODO: This needs to be in a different spot
|
|
302
|
-
|
|
361
|
+
_sharedState.env.DEBUG && console.time("Watch new files");
|
|
303
362
|
state.watcher.refreshWatchedFiles();
|
|
304
|
-
|
|
363
|
+
_sharedState.env.DEBUG && console.timeEnd("Watch new files");
|
|
305
364
|
return result;
|
|
306
365
|
}).then((result)=>{
|
|
307
366
|
if (!output) {
|
|
308
|
-
process.stdout.write(result.css);
|
|
367
|
+
process.stdout.write(license() + result.css);
|
|
309
368
|
return;
|
|
310
369
|
}
|
|
311
370
|
return Promise.all([
|
|
312
|
-
(0, _utils.outputFile)(result.opts.to, result.css),
|
|
371
|
+
(0, _utils.outputFile)(result.opts.to, license() + result.css),
|
|
313
372
|
result.map && (0, _utils.outputFile)(result.opts.to + ".map", result.map.toString())
|
|
314
373
|
]);
|
|
315
374
|
}).then(()=>{
|
|
@@ -326,7 +385,11 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
326
385
|
// If you fix it and then save the main CSS file so there's no error
|
|
327
386
|
// The watcher will start watching the imported CSS files and will be
|
|
328
387
|
// resilient to future errors.
|
|
329
|
-
|
|
388
|
+
if (state.watcher) {
|
|
389
|
+
console.error(err);
|
|
390
|
+
} else {
|
|
391
|
+
return Promise.reject(err);
|
|
392
|
+
}
|
|
330
393
|
});
|
|
331
394
|
}
|
|
332
395
|
/**
|
|
@@ -343,13 +406,14 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
343
406
|
return {
|
|
344
407
|
build,
|
|
345
408
|
watch: async ()=>{
|
|
346
|
-
state.watcher = (0,
|
|
409
|
+
state.watcher = (0, _watching.createWatcher)(args, {
|
|
347
410
|
state,
|
|
348
411
|
/**
|
|
349
412
|
* @param {{file: string, content(): Promise<string>, extension: string}[]} changes
|
|
350
413
|
*/ async rebuild (changes) {
|
|
351
414
|
let needsNewContext = changes.some((change)=>{
|
|
352
|
-
|
|
415
|
+
var _state_configBag;
|
|
416
|
+
return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
|
|
353
417
|
});
|
|
354
418
|
if (needsNewContext) {
|
|
355
419
|
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,20 +5,22 @@ 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
|
};
|
|
20
22
|
}
|
|
21
|
-
function createWatcher(args, { state
|
|
23
|
+
function createWatcher(args, { state, rebuild }) {
|
|
22
24
|
let shouldPoll = args["--poll"];
|
|
23
25
|
let shouldCoalesceWriteEvents = shouldPoll || process.platform === "win32";
|
|
24
26
|
// Polling interval in milliseconds
|
|
@@ -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
|
};
|