tailwindcss 0.0.0-insiders.9f591a5 → 0.0.0-insiders.9fcfea4

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.
Files changed (102) hide show
  1. package/lib/cli/build/index.js +14 -14
  2. package/lib/cli/build/plugin.js +58 -57
  3. package/lib/cli/build/utils.js +13 -13
  4. package/lib/cli/build/watching.js +10 -10
  5. package/lib/cli/help/index.js +11 -11
  6. package/lib/cli/index.js +60 -60
  7. package/lib/cli/init/index.js +16 -16
  8. package/lib/cli.js +1 -1
  9. package/lib/corePlugins.js +1898 -1894
  10. package/lib/css/preflight.css +6 -2
  11. package/lib/featureFlags.js +17 -16
  12. package/lib/index.js +1 -1
  13. package/lib/lib/cacheInvalidation.js +3 -3
  14. package/lib/lib/collapseAdjacentRules.js +6 -6
  15. package/lib/lib/collapseDuplicateDeclarations.js +1 -1
  16. package/lib/lib/content.js +10 -10
  17. package/lib/lib/defaultExtractor.js +9 -9
  18. package/lib/lib/detectNesting.js +10 -10
  19. package/lib/lib/evaluateTailwindFunctions.js +23 -23
  20. package/lib/lib/expandApplyAtRules.js +18 -18
  21. package/lib/lib/expandTailwindAtRules.js +37 -36
  22. package/lib/lib/findAtConfigPath.js +5 -5
  23. package/lib/lib/generateRules.js +63 -55
  24. package/lib/lib/getModuleDependencies.js +23 -23
  25. package/lib/lib/handleImportAtRules.js +3 -3
  26. package/lib/lib/load-config.js +3 -3
  27. package/lib/lib/normalizeTailwindDirectives.js +21 -21
  28. package/lib/lib/offsets.js +44 -44
  29. package/lib/lib/partitionApplyAtRules.js +2 -2
  30. package/lib/lib/regex.js +5 -5
  31. package/lib/lib/resolveDefaultsAtRules.js +25 -25
  32. package/lib/lib/setupContextUtils.js +160 -135
  33. package/lib/lib/setupTrackingContext.js +5 -4
  34. package/lib/lib/sharedState.js +10 -10
  35. package/lib/lib/substituteScreenAtRules.js +4 -4
  36. package/lib/plugin.js +23 -23
  37. package/lib/postcss-plugins/nesting/index.js +2 -2
  38. package/lib/postcss-plugins/nesting/plugin.js +11 -11
  39. package/lib/processTailwindFeatures.js +5 -5
  40. package/lib/public/colors.js +264 -264
  41. package/lib/util/applyImportantSelector.js +2 -2
  42. package/lib/util/buildMediaQuery.js +2 -2
  43. package/lib/util/cloneDeep.js +1 -1
  44. package/lib/util/cloneNodes.js +1 -1
  45. package/lib/util/color.js +19 -19
  46. package/lib/util/createUtilityPlugin.js +3 -3
  47. package/lib/util/dataTypes.js +154 -100
  48. package/lib/util/defaults.js +4 -4
  49. package/lib/util/escapeClassName.js +2 -2
  50. package/lib/util/escapeCommas.js +1 -1
  51. package/lib/util/flattenColorPalette.js +2 -2
  52. package/lib/util/formatVariantSelector.js +22 -20
  53. package/lib/util/getAllConfigs.js +5 -4
  54. package/lib/util/isKeyframeRule.js +1 -1
  55. package/lib/util/isPlainObject.js +1 -1
  56. package/lib/util/isSyntacticallyValidPropertyValue.js +10 -10
  57. package/lib/util/log.js +11 -11
  58. package/lib/util/nameClass.js +4 -4
  59. package/lib/util/negateValue.js +8 -8
  60. package/lib/util/normalizeConfig.js +70 -65
  61. package/lib/util/normalizeScreens.js +18 -18
  62. package/lib/util/parseAnimationValue.js +38 -38
  63. package/lib/util/parseBoxShadowValue.js +18 -18
  64. package/lib/util/parseDependency.js +4 -4
  65. package/lib/util/parseGlob.js +4 -4
  66. package/lib/util/parseObjectStyles.js +1 -1
  67. package/lib/util/pluginUtils.js +21 -21
  68. package/lib/util/prefixSelector.js +4 -4
  69. package/lib/util/pseudoElements.js +69 -69
  70. package/lib/util/removeAlphaVariables.js +1 -1
  71. package/lib/util/resolveConfig.js +15 -11
  72. package/lib/util/resolveConfigPath.js +6 -6
  73. package/lib/util/responsive.js +1 -1
  74. package/lib/util/splitAtTopLevelOnly.js +3 -3
  75. package/lib/util/toColorValue.js +1 -1
  76. package/lib/util/toPath.js +2 -2
  77. package/lib/util/transformThemeValue.js +24 -24
  78. package/lib/util/validateConfig.js +13 -13
  79. package/lib/util/validateFormalSyntax.js +5 -5
  80. package/lib/util/withAlphaVariable.js +5 -5
  81. package/lib/value-parser/index.js +5 -5
  82. package/lib/value-parser/parse.js +43 -43
  83. package/lib/value-parser/stringify.js +11 -11
  84. package/lib/value-parser/unit.js +5 -5
  85. package/lib/value-parser/walk.js +1 -1
  86. package/package.json +16 -16
  87. package/scripts/release-notes.js +1 -1
  88. package/src/cli/build/plugin.js +2 -2
  89. package/src/corePlugins.js +13 -7
  90. package/src/css/preflight.css +6 -2
  91. package/src/lib/expandTailwindAtRules.js +15 -11
  92. package/src/lib/generateRules.js +13 -6
  93. package/src/lib/setupContextUtils.js +18 -5
  94. package/src/plugin.js +3 -3
  95. package/src/processTailwindFeatures.js +3 -2
  96. package/src/util/dataTypes.js +59 -11
  97. package/src/util/formatVariantSelector.js +4 -3
  98. package/src/util/normalizeConfig.js +1 -1
  99. package/src/util/prefixSelector.js +1 -0
  100. package/stubs/config.full.js +6 -7
  101. package/types/config.d.ts +6 -6
  102. package/types/generated/default-theme.d.ts +6 -0
@@ -19,32 +19,32 @@ function _interop_require_default(obj) {
19
19
  };
20
20
  }
21
21
  async function build(args) {
22
- let input = args["--input"];
23
- let shouldWatch = args["--watch"];
22
+ let input = args['--input'];
23
+ let shouldWatch = args['--watch'];
24
24
  // TODO: Deprecate this in future versions
25
- if (!input && args["_"][1]) {
26
- console.error("[deprecation] Running tailwindcss without -i, please provide an input file.");
27
- input = args["--input"] = args["_"][1];
25
+ if (!input && args['_'][1]) {
26
+ console.error('[deprecation] Running tailwindcss without -i, please provide an input file.');
27
+ input = args['--input'] = args['_'][1];
28
28
  }
29
- if (input && input !== "-" && !_fs.default.existsSync(input = _path.default.resolve(input))) {
30
- console.error(`Specified input file ${args["--input"]} does not exist.`);
29
+ if (input && input !== '-' && !_fs.default.existsSync(input = _path.default.resolve(input))) {
30
+ console.error(`Specified input file ${args['--input']} does not exist.`);
31
31
  process.exit(9);
32
32
  }
33
- if (args["--config"] && !_fs.default.existsSync(args["--config"] = _path.default.resolve(args["--config"]))) {
34
- console.error(`Specified config file ${args["--config"]} does not exist.`);
33
+ if (args['--config'] && !_fs.default.existsSync(args['--config'] = _path.default.resolve(args['--config']))) {
34
+ console.error(`Specified config file ${args['--config']} does not exist.`);
35
35
  process.exit(9);
36
36
  }
37
- if (args["--no-autoprefixer"]) {
38
- console.error("[deprecation] The --no-autoprefixer flag is deprecated and has no effect.");
37
+ if (args['--no-autoprefixer']) {
38
+ console.error('[deprecation] The --no-autoprefixer flag is deprecated and has no effect.');
39
39
  }
40
40
  // TODO: Reference the @config path here if exists
41
- let configPath = args["--config"] ? args["--config"] : (0, _resolveConfigPath.resolveDefaultConfigPath)();
41
+ let configPath = args['--config'] ? args['--config'] : (0, _resolveConfigPath.resolveDefaultConfigPath)();
42
42
  let processor = await (0, _plugin.createProcessor)(args, configPath);
43
43
  if (shouldWatch) {
44
44
  // Abort the watcher if stdin is closed to avoid zombie processes
45
45
  // You can disable this behavior with --watch=always
46
- if (args["--watch"] !== "always") {
47
- process.stdin.on("end", ()=>process.exit(0));
46
+ if (args['--watch'] !== 'always') {
47
+ process.stdin.on('end', ()=>process.exit(0));
48
48
  }
49
49
  process.stdin.resume();
50
50
  await processor.watch();
@@ -82,7 +82,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
82
82
  function license() {
83
83
  return `/* ! tailwindcss v${_packagejson.default.version} | MIT License | https://tailwindcss.com */\n`;
84
84
  }
85
- async function lightningcss(result, { map =true , minify =true } = {}) {
85
+ async function lightningcss(result, { map = true, minify = true } = {}) {
86
86
  try {
87
87
  var _browserslist_findConfig;
88
88
  var _result_opts_from;
@@ -90,8 +90,8 @@ async function lightningcss(result, { map =true , minify =true } = {}) {
90
90
  let defaultBrowsersListConfig = _packagejson.default.browserslist;
91
91
  let browsersListConfig = resolvedBrowsersListConfig !== null && resolvedBrowsersListConfig !== void 0 ? resolvedBrowsersListConfig : defaultBrowsersListConfig;
92
92
  let transformed = _lightningcss.default.transform({
93
- filename: result.opts.from || "input.css",
94
- code: Buffer.from(result.css, "utf-8"),
93
+ filename: result.opts.from || 'input.css',
94
+ code: Buffer.from(result.css, 'utf-8'),
95
95
  minify,
96
96
  sourceMap: result.map === undefined ? map : !!result.map,
97
97
  inputSourceMap: result.map ? result.map.toString() : undefined,
@@ -103,7 +103,7 @@ async function lightningcss(result, { map =true , minify =true } = {}) {
103
103
  exclude: _lightningcss.Features.LogicalProperties
104
104
  });
105
105
  return Object.assign(result, {
106
- css: transformed.code.toString("utf8"),
106
+ css: transformed.code.toString('utf8'),
107
107
  map: result.map ? Object.assign(result.map, {
108
108
  toString () {
109
109
  var _transformed_map;
@@ -112,7 +112,7 @@ async function lightningcss(result, { map =true , minify =true } = {}) {
112
112
  }) : result.map
113
113
  });
114
114
  } catch (err) {
115
- console.error("Unable to use Lightning CSS. Using raw version instead.");
115
+ console.error('Unable to use Lightning CSS. Using raw version instead.');
116
116
  console.error(err);
117
117
  return result;
118
118
  }
@@ -126,8 +126,8 @@ async function lightningcss(result, { map =true , minify =true } = {}) {
126
126
  let file = _path.default.resolve(customPostCssPath);
127
127
  // Implementation, see: https://unpkg.com/browse/postcss-load-config@3.1.0/src/index.js
128
128
  // @ts-ignore
129
- let { config ={} } = await (0, _lilconfig.lilconfig)("postcss").load(file);
130
- if (typeof config === "function") {
129
+ let { config = {} } = await (0, _lilconfig.lilconfig)('postcss').load(file);
130
+ if (typeof config === 'function') {
131
131
  config = config();
132
132
  } else {
133
133
  config = Object.assign({}, config);
@@ -143,10 +143,10 @@ async function lightningcss(result, { map =true , minify =true } = {}) {
143
143
  })() : await (0, _postcssloadconfig.default)();
144
144
  let configPlugins = config.plugins;
145
145
  let configPluginTailwindIdx = configPlugins.findIndex((plugin)=>{
146
- if (typeof plugin === "function" && plugin.name === "tailwindcss") {
146
+ if (typeof plugin === 'function' && plugin.name === 'tailwindcss') {
147
147
  return true;
148
148
  }
149
- if (typeof plugin === "object" && plugin !== null && plugin.postcssPlugin === "tailwindcss") {
149
+ if (typeof plugin === 'object' && plugin !== null && plugin.postcssPlugin === 'tailwindcss') {
150
150
  return true;
151
151
  }
152
152
  return false;
@@ -180,6 +180,7 @@ let state = {
180
180
  };
181
181
  },
182
182
  loadConfig (configPath, content) {
183
+ var _content;
183
184
  if (this.watcher && configPath) {
184
185
  this.refreshConfigDependencies();
185
186
  }
@@ -196,16 +197,16 @@ let state = {
196
197
  };
197
198
  this.configBag.config = (0, _validateConfig.validateConfig)((0, _resolveConfig.default)(this.configBag.config));
198
199
  // Override content files if `--content` has been passed explicitly
199
- if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
200
+ if (((_content = content) === null || _content === void 0 ? void 0 : _content.length) > 0) {
200
201
  this.configBag.config.content.files = content;
201
202
  }
202
203
  return this.configBag.config;
203
204
  },
204
205
  refreshConfigDependencies () {
205
206
  var _this_configBag;
206
- _sharedState.env.DEBUG && console.time("Module dependencies");
207
+ _sharedState.env.DEBUG && console.time('Module dependencies');
207
208
  (_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
208
- _sharedState.env.DEBUG && console.timeEnd("Module dependencies");
209
+ _sharedState.env.DEBUG && console.timeEnd('Module dependencies');
209
210
  },
210
211
  readContentPaths () {
211
212
  let content = [];
@@ -213,23 +214,23 @@ let state = {
213
214
  // TODO: When we make the postcss plugin async-capable this can become async
214
215
  let files = _fastglob.default.sync(this.contentPatterns.all);
215
216
  for (let file of files){
216
- if ((0, _featureFlags.flagEnabled)(this.config, "oxideParser")) {
217
+ if ((0, _featureFlags.flagEnabled)(this.config, 'oxideParser')) {
217
218
  content.push({
218
219
  file,
219
220
  extension: _path.default.extname(file).slice(1)
220
221
  });
221
222
  } else {
222
223
  content.push({
223
- content: _fs.default.readFileSync(_path.default.resolve(file), "utf8"),
224
+ content: _fs.default.readFileSync(_path.default.resolve(file), 'utf8'),
224
225
  extension: _path.default.extname(file).slice(1)
225
226
  });
226
227
  }
227
228
  }
228
229
  // Resolve raw content in the tailwind config
229
230
  let rawContent = this.config.content.files.filter((file)=>{
230
- return file !== null && typeof file === "object";
231
+ return file !== null && typeof file === 'object';
231
232
  });
232
- for (let { raw: htmlContent , extension ="html" } of rawContent){
233
+ for (let { raw: htmlContent, extension = 'html' } of rawContent){
233
234
  content.push({
234
235
  content: htmlContent,
235
236
  extension
@@ -237,31 +238,31 @@ let state = {
237
238
  }
238
239
  return content;
239
240
  },
240
- getContext ({ createContext , cliConfigPath , root , result , content }) {
241
+ getContext ({ createContext, cliConfigPath, root, result, content }) {
241
242
  if (this.context) {
242
243
  this.context.changedContent = this.changedContent.splice(0);
243
244
  return this.context;
244
245
  }
245
- _sharedState.env.DEBUG && console.time("Searching for config");
246
+ _sharedState.env.DEBUG && console.time('Searching for config');
246
247
  var _findAtConfigPath1;
247
248
  let configPath = (_findAtConfigPath1 = (0, _findAtConfigPath.findAtConfigPath)(root, result)) !== null && _findAtConfigPath1 !== void 0 ? _findAtConfigPath1 : cliConfigPath;
248
- _sharedState.env.DEBUG && console.timeEnd("Searching for config");
249
- _sharedState.env.DEBUG && console.time("Loading config");
249
+ _sharedState.env.DEBUG && console.timeEnd('Searching for config');
250
+ _sharedState.env.DEBUG && console.time('Loading config');
250
251
  let config = this.loadConfig(configPath, content);
251
- _sharedState.env.DEBUG && console.timeEnd("Loading config");
252
- _sharedState.env.DEBUG && console.time("Creating context");
252
+ _sharedState.env.DEBUG && console.timeEnd('Loading config');
253
+ _sharedState.env.DEBUG && console.time('Creating context');
253
254
  this.context = createContext(config, []);
254
255
  Object.assign(this.context, {
255
256
  userConfigPath: configPath
256
257
  });
257
- _sharedState.env.DEBUG && console.timeEnd("Creating context");
258
- _sharedState.env.DEBUG && console.time("Resolving content paths");
258
+ _sharedState.env.DEBUG && console.timeEnd('Creating context');
259
+ _sharedState.env.DEBUG && console.time('Resolving content paths');
259
260
  this.refreshContentPaths();
260
- _sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
261
+ _sharedState.env.DEBUG && console.timeEnd('Resolving content paths');
261
262
  if (this.watcher) {
262
- _sharedState.env.DEBUG && console.time("Watch new files");
263
+ _sharedState.env.DEBUG && console.time('Watch new files');
263
264
  this.watcher.refreshWatchedFiles();
264
- _sharedState.env.DEBUG && console.timeEnd("Watch new files");
265
+ _sharedState.env.DEBUG && console.timeEnd('Watch new files');
265
266
  }
266
267
  for (let file of this.readContentPaths()){
267
268
  this.context.changedContent.push(file);
@@ -271,35 +272,35 @@ let state = {
271
272
  };
272
273
  async function createProcessor(args, cliConfigPath) {
273
274
  var _args_content;
274
- let input = args["--input"];
275
- let output = args["--output"];
276
- let includePostCss = args["--postcss"];
277
- let customPostCssPath = typeof args["--postcss"] === "string" ? args["--postcss"] : undefined;
275
+ let input = args['--input'];
276
+ let output = args['--output'];
277
+ let includePostCss = args['--postcss'];
278
+ let customPostCssPath = typeof args['--postcss'] === 'string' ? args['--postcss'] : undefined;
278
279
  let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
279
280
  [],
280
281
  [],
281
282
  {}
282
283
  ];
283
284
  beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
284
- if (args["--purge"]) {
285
- _log.default.warn("purge-flag-deprecated", [
286
- "The `--purge` flag has been deprecated.",
287
- "Please use `--content` instead."
285
+ if (args['--purge']) {
286
+ _log.default.warn('purge-flag-deprecated', [
287
+ 'The `--purge` flag has been deprecated.',
288
+ 'Please use `--content` instead.'
288
289
  ]);
289
- if (!args["--content"]) {
290
- args["--content"] = args["--purge"];
290
+ if (!args['--content']) {
291
+ args['--content'] = args['--purge'];
291
292
  }
292
293
  }
293
294
  var _args_content_split;
294
- 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 : [];
295
+ let content = (_args_content_split = (_args_content = args['--content']) === null || _args_content === void 0 ? void 0 : _args_content.split(RegExp("(?<!{[^}]+),"))) !== null && _args_content_split !== void 0 ? _args_content_split : [];
295
296
  let tailwindPlugin = ()=>{
296
297
  return {
297
- postcssPlugin: "tailwindcss",
298
- Once (root, { result }) {
299
- _sharedState.env.DEBUG && console.time("Compiling CSS");
300
- (0, _processTailwindFeatures.default)(({ createContext })=>{
298
+ postcssPlugin: 'tailwindcss',
299
+ async Once (root, { result }) {
300
+ _sharedState.env.DEBUG && console.time('Compiling CSS');
301
+ await (0, _processTailwindFeatures.default)(({ createContext })=>{
301
302
  console.error();
302
- console.error("Rebuilding...");
303
+ console.error('Rebuilding...');
303
304
  return ()=>{
304
305
  return state.getContext({
305
306
  createContext,
@@ -310,7 +311,7 @@ async function createProcessor(args, cliConfigPath) {
310
311
  });
311
312
  };
312
313
  })(root, result);
313
- _sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
314
+ _sharedState.env.DEBUG && console.timeEnd('Compiling CSS');
314
315
  }
315
316
  };
316
317
  };
@@ -318,22 +319,22 @@ async function createProcessor(args, cliConfigPath) {
318
319
  let plugins = [
319
320
  ...beforePlugins,
320
321
  tailwindPlugin,
321
- !args["--minify"] && _utils.formatNodes,
322
+ !args['--minify'] && _utils.formatNodes,
322
323
  ...afterPlugins
323
324
  ].filter(Boolean);
324
325
  /** @type {import('postcss').Processor} */ // @ts-ignore
325
326
  let processor = (0, _postcss.default)(plugins);
326
327
  async function readInput() {
327
328
  // Piping in data, let's drain the stdin
328
- if (input === "-") {
329
+ if (input === '-') {
329
330
  return (0, _utils.drainStdin)();
330
331
  }
331
332
  // Input file has been provided
332
333
  if (input) {
333
- return _fs.default.promises.readFile(_path.default.resolve(input), "utf8");
334
+ return _fs.default.promises.readFile(_path.default.resolve(input), 'utf8');
334
335
  }
335
336
  // No input file provided, fallback to default atrules
336
- return "@tailwind base; @tailwind components; @tailwind utilities";
337
+ return '@tailwind base; @tailwind components; @tailwind utilities';
337
338
  }
338
339
  async function build() {
339
340
  let start = process.hrtime.bigint();
@@ -344,22 +345,22 @@ async function createProcessor(args, cliConfigPath) {
344
345
  };
345
346
  return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
346
347
  ...options,
347
- minify: !!args["--minify"]
348
+ minify: !!args['--minify']
348
349
  })).then((result)=>{
349
350
  if (!state.watcher) {
350
351
  return result;
351
352
  }
352
- _sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
353
+ _sharedState.env.DEBUG && console.time('Recording PostCSS dependencies');
353
354
  for (let message of result.messages){
354
- if (message.type === "dependency") {
355
+ if (message.type === 'dependency') {
355
356
  state.contextDependencies.add(message.file);
356
357
  }
357
358
  }
358
- _sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
359
+ _sharedState.env.DEBUG && console.timeEnd('Recording PostCSS dependencies');
359
360
  // TODO: This needs to be in a different spot
360
- _sharedState.env.DEBUG && console.time("Watch new files");
361
+ _sharedState.env.DEBUG && console.time('Watch new files');
361
362
  state.watcher.refreshWatchedFiles();
362
- _sharedState.env.DEBUG && console.timeEnd("Watch new files");
363
+ _sharedState.env.DEBUG && console.timeEnd('Watch new files');
363
364
  return result;
364
365
  }).then((result)=>{
365
366
  if (!output) {
@@ -368,12 +369,12 @@ async function createProcessor(args, cliConfigPath) {
368
369
  }
369
370
  return Promise.all([
370
371
  (0, _utils.outputFile)(result.opts.to, license() + result.css),
371
- result.map && (0, _utils.outputFile)(result.opts.to + ".map", result.map.toString())
372
+ result.map && (0, _utils.outputFile)(result.opts.to + '.map', result.map.toString())
372
373
  ]);
373
374
  }).then(()=>{
374
375
  let end = process.hrtime.bigint();
375
376
  console.error();
376
- console.error("Done in", (end - start) / BigInt(1e6) + "ms.");
377
+ console.error('Done in', (end - start) / BigInt(1e6) + 'ms.');
377
378
  }).then(()=>{}, (err)=>{
378
379
  // TODO: If an initial build fails we can't easily pick up any PostCSS dependencies
379
380
  // that were collected before the error occurred
@@ -399,7 +400,7 @@ async function createProcessor(args, cliConfigPath) {
399
400
  extension: change.extension
400
401
  })));
401
402
  }
402
- if (input !== undefined && input !== "-") {
403
+ if (input !== undefined && input !== '-') {
403
404
  state.contextDependencies.add(_path.default.resolve(input));
404
405
  }
405
406
  return {
@@ -35,26 +35,26 @@ function _interop_require_default(obj) {
35
35
  }
36
36
  function indentRecursive(node, indent = 0) {
37
37
  node.each && node.each((child, i)=>{
38
- if (!child.raws.before || !child.raws.before.trim() || child.raws.before.includes("\n")) {
39
- child.raws.before = `\n${node.type !== "rule" && i > 0 ? "\n" : ""}${" ".repeat(indent)}`;
38
+ if (!child.raws.before || !child.raws.before.trim() || child.raws.before.includes('\n')) {
39
+ child.raws.before = `\n${node.type !== 'rule' && i > 0 ? '\n' : ''}${' '.repeat(indent)}`;
40
40
  }
41
- child.raws.after = `\n${" ".repeat(indent)}`;
41
+ child.raws.after = `\n${' '.repeat(indent)}`;
42
42
  indentRecursive(child, indent + 1);
43
43
  });
44
44
  }
45
45
  function formatNodes(root) {
46
46
  indentRecursive(root);
47
47
  if (root.first) {
48
- root.first.raws.before = "";
48
+ root.first.raws.before = '';
49
49
  }
50
50
  }
51
51
  async function readFileWithRetries(path, tries = 5) {
52
52
  for(let n = 0; n <= tries; n++){
53
53
  try {
54
- return await _fs.default.promises.readFile(path, "utf8");
54
+ return await _fs.default.promises.readFile(path, 'utf8');
55
55
  } catch (err) {
56
56
  if (n !== tries) {
57
- if (err.code === "ENOENT" || err.code === "EBUSY") {
57
+ if (err.code === 'ENOENT' || err.code === 'EBUSY') {
58
58
  await new Promise((resolve)=>setTimeout(resolve, 10));
59
59
  continue;
60
60
  }
@@ -65,24 +65,24 @@ async function readFileWithRetries(path, tries = 5) {
65
65
  }
66
66
  function drainStdin() {
67
67
  return new Promise((resolve, reject)=>{
68
- let result = "";
69
- process.stdin.on("data", (chunk)=>{
68
+ let result = '';
69
+ process.stdin.on('data', (chunk)=>{
70
70
  result += chunk;
71
71
  });
72
- process.stdin.on("end", ()=>resolve(result));
73
- process.stdin.on("error", (err)=>reject(err));
72
+ process.stdin.on('end', ()=>resolve(result));
73
+ process.stdin.on('error', (err)=>reject(err));
74
74
  });
75
75
  }
76
76
  async function outputFile(file, newContents) {
77
77
  try {
78
- let currentContents = await _fs.default.promises.readFile(file, "utf8");
78
+ let currentContents = await _fs.default.promises.readFile(file, 'utf8');
79
79
  if (currentContents === newContents) {
80
80
  return; // Skip writing the file
81
81
  }
82
- } catch {}
82
+ } catch (e) {}
83
83
  // Write the file
84
84
  await _fs.default.promises.mkdir(_path.default.dirname(file), {
85
85
  recursive: true
86
86
  });
87
- await _fs.default.promises.writeFile(file, newContents, "utf8");
87
+ await _fs.default.promises.writeFile(file, newContents, 'utf8');
88
88
  }
@@ -20,9 +20,9 @@ function _interop_require_default(obj) {
20
20
  default: obj
21
21
  };
22
22
  }
23
- function createWatcher(args, { state , rebuild }) {
24
- let shouldPoll = args["--poll"];
25
- let shouldCoalesceWriteEvents = shouldPoll || process.platform === "win32";
23
+ function createWatcher(args, { state, rebuild }) {
24
+ let shouldPoll = args['--poll'];
25
+ let shouldCoalesceWriteEvents = shouldPoll || process.platform === 'win32';
26
26
  // Polling interval in milliseconds
27
27
  // Used only when polling or coalescing add/change events on Windows
28
28
  let pollInterval = 10;
@@ -88,7 +88,7 @@ function createWatcher(args, { state , rebuild }) {
88
88
  pendingRebuilds.add(file);
89
89
  changedContent.push({
90
90
  file,
91
- content: content !== null && content !== void 0 ? content : ()=>_fs.default.promises.readFile(file, "utf8"),
91
+ content: content !== null && content !== void 0 ? content : ()=>_fs.default.promises.readFile(file, 'utf8'),
92
92
  extension: _path.default.extname(file).slice(1)
93
93
  });
94
94
  if (_timer) {
@@ -107,12 +107,12 @@ function createWatcher(args, { state , rebuild }) {
107
107
  chain = chain.then(rebuildAndContinue, rebuildAndContinue);
108
108
  return chain;
109
109
  }
110
- watcher.on("change", (file)=>recordChangedFile(file));
111
- watcher.on("add", (file)=>recordChangedFile(file));
110
+ watcher.on('change', (file)=>recordChangedFile(file));
111
+ watcher.on('add', (file)=>recordChangedFile(file));
112
112
  // Restore watching any files that are "removed"
113
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)
114
114
  // TODO: An an optimization we should allow removal when the config changes
115
- watcher.on("unlink", (file)=>{
115
+ watcher.on('unlink', (file)=>{
116
116
  file = (0, _normalizepath.default)(file);
117
117
  // Only re-add the file if it's not covered by a dynamic pattern
118
118
  if (!_micromatch.default.some([
@@ -125,8 +125,8 @@ function createWatcher(args, { state , rebuild }) {
125
125
  // will only fire a rename event for atomic writes and not a change event
126
126
  // This is very likely a chokidar bug but it's one we need to work around
127
127
  // We treat this as a change event and rebuild the CSS
128
- watcher.on("raw", (evt, filePath, meta)=>{
129
- if (evt !== "rename") {
128
+ watcher.on('raw', (evt, filePath, meta)=>{
129
+ if (evt !== 'rename') {
130
130
  return;
131
131
  }
132
132
  let watchedPath = meta.watchedPath;
@@ -161,7 +161,7 @@ function createWatcher(args, { state , rebuild }) {
161
161
  // This is because the order of events and timing is different on Linux
162
162
  // @ts-ignore: TypeScript isn't picking up that content is a string here
163
163
  await recordChangedFile(filePath, ()=>content, true);
164
- } catch {
164
+ } catch (e) {
165
165
  // If reading the file fails, it's was probably a deleted temporary file
166
166
  // So we can ignore it and no rebuild is needed
167
167
  }
@@ -15,7 +15,7 @@ function _interop_require_default(obj) {
15
15
  default: obj
16
16
  };
17
17
  }
18
- function help({ message , usage , commands , options }) {
18
+ function help({ message, usage, commands, options }) {
19
19
  let indent = 2;
20
20
  // Render header
21
21
  console.log();
@@ -23,31 +23,31 @@ function help({ message , usage , commands , options }) {
23
23
  // Render message
24
24
  if (message) {
25
25
  console.log();
26
- for (let msg of message.split("\n")){
26
+ for (let msg of message.split('\n')){
27
27
  console.log(msg);
28
28
  }
29
29
  }
30
30
  // Render usage
31
31
  if (usage && usage.length > 0) {
32
32
  console.log();
33
- console.log("Usage:");
33
+ console.log('Usage:');
34
34
  for (let example of usage){
35
- console.log(" ".repeat(indent), example);
35
+ console.log(' '.repeat(indent), example);
36
36
  }
37
37
  }
38
38
  // Render commands
39
39
  if (commands && commands.length > 0) {
40
40
  console.log();
41
- console.log("Commands:");
41
+ console.log('Commands:');
42
42
  for (let command of commands){
43
- console.log(" ".repeat(indent), command);
43
+ console.log(' '.repeat(indent), command);
44
44
  }
45
45
  }
46
46
  // Render options
47
47
  if (options) {
48
48
  let groupedOptions = {};
49
49
  for (let [key, value] of Object.entries(options)){
50
- if (typeof value === "object") {
50
+ if (typeof value === 'object') {
51
51
  groupedOptions[key] = {
52
52
  ...value,
53
53
  flags: [
@@ -59,13 +59,13 @@ function help({ message , usage , commands , options }) {
59
59
  }
60
60
  }
61
61
  console.log();
62
- console.log("Options:");
63
- for (let { flags , description , deprecated } of Object.values(groupedOptions)){
62
+ console.log('Options:');
63
+ for (let { flags, description, deprecated } of Object.values(groupedOptions)){
64
64
  if (deprecated) continue;
65
65
  if (flags.length === 1) {
66
- console.log(" ".repeat(indent + 4 /* 4 = "-i, ".length */ ), flags.slice().reverse().join(", ").padEnd(20, " "), description);
66
+ console.log(' '.repeat(indent + 4 /* 4 = "-i, ".length */ ), flags.slice().reverse().join(', ').padEnd(20, ' '), description);
67
67
  } else {
68
- console.log(" ".repeat(indent), flags.slice().reverse().join(", ").padEnd(24, " "), description);
68
+ console.log(' '.repeat(indent), flags.slice().reverse().join(', ').padEnd(24, ' '), description);
69
69
  }
70
70
  }
71
71
  }