postcss 8.5.19 → 8.5.21

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/lib/node.d.ts CHANGED
@@ -31,12 +31,12 @@ declare namespace Node {
31
31
 
32
32
  export interface Position {
33
33
  /**
34
- * Source line in file. In contrast to `offset` it starts from 1.
34
+ * Source column in file. It starts from 1.
35
35
  */
36
36
  column: number
37
37
 
38
38
  /**
39
- * Source column in file.
39
+ * Source line in file. It starts from 1.
40
40
  */
41
41
  line: number
42
42
 
package/lib/processor.js CHANGED
@@ -7,7 +7,7 @@ let Root = require('./root')
7
7
 
8
8
  class Processor {
9
9
  constructor(plugins = []) {
10
- this.version = '8.5.19'
10
+ this.version = '8.5.21'
11
11
  this.plugins = this.normalize(plugins)
12
12
  }
13
13
 
@@ -6,6 +6,10 @@
6
6
  const STYLE_TAG = /(<)(\/?style\b)/gi
7
7
  const COMMENT_OPEN = /(<)(!--)/g
8
8
 
9
+ // Characters that end an at-rule name, mirroring RE_AT_END in the tokenizer.
10
+ // Params starting with anything else need a space to stay separate tokens.
11
+ const AT_NAME_END = /[\t\n\f\r "#'()/;[\\\]{}]/
12
+
9
13
  function escapeHTMLInCSS(str) {
10
14
  if (typeof str !== 'string') return str
11
15
  if (!str.includes('<')) return str
@@ -34,14 +38,15 @@ function capitalize(str) {
34
38
  function atruleStart(str, node) {
35
39
  let name = '@' + node.name
36
40
  let params = node.params ? str.rawValue(node, 'params') : ''
41
+ let afterName = node.raws.afterName
37
42
 
38
- if (typeof node.raws.afterName !== 'undefined') {
39
- name += node.raws.afterName
40
- } else if (params) {
41
- name += ' '
43
+ if (typeof afterName === 'undefined') {
44
+ afterName = params ? ' ' : ''
45
+ } else if (afterName === '' && params && !AT_NAME_END.test(params[0])) {
46
+ afterName = ' '
42
47
  }
43
48
 
44
- return name + params
49
+ return name + afterName + params
45
50
  }
46
51
 
47
52
  function pushBody(str, stack, node) {
@@ -55,10 +60,23 @@ function pushBody(str, stack, node) {
55
60
  let semicolon = str.raw(node, 'semicolon')
56
61
  let isDocument = node.type === 'document'
57
62
  for (let i = nodes.length - 1; i >= 0; i--) {
63
+ let child = nodes[i]
64
+ let childSemicolon = last !== i || semicolon
65
+ // A childless at-rule that still has following siblings must be
66
+ // terminated. Without the semicolon those trailing comments are folded
67
+ // into the at-rule's prelude and disappear when the output is re-parsed.
68
+ if (
69
+ !childSemicolon &&
70
+ i < nodes.length - 1 &&
71
+ child.type === 'atrule' &&
72
+ !child.nodes
73
+ ) {
74
+ childSemicolon = true
75
+ }
58
76
  stack.push({
59
77
  document: isDocument,
60
- node: nodes[i],
61
- semicolon: last !== i || semicolon
78
+ node: child,
79
+ semicolon: childSemicolon
62
80
  })
63
81
  }
64
82
  }
package/lib/warning.js CHANGED
@@ -1,11 +1,21 @@
1
1
  'use strict'
2
2
 
3
+ let Container = require('./container')
4
+ let { my } = require('./symbols')
5
+
3
6
  class Warning {
4
7
  constructor(text, opts = {}) {
5
8
  this.type = 'warning'
6
9
  this.text = text
7
10
 
8
11
  if (opts.node && opts.node.source) {
12
+ if (!opts.node[my]) {
13
+ // The node comes from another PostCSS copy in node_modules, so it does
14
+ // not have this copy’s methods. Container#normalize() rebuilds such
15
+ // nodes on insert, but a node passed straight to Result#warn() never
16
+ // goes through it.
17
+ Container.rebuild(opts.node)
18
+ }
9
19
  let range = opts.node.rangeBy(opts)
10
20
  this.line = range.start.line
11
21
  this.column = range.start.column
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "postcss",
3
- "version": "8.5.19",
3
+ "version": "8.5.21",
4
4
  "description": "Tool for transforming styles with JS plugins",
5
5
  "keywords": [
6
6
  "css",
@@ -78,7 +78,7 @@
78
78
  "./package.json": "./package.json"
79
79
  },
80
80
  "dependencies": {
81
- "nanoid": "^3.3.12",
81
+ "nanoid": "^3.3.16",
82
82
  "picocolors": "^1.1.1",
83
83
  "source-map-js": "^1.2.1"
84
84
  },