postcss 8.3.8 → 8.4.0

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.

Potentially problematic release.


This version of postcss might be problematic. Click here for more details.

package/lib/node.js CHANGED
@@ -10,7 +10,7 @@ function cloneNode(obj, parent) {
10
10
 
11
11
  for (let i in obj) {
12
12
  if (!Object.prototype.hasOwnProperty.call(obj, i)) {
13
- // istanbul ignore next
13
+ /* c8 ignore next 2 */
14
14
  continue
15
15
  }
16
16
  if (i === 'proxyCache') continue
@@ -56,8 +56,13 @@ class Node {
56
56
 
57
57
  error(message, opts = {}) {
58
58
  if (this.source) {
59
- let pos = this.positionBy(opts)
60
- return this.source.input.error(message, pos.line, pos.column, opts)
59
+ let { start, end } = this.rangeBy(opts)
60
+ return this.source.input.error(
61
+ message,
62
+ { line: start.line, column: start.column },
63
+ { line: end.line, column: end.column },
64
+ opts
65
+ )
61
66
  }
62
67
  return new CssSyntaxError(message)
63
68
  }
@@ -184,7 +189,7 @@ class Node {
184
189
 
185
190
  for (let name in this) {
186
191
  if (!Object.prototype.hasOwnProperty.call(this, name)) {
187
- // istanbul ignore next
192
+ /* c8 ignore next 2 */
188
193
  continue
189
194
  }
190
195
  if (name === 'parent' || name === 'proxyCache') continue
@@ -252,6 +257,59 @@ class Node {
252
257
  return pos
253
258
  }
254
259
 
260
+ rangeBy(opts) {
261
+ let start = {
262
+ line: this.source.start.line,
263
+ column: this.source.start.column
264
+ }
265
+ let end = this.source.end
266
+ ? {
267
+ line: this.source.end.line,
268
+ column: this.source.end.column + 1
269
+ }
270
+ : {
271
+ line: start.line,
272
+ column: start.column + 1
273
+ }
274
+
275
+ if (opts.word) {
276
+ let index = this.toString().indexOf(opts.word)
277
+ if (index !== -1) {
278
+ start = this.positionInside(index)
279
+ end = this.positionInside(index + opts.word.length)
280
+ }
281
+ } else {
282
+ if (opts.start) {
283
+ start = {
284
+ line: opts.start.line,
285
+ column: opts.start.column
286
+ }
287
+ } else if (opts.index) {
288
+ start = this.positionInside(opts.index)
289
+ }
290
+
291
+ if (opts.end) {
292
+ end = {
293
+ line: opts.end.line,
294
+ column: opts.end.column
295
+ }
296
+ } else if (opts.endIndex) {
297
+ end = this.positionInside(opts.endIndex)
298
+ } else if (opts.index) {
299
+ end = this.positionInside(opts.index + 1)
300
+ }
301
+ }
302
+
303
+ if (
304
+ end.line < start.line ||
305
+ (end.line === start.line && end.column <= start.column)
306
+ ) {
307
+ end = { line: start.line, column: start.column + 1 }
308
+ }
309
+
310
+ return { start, end }
311
+ }
312
+
255
313
  getProxyProcessor() {
256
314
  return {
257
315
  set(node, prop, value) {
@@ -263,6 +321,7 @@ class Node {
263
321
  prop === 'name' ||
264
322
  prop === 'params' ||
265
323
  prop === 'important' ||
324
+ /* c8 ignore next */
266
325
  prop === 'text'
267
326
  ) {
268
327
  node.markDirty()
package/lib/parser.js CHANGED
@@ -511,15 +511,27 @@ class Parser {
511
511
  // Errors
512
512
 
513
513
  unclosedBracket(bracket) {
514
- throw this.input.error('Unclosed bracket', bracket[2])
514
+ throw this.input.error(
515
+ 'Unclosed bracket',
516
+ { offset: bracket[2] },
517
+ { offset: bracket[2] + 1 }
518
+ )
515
519
  }
516
520
 
517
521
  unknownWord(tokens) {
518
- throw this.input.error('Unknown word', tokens[0][2])
522
+ throw this.input.error(
523
+ 'Unknown word',
524
+ { offset: tokens[0][2] },
525
+ { offset: tokens[0][2] + tokens[0][1].length }
526
+ )
519
527
  }
520
528
 
521
529
  unexpectedClose(token) {
522
- throw this.input.error('Unexpected }', token[2])
530
+ throw this.input.error(
531
+ 'Unexpected }',
532
+ { offset: token[2] },
533
+ { offset: token[2] + 1 }
534
+ )
523
535
  }
524
536
 
525
537
  unclosedBlock() {
@@ -528,11 +540,19 @@ class Parser {
528
540
  }
529
541
 
530
542
  doubleColon(token) {
531
- throw this.input.error('Double colon', token[2])
543
+ throw this.input.error(
544
+ 'Double colon',
545
+ { offset: token[2] },
546
+ { offset: token[2] + token[1].length }
547
+ )
532
548
  }
533
549
 
534
550
  unnamedAtrule(node, token) {
535
- throw this.input.error('At-rule without name', token[2])
551
+ throw this.input.error(
552
+ 'At-rule without name',
553
+ { offset: token[2] },
554
+ { offset: token[2] + token[1].length }
555
+ )
536
556
  }
537
557
 
538
558
  precheckMissedSemicolon(/* tokens */) {
package/lib/postcss.d.ts CHANGED
@@ -10,52 +10,53 @@ import Node, {
10
10
  AnyNode
11
11
  } from './node.js'
12
12
  import Declaration, { DeclarationProps } from './declaration.js'
13
- import Root, { RootProps } from './root.js'
13
+ import Container, { ContainerProps } from './container.js'
14
14
  import Document, { DocumentProps } from './document.js'
15
+ import Warning, { WarningOptions } from './warning.js'
15
16
  import Comment, { CommentProps } from './comment.js'
16
17
  import AtRule, { AtRuleProps } from './at-rule.js'
18
+ import Input, { FilePosition } from './input.js'
17
19
  import Result, { Message } from './result.js'
18
- import LazyResult from './lazy-result.js'
20
+ import Root, { RootProps } from './root.js'
19
21
  import Rule, { RuleProps } from './rule.js'
20
- import Container, { ContainerProps } from './container.js'
21
- import Warning, { WarningOptions } from './warning.js'
22
- import Input, { FilePosition } from './input.js'
23
22
  import CssSyntaxError from './css-syntax-error.js'
24
23
  import list, { List } from './list.js'
24
+ import LazyResult from './lazy-result.js'
25
25
  import Processor from './processor.js'
26
26
 
27
27
  export {
28
- WarningOptions,
29
- FilePosition,
30
- Position,
31
- Source,
32
- ChildNode,
33
- AnyNode,
34
- Message,
35
28
  NodeErrorOptions,
36
- NodeProps,
37
29
  DeclarationProps,
30
+ CssSyntaxError,
38
31
  ContainerProps,
32
+ WarningOptions,
33
+ DocumentProps,
34
+ FilePosition,
39
35
  CommentProps,
40
- RuleProps,
41
- ChildProps,
42
36
  AtRuleProps,
37
+ Declaration,
38
+ ChildProps,
39
+ LazyResult,
40
+ ChildNode,
41
+ NodeProps,
42
+ Processor,
43
+ RuleProps,
43
44
  RootProps,
44
- DocumentProps,
45
- Warning,
46
- CssSyntaxError,
47
- Node,
48
45
  Container,
49
- list,
50
- Declaration,
46
+ Position,
47
+ Document,
48
+ AnyNode,
49
+ Warning,
50
+ Message,
51
51
  Comment,
52
+ Source,
52
53
  AtRule,
53
- Rule,
54
- Root,
55
- Document,
56
54
  Result,
57
- LazyResult,
58
- Input
55
+ Input,
56
+ Node,
57
+ list,
58
+ Rule,
59
+ Root
59
60
  }
60
61
 
61
62
  export type SourceMap = SourceMapGenerator & {
@@ -221,7 +222,7 @@ export type AcceptedPlugin =
221
222
  }
222
223
  | Processor
223
224
 
224
- export interface Parser<RootNode = Root> {
225
+ export interface Parser<RootNode = Root | Document> {
225
226
  (
226
227
  css: string | { toString(): string },
227
228
  opts?: Pick<ProcessOptions, 'map' | 'from'>
@@ -245,7 +246,7 @@ export interface Syntax {
245
246
  /**
246
247
  * Function to generate AST by string.
247
248
  */
248
- parse?: Parser<Root | Document>
249
+ parse?: Parser
249
250
 
250
251
  /**
251
252
  * Class to generate string by AST.
@@ -378,7 +379,7 @@ export interface Postcss {
378
379
  * root1.append(root2).toResult().css
379
380
  * ```
380
381
  */
381
- parse: Parser
382
+ parse: Parser<Root>
382
383
 
383
384
  /**
384
385
  * Rehydrate a JSON AST (from `Node#toJSON`) back into the AST classes.
@@ -458,7 +459,7 @@ export interface Postcss {
458
459
  }
459
460
 
460
461
  export const stringify: Stringifier
461
- export const parse: Parser
462
+ export const parse: Parser<Root>
462
463
  export const fromJSON: JSONHydrator
463
464
 
464
465
  export const comment: Postcss['comment']
package/lib/postcss.js CHANGED
@@ -27,14 +27,17 @@ function postcss(...plugins) {
27
27
  }
28
28
 
29
29
  postcss.plugin = function plugin(name, initializer) {
30
+ // eslint-disable-next-line no-console
30
31
  if (console && console.warn) {
32
+ // eslint-disable-next-line no-console
31
33
  console.warn(
32
34
  name +
33
35
  ': postcss.plugin was deprecated. Migration guide:\n' +
34
36
  'https://evilmartians.com/chronicles/postcss-8-plugin-migration'
35
37
  )
36
38
  if (process.env.LANG && process.env.LANG.startsWith('cn')) {
37
- // istanbul ignore next
39
+ /* c8 ignore next 7 */
40
+ // eslint-disable-next-line no-console
38
41
  console.warn(
39
42
  name +
40
43
  ': 里面 postcss.plugin 被弃用. 迁移指南:\n' +
@@ -79,6 +82,7 @@ postcss.document = defaults => new Document(defaults)
79
82
  postcss.CssSyntaxError = CssSyntaxError
80
83
  postcss.Declaration = Declaration
81
84
  postcss.Container = Container
85
+ postcss.Processor = Processor
82
86
  postcss.Document = Document
83
87
  postcss.Comment = Comment
84
88
  postcss.Warning = Warning
package/lib/postcss.mjs CHANGED
@@ -18,6 +18,7 @@ export const root = postcss.root
18
18
  export const CssSyntaxError = postcss.CssSyntaxError
19
19
  export const Declaration = postcss.Declaration
20
20
  export const Container = postcss.Container
21
+ export const Processor = postcss.Processor
21
22
  export const Document = postcss.Document
22
23
  export const Comment = postcss.Comment
23
24
  export const Warning = postcss.Warning
@@ -8,7 +8,7 @@ function fromBase64(str) {
8
8
  if (Buffer) {
9
9
  return Buffer.from(str, 'base64').toString()
10
10
  } else {
11
- // istanbul ignore next
11
+ /* c8 ignore next 2 */
12
12
  return window.atob(str)
13
13
  }
14
14
  }
@@ -48,23 +48,20 @@ class PreviousMap {
48
48
  }
49
49
 
50
50
  getAnnotationURL(sourceMapString) {
51
- return sourceMapString
52
- .match(/\/\*\s*# sourceMappingURL=((?:(?!sourceMappingURL=).)*)\*\//)[1]
53
- .trim()
51
+ return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim()
54
52
  }
55
53
 
56
54
  loadAnnotation(css) {
57
- let annotations = css.match(
58
- /\/\*\s*# sourceMappingURL=(?:(?!sourceMappingURL=).)*\*\//gm
59
- )
55
+ let comments = css.match(/\/\*\s*# sourceMappingURL=/gm)
56
+ if (!comments) return
60
57
 
61
- if (annotations && annotations.length > 0) {
62
- // Locate the last sourceMappingURL to avoid picking up
63
- // sourceMappingURLs from comments, strings, etc.
64
- let lastAnnotation = annotations[annotations.length - 1]
65
- if (lastAnnotation) {
66
- this.annotation = this.getAnnotationURL(lastAnnotation)
67
- }
58
+ // sourceMappingURLs from comments, strings, etc.
59
+ let start = css.lastIndexOf(comments.pop())
60
+ let end = css.indexOf('*/', start)
61
+
62
+ if (start > -1 && end > -1) {
63
+ // Locate the last sourceMappingURL to avoid pickin
64
+ this.annotation = this.getAnnotationURL(css.substring(start, end))
68
65
  }
69
66
  }
70
67
 
@@ -8,13 +8,14 @@ import {
8
8
  import LazyResult from './lazy-result.js'
9
9
  import Result from './result.js'
10
10
  import Root from './root.js'
11
+ import NoWorkResult from './no-work-result.js'
11
12
 
12
13
  /**
13
14
  * Contains plugins to process CSS. Create one `Processor` instance,
14
15
  * initialize its plugins, and then use that instance on numerous CSS files.
15
16
  *
16
17
  * ```js
17
- * const processor = postcss([autoprefixer, precss])
18
+ * const processor = postcss([autoprefixer, postcssNested])
18
19
  * processor.process(css1).then(result => console.log(result.css))
19
20
  * processor.process(css2).then(result => console.log(result.css))
20
21
  * ```
@@ -35,7 +36,7 @@ export default class Processor {
35
36
  * Plugins added to this processor.
36
37
  *
37
38
  * ```js
38
- * const processor = postcss([autoprefixer, precss])
39
+ * const processor = postcss([autoprefixer, postcssNested])
39
40
  * processor.plugins.length //=> 2
40
41
  * ```
41
42
  */
@@ -67,7 +68,7 @@ export default class Processor {
67
68
  * ```js
68
69
  * const processor = postcss()
69
70
  * .use(autoprefixer)
70
- * .use(precss)
71
+ * .use(postcssNested)
71
72
  * ```
72
73
  *
73
74
  * @param plugin PostCSS plugin or `Processor` with plugins.
@@ -97,5 +98,5 @@ export default class Processor {
97
98
  process(
98
99
  css: string | { toString(): string } | Result | LazyResult | Root,
99
100
  options?: ProcessOptions
100
- ): LazyResult
101
+ ): LazyResult | NoWorkResult
101
102
  }
package/lib/processor.js CHANGED
@@ -3,10 +3,11 @@
3
3
  let LazyResult = require('./lazy-result')
4
4
  let Document = require('./document')
5
5
  let Root = require('./root')
6
+ let NoWorkResult = require('./no-work-result')
6
7
 
7
8
  class Processor {
8
9
  constructor(plugins = []) {
9
- this.version = '8.3.8'
10
+ this.version = '8.4.0'
10
11
  this.plugins = this.normalize(plugins)
11
12
  }
12
13
 
@@ -20,20 +21,12 @@ class Processor {
20
21
  this.plugins.length === 0 &&
21
22
  typeof opts.parser === 'undefined' &&
22
23
  typeof opts.stringifier === 'undefined' &&
23
- typeof opts.syntax === 'undefined' &&
24
- !opts.hideNothingWarning
24
+ typeof opts.syntax === 'undefined'
25
25
  ) {
26
- if (process.env.NODE_ENV !== 'production') {
27
- if (typeof console !== 'undefined' && console.warn) {
28
- console.warn(
29
- 'You did not set any plugins, parser, or stringifier. ' +
30
- 'Right now, PostCSS does nothing. Pick plugins for your case ' +
31
- 'on https://www.postcss.parts/ and use them in postcss.config.js.'
32
- )
33
- }
34
- }
26
+ return new NoWorkResult(this, css, opts)
27
+ } else {
28
+ return new LazyResult(this, css, opts)
35
29
  }
36
- return new LazyResult(this, css, opts)
37
30
  }
38
31
 
39
32
  normalize(plugins) {
package/lib/result.d.ts CHANGED
@@ -4,6 +4,7 @@ import {
4
4
  SourceMap,
5
5
  TransformCallback,
6
6
  Root,
7
+ Document,
7
8
  Node,
8
9
  Warning,
9
10
  WarningOptions
@@ -94,7 +95,7 @@ export default class Result {
94
95
  * root.toResult().root === root
95
96
  * ```
96
97
  */
97
- root: Root
98
+ root: Root | Document
98
99
 
99
100
  /**
100
101
  * Options from the `Processor#process` or `Root#toResult` call
@@ -141,7 +142,7 @@ export default class Result {
141
142
  * @param root Root node after all transformations.
142
143
  * @param opts Options from the `Processor#process` or `Root#toResult`.
143
144
  */
144
- constructor(processor: Processor, root: Root, opts: ResultOptions)
145
+ constructor(processor: Processor, root: Root | Document, opts: ResultOptions)
145
146
 
146
147
  /**
147
148
  * An alias for the `Result#css` property.
@@ -0,0 +1,36 @@
1
+ import {
2
+ Document,
3
+ Root,
4
+ Comment,
5
+ Declaration,
6
+ Builder,
7
+ AnyNode,
8
+ Rule,
9
+ AtRule,
10
+ Container
11
+ } from './postcss.js'
12
+
13
+ export class Stringifier {
14
+ constructor(builder: Builder)
15
+ stringify(node: AnyNode, semicolon?: boolean): void
16
+ document(node: Document): void
17
+ root(node: Root): void
18
+ comment(node: Comment): void
19
+ decl(node: Declaration, semicolon?: boolean): void
20
+ rule(node: Rule): void
21
+ atrule(node: AtRule, semicolon?: boolean): void
22
+ body(node: Container): void
23
+ block(node: AnyNode, start: string): void
24
+ raw(node: AnyNode, own: string | null, detect?: string): string
25
+ rawSemicolon(root: Root): boolean | undefined
26
+ rawEmptyBody(root: Root): string | undefined
27
+ rawIndent(root: Root): string | undefined
28
+ rawBeforeComment(root: Root, node: Comment): string | undefined
29
+ rawBeforeDecl(root: Root, node: Declaration): string | undefined
30
+ rawBeforeRule(root: Root): string | undefined
31
+ rawBeforeClose(root: Root): string | undefined
32
+ rawBeforeOpen(root: Root): string | undefined
33
+ rawColon(root: Root): string | undefined
34
+ beforeAfter(node: AnyNode, detect: 'before' | 'after'): string
35
+ rawValue(node: AnyNode, prop: string): string
36
+ }
@@ -25,7 +25,7 @@ class Stringifier {
25
25
  }
26
26
 
27
27
  stringify(node, semicolon) {
28
- /* istanbul ignore if */
28
+ /* c8 ignore start */
29
29
  if (!this[node.type]) {
30
30
  throw new Error(
31
31
  'Unknown AST node type ' +
@@ -34,6 +34,7 @@ class Stringifier {
34
34
  'Maybe you need to change PostCSS stringifier.'
35
35
  )
36
36
  }
37
+ /* c8 ignore stop */
37
38
  this[node.type](node, semicolon)
38
39
  }
39
40
 
@@ -349,3 +350,4 @@ class Stringifier {
349
350
  }
350
351
 
351
352
  module.exports = Stringifier
353
+ Stringifier.default = Stringifier
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- let { cyan, gray, green, yellow, magenta } = require('nanocolors')
3
+ let pico = require('picocolors')
4
4
 
5
5
  let tokenizer = require('./tokenize')
6
6
 
@@ -11,21 +11,21 @@ function registerInput(dependant) {
11
11
  }
12
12
 
13
13
  const HIGHLIGHT_THEME = {
14
- 'brackets': cyan,
15
- 'at-word': cyan,
16
- 'comment': gray,
17
- 'string': green,
18
- 'class': yellow,
19
- 'hash': magenta,
20
- 'call': cyan,
21
- '(': cyan,
22
- ')': cyan,
23
- '{': yellow,
24
- '}': yellow,
25
- '[': yellow,
26
- ']': yellow,
27
- ':': yellow,
28
- ';': yellow
14
+ 'brackets': pico.cyan,
15
+ 'at-word': pico.cyan,
16
+ 'comment': pico.gray,
17
+ 'string': pico.green,
18
+ 'class': pico.yellow,
19
+ 'hash': pico.magenta,
20
+ 'call': pico.cyan,
21
+ '(': pico.cyan,
22
+ ')': pico.cyan,
23
+ '{': pico.yellow,
24
+ '}': pico.yellow,
25
+ '[': pico.yellow,
26
+ ']': pico.yellow,
27
+ ':': pico.yellow,
28
+ ';': pico.yellow
29
29
  }
30
30
 
31
31
  function getTokenType([type, value], processor) {
package/lib/warn-once.js CHANGED
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-console */
1
2
  'use strict'
2
3
 
3
4
  let printed = {}
package/lib/warning.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { RangePosition } from './css-syntax-error.js'
1
2
  import Node from './node.js'
2
3
 
3
4
  export interface WarningOptions {
@@ -12,10 +13,25 @@ export interface WarningOptions {
12
13
  word?: string
13
14
 
14
15
  /**
15
- * Index in CSS node string that caused the warning.
16
+ * Start index, inclusive, in CSS node string that caused the warning.
16
17
  */
17
18
  index?: number
18
19
 
20
+ /**
21
+ * End index, exclusive, in CSS node string that caused the warning.
22
+ */
23
+ endIndex?: number
24
+
25
+ /**
26
+ * Start position, inclusive, in CSS node string that caused the warning.
27
+ */
28
+ start?: RangePosition
29
+
30
+ /**
31
+ * End position, exclusive, in CSS node string that caused the warning.
32
+ */
33
+ end?: RangePosition
34
+
19
35
  /**
20
36
  * Name of the plugin that created this warning. `Result#warn` fills
21
37
  * this property automatically.
@@ -68,7 +84,7 @@ export default class Warning {
68
84
  node: Node
69
85
 
70
86
  /**
71
- * Line in the input file with this warning’s source.
87
+ * Line for inclusive start position in the input file with this warning’s source.
72
88
  *
73
89
  * ```js
74
90
  * warning.line //=> 5
@@ -77,7 +93,7 @@ export default class Warning {
77
93
  line: number
78
94
 
79
95
  /**
80
- * Column in the input file with this warning’s source.
96
+ * Column for inclusive start position in the input file with this warning’s source.
81
97
  *
82
98
  * ```js
83
99
  * warning.column //=> 6
@@ -85,6 +101,24 @@ export default class Warning {
85
101
  */
86
102
  column: number
87
103
 
104
+ /**
105
+ * Line for exclusive end position in the input file with this warning’s source.
106
+ *
107
+ * ```js
108
+ * warning.endLine //=> 6
109
+ * ```
110
+ */
111
+ endLine?: number
112
+
113
+ /**
114
+ * Column for exclusive end position in the input file with this warning’s source.
115
+ *
116
+ * ```js
117
+ * warning.endColumn //=> 4
118
+ * ```
119
+ */
120
+ endColumn?: number
121
+
88
122
  /**
89
123
  * @param text Warning message.
90
124
  * @param opts Warning options.
package/lib/warning.js CHANGED
@@ -6,9 +6,11 @@ class Warning {
6
6
  this.text = text
7
7
 
8
8
  if (opts.node && opts.node.source) {
9
- let pos = opts.node.positionBy(opts)
10
- this.line = pos.line
11
- this.column = pos.column
9
+ let range = opts.node.rangeBy(opts)
10
+ this.line = range.start.line
11
+ this.column = range.start.column
12
+ this.endLine = range.end.line
13
+ this.endColumn = range.end.column
12
14
  }
13
15
 
14
16
  for (let opt in opts) this[opt] = opts[opt]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "postcss",
3
- "version": "8.3.8",
3
+ "version": "8.4.0",
4
4
  "description": "Tool for transforming styles with JS plugins",
5
5
  "engines": {
6
6
  "node": "^10 || ^12 || >=14"
@@ -19,6 +19,7 @@
19
19
  "./lib/fromJSON": "./lib/fromJSON.js",
20
20
  "./lib/input": "./lib/input.js",
21
21
  "./lib/lazy-result": "./lib/lazy-result.js",
22
+ "./lib/no-work-result": "./lib/no-work-result.js",
22
23
  "./lib/list": "./lib/list.js",
23
24
  "./lib/map-generator": "./lib/map-generator.js",
24
25
  "./lib/node": "./lib/node.js",
@@ -64,9 +65,9 @@
64
65
  "url": "https://github.com/postcss/postcss/issues"
65
66
  },
66
67
  "dependencies": {
67
- "nanocolors": "^0.2.2",
68
- "nanoid": "^3.1.25",
69
- "source-map-js": "^0.6.2"
68
+ "nanoid": "^3.1.30",
69
+ "picocolors": "^1.0.0",
70
+ "source-map-js": "^1.0.1"
70
71
  },
71
72
  "browser": {
72
73
  "./lib/terminal-highlight": false,