Upgrading postcss 7 to 8
Breaking7.0.39 → 8.5.32Breaking8Security13New27Changed23Fixed148Other11
BreakingUpgrade verdict
8 breaking changes and 11 security fixes.
In plain terms
- Removed debug code.
- Removed unnecessary fix which could lead to infinite loop.
- Remove debugging code.
- Removed source-map from client-side bundle (by @barak007).
Must act Top 5 of 19 that need code or config changes
postcss publishes an official migration guide for version 8. It covers more than the release notes do.
**for plugin developers** ↗Node.js requirement changed in 8.0.0: >=6.0.0 → ^10 || ^12 || >=14.
Adds nanoid ^3.3.20, source-map-js ^1.2.2.
Drops source-map.
Installs 3 packages in all (was 2).
Moves picocolors 0.2.1 → 1.1.1. Your build may pick other versions.
What you must change
Breaking8
Removed debug code.
Removed unnecessary fix which could lead to infinite loop.
Remove debugging code.
Removed source-map from client-side bundle (by @barak007).
source-mapPostCSS 8 dropped Node.js 6.x, 8.x, 11.x, and 13.x versions support.
Removed docs from the npm package.
We now serve ES6+ sources in the npm package without Babel compilation.
node_modules/postcssWe removed rarely used postcss.vendor API.
postcss.vendorSecurity11
Stops loading source maps when
opts.from is not set, for security reasons.opts.fromPostCSS: incomplete fix of GHSA-6g55-p6wh-862q — attacker-controlled sourceMappingURL reads arbitrary .map files when
Moderatefrom is unsetRestricts loading previous source map files to the opts.from folder for security reasons; unsafeMap: true disables the check.
opts.fromunsafeMapPostCSS: Path Traversal in Previous Source Map Auto-Loading (sourceMappingURL) leads to Arbitrary .map File Disclosure
High · CVSS 7.5Fixes prototype hijacking for postcss.fromJSON().
postcss.fromJSON()PostCSS: Arbitrary file read and information disclosure via attacker-controlled sourceMappingURL in CSS comments
High · CVSS 7.5PostCSS has XSS via Unescaped </style> in its CSS Stringify Output
</style>Moderate · CVSS 6.1Fixed \r parsing to fix CVE-2023-44270.
\rModerate · CVSS 5.3Fixed ReDoS vulnerabilities in source map parsing (by @yetingli).
Regular Expression Denial of Service in postcss
Moderate · CVSS 5.3Regular Expression Denial of Service in postcss
Moderate · CVSS 5.3API changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- added:
class AtRule extends AtRule_ - added:
export = AtRule - added:
interface AtRule.AtRuleProps extends ContainerProps - added:
interface AtRule.AtRuleRaws extends Record<string, unknown> - added:
namespace AtRule - added:
property AtRule.AtRuleProps.name: string - added:
property AtRule.AtRuleProps.params?: number | string - added:
property AtRule.AtRuleProps.raws?: AtRuleRaws - added:
property AtRule.AtRuleRaws.after?: string - added:
property AtRule.AtRuleRaws.afterName?: string - added:
property AtRule.AtRuleRaws.before?: string - added:
property AtRule.AtRuleRaws.between?: string - added:
property AtRule.AtRuleRaws.params?: { raw: string; value: string } - added:
property AtRule.AtRuleRaws.semicolon?: boolean
- added:
class Comment extends Comment_ - added:
export = Comment - added:
interface Comment.CommentProps extends NodeProps - added:
interface Comment.CommentRaws extends Record<string, unknown> - added:
namespace Comment - added:
property Comment.CommentProps.raws?: CommentRaws - added:
property Comment.CommentProps.text: string - added:
property Comment.CommentRaws.before?: string - added:
property Comment.CommentRaws.left?: string - added:
property Comment.CommentRaws.right?: string
- added:
class Container<Child extends Node = ChildNode> extends Container_<Child> - added:
export = Container - added:
interface Container.ContainerProps extends NodeProps - added:
interface Container.ValueOptions - added:
namespace Container - added:
property Container.ContainerProps.nodes?: readonly (ChildProps | Node)[] - added:
property Container.ValueOptions.fast?: string - added:
property Container.ValueOptions.props?: readonly string[] - added:
type Container.ContainerWithChildren<Child extends Node = ChildNode> = { nodes: Child[] } & (AtRule | Root | Rule) - added:
type Container.NewChild = ChildProps | Node | readonly ChildProps[] | readonly Node[] | readonly string[] | string | undefined
- added:
class CssSyntaxError extends CssSyntaxError_ - added:
export = CssSyntaxError - added:
interface CssSyntaxError.RangePosition - added:
namespace CssSyntaxError - added:
property CssSyntaxError.RangePosition.column: number - added:
property CssSyntaxError.RangePosition.line: number
- added:
class Declaration extends Declaration_ - added:
export = Declaration - added:
interface Declaration.DeclarationProps extends NodeProps - added:
interface Declaration.DeclarationRaws extends Record<string, unknown> - added:
namespace Declaration - added:
property Declaration.DeclarationProps.important?: boolean - added:
property Declaration.DeclarationProps.prop: string - added:
property Declaration.DeclarationProps.raws?: DeclarationRaws - added:
property Declaration.DeclarationProps.value: string - added:
property Declaration.DeclarationRaws.before?: string - added:
property Declaration.DeclarationRaws.between?: string - added:
property Declaration.DeclarationRaws.important?: string - added:
property Declaration.DeclarationRaws.value?: { raw: string; value: string }
- added:
class Document extends Document_ - added:
export = Document - added:
interface Document.DocumentProps extends ContainerProps - added:
namespace Document - added:
property Document.DocumentProps.nodes?: readonly Root[] - added:
property Document.DocumentProps.raws?: Record<string, any>
- added:
export = fromJSON - added:
let fromJSON: FromJSON
- added:
class Input extends Input_ - added:
export = Input - added:
interface Input.FilePosition - added:
namespace Input - added:
property Input.FilePosition.column: number - added:
property Input.FilePosition.endColumn?: number - added:
property Input.FilePosition.endLine?: number - added:
property Input.FilePosition.endOffset?: number - added:
property Input.FilePosition.file?: string - added:
property Input.FilePosition.line: number - added:
property Input.FilePosition.offset: number - added:
property Input.FilePosition.source?: string - added:
property Input.FilePosition.url: string
- added:
class LazyResult<RootNode = Document | Root> extends LazyResult_<RootNode> - added:
export = LazyResult - added:
namespace LazyResult
- added:
export = list - added:
let list: list.List - added:
namespace list - added:
type list.List = { comma(str: string): string[]; default: List; space(str: string): string[]; split(string: string, separators: readonly string[], last: boolean): string[] }
- added:
class NoWorkResult extends NoWorkResult_ - added:
export = NoWorkResult - added:
namespace NoWorkResult
- added:
class Node extends Node_ - added:
class Node.Node extends Node_ - added:
export = Node - added:
interface Node.NodeErrorOptions - added:
interface Node.NodeProps - added:
interface Node.Position - added:
interface Node.Range - added:
interface Node.Source - added:
namespace Node - added:
property Node.NodeErrorOptions.endIndex?: number - added:
property Node.NodeErrorOptions.index?: number - added:
property Node.NodeErrorOptions.plugin?: string - added:
property Node.NodeErrorOptions.word?: string - added:
property Node.NodeProps.source?: Source - added:
property Node.Position.column: number - added:
property Node.Position.line: number - added:
property Node.Position.offset: number - added:
property Node.Range.end: Position - added:
property Node.Range.start: Position - added:
property Node.Source.end?: Position - added:
property Node.Source.input: Input - added:
property Node.Source.start?: Position - added:
type Node.AnyNode = AtRule.default | Comment | Declaration | Document | Root | Rule - added:
type Node.ChildNode = AtRule.default | Comment | Declaration | Rule - added:
type Node.ChildProps = AtRuleProps | CommentProps | DeclarationProps | RuleProps
- added:
export = parse - added:
let parse: Parse
- removed:
call postcss.Plugin(opts?: T): Transformer - removed:
call postcss.PluginInitializer(pluginOptions?: T): Transformer - removed:
class postcss.PreviousMap - removed:
const postcss.parse: Parser - removed:
const postcss.stringify: Stringifier - removed:
constructor postcss.PreviousMap(css: any, opts: any) - removed:
function postcss.list.comma(str: string): string[] - removed:
function postcss.list.space(str: string): string[] - removed:
function postcss.plugin<T>(name: string, initializer: PluginInitializer<T>): Plugin<T> - removed:
function postcss.vendor.prefix(prop: string): string - removed:
function postcss.vendor.unprefixed(prop: string): string - removed:
index postcss.ResultMessage[others: string]: any - removed:
interface postcss.AtRule extends ContainerBase - removed:
interface postcss.AtRuleNewProps extends ContainerNewProps - removed:
interface postcss.AtRuleRaws extends NodeRaws - removed:
interface postcss.Comment extends NodeBase - removed:
interface postcss.CommentNewProps - removed:
interface postcss.ContainerBase extends NodeBase - removed:
interface postcss.ContainerNewProps extends NodeNewProps - removed:
interface postcss.ContainerRaws extends NodeRaws - removed:
interface postcss.CssSyntaxError extends InputOrigin - removed:
interface postcss.Declaration extends NodeBase - removed:
interface postcss.DeclarationNewProps - removed:
interface postcss.DeclarationRaws extends NodeRaws - removed:
interface postcss.Input - removed:
interface postcss.InputOrigin - removed:
interface postcss.JsonAtRule extends JsonContainer - removed:
interface postcss.JsonComment extends JsonNode - removed:
interface postcss.JsonContainer extends JsonNode - removed:
interface postcss.JsonDeclaration extends JsonNode - removed:
interface postcss.JsonNode - removed:
interface postcss.JsonRoot extends JsonContainer - removed:
interface postcss.JsonRule extends JsonContainer - removed:
interface postcss.LazyResult - removed:
interface postcss.NodeBase - removed:
interface postcss.NodeErrorOptions - removed:
interface postcss.NodeNewProps - removed:
interface postcss.NodeRaws - removed:
interface postcss.NodeSource - removed:
interface postcss.PluginInitializer<T> - removed:
interface postcss.Processor - removed:
interface postcss.Result - removed:
interface postcss.ResultMap - removed:
interface postcss.ResultMessage - removed:
interface postcss.ResultOptions extends ProcessOptions - removed:
interface postcss.Root extends ContainerBase - removed:
interface postcss.RootNewProps extends ContainerNewProps - removed:
interface postcss.Rule extends ContainerBase - removed:
interface postcss.RuleNewProps extends ContainerNewProps - removed:
interface postcss.RuleRaws extends ContainerRaws - removed:
interface postcss.Warning - removed:
interface postcss.WarningOptions extends ResultOptions - removed:
method postcss.AtRule.clone(overrides?: object): this - removed:
method postcss.Comment.clone(overrides?: object): this - removed:
method postcss.ContainerBase.append(...nodes: (Node | object | string)[]): this - removed:
method postcss.ContainerBase.clone(overrides?: object): this - removed:
method postcss.ContainerBase.each(callback: (node: ChildNode, index: number) => boolean): boolean - removed:
method postcss.ContainerBase.each(callback: (node: ChildNode, index: number) => void): void - removed:
method postcss.ContainerBase.every(callback: (node: ChildNode, index: number, nodes: ChildNode[]) => boolean): boolean - removed:
method postcss.ContainerBase.index(child: ChildNode | number): number - removed:
method postcss.ContainerBase.insertAfter(oldNode: ChildNode | number, newNode: ChildNode | object | string): this - removed:
method postcss.ContainerBase.insertBefore(oldNode: ChildNode | number, newNode: ChildNode | object | string): this - removed:
method postcss.ContainerBase.prepend(...nodes: (Node | object | string)[]): this - removed:
method postcss.ContainerBase.remove(): this - removed:
method postcss.ContainerBase.removeAll(): this - removed:
method postcss.ContainerBase.removeChild(child: ChildNode | number): this - removed:
method postcss.ContainerBase.replaceValues(pattern: string | RegExp, callbackOrReplaceValue: string | { (substring: string, ...args: any[]): string }): this - removed:
method postcss.ContainerBase.replaceValues(pattern: string | RegExp, options: { props?: string[]; fast?: string }, callbackOrReplaceValue: string | { (substring: string, ...args: any[]): string }): this - removed:
method postcss.ContainerBase.some(callback: (node: ChildNode, index: number, nodes: ChildNode[]) => boolean): boolean - removed:
method postcss.ContainerBase.walk(callback: (node: ChildNode, index: number) => boolean): boolean - removed:
method postcss.ContainerBase.walk(callback: (node: ChildNode, index: number) => void): void - removed:
method postcss.ContainerBase.walkAtRules(callback: (atRule: AtRule, index: number) => boolean): boolean - removed:
method postcss.ContainerBase.walkAtRules(callback: (atRule: AtRule, index: number) => void): void - removed:
method postcss.ContainerBase.walkAtRules(nameFilter: string | RegExp, callback: (atRule: AtRule, index: number) => boolean): boolean - removed:
method postcss.ContainerBase.walkAtRules(nameFilter: string | RegExp, callback: (atRule: AtRule, index: number) => void): void - removed:
method postcss.ContainerBase.walkComments(callback: (comment: Comment, indexed: number) => boolean): boolean - removed:
method postcss.ContainerBase.walkComments(callback: (comment: Comment, indexed: number) => void): void - removed:
method postcss.ContainerBase.walkDecls(callback: (decl: Declaration, index: number) => boolean): boolean - removed:
method postcss.ContainerBase.walkDecls(callback: (decl: Declaration, index: number) => void): void - removed:
method postcss.ContainerBase.walkDecls(propFilter: string | RegExp, callback: (decl: Declaration, index: number) => boolean): boolean - removed:
method postcss.ContainerBase.walkDecls(propFilter: string | RegExp, callback: (decl: Declaration, index: number) => void): void - removed:
method postcss.ContainerBase.walkRules(callback: (atRule: Rule, index: number) => boolean): boolean - removed:
method postcss.ContainerBase.walkRules(callback: (atRule: Rule, index: number) => void): void - removed:
method postcss.ContainerBase.walkRules(selectorFilter: string | RegExp, callback: (atRule: Rule, index: number) => boolean): boolean - removed:
method postcss.ContainerBase.walkRules(selectorFilter: string | RegExp, callback: (atRule: Rule, index: number) => void): void - removed:
method postcss.CssSyntaxError.showSourceCode(color?: boolean): string - removed:
method postcss.CssSyntaxError.toString(): string - removed:
method postcss.Declaration.clone(overrides?: object): this - removed:
method postcss.Input.origin(line: number, column: number): InputOrigin | false - removed:
method postcss.LazyResult.toString(): string - removed:
method postcss.LazyResult.warnings(): Warning[] - removed:
method postcss.NodeBase.after(newNode: Node | object | string | Node[]): this - removed:
method postcss.NodeBase.before(newNode: Node | object | string | Node[]): this - removed:
method postcss.NodeBase.clone(overrides?: object): this - removed:
method postcss.NodeBase.cloneAfter(overrides?: object): this - removed:
method postcss.NodeBase.cloneBefore(overrides?: object): this - removed:
method postcss.NodeBase.error(message: string, options?: NodeErrorOptions): CssSyntaxError - removed:
method postcss.NodeBase.next(): ChildNode | undefined - removed:
method postcss.NodeBase.prev(): ChildNode | undefined - removed:
method postcss.NodeBase.raw(prop: string, defaultType?: string): string - removed:
method postcss.NodeBase.remove(): this - removed:
method postcss.NodeBase.replaceWith(...nodes: (Node | object)[]): this - removed:
method postcss.NodeBase.root(): Root - removed:
method postcss.NodeBase.toString(stringifier?: Stringifier | Syntax): string - removed:
method postcss.NodeBase.warn(result: Result, text: string, opts?: WarningOptions): void - removed:
method postcss.PreviousMap.consumer(): mozilla.SourceMapConsumer - removed:
method postcss.PreviousMap.decodeInline(text: string): string - removed:
method postcss.PreviousMap.getAnnotationURL(sourceMapString: string): string - removed:
method postcss.PreviousMap.isMap(map: any): boolean - removed:
method postcss.PreviousMap.loadAnnotation(css: string): void - removed:
method postcss.PreviousMap.loadMap(file: any, prev: string | Function | mozilla.SourceMapConsumer | mozilla.SourceMapGenerator | mozilla.RawSourceMap): string - removed:
method postcss.PreviousMap.startWith(string: string, start: string): boolean - removed:
method postcss.PreviousMap.withContent(): boolean - removed:
method postcss.Processor.process(css: ParserInput | Result | LazyResult | Root, options?: ProcessOptions): LazyResult - removed:
method postcss.Processor.use(plugin: AcceptedPlugin): Processor - removed:
method postcss.Result.toString(): string - removed:
method postcss.Result.warn(message: string, options?: WarningOptions): void - removed:
method postcss.Result.warnings(): Warning[] - removed:
method postcss.ResultMap.addMapping(mapping: mozilla.Mapping): void - removed:
method postcss.ResultMap.applySourceMap(sourceMapConsumer: mozilla.SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void - removed:
method postcss.ResultMap.setSourceContent(sourceFile: string, sourceContent: string): void - removed:
method postcss.Root.clone(overrides?: object): this - removed:
method postcss.Root.removeChild(child: ChildNode | number): this - removed:
method postcss.Root.toResult(options?: { to?: string; map?: SourceMapOptions }): Result - removed:
method postcss.Rule.clone(overrides?: object): this - removed:
method postcss.Warning.toString(): string - removed:
namespace postcss.list - removed:
namespace postcss.vendor - removed:
property postcss.AtRule.name: string - removed:
property postcss.AtRule.params: string - removed:
property postcss.AtRule.parent: Container - removed:
property postcss.AtRule.type: 'atrule' - removed:
property postcss.AtRuleNewProps.name?: string - removed:
property postcss.AtRuleNewProps.params?: string | number - removed:
property postcss.AtRuleNewProps.raws?: AtRuleRaws - removed:
property postcss.AtRuleRaws.params?: string - removed:
property postcss.Comment.parent: Container - removed:
property postcss.Comment.text: string - removed:
property postcss.Comment.type: 'comment' - removed:
property postcss.CommentNewProps.text?: string - removed:
property postcss.ContainerBase.first?: ChildNode - removed:
property postcss.ContainerBase.last?: ChildNode - removed:
property postcss.ContainerBase.nodes?: ChildNode[] - removed:
property postcss.ContainerNewProps.nodes?: ChildNode[] - removed:
property postcss.ContainerNewProps.raws?: ContainerRaws - removed:
property postcss.ContainerRaws.indent?: string - removed:
property postcss.CssSyntaxError.input?: InputOrigin - removed:
property postcss.CssSyntaxError.message: string - removed:
property postcss.CssSyntaxError.name: string - removed:
property postcss.CssSyntaxError.plugin?: string - removed:
property postcss.CssSyntaxError.reason: string - removed:
property postcss.Declaration.important: boolean - removed:
property postcss.Declaration.parent: Container - removed:
property postcss.Declaration.prop: string - removed:
property postcss.Declaration.type: 'decl' - removed:
property postcss.Declaration.value: string - removed:
property postcss.DeclarationNewProps.prop?: string - removed:
property postcss.DeclarationNewProps.raws?: DeclarationRaws - removed:
property postcss.DeclarationNewProps.value?: string - removed:
property postcss.DeclarationRaws.value?: string - removed:
property postcss.Input.file?: string - removed:
property postcss.Input.from: string - removed:
property postcss.Input.hasBOM: boolean - removed:
property postcss.Input.id?: string - removed:
property postcss.Input.map: PreviousMap - removed:
property postcss.InputOrigin.column?: number - removed:
property postcss.InputOrigin.file?: string - removed:
property postcss.InputOrigin.line?: number - removed:
property postcss.InputOrigin.source?: string - removed:
property postcss.JsonAtRule.name?: string - removed:
property postcss.JsonAtRule.params?: string - removed:
property postcss.JsonContainer.first?: ChildNode - removed:
property postcss.JsonContainer.last?: ChildNode - removed:
property postcss.JsonContainer.nodes?: ChildNode[] - removed:
property postcss.JsonDeclaration.important?: boolean - removed:
property postcss.JsonNode.parent?: JsonContainer - removed:
property postcss.JsonNode.raws?: NodeRaws - removed:
property postcss.JsonNode.source?: NodeSource - removed:
property postcss.JsonNode.type?: string - removed:
property postcss.JsonRule.selector?: string - removed:
property postcss.JsonRule.selectors?: string[] - removed:
property postcss.LazyResult.catch: Promise<Result>['catch'] - removed:
property postcss.LazyResult.content: string - removed:
property postcss.LazyResult.css: string - removed:
property postcss.LazyResult.map: ResultMap - removed:
property postcss.LazyResult.messages: ResultMessage[] - removed:
property postcss.LazyResult.opts: ResultOptions - removed:
property postcss.LazyResult.processor: Processor - removed:
property postcss.LazyResult.root: Root - removed:
property postcss.LazyResult.then: Promise<Result>['then'] - removed:
property postcss.NodeBase.raws: NodeRaws - removed:
property postcss.NodeBase.source?: NodeSource - removed:
property postcss.NodeErrorOptions.index?: number - removed:
property postcss.NodeErrorOptions.plugin?: string - removed:
property postcss.NodeErrorOptions.word?: string - removed:
property postcss.NodeNewProps.raws?: NodeRaws - removed:
property postcss.NodeNewProps.source?: NodeSource - removed:
property postcss.NodeRaws.after?: string - removed:
property postcss.NodeRaws.afterName?: string - removed:
property postcss.NodeRaws.before?: string - removed:
property postcss.NodeRaws.between?: string - removed:
property postcss.NodeRaws.important?: string - removed:
property postcss.NodeRaws.left?: string - removed:
property postcss.NodeRaws.right?: string - removed:
property postcss.NodeRaws.semicolon?: boolean - removed:
property postcss.NodeSource.end?: { column: number; line: number } - removed:
property postcss.NodeSource.input: Input - removed:
property postcss.NodeSource.start?: { column: number; line: number } - removed:
property postcss.Plugin.postcss: Transformer - removed:
property postcss.Plugin.process: (css: string | { toString(): string } | Result, processOpts?: ProcessOptions, pluginOpts?: T) => LazyResult - removed:
property postcss.PreviousMap.annotation: string - removed:
property postcss.PreviousMap.file: string - removed:
property postcss.PreviousMap.root: string - removed:
property postcss.PreviousMap.text: string - removed:
property postcss.Processor.plugins: Plugin<any>[] - removed:
property postcss.Processor.version: string - removed:
property postcss.Result.content: string - removed:
property postcss.Result.css: string - removed:
property postcss.Result.map: ResultMap - removed:
property postcss.Result.messages: ResultMessage[] - removed:
property postcss.Result.opts?: ResultOptions - removed:
property postcss.Result.processor?: Processor - removed:
property postcss.Result.root?: Root - removed:
property postcss.ResultMap.toJSON: () => mozilla.RawSourceMap - removed:
property postcss.ResultMap.toString: () => string - removed:
property postcss.ResultMessage.plugin: string - removed:
property postcss.ResultMessage.type: string - removed:
property postcss.ResultOptions.node?: postcss.Node - removed:
property postcss.ResultOptions.plugin?: string - removed:
property postcss.Root.parent: void - removed:
property postcss.Root.type: 'root' - removed:
property postcss.Rule.parent: Container - removed:
property postcss.Rule.selector: string - removed:
property postcss.Rule.selectors: string[] - removed:
property postcss.Rule.type: 'rule' - removed:
property postcss.RuleNewProps.raws?: RuleRaws - removed:
property postcss.RuleNewProps.selector?: string - removed:
property postcss.RuleNewProps.selectors?: string[] - removed:
property postcss.RuleRaws.selector?: string - removed:
property postcss.Warning.column: number - removed:
property postcss.Warning.line: number - removed:
property postcss.Warning.node: Node - removed:
property postcss.Warning.plugin: string - removed:
property postcss.Warning.text: string - removed:
property postcss.WarningOptions.index?: number - removed:
property postcss.WarningOptions.word?: string - removed:
type postcss.ChildNode = AtRule | Rule | Declaration | Comment - removed:
type postcss.Container = Root | AtRule | Rule - removed:
type postcss.Node = Root | ChildNode - removed:
type postcss.ParserInput = string | { toString(): string } - changed:
call postcss.Builder(part: string, node?: Node, type?: 'start' | 'end'): void → call postcss.Builder(part: string, node?: AnyNode, type?: 'end' | 'start'): void - changed:
call postcss.Parser(css: ParserInput, opts?: Pick<ProcessOptions, 'map' | 'from'>): Root → call postcss.Parser(css: { toString(): string } | string, opts?: Pick<ProcessOptions, 'document' | 'from' | 'map' | 'unsafeMap'>): RootNode - changed:
call postcss.Stringifier(node: Node, builder: Builder): void → call postcss.Stringifier(node: AnyNode, builder: Builder): void - changed:
call postcss.TransformCallback(root: Root, result: Result): Promise<any> | any → call postcss.TransformCallback(root: Root, result: Result): Promise<void> | void - changed:
function postcss(...plugins: postcss.AcceptedPlugin[]): postcss.Processor → function postcss(...plugins: postcss.AcceptedPlugin[]): Processor - changed:
function postcss(plugins?: postcss.AcceptedPlugin[]): postcss.Processor → function postcss(plugins?: readonly postcss.AcceptedPlugin[]): Processor - changed:
function postcss.atRule(defaults?: AtRuleNewProps): AtRule → function postcss.atRule(defaults?: AtRuleProps): AtRule - changed:
function postcss.comment(defaults?: CommentNewProps): Comment → function postcss.comment(defaults?: CommentProps): Comment - changed:
function postcss.decl(defaults?: DeclarationNewProps): Declaration → function postcss.decl(defaults?: DeclarationProps): Declaration - changed:
function postcss.root(defaults?: object): Root → function postcss.root(defaults?: RootProps): Root - changed:
function postcss.rule(defaults?: RuleNewProps): Rule → function postcss.rule(defaults?: RuleProps): Rule - changed:
interface postcss.Parser → interface postcss.Parser<RootNode = Document | Root> - changed:
interface postcss.Plugin<T> extends Transformer → interface postcss.Plugin extends Processors - changed:
interface postcss.ProcessOptions → interface postcss.ProcessOptions<RootNode = Document | Root> - changed:
interface postcss.Syntax → interface postcss.Syntax<RootNode = Document | Root> - changed:
property postcss.ProcessOptions.from?: string → property postcss.ProcessOptions.from?: string | undefined - changed:
property postcss.ProcessOptions.map?: SourceMapOptions | boolean → property postcss.ProcessOptions.map?: boolean | SourceMapOptions - changed:
property postcss.ProcessOptions.parser?: Parser → property postcss.ProcessOptions.parser?: Parser<RootNode> | Syntax<RootNode> - changed:
property postcss.ProcessOptions.stringifier?: Stringifier → property postcss.ProcessOptions.stringifier?: Stringifier | Syntax<RootNode> - changed:
property postcss.ProcessOptions.syntax?: Syntax → property postcss.ProcessOptions.syntax?: Syntax<RootNode> - changed:
property postcss.SourceMapOptions.annotation?: string | boolean → property postcss.SourceMapOptions.annotation?: ((file: string, root: Root) => string) | boolean | string - changed:
property postcss.SourceMapOptions.prev?: any → property postcss.SourceMapOptions.prev?: ((file: string) => string) | boolean | object | string - changed:
property postcss.Syntax.parse?: Parser → property postcss.Syntax.parse?: Parser<RootNode> - changed:
property postcss.Transformer.postcssPlugin?: string → property postcss.Transformer.postcssPlugin: string - changed:
property postcss.Transformer.postcssVersion?: string → property postcss.Transformer.postcssVersion: string - changed:
type postcss.AcceptedPlugin = Plugin<any> | Transformer | { postcss: TransformCallback | Processor } | Processor → type postcss.AcceptedPlugin = { postcss: Processor | TransformCallback } | OldPlugin<any> | Plugin | PluginCreator<any> | Processor | TransformCallback - added:
call postcss.JSONHydrator(data: object): Node - added:
call postcss.JSONHydrator(data: object[]): Node[] - added:
call postcss.OldPlugin(opts?: T): Transformer - added:
call postcss.PluginCreator(opts?: PluginOptions): Plugin | Processor - added:
export { AcceptedPlugin } from './postcss' - added:
export { AnyNode } from './postcss' - added:
export { AtRule } from './postcss' - added:
export { AtRuleProps } from './postcss' - added:
export { Builder } from './postcss' - added:
export { ChildNode } from './postcss' - added:
export { ChildProps } from './postcss' - added:
export { Comment } from './postcss' - added:
export { CommentProps } from './postcss' - added:
export { Container } from './postcss' - added:
export { ContainerProps } from './postcss' - added:
export { CssSyntaxError } from './postcss' - added:
export { Declaration } from './postcss' - added:
export { DeclarationProps } from './postcss' - added:
export { Document } from './postcss' - added:
export { DocumentProps } from './postcss' - added:
export { FilePosition } from './postcss' - added:
export { Helpers } from './postcss' - added:
export { Input } from './postcss' - added:
export { JSONHydrator } from './postcss' - added:
export { LazyResult } from './postcss' - added:
export { Message } from './postcss' - added:
export { Node } from './postcss' - added:
export { NodeErrorOptions } from './postcss' - added:
export { NodeProps } from './postcss' - added:
export { OldPlugin } from './postcss' - added:
export { Parser } from './postcss' - added:
export { Plugin } from './postcss' - added:
export { PluginCreator } from './postcss' - added:
export { Position } from './postcss' - added:
export { Postcss } from './postcss' - added:
export { ProcessOptions } from './postcss' - added:
export { Processor } from './postcss' - added:
export { Result } from './postcss' - added:
export { Root } from './postcss' - added:
export { RootProps } from './postcss' - added:
export { Rule } from './postcss' - added:
export { RuleProps } from './postcss' - added:
export { Source } from './postcss' - added:
export { SourceMap } from './postcss' - added:
export { SourceMapOptions } from './postcss' - added:
export { Stringifier } from './postcss' - added:
export { Syntax } from './postcss' - added:
export { TransformCallback } from './postcss' - added:
export { Transformer } from './postcss' - added:
export { Warning } from './postcss' - added:
export { WarningOptions } from './postcss' - added:
export { atRule } from './postcss' - added:
export { comment } from './postcss' - added:
export { decl } from './postcss' - added:
export { default } from './postcss' - added:
export { document } from './postcss' - added:
export { fromJSON } from './postcss' - added:
export { list } from './postcss' - added:
export { parse } from './postcss' - added:
export { plugin } from './postcss' - added:
export { root } from './postcss' - added:
export { rule } from './postcss' - added:
export { stringify } from './postcss' - added:
function postcss.document(defaults?: DocumentProps): Document - added:
interface postcss.JSONHydrator - added:
interface postcss.OldPlugin<T> extends Transformer - added:
interface postcss.PluginCreator<PluginOptions> - added:
let postcss.fromJSON: JSONHydrator - added:
let postcss.parse: Parser<Root> - added:
let postcss.stringify: Stringifier - added:
property postcss.OldPlugin.postcss: Transformer - added:
property postcss.Plugin.postcssPlugin: string - added:
property postcss.Plugin.prepare?: (result: Result) => Processors - added:
property postcss.PluginCreator.postcss: true - added:
property postcss.ProcessOptions.document?: string - added:
property postcss.ProcessOptions.unsafeMap?: boolean - added:
property postcss.SourceMapOptions.absolute?: boolean - added:
type postcss.Helpers = { postcss: Postcss; result: Result } & Postcss - added:
type postcss.Postcss = typeof postcss - added:
type postcss.SourceMap = { toJSON(): RawSourceMap } & SourceMapGenerator
- added:
class PreviousMap extends PreviousMap_ - added:
export = PreviousMap - added:
namespace PreviousMap
- added:
class Processor extends Processor_ - added:
export = Processor - added:
namespace Processor
- added:
class Result<RootNode = Document | Root> extends Result_<RootNode> - added:
export = Result - added:
index Result.Message[others: string]: any - added:
interface Result.Message - added:
interface Result.ResultOptions extends ProcessOptions - added:
namespace Result - added:
property Result.Message.plugin?: string - added:
property Result.Message.type: string - added:
property Result.ResultOptions.node?: Node - added:
property Result.ResultOptions.plugin?: string
- added:
class Root extends Root_ - added:
export = Root - added:
interface Root.RootProps extends ContainerProps - added:
interface Root.RootRaws extends Record<string, any> - added:
namespace Root - added:
property Root.RootProps.raws?: RootRaws - added:
property Root.RootRaws.after?: string - added:
property Root.RootRaws.codeAfter?: string - added:
property Root.RootRaws.codeBefore?: string - added:
property Root.RootRaws.semicolon?: boolean
- added:
class Rule extends Rule_ - added:
export = Rule - added:
interface Rule.RuleRaws extends Record<string, unknown> - added:
namespace Rule - added:
property Rule.RuleRaws.after?: string - added:
property Rule.RuleRaws.before?: string - added:
property Rule.RuleRaws.between?: string - added:
property Rule.RuleRaws.ownSemicolon?: string - added:
property Rule.RuleRaws.selector?: { raw: string; value: string } - added:
property Rule.RuleRaws.semicolon?: boolean - added:
type Rule.RuleProps = { raws?: RuleRaws } & (| { selector: string; selectors?: never } | { selector?: never; selectors: readonly string[] }) & ContainerProps
- added:
class Stringifier extends Stringifier_ - added:
export = Stringifier - added:
namespace Stringifier
- added:
export = stringify - added:
let stringify: Stringify
- added:
class Warning extends Warning_ - added:
export = Warning - added:
interface Warning.WarningOptions - added:
namespace Warning - added:
property Warning.WarningOptions.end?: RangePosition - added:
property Warning.WarningOptions.endIndex?: number - added:
property Warning.WarningOptions.index?: number - added:
property Warning.WarningOptions.node?: Node - added:
property Warning.WarningOptions.plugin?: string - added:
property Warning.WarningOptions.start?: RangePosition - added:
property Warning.WarningOptions.word?: string