tailwindcss 0.0.0-insiders.4f0bb0b → 0.0.0-insiders.4f404ff

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 (87) hide show
  1. package/lib/cli/build/index.js +14 -14
  2. package/lib/cli/build/plugin.js +52 -52
  3. package/lib/cli/build/utils.js +13 -13
  4. package/lib/cli/build/watching.js +9 -9
  5. package/lib/cli/help/index.js +9 -9
  6. package/lib/cli/index.js +57 -57
  7. package/lib/cli/init/index.js +16 -16
  8. package/lib/cli.js +1 -1
  9. package/lib/corePlugins.js +1755 -1755
  10. package/lib/css/preflight.css +5 -1
  11. package/lib/featureFlags.js +13 -13
  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 +9 -9
  17. package/lib/lib/defaultExtractor.js +9 -9
  18. package/lib/lib/detectNesting.js +10 -10
  19. package/lib/lib/evaluateTailwindFunctions.js +19 -19
  20. package/lib/lib/expandApplyAtRules.js +18 -18
  21. package/lib/lib/expandTailwindAtRules.js +29 -29
  22. package/lib/lib/findAtConfigPath.js +5 -5
  23. package/lib/lib/generateRules.js +46 -46
  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 +24 -24
  32. package/lib/lib/setupContextUtils.js +100 -100
  33. package/lib/lib/setupTrackingContext.js +2 -2
  34. package/lib/lib/sharedState.js +10 -10
  35. package/lib/lib/substituteScreenAtRules.js +2 -2
  36. package/lib/plugin.js +19 -19
  37. package/lib/postcss-plugins/nesting/index.js +1 -1
  38. package/lib/postcss-plugins/nesting/plugin.js +10 -10
  39. package/lib/processTailwindFeatures.js +2 -2
  40. package/lib/public/colors.js +263 -263
  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 +16 -16
  46. package/lib/util/createUtilityPlugin.js +1 -1
  47. package/lib/util/dataTypes.js +110 -110
  48. package/lib/util/escapeCommas.js +1 -1
  49. package/lib/util/flattenColorPalette.js +2 -2
  50. package/lib/util/formatVariantSelector.js +14 -14
  51. package/lib/util/getAllConfigs.js +2 -2
  52. package/lib/util/isKeyframeRule.js +1 -1
  53. package/lib/util/isPlainObject.js +1 -1
  54. package/lib/util/isSyntacticallyValidPropertyValue.js +10 -10
  55. package/lib/util/log.js +11 -11
  56. package/lib/util/nameClass.js +4 -4
  57. package/lib/util/negateValue.js +8 -8
  58. package/lib/util/normalizeConfig.js +48 -48
  59. package/lib/util/normalizeScreens.js +16 -16
  60. package/lib/util/parseAnimationValue.js +38 -38
  61. package/lib/util/parseBoxShadowValue.js +18 -18
  62. package/lib/util/parseDependency.js +4 -4
  63. package/lib/util/parseGlob.js +4 -4
  64. package/lib/util/parseObjectStyles.js +1 -1
  65. package/lib/util/pluginUtils.js +16 -16
  66. package/lib/util/prefixSelector.js +4 -4
  67. package/lib/util/pseudoElements.js +69 -69
  68. package/lib/util/removeAlphaVariables.js +1 -1
  69. package/lib/util/resolveConfig.js +5 -5
  70. package/lib/util/resolveConfigPath.js +6 -6
  71. package/lib/util/responsive.js +1 -1
  72. package/lib/util/splitAtTopLevelOnly.js +3 -3
  73. package/lib/util/toColorValue.js +1 -1
  74. package/lib/util/toPath.js +2 -2
  75. package/lib/util/transformThemeValue.js +24 -24
  76. package/lib/util/validateConfig.js +13 -13
  77. package/lib/util/validateFormalSyntax.js +5 -5
  78. package/lib/util/withAlphaVariable.js +4 -4
  79. package/lib/value-parser/index.js +5 -5
  80. package/lib/value-parser/parse.js +43 -43
  81. package/lib/value-parser/stringify.js +11 -11
  82. package/lib/value-parser/unit.js +5 -5
  83. package/lib/value-parser/walk.js +1 -1
  84. package/package.json +4 -4
  85. package/scripts/release-notes.js +1 -1
  86. package/src/corePlugins.js +1 -1
  87. package/src/css/preflight.css +5 -1
@@ -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();
@@ -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;
@@ -204,9 +204,9 @@ let state = {
204
204
  },
205
205
  refreshConfigDependencies () {
206
206
  var _this_configBag;
207
- _sharedState.env.DEBUG && console.time("Module dependencies");
207
+ _sharedState.env.DEBUG && console.time('Module dependencies');
208
208
  (_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
209
- _sharedState.env.DEBUG && console.timeEnd("Module dependencies");
209
+ _sharedState.env.DEBUG && console.timeEnd('Module dependencies');
210
210
  },
211
211
  readContentPaths () {
212
212
  let content = [];
@@ -214,23 +214,23 @@ let state = {
214
214
  // TODO: When we make the postcss plugin async-capable this can become async
215
215
  let files = _fastglob.default.sync(this.contentPatterns.all);
216
216
  for (let file of files){
217
- if ((0, _featureFlags.flagEnabled)(this.config, "oxideParser")) {
217
+ if ((0, _featureFlags.flagEnabled)(this.config, 'oxideParser')) {
218
218
  content.push({
219
219
  file,
220
220
  extension: _path.default.extname(file).slice(1)
221
221
  });
222
222
  } else {
223
223
  content.push({
224
- content: _fs.default.readFileSync(_path.default.resolve(file), "utf8"),
224
+ content: _fs.default.readFileSync(_path.default.resolve(file), 'utf8'),
225
225
  extension: _path.default.extname(file).slice(1)
226
226
  });
227
227
  }
228
228
  }
229
229
  // Resolve raw content in the tailwind config
230
230
  let rawContent = this.config.content.files.filter((file)=>{
231
- return file !== null && typeof file === "object";
231
+ return file !== null && typeof file === 'object';
232
232
  });
233
- for (let { raw: htmlContent, extension = "html" } of rawContent){
233
+ for (let { raw: htmlContent, extension = 'html' } of rawContent){
234
234
  content.push({
235
235
  content: htmlContent,
236
236
  extension
@@ -243,26 +243,26 @@ let state = {
243
243
  this.context.changedContent = this.changedContent.splice(0);
244
244
  return this.context;
245
245
  }
246
- _sharedState.env.DEBUG && console.time("Searching for config");
246
+ _sharedState.env.DEBUG && console.time('Searching for config');
247
247
  var _findAtConfigPath1;
248
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");
249
+ _sharedState.env.DEBUG && console.timeEnd('Searching for config');
250
+ _sharedState.env.DEBUG && console.time('Loading config');
251
251
  let config = this.loadConfig(configPath, content);
252
- _sharedState.env.DEBUG && console.timeEnd("Loading config");
253
- _sharedState.env.DEBUG && console.time("Creating context");
252
+ _sharedState.env.DEBUG && console.timeEnd('Loading config');
253
+ _sharedState.env.DEBUG && console.time('Creating context');
254
254
  this.context = createContext(config, []);
255
255
  Object.assign(this.context, {
256
256
  userConfigPath: configPath
257
257
  });
258
- _sharedState.env.DEBUG && console.timeEnd("Creating context");
259
- _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');
260
260
  this.refreshContentPaths();
261
- _sharedState.env.DEBUG && console.timeEnd("Resolving content paths");
261
+ _sharedState.env.DEBUG && console.timeEnd('Resolving content paths');
262
262
  if (this.watcher) {
263
- _sharedState.env.DEBUG && console.time("Watch new files");
263
+ _sharedState.env.DEBUG && console.time('Watch new files');
264
264
  this.watcher.refreshWatchedFiles();
265
- _sharedState.env.DEBUG && console.timeEnd("Watch new files");
265
+ _sharedState.env.DEBUG && console.timeEnd('Watch new files');
266
266
  }
267
267
  for (let file of this.readContentPaths()){
268
268
  this.context.changedContent.push(file);
@@ -272,35 +272,35 @@ let state = {
272
272
  };
273
273
  async function createProcessor(args, cliConfigPath) {
274
274
  var _args_content;
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;
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;
279
279
  let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins(customPostCssPath) : [
280
280
  [],
281
281
  [],
282
282
  {}
283
283
  ];
284
284
  beforePlugins.unshift(...(0, _handleImportAtRules.handleImportAtRules)());
285
- if (args["--purge"]) {
286
- _log.default.warn("purge-flag-deprecated", [
287
- "The `--purge` flag has been deprecated.",
288
- "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.'
289
289
  ]);
290
- if (!args["--content"]) {
291
- args["--content"] = args["--purge"];
290
+ if (!args['--content']) {
291
+ args['--content'] = args['--purge'];
292
292
  }
293
293
  }
294
294
  var _args_content_split;
295
- 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 : [];
296
296
  let tailwindPlugin = ()=>{
297
297
  return {
298
- postcssPlugin: "tailwindcss",
298
+ postcssPlugin: 'tailwindcss',
299
299
  async Once (root, { result }) {
300
- _sharedState.env.DEBUG && console.time("Compiling CSS");
300
+ _sharedState.env.DEBUG && console.time('Compiling CSS');
301
301
  await (0, _processTailwindFeatures.default)(({ createContext })=>{
302
302
  console.error();
303
- console.error("Rebuilding...");
303
+ console.error('Rebuilding...');
304
304
  return ()=>{
305
305
  return state.getContext({
306
306
  createContext,
@@ -311,7 +311,7 @@ async function createProcessor(args, cliConfigPath) {
311
311
  });
312
312
  };
313
313
  })(root, result);
314
- _sharedState.env.DEBUG && console.timeEnd("Compiling CSS");
314
+ _sharedState.env.DEBUG && console.timeEnd('Compiling CSS');
315
315
  }
316
316
  };
317
317
  };
@@ -319,22 +319,22 @@ async function createProcessor(args, cliConfigPath) {
319
319
  let plugins = [
320
320
  ...beforePlugins,
321
321
  tailwindPlugin,
322
- !args["--minify"] && _utils.formatNodes,
322
+ !args['--minify'] && _utils.formatNodes,
323
323
  ...afterPlugins
324
324
  ].filter(Boolean);
325
325
  /** @type {import('postcss').Processor} */ // @ts-ignore
326
326
  let processor = (0, _postcss.default)(plugins);
327
327
  async function readInput() {
328
328
  // Piping in data, let's drain the stdin
329
- if (input === "-") {
329
+ if (input === '-') {
330
330
  return (0, _utils.drainStdin)();
331
331
  }
332
332
  // Input file has been provided
333
333
  if (input) {
334
- return _fs.default.promises.readFile(_path.default.resolve(input), "utf8");
334
+ return _fs.default.promises.readFile(_path.default.resolve(input), 'utf8');
335
335
  }
336
336
  // No input file provided, fallback to default atrules
337
- return "@tailwind base; @tailwind components; @tailwind utilities";
337
+ return '@tailwind base; @tailwind components; @tailwind utilities';
338
338
  }
339
339
  async function build() {
340
340
  let start = process.hrtime.bigint();
@@ -345,22 +345,22 @@ async function createProcessor(args, cliConfigPath) {
345
345
  };
346
346
  return readInput().then((css)=>processor.process(css, options)).then((result)=>lightningcss(result, {
347
347
  ...options,
348
- minify: !!args["--minify"]
348
+ minify: !!args['--minify']
349
349
  })).then((result)=>{
350
350
  if (!state.watcher) {
351
351
  return result;
352
352
  }
353
- _sharedState.env.DEBUG && console.time("Recording PostCSS dependencies");
353
+ _sharedState.env.DEBUG && console.time('Recording PostCSS dependencies');
354
354
  for (let message of result.messages){
355
- if (message.type === "dependency") {
355
+ if (message.type === 'dependency') {
356
356
  state.contextDependencies.add(message.file);
357
357
  }
358
358
  }
359
- _sharedState.env.DEBUG && console.timeEnd("Recording PostCSS dependencies");
359
+ _sharedState.env.DEBUG && console.timeEnd('Recording PostCSS dependencies');
360
360
  // TODO: This needs to be in a different spot
361
- _sharedState.env.DEBUG && console.time("Watch new files");
361
+ _sharedState.env.DEBUG && console.time('Watch new files');
362
362
  state.watcher.refreshWatchedFiles();
363
- _sharedState.env.DEBUG && console.timeEnd("Watch new files");
363
+ _sharedState.env.DEBUG && console.timeEnd('Watch new files');
364
364
  return result;
365
365
  }).then((result)=>{
366
366
  if (!output) {
@@ -369,12 +369,12 @@ async function createProcessor(args, cliConfigPath) {
369
369
  }
370
370
  return Promise.all([
371
371
  (0, _utils.outputFile)(result.opts.to, license() + result.css),
372
- 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())
373
373
  ]);
374
374
  }).then(()=>{
375
375
  let end = process.hrtime.bigint();
376
376
  console.error();
377
- console.error("Done in", (end - start) / BigInt(1e6) + "ms.");
377
+ console.error('Done in', (end - start) / BigInt(1e6) + 'ms.');
378
378
  }).then(()=>{}, (err)=>{
379
379
  // TODO: If an initial build fails we can't easily pick up any PostCSS dependencies
380
380
  // that were collected before the error occurred
@@ -400,7 +400,7 @@ async function createProcessor(args, cliConfigPath) {
400
400
  extension: change.extension
401
401
  })));
402
402
  }
403
- if (input !== undefined && input !== "-") {
403
+ if (input !== undefined && input !== '-') {
404
404
  state.contextDependencies.add(_path.default.resolve(input));
405
405
  }
406
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
  }
@@ -21,8 +21,8 @@ function _interop_require_default(obj) {
21
21
  };
22
22
  }
23
23
  function createWatcher(args, { state, rebuild }) {
24
- let shouldPoll = args["--poll"];
25
- let shouldCoalesceWriteEvents = shouldPoll || process.platform === "win32";
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
  }
@@ -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:");
62
+ console.log('Options:');
63
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
  }