tailwindcss 0.0.0-insiders.d77b9ce → 0.0.0-insiders.d86fd0b
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 +7 -6
- package/lib/cli/build/deps.js +17 -9
- package/lib/cli/build/index.js +20 -10
- package/lib/cli/build/plugin.js +133 -72
- package/lib/cli/build/utils.js +18 -8
- package/lib/cli/build/watching.js +92 -23
- package/lib/cli/help/index.js +6 -4
- package/lib/cli/index.js +222 -10
- package/lib/cli/init/index.js +29 -12
- package/lib/cli-peer-dependencies.js +12 -4
- package/lib/cli.js +4 -226
- package/lib/corePluginList.js +12 -2
- package/lib/corePlugins.js +792 -144
- package/lib/css/preflight.css +28 -8
- package/lib/featureFlags.js +31 -18
- package/lib/index.js +1 -47
- package/lib/lib/cacheInvalidation.js +7 -5
- package/lib/lib/collapseAdjacentRules.js +5 -3
- package/lib/lib/collapseDuplicateDeclarations.js +12 -10
- package/lib/lib/content.js +73 -21
- package/lib/lib/defaultExtractor.js +59 -39
- package/lib/lib/detectNesting.js +12 -4
- package/lib/lib/evaluateTailwindFunctions.js +25 -21
- package/lib/lib/expandApplyAtRules.js +80 -47
- package/lib/lib/expandTailwindAtRules.js +66 -22
- package/lib/lib/findAtConfigPath.js +13 -11
- package/lib/lib/generateRules.js +308 -136
- package/lib/lib/getModuleDependencies.js +85 -37
- package/lib/lib/load-config.js +53 -0
- package/lib/lib/normalizeTailwindDirectives.js +6 -4
- package/lib/lib/offsets.js +165 -9
- package/lib/lib/partitionApplyAtRules.js +3 -1
- package/lib/lib/regex.js +22 -8
- package/lib/lib/remap-bitfield.js +89 -0
- package/lib/lib/resolveDefaultsAtRules.js +31 -25
- package/lib/lib/setupContextUtils.js +502 -183
- package/lib/lib/setupTrackingContext.js +50 -26
- package/lib/lib/sharedState.js +38 -9
- package/lib/lib/substituteScreenAtRules.js +5 -3
- package/lib/oxide/cli/build/deps.js +89 -0
- package/lib/oxide/cli/build/index.js +53 -0
- package/lib/oxide/cli/build/plugin.js +375 -0
- package/lib/oxide/cli/build/utils.js +87 -0
- package/lib/oxide/cli/build/watching.js +179 -0
- package/lib/oxide/cli/help/index.js +72 -0
- package/lib/oxide/cli/index.js +214 -0
- package/lib/oxide/cli/init/index.js +52 -0
- package/lib/oxide/cli.js +5 -0
- package/lib/oxide/postcss-plugin.js +2 -0
- package/lib/plugin.js +98 -0
- package/lib/postcss-plugins/nesting/index.js +3 -1
- package/lib/postcss-plugins/nesting/plugin.js +10 -8
- package/lib/processTailwindFeatures.js +16 -14
- 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 +9 -4
- package/lib/util/cloneDeep.js +3 -1
- package/lib/util/cloneNodes.js +36 -14
- package/lib/util/color.js +31 -13
- package/lib/util/colorNames.js +752 -0
- package/lib/util/configurePlugins.js +4 -2
- package/lib/util/createPlugin.js +3 -1
- package/lib/util/createUtilityPlugin.js +7 -5
- package/lib/util/dataTypes.js +210 -34
- package/lib/util/defaults.js +9 -7
- package/lib/util/escapeClassName.js +10 -8
- package/lib/util/escapeCommas.js +3 -1
- package/lib/util/flattenColorPalette.js +3 -1
- package/lib/util/formatVariantSelector.js +147 -162
- package/lib/util/getAllConfigs.js +8 -6
- package/lib/util/hashConfig.js +6 -4
- package/lib/util/isKeyframeRule.js +3 -1
- package/lib/util/isPlainObject.js +4 -2
- package/lib/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +5 -3
- package/lib/util/log.js +8 -4
- package/lib/util/nameClass.js +15 -6
- package/lib/util/negateValue.js +4 -2
- package/lib/util/normalizeConfig.js +44 -29
- package/lib/util/normalizeScreens.js +108 -3
- package/lib/util/parseAnimationValue.js +4 -2
- package/lib/util/parseBoxShadowValue.js +6 -2
- package/lib/util/parseDependency.js +6 -4
- package/lib/util/parseGlob.js +6 -4
- package/lib/util/parseObjectStyles.js +10 -8
- package/lib/util/pluginUtils.js +136 -42
- package/lib/util/prefixSelector.js +27 -11
- package/lib/util/pseudoElements.js +212 -0
- package/lib/util/removeAlphaVariables.js +3 -1
- package/lib/util/resolveConfig.js +22 -25
- 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 +7 -5
- package/lib/util/validateConfig.js +17 -4
- package/lib/util/validateFormalSyntax.js +26 -0
- 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/nesting/index.d.ts +4 -0
- package/package.json +49 -41
- package/peers/index.js +63334 -46265
- package/plugin.d.ts +3 -3
- package/resolveConfig.d.ts +30 -2
- package/scripts/generate-types.js +1 -2
- package/scripts/release-channel.js +18 -0
- package/scripts/release-notes.js +21 -0
- package/scripts/swap-engines.js +40 -0
- package/src/cli/build/index.js +13 -9
- package/src/cli/build/plugin.js +114 -42
- package/src/cli/build/watching.js +109 -14
- package/src/cli/index.js +216 -3
- package/src/cli/init/index.js +37 -8
- package/src/cli.js +4 -220
- package/src/corePluginList.js +1 -1
- package/src/corePlugins.js +591 -68
- package/src/css/preflight.css +28 -8
- package/src/featureFlags.js +8 -5
- package/src/index.js +1 -47
- package/src/lib/content.js +63 -13
- package/src/lib/defaultExtractor.js +41 -19
- package/src/lib/detectNesting.js +9 -1
- package/src/lib/evaluateTailwindFunctions.js +4 -1
- package/src/lib/expandApplyAtRules.js +50 -16
- package/src/lib/expandTailwindAtRules.js +54 -8
- package/src/lib/findAtConfigPath.js +4 -6
- package/src/lib/generateRules.js +333 -109
- package/src/lib/getModuleDependencies.js +70 -30
- package/src/lib/load-config.ts +39 -0
- package/src/lib/offsets.js +198 -5
- package/src/lib/remap-bitfield.js +82 -0
- package/src/lib/resolveDefaultsAtRules.js +5 -1
- package/src/lib/setupContextUtils.js +451 -108
- package/src/lib/setupTrackingContext.js +37 -14
- package/src/lib/sharedState.js +17 -4
- package/src/oxide/cli/build/deps.ts +91 -0
- package/src/oxide/cli/build/index.ts +47 -0
- package/src/oxide/cli/build/plugin.ts +442 -0
- package/src/oxide/cli/build/utils.ts +74 -0
- package/src/oxide/cli/build/watching.ts +225 -0
- package/src/oxide/cli/help/index.ts +69 -0
- package/src/oxide/cli/index.ts +204 -0
- package/src/oxide/cli/init/index.ts +59 -0
- package/src/oxide/cli.ts +1 -0
- package/src/oxide/postcss-plugin.ts +1 -0
- package/src/plugin.js +107 -0
- 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/buildMediaQuery.js +5 -3
- package/src/util/cloneNodes.js +35 -14
- package/src/util/color.js +19 -4
- package/src/util/colorNames.js +150 -0
- package/src/util/dataTypes.js +176 -22
- package/src/util/formatVariantSelector.js +170 -165
- package/src/util/getAllConfigs.js +2 -2
- package/src/util/isPlainObject.js +1 -1
- package/src/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +1 -1
- package/src/util/nameClass.js +4 -0
- package/src/util/negateValue.js +1 -1
- package/src/util/normalizeConfig.js +20 -1
- package/src/util/normalizeScreens.js +99 -4
- package/src/util/pluginUtils.js +126 -23
- package/src/util/prefixSelector.js +29 -10
- package/src/util/pseudoElements.js +171 -0
- package/src/util/resolveConfig.js +3 -9
- package/src/util/resolveConfigPath.js +12 -1
- package/src/util/splitAtTopLevelOnly.js +8 -1
- package/src/util/validateConfig.js +13 -0
- package/src/util/validateFormalSyntax.js +34 -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} +281 -179
- package/stubs/{simpleConfig.stub.js → config.simple.js} +0 -1
- package/stubs/postcss.config.js +6 -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 +59 -23
- package/types/generated/colors.d.ts +22 -0
- package/types/generated/corePluginList.d.ts +1 -1
- package/types/generated/default-theme.d.ts +152 -86
- package/types/index.d.ts +7 -3
- package/CHANGELOG.md +0 -2261
- package/lib/cli/shared.js +0 -12
- package/lib/constants.js +0 -44
- package/scripts/install-integrations.js +0 -27
- package/scripts/rebuildFixtures.js +0 -68
- package/src/cli/shared.js +0 -5
- package/src/constants.js +0 -17
- /package/stubs/{defaultPostCssConfig.stub.js → postcss.config.cjs} +0 -0
package/README.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://tailwindcss.com
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
<a href="https://tailwindcss.com" target="_blank">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-dark.svg">
|
|
5
|
+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-light.svg">
|
|
6
|
+
<img alt="Tailwind CSS" src="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-light.svg" width="350" height="70" style="max-width: 100%;">
|
|
7
|
+
</picture>
|
|
7
8
|
</a>
|
|
8
9
|
</p>
|
|
9
10
|
|
|
@@ -13,7 +14,7 @@
|
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
<p align="center">
|
|
16
|
-
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/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-stable.yml?branch=master" alt="Build Status"></a>
|
|
17
18
|
<a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
|
|
18
19
|
<a href="https://github.com/tailwindcss/tailwindcss/releases"><img src="https://img.shields.io/npm/v/tailwindcss.svg" alt="Latest Release"></a>
|
|
19
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/lib/cli/build/deps.js
CHANGED
|
@@ -10,25 +10,33 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
-
loadPostcss: ()
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
loadPostcss: function() {
|
|
14
|
+
return loadPostcss;
|
|
15
|
+
},
|
|
16
|
+
loadPostcssImport: function() {
|
|
17
|
+
return loadPostcssImport;
|
|
18
|
+
},
|
|
19
|
+
loadCssNano: function() {
|
|
20
|
+
return loadCssNano;
|
|
21
|
+
},
|
|
22
|
+
loadAutoprefixer: function() {
|
|
23
|
+
return loadAutoprefixer;
|
|
24
|
+
}
|
|
17
25
|
});
|
|
18
|
-
const
|
|
26
|
+
const _index = require("../../../peers/index.js");
|
|
19
27
|
function loadPostcss() {
|
|
20
28
|
// Try to load a local `postcss` version first
|
|
21
29
|
try {
|
|
22
30
|
return require("postcss");
|
|
23
31
|
} catch {}
|
|
24
|
-
return (0,
|
|
32
|
+
return (0, _index.lazyPostcss)();
|
|
25
33
|
}
|
|
26
34
|
function loadPostcssImport() {
|
|
27
35
|
// Try to load a local `postcss-import` version first
|
|
28
36
|
try {
|
|
29
37
|
return require("postcss-import");
|
|
30
38
|
} catch {}
|
|
31
|
-
return (0,
|
|
39
|
+
return (0, _index.lazyPostcssImport)();
|
|
32
40
|
}
|
|
33
41
|
function loadCssNano() {
|
|
34
42
|
let options = {
|
|
@@ -43,12 +51,12 @@ function loadCssNano() {
|
|
|
43
51
|
try {
|
|
44
52
|
return require("cssnano");
|
|
45
53
|
} catch {}
|
|
46
|
-
return (0,
|
|
54
|
+
return (0, _index.lazyCssnano)()(options);
|
|
47
55
|
}
|
|
48
56
|
function loadAutoprefixer() {
|
|
49
57
|
// Try to load a local `autoprefixer` version first
|
|
50
58
|
try {
|
|
51
59
|
return require("autoprefixer");
|
|
52
60
|
} catch {}
|
|
53
|
-
return (0,
|
|
61
|
+
return (0, _index.lazyAutoprefixer)();
|
|
54
62
|
}
|
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
|
|
@@ -32,13 +35,20 @@ async function build(args, configs) {
|
|
|
32
35
|
process.exit(9);
|
|
33
36
|
}
|
|
34
37
|
// TODO: Reference the @config path here if exists
|
|
35
|
-
let configPath = args["--config"] ? args["--config"] : (
|
|
36
|
-
let processor = await (0,
|
|
38
|
+
let configPath = args["--config"] ? args["--config"] : (0, _resolveConfigPath.resolveDefaultConfigPath)();
|
|
39
|
+
let processor = await (0, _plugin.createProcessor)(args, configPath);
|
|
37
40
|
if (shouldWatch) {
|
|
38
|
-
|
|
41
|
+
// Abort the watcher if stdin is closed to avoid zombie processes
|
|
42
|
+
// You can disable this behavior with --watch=always
|
|
43
|
+
if (args["--watch"] !== "always") {
|
|
44
|
+
process.stdin.on("end", ()=>process.exit(0));
|
|
45
|
+
}
|
|
39
46
|
process.stdin.resume();
|
|
40
47
|
await processor.watch();
|
|
41
48
|
} else {
|
|
42
|
-
await processor.build()
|
|
49
|
+
await processor.build().catch((e)=>{
|
|
50
|
+
console.error(e);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
});
|
|
43
53
|
}
|
|
44
54
|
}
|
package/lib/cli/build/plugin.js
CHANGED
|
@@ -5,27 +5,31 @@ 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 _path = /*#__PURE__*/
|
|
11
|
-
const _fs = /*#__PURE__*/
|
|
12
|
-
const
|
|
12
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
13
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
14
|
+
const _postcssloadconfig = /*#__PURE__*/ _interop_require_default(require("postcss-load-config"));
|
|
13
15
|
const _lilconfig = require("lilconfig");
|
|
14
|
-
const _plugins = /*#__PURE__*/
|
|
16
|
+
const _plugins = /*#__PURE__*/ _interop_require_default(require("postcss-load-config/src/plugins" // Little bit scary, looking at private/internal API
|
|
15
17
|
));
|
|
16
|
-
const _options = /*#__PURE__*/
|
|
18
|
+
const _options = /*#__PURE__*/ _interop_require_default(require("postcss-load-config/src/options" // Little bit scary, looking at private/internal API
|
|
17
19
|
));
|
|
18
|
-
const _processTailwindFeatures = /*#__PURE__*/
|
|
20
|
+
const _processTailwindFeatures = /*#__PURE__*/ _interop_require_default(require("../../processTailwindFeatures"));
|
|
19
21
|
const _deps = require("./deps");
|
|
20
22
|
const _utils = require("./utils");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
|
|
23
|
+
const _sharedState = require("../../lib/sharedState");
|
|
24
|
+
const _resolveConfig = /*#__PURE__*/ _interop_require_default(require("../../../resolveConfig.js"));
|
|
25
|
+
const _content = require("../../lib/content.js");
|
|
26
|
+
const _watching = require("./watching.js");
|
|
27
|
+
const _fastglob = /*#__PURE__*/ _interop_require_default(require("fast-glob"));
|
|
28
|
+
const _findAtConfigPath = require("../../lib/findAtConfigPath.js");
|
|
29
|
+
const _log = /*#__PURE__*/ _interop_require_default(require("../../util/log"));
|
|
30
|
+
const _loadconfig = require("../../lib/load-config");
|
|
31
|
+
const _getModuleDependencies = /*#__PURE__*/ _interop_require_default(require("../../lib/getModuleDependencies"));
|
|
32
|
+
function _interop_require_default(obj) {
|
|
29
33
|
return obj && obj.__esModule ? obj : {
|
|
30
34
|
default: obj
|
|
31
35
|
};
|
|
@@ -53,7 +57,7 @@ function _interopRequireDefault(obj) {
|
|
|
53
57
|
plugins: (0, _plugins.default)(config, file),
|
|
54
58
|
options: (0, _options.default)(config, file)
|
|
55
59
|
};
|
|
56
|
-
})() : await (0,
|
|
60
|
+
})() : await (0, _postcssloadconfig.default)();
|
|
57
61
|
let configPlugins = config.plugins;
|
|
58
62
|
let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
|
|
59
63
|
if (typeof plugin === "function" && plugin.name === "tailwindcss") {
|
|
@@ -98,22 +102,22 @@ function loadBuiltinPostcssPlugins() {
|
|
|
98
102
|
rule.remove();
|
|
99
103
|
}
|
|
100
104
|
});
|
|
101
|
-
}
|
|
105
|
+
}
|
|
102
106
|
],
|
|
103
107
|
[],
|
|
104
|
-
{}
|
|
108
|
+
{}
|
|
105
109
|
];
|
|
106
110
|
}
|
|
107
111
|
let state = {
|
|
108
112
|
/** @type {any} */ context: null,
|
|
109
113
|
/** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
|
|
110
114
|
/** @type {{content: string, extension: string}[]} */ changedContent: [],
|
|
111
|
-
|
|
115
|
+
/** @type {ReturnType<typeof load> | null} */ configBag: null,
|
|
112
116
|
contextDependencies: new Set(),
|
|
113
117
|
/** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
|
|
114
118
|
refreshContentPaths () {
|
|
115
|
-
var
|
|
116
|
-
this.contentPaths = (0,
|
|
119
|
+
var _this_context;
|
|
120
|
+
this.contentPaths = (0, _content.parseCandidateFiles)(this.context, (_this_context = this.context) === null || _this_context === void 0 ? void 0 : _this_context.tailwindConfig);
|
|
117
121
|
},
|
|
118
122
|
get config () {
|
|
119
123
|
return this.context.tailwindConfig;
|
|
@@ -124,102 +128,126 @@ let state = {
|
|
|
124
128
|
dynamic: this.contentPaths.filter((contentPath)=>contentPath.glob !== undefined).map((contentPath)=>contentPath.pattern)
|
|
125
129
|
};
|
|
126
130
|
},
|
|
127
|
-
loadConfig (configPath) {
|
|
131
|
+
loadConfig (configPath, content) {
|
|
128
132
|
if (this.watcher && configPath) {
|
|
129
|
-
this.refreshConfigDependencies(
|
|
133
|
+
this.refreshConfigDependencies();
|
|
130
134
|
}
|
|
131
|
-
let config =
|
|
135
|
+
let config = (0, _loadconfig.loadConfig)(configPath);
|
|
136
|
+
let dependencies = (0, _getModuleDependencies.default)(configPath);
|
|
137
|
+
this.configBag = {
|
|
138
|
+
config,
|
|
139
|
+
dependencies,
|
|
140
|
+
dispose () {
|
|
141
|
+
for (let file of dependencies){
|
|
142
|
+
delete require.cache[require.resolve(file)];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
};
|
|
132
146
|
// @ts-ignore
|
|
133
|
-
config = (0,
|
|
147
|
+
this.configBag.config = (0, _resolveConfig.default)(this.configBag.config, {
|
|
134
148
|
content: {
|
|
135
149
|
files: []
|
|
136
150
|
}
|
|
137
151
|
});
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
_shared.env.DEBUG && console.time("Module dependencies");
|
|
142
|
-
for (let file of this.configDependencies){
|
|
143
|
-
delete require.cache[require.resolve(file)];
|
|
152
|
+
// Override content files if `--content` has been passed explicitly
|
|
153
|
+
if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
|
|
154
|
+
this.configBag.config.content.files = content;
|
|
144
155
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
156
|
+
return this.configBag.config;
|
|
157
|
+
},
|
|
158
|
+
refreshConfigDependencies () {
|
|
159
|
+
var _this_configBag;
|
|
160
|
+
_sharedState.env.DEBUG && console.time("Module dependencies");
|
|
161
|
+
(_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
|
|
162
|
+
_sharedState.env.DEBUG && console.timeEnd("Module dependencies");
|
|
152
163
|
},
|
|
153
164
|
readContentPaths () {
|
|
154
165
|
let content = [];
|
|
155
166
|
// Resolve globs from the content config
|
|
156
167
|
// TODO: When we make the postcss plugin async-capable this can become async
|
|
157
|
-
let files =
|
|
168
|
+
let files = _fastglob.default.sync(this.contentPatterns.all);
|
|
158
169
|
for (let file of files){
|
|
159
|
-
|
|
160
|
-
content
|
|
161
|
-
|
|
162
|
-
|
|
170
|
+
if (false) {
|
|
171
|
+
content.push({
|
|
172
|
+
file,
|
|
173
|
+
extension: _path.default.extname(file).slice(1)
|
|
174
|
+
});
|
|
175
|
+
} else {
|
|
176
|
+
content.push({
|
|
177
|
+
content: _fs.default.readFileSync(_path.default.resolve(file), "utf8"),
|
|
178
|
+
extension: _path.default.extname(file).slice(1)
|
|
179
|
+
});
|
|
180
|
+
}
|
|
163
181
|
}
|
|
164
182
|
// Resolve raw content in the tailwind config
|
|
165
183
|
let rawContent = this.config.content.files.filter((file)=>{
|
|
166
184
|
return file !== null && typeof file === "object";
|
|
167
185
|
});
|
|
168
|
-
for (let { raw:
|
|
169
|
-
|
|
170
|
-
content:
|
|
186
|
+
for (let { raw: htmlContent , extension ="html" } of rawContent){
|
|
187
|
+
content.push({
|
|
188
|
+
content: htmlContent,
|
|
171
189
|
extension
|
|
172
190
|
});
|
|
173
191
|
}
|
|
174
192
|
return content;
|
|
175
193
|
},
|
|
176
|
-
getContext ({ createContext , cliConfigPath , root , result }) {
|
|
194
|
+
getContext ({ createContext , cliConfigPath , root , result , content }) {
|
|
195
|
+
_sharedState.env.DEBUG && console.time("Searching for config");
|
|
196
|
+
var _findAtConfigPath1;
|
|
197
|
+
let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
|
|
198
|
+
_sharedState.env.DEBUG && console.timeEnd("Searching for config");
|
|
177
199
|
if (this.context) {
|
|
178
200
|
this.context.changedContent = this.changedContent.splice(0);
|
|
179
201
|
return this.context;
|
|
180
202
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
_shared.env.DEBUG && console.time("Loading config");
|
|
186
|
-
let config = this.loadConfig(configPath);
|
|
187
|
-
_shared.env.DEBUG && console.timeEnd("Loading config");
|
|
188
|
-
_shared.env.DEBUG && console.time("Creating context");
|
|
203
|
+
_sharedState.env.DEBUG && console.time("Loading config");
|
|
204
|
+
let config = this.loadConfig(configPath, content);
|
|
205
|
+
_sharedState.env.DEBUG && console.timeEnd("Loading config");
|
|
206
|
+
_sharedState.env.DEBUG && console.time("Creating context");
|
|
189
207
|
this.context = createContext(config, []);
|
|
190
208
|
Object.assign(this.context, {
|
|
191
209
|
userConfigPath: configPath
|
|
192
210
|
});
|
|
193
|
-
|
|
194
|
-
|
|
211
|
+
_sharedState.env.DEBUG && console.timeEnd("Creating context");
|
|
212
|
+
_sharedState.env.DEBUG && console.time("Resolving content paths");
|
|
195
213
|
this.refreshContentPaths();
|
|
196
|
-
|
|
214
|
+
_sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
|
|
197
215
|
if (this.watcher) {
|
|
198
|
-
|
|
216
|
+
_sharedState.env.DEBUG && console.time("Watch new files");
|
|
199
217
|
this.watcher.refreshWatchedFiles();
|
|
200
|
-
|
|
218
|
+
_sharedState.env.DEBUG && console.timeEnd("Watch new files");
|
|
201
219
|
}
|
|
202
|
-
_shared.env.DEBUG && console.time("Reading content files");
|
|
203
220
|
for (let file of this.readContentPaths()){
|
|
204
221
|
this.context.changedContent.push(file);
|
|
205
222
|
}
|
|
206
|
-
_shared.env.DEBUG && console.timeEnd("Reading content files");
|
|
207
223
|
return this.context;
|
|
208
224
|
}
|
|
209
225
|
};
|
|
210
226
|
async function createProcessor(args, cliConfigPath) {
|
|
227
|
+
var _args_content;
|
|
211
228
|
let postcss = (0, _deps.loadPostcss)();
|
|
212
229
|
let input = args["--input"];
|
|
213
230
|
let output = args["--output"];
|
|
214
231
|
let includePostCss = args["--postcss"];
|
|
215
232
|
let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
|
|
216
233
|
let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : loadBuiltinPostcssPlugins();
|
|
234
|
+
if (args["--purge"]) {
|
|
235
|
+
_log.default.warn("purge-flag-deprecated", [
|
|
236
|
+
"The `--purge` flag has been deprecated.",
|
|
237
|
+
"Please use `--content` instead."
|
|
238
|
+
]);
|
|
239
|
+
if (!args["--content"]) {
|
|
240
|
+
args["--content"] = args["--purge"];
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
var _args_content_split;
|
|
244
|
+
let content = (_args_content_split = (_args_content = args["--content"]) === null || _args_content === void 0 ? void 0 : _args_content.split(/(?<!{[^}]+),/)) !== null && _args_content_split !== void 0 ? _args_content_split : [];
|
|
217
245
|
let tailwindPlugin = ()=>{
|
|
218
246
|
return {
|
|
219
247
|
postcssPlugin: "tailwindcss",
|
|
220
|
-
Once (root, { result }) {
|
|
221
|
-
|
|
222
|
-
(0, _processTailwindFeatures.default)(({ createContext })=>{
|
|
248
|
+
async Once (root, { result }) {
|
|
249
|
+
_sharedState.env.DEBUG && console.time("Compiling CSS");
|
|
250
|
+
await (0, _processTailwindFeatures.default)(({ createContext })=>{
|
|
223
251
|
console.error();
|
|
224
252
|
console.error("Rebuilding...");
|
|
225
253
|
return ()=>{
|
|
@@ -227,11 +255,12 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
227
255
|
createContext,
|
|
228
256
|
cliConfigPath,
|
|
229
257
|
root,
|
|
230
|
-
result
|
|
258
|
+
result,
|
|
259
|
+
content
|
|
231
260
|
});
|
|
232
261
|
};
|
|
233
262
|
})(root, result);
|
|
234
|
-
|
|
263
|
+
_sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
|
|
235
264
|
}
|
|
236
265
|
};
|
|
237
266
|
};
|
|
@@ -242,7 +271,7 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
242
271
|
!args["--minify"] && _utils.formatNodes,
|
|
243
272
|
...afterPlugins,
|
|
244
273
|
!args["--no-autoprefixer"] && (0, _deps.loadAutoprefixer)(),
|
|
245
|
-
args["--minify"] && (0, _deps.loadCssNano)()
|
|
274
|
+
args["--minify"] && (0, _deps.loadCssNano)()
|
|
246
275
|
].filter(Boolean);
|
|
247
276
|
/** @type {import('postcss').Processor} */ // @ts-ignore
|
|
248
277
|
let processor = postcss(plugins);
|
|
@@ -265,18 +294,49 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
265
294
|
from: input,
|
|
266
295
|
to: output
|
|
267
296
|
})).then((result)=>{
|
|
297
|
+
if (!state.watcher) {
|
|
298
|
+
return result;
|
|
299
|
+
}
|
|
300
|
+
_sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
|
|
301
|
+
for (let message of result.messages){
|
|
302
|
+
if (message.type === "dependency") {
|
|
303
|
+
state.contextDependencies.add(message.file);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
_sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
|
|
307
|
+
// TODO: This needs to be in a different spot
|
|
308
|
+
_sharedState.env.DEBUG && console.time("Watch new files");
|
|
309
|
+
state.watcher.refreshWatchedFiles();
|
|
310
|
+
_sharedState.env.DEBUG && console.timeEnd("Watch new files");
|
|
311
|
+
return result;
|
|
312
|
+
}).then((result)=>{
|
|
268
313
|
if (!output) {
|
|
269
314
|
process.stdout.write(result.css);
|
|
270
315
|
return;
|
|
271
316
|
}
|
|
272
317
|
return Promise.all([
|
|
273
|
-
(0, _utils.outputFile)(
|
|
274
|
-
result.map && (0, _utils.outputFile)(
|
|
318
|
+
(0, _utils.outputFile)(result.opts.to, result.css),
|
|
319
|
+
result.map && (0, _utils.outputFile)(result.opts.to + ".map", result.map.toString())
|
|
275
320
|
]);
|
|
276
321
|
}).then(()=>{
|
|
277
322
|
let end = process.hrtime.bigint();
|
|
278
323
|
console.error();
|
|
279
324
|
console.error("Done in", (end - start) / BigInt(1e6) + "ms.");
|
|
325
|
+
}).then(()=>{}, (err)=>{
|
|
326
|
+
// TODO: If an initial build fails we can't easily pick up any PostCSS dependencies
|
|
327
|
+
// that were collected before the error occurred
|
|
328
|
+
// The result is not stored on the error so we have to store it externally
|
|
329
|
+
// and pull the messages off of it here somehow
|
|
330
|
+
// This results in a less than ideal DX because the watcher will not pick up
|
|
331
|
+
// changes to imported CSS if one of them caused an error during the initial build
|
|
332
|
+
// If you fix it and then save the main CSS file so there's no error
|
|
333
|
+
// The watcher will start watching the imported CSS files and will be
|
|
334
|
+
// resilient to future errors.
|
|
335
|
+
if (state.watcher) {
|
|
336
|
+
console.error(err);
|
|
337
|
+
} else {
|
|
338
|
+
return Promise.reject(err);
|
|
339
|
+
}
|
|
280
340
|
});
|
|
281
341
|
}
|
|
282
342
|
/**
|
|
@@ -293,13 +353,14 @@ async function createProcessor(args, cliConfigPath) {
|
|
|
293
353
|
return {
|
|
294
354
|
build,
|
|
295
355
|
watch: async ()=>{
|
|
296
|
-
state.watcher = (0,
|
|
356
|
+
state.watcher = (0, _watching.createWatcher)(args, {
|
|
297
357
|
state,
|
|
298
358
|
/**
|
|
299
359
|
* @param {{file: string, content(): Promise<string>, extension: string}[]} changes
|
|
300
360
|
*/ async rebuild (changes) {
|
|
301
361
|
let needsNewContext = changes.some((change)=>{
|
|
302
|
-
|
|
362
|
+
var _state_configBag;
|
|
363
|
+
return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
|
|
303
364
|
});
|
|
304
365
|
if (needsNewContext) {
|
|
305
366
|
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
|
};
|