postcss 8.4.27 → 8.4.28

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.

@@ -1,3 +1,4 @@
1
+ import Document from './document.js'
1
2
  import { SourceMap } from './postcss.js'
2
3
  import Processor from './processor.js'
3
4
  import Result, { Message, ResultOptions } from './result.js'
@@ -18,7 +19,9 @@ declare namespace LazyResult {
18
19
  * const lazy = postcss([autoprefixer]).process(css)
19
20
  * ```
20
21
  */
21
- declare class LazyResult_ implements PromiseLike<Result> {
22
+ declare class LazyResult_<RootNode = Document | Root>
23
+ implements PromiseLike<Result<RootNode>>
24
+ {
22
25
  /**
23
26
  * Processes input CSS through synchronous and asynchronous plugins
24
27
  * and calls onRejected for each error thrown in any plugin.
@@ -33,7 +36,7 @@ declare class LazyResult_ implements PromiseLike<Result> {
33
36
  * })
34
37
  * ```
35
38
  */
36
- catch: Promise<Result>['catch']
39
+ catch: Promise<Result<RootNode>>['catch']
37
40
 
38
41
  /**
39
42
  * Processes input CSS through synchronous and asynchronous plugins
@@ -47,7 +50,7 @@ declare class LazyResult_ implements PromiseLike<Result> {
47
50
  * })
48
51
  * ```
49
52
  */
50
- finally: Promise<Result>['finally']
53
+ finally: Promise<Result<RootNode>>['finally']
51
54
 
52
55
  /**
53
56
  * Processes input CSS through synchronous and asynchronous plugins
@@ -62,7 +65,7 @@ declare class LazyResult_ implements PromiseLike<Result> {
62
65
  * })
63
66
  * ```
64
67
  */
65
- then: Promise<Result>['then']
68
+ then: Promise<Result<RootNode>>['then']
66
69
 
67
70
  /**
68
71
  * @param processor Processor used for this transformation.
@@ -76,7 +79,7 @@ declare class LazyResult_ implements PromiseLike<Result> {
76
79
  *
77
80
  * @return Result with output content.
78
81
  */
79
- async(): Promise<Result>
82
+ async(): Promise<Result<RootNode>>
80
83
 
81
84
  /**
82
85
  * An alias for the `css` property. Use it with syntaxes
@@ -145,7 +148,7 @@ declare class LazyResult_ implements PromiseLike<Result> {
145
148
  *
146
149
  * PostCSS runners should always use `LazyResult#then`.
147
150
  */
148
- get root(): Root
151
+ get root(): RootNode
149
152
 
150
153
  /**
151
154
  * Returns the default string description of an object.
@@ -158,7 +161,7 @@ declare class LazyResult_ implements PromiseLike<Result> {
158
161
  *
159
162
  * @return Result with output content.
160
163
  */
161
- sync(): Result
164
+ sync(): Result<RootNode>
162
165
 
163
166
  /**
164
167
  * Alias for the `LazyResult#css` property.
@@ -180,6 +183,8 @@ declare class LazyResult_ implements PromiseLike<Result> {
180
183
  warnings(): Warning[]
181
184
  }
182
185
 
183
- declare class LazyResult extends LazyResult_ {}
186
+ declare class LazyResult<
187
+ RootNode = Document | Root
188
+ > extends LazyResult_<RootNode> {}
184
189
 
185
190
  export = LazyResult
@@ -22,12 +22,12 @@ declare namespace NoWorkResult {
22
22
  * let root = noWorkResult.root // now css is parsed because we accessed the root
23
23
  * ```
24
24
  */
25
- declare class NoWorkResult_ implements LazyResult {
26
- catch: Promise<Result>['catch']
27
- finally: Promise<Result>['finally']
28
- then: Promise<Result>['then']
25
+ declare class NoWorkResult_ implements LazyResult<Root> {
26
+ catch: Promise<Result<Root>>['catch']
27
+ finally: Promise<Result<Root>>['finally']
28
+ then: Promise<Result<Root>>['then']
29
29
  constructor(processor: Processor, css: string, opts: ResultOptions)
30
- async(): Promise<Result>
30
+ async(): Promise<Result<Root>>
31
31
  get content(): string
32
32
  get css(): string
33
33
  get map(): SourceMap
@@ -36,7 +36,7 @@ declare class NoWorkResult_ implements LazyResult {
36
36
  get processor(): Processor
37
37
  get root(): Root
38
38
  get [Symbol.toStringTag](): string
39
- sync(): Result
39
+ sync(): Result<Root>
40
40
  toString(): string
41
41
  warnings(): Warning[]
42
42
  }
package/lib/parser.js CHANGED
@@ -332,6 +332,7 @@ class Parser {
332
332
  this.current.raws.semicolon = this.semicolon
333
333
  }
334
334
  this.current.raws.after = (this.current.raws.after || '') + this.spaces
335
+ this.root.source.end = this.getPosition(this.tokenizer.position())
335
336
  }
336
337
 
337
338
  freeSemicolon(token) {
package/lib/postcss.d.ts CHANGED
@@ -236,11 +236,11 @@ declare namespace postcss {
236
236
  (data: object[]): Node[]
237
237
  }
238
238
 
239
- export interface Syntax {
239
+ export interface Syntax<RootNode = Document | Root> {
240
240
  /**
241
241
  * Function to generate AST by string.
242
242
  */
243
- parse?: Parser
243
+ parse?: Parser<RootNode>
244
244
 
245
245
  /**
246
246
  * Class to generate string by AST.
@@ -304,7 +304,7 @@ declare namespace postcss {
304
304
  sourcesContent?: boolean
305
305
  }
306
306
 
307
- export interface ProcessOptions {
307
+ export interface ProcessOptions<RootNode = Document | Root> {
308
308
  /**
309
309
  * The path of the CSS source file. You should always set `from`,
310
310
  * because it is used in source map generation and syntax error messages.
@@ -319,17 +319,17 @@ declare namespace postcss {
319
319
  /**
320
320
  * Function to generate AST by string.
321
321
  */
322
- parser?: Parser | Syntax
322
+ parser?: Parser<RootNode> | Syntax<RootNode>
323
323
 
324
324
  /**
325
325
  * Class to generate string by AST.
326
326
  */
327
- stringifier?: Stringifier | Syntax
327
+ stringifier?: Stringifier | Syntax<RootNode>
328
328
 
329
329
  /**
330
330
  * Object with parse and stringify.
331
331
  */
332
- syntax?: Syntax
332
+ syntax?: Syntax<RootNode>
333
333
 
334
334
  /**
335
335
  * The path where you'll put the output CSS file. You should always set `to`
@@ -1,3 +1,4 @@
1
+ import Document from './document.js'
1
2
  import LazyResult from './lazy-result.js'
2
3
  import NoWorkResult from './no-work-result.js'
3
4
  import {
@@ -72,9 +73,12 @@ declare class Processor_ {
72
73
  * @return Promise proxy.
73
74
  */
74
75
  process(
75
- css: { toString(): string } | LazyResult | Result | Root | string,
76
- options?: ProcessOptions
76
+ css: { toString(): string } | LazyResult | Result | Root | string
77
77
  ): LazyResult | NoWorkResult
78
+ process<RootNode extends Document | Root = Root>(
79
+ css: { toString(): string } | LazyResult | Result | Root | string,
80
+ options: ProcessOptions<RootNode>
81
+ ): LazyResult<RootNode>
78
82
 
79
83
  /**
80
84
  * Adds a plugin to be used as a CSS processor.
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.4.27'
10
+ this.version = '8.4.28'
11
11
  this.plugins = this.normalize(plugins)
12
12
  }
13
13
 
package/lib/result.d.ts CHANGED
@@ -60,7 +60,7 @@ declare namespace Result {
60
60
  * const result2 = postcss.parse(css).toResult()
61
61
  * ```
62
62
  */
63
- declare class Result_ {
63
+ declare class Result_<RootNode = Document | Root> {
64
64
  /**
65
65
  * A CSS string representing of `Result#root`.
66
66
  *
@@ -141,14 +141,14 @@ declare class Result_ {
141
141
  * root.toResult().root === root
142
142
  * ```
143
143
  */
144
- root: Document | Root
144
+ root: RootNode
145
145
 
146
146
  /**
147
147
  * @param processor Processor used for this transformation.
148
148
  * @param root Root node after all transformations.
149
149
  * @param opts Options from the `Processor#process` or `Root#toResult`.
150
150
  */
151
- constructor(processor: Processor, root: Document | Root, opts: Result.ResultOptions)
151
+ constructor(processor: Processor, root: RootNode, opts: Result.ResultOptions)
152
152
 
153
153
  /**
154
154
  * An alias for the `Result#css` property.
@@ -201,6 +201,6 @@ declare class Result_ {
201
201
  warnings(): Warning[]
202
202
  }
203
203
 
204
- declare class Result extends Result_ {}
204
+ declare class Result<RootNode = Document | Root> extends Result_<RootNode> {}
205
205
 
206
206
  export = Result
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "postcss",
3
- "version": "8.4.27",
3
+ "version": "8.4.28",
4
4
  "description": "Tool for transforming styles with JS plugins",
5
5
  "engines": {
6
6
  "node": "^10 || ^12 || >=14"