diff --git a/packages/pug-code-gen/index.js b/packages/pug-code-gen/index.js index a75929ce9..de5c70a72 100644 --- a/packages/pug-code-gen/index.js +++ b/packages/pug-code-gen/index.js @@ -57,6 +57,11 @@ function Compiler(node, options) { if (this.pp && typeof this.pp !== 'string') { this.pp = ' '; } + if (this.pp && !/^\s+$/.test(this.pp)) { + throw new Error( + 'The pretty parameter should either be a boolean or whitespace only string' + ); + } this.debug = false !== options.compileDebug; this.indents = 0; this.parentIndents = 0; @@ -452,7 +457,9 @@ Compiler.prototype = { visitMixinBlock: function(block) { if (this.pp) this.buf.push( - "pug_indent.push('" + Array(this.indents + 1).join(this.pp) + "');" + 'pug_indent.push(' + + stringify(Array(this.indents + 1).join(this.pp)) + + ');' ); this.buf.push('block && block();'); if (this.pp) this.buf.push('pug_indent.pop();'); @@ -504,7 +511,9 @@ Compiler.prototype = { this.mixins[key].used = true; if (pp) this.buf.push( - "pug_indent.push('" + Array(this.indents + 1).join(pp) + "');" + 'pug_indent.push(' + + stringify(Array(this.indents + 1).join(pp)) + + ');' ); if (block || attrs.length || attrsBlocks.length) { this.buf.push(name + '.call({'); diff --git a/packages/pug-code-gen/package.json b/packages/pug-code-gen/package.json index 42507a6eb..e0f3d9991 100644 --- a/packages/pug-code-gen/package.json +++ b/packages/pug-code-gen/package.json @@ -13,7 +13,7 @@ "pug-error": "^1.3.3", "pug-runtime": "^2.0.5", "void-elements": "^3.1.0", - "with": "^6.0.0" + "with": "^7.0.0" }, "files": [ "index.js" diff --git a/packages/pug-lexer/index.d.ts b/packages/pug-lexer/index.d.ts index a5c3addf4..9a8c1261e 100644 --- a/packages/pug-lexer/index.d.ts +++ b/packages/pug-lexer/index.d.ts @@ -1,338 +1,366 @@ declare module 'pug-lexer' { - namespace lex { - export interface Loc { - start: { line: number; column: number }; - end: { line: number; column: number }; - } - - export type LexTokenType = - | ':' - | '&attributes' - | 'attribute' - | 'block' - | 'blockcode' - | 'call' - | 'case' - | 'class' - | 'code' - | 'comment' - | 'default' - | 'doctype' - | 'dot' - | 'each' - | 'else-if' - | 'else' - | 'end-attributes' - | 'end-pipeless-text' - | 'end-pug-interpolation' - | 'eos' - | 'extends' - | 'filter' - | 'id' - | 'if' - | 'include' - | 'indent' - | 'interpolated-code' - | 'interpolation' - | 'mixin-block' - | 'mixin' - | 'newline' - | 'outdent' - | 'path' - | 'slash' - | 'start-attributes' - | 'start-pipeless-text' - | 'start-pug-interpolation' - | 'tag' - | 'text-html' - | 'text' - | 'when' - | 'while' - | 'yield'; - - export interface LexToken { - type: Type; - loc: Loc; - } - - export interface TagToken extends LexToken<'tag'> { - val: string; - } - - export type StartAttributesToken = LexToken<'start-attributes'>; - - export interface AttributeToken extends LexToken<'attribute'> { - name: string; - val: string | boolean; - mustEscape: boolean; - } - - export type EndAttributesToken = LexToken<'end-attributes'>; - - export interface IndentToken extends LexToken<'indent'> { - val: number; - } - - export interface ClassToken extends LexToken<'class'> { - val: string; - } - - export type OutdentToken = LexToken<'outdent'>; - - export type EosToken = LexToken<'eos'>; - - export interface CommentToken extends LexToken<'comment'> { - val: string; - buffer: boolean; - } - - export type NewlineToken = LexToken<'newline'>; - - export interface TextToken extends LexToken<'text'> { - val: string; - } - - export interface InterpolatedCodeToken extends LexToken<'interpolated-code'> { - mustEscape: boolean; - buffer: boolean; - val: string; - } - - export interface CodeToken extends LexToken<'code'> { - val: string; - mustEscape: boolean; - buffer: boolean; - } - - export interface IdToken extends LexToken<'id'> { - val: string; - } - - export type StartPipelessTextToken = LexToken<'start-pipeless-text'>; - - export type EndPipelessTextToken = LexToken<'end-pipeless-text'>; - - export interface DoctypeToken extends LexToken<'doctype'> { - val: string; - } - - export type DotToken = LexToken<'dot'>; - - export interface BlockToken extends LexToken<'block'> { - val: string; - mode: 'replace' | 'prepend' | 'append'; - } - - export type ExtendsToken = LexToken<'extends'>; - - export interface PathToken extends LexToken<'path'> { - val: string; - } - - export type StartPugInterpolationToken = LexToken<'start-pug-interpolation'>; - - export type EndPugInterpolationToken = LexToken<'end-pug-interpolation'>; - - export interface InterpolationToken extends LexToken<'interpolation'> { - val: string; - } - - export type IncludeToken = LexToken<'include'>; - - export interface FilterToken extends LexToken<'filter'> { - val: string; - } - - export interface CallToken extends LexToken<'call'> { - val: string; - args: string; - } - - export interface MixinToken extends LexToken<'mixin'> { - val: string; - args: string | null; - } - - export interface IfToken extends LexToken<'if'> { - val: string; - } - - export type MixinBlockToken = LexToken<'mixin-block'>; - - export interface ElseToken extends LexToken<'else'> { - val: string; - } - - export interface AndAttributesToken extends LexToken<'&attributes'> { - val: string; - } - - export interface TextHtmlToken extends LexToken<'text-html'> { - val: string; - } - - export interface EachToken extends LexToken<'each'> { - val: string; - key: string | null; - code: string; - } - - export interface WhileToken extends LexToken<'while'> { - val: string; - } - - export interface CaseToken extends LexToken<'case'> { - val: string; - } - - export interface WhenToken extends LexToken<'when'> { - val: string; - } - - export type ColonToken = LexToken<':'>; - - export type DefaultToken = LexToken<'default'>; - - export interface ElseIfToken extends LexToken<'else-if'> { - val: string; - } - - export type BlockcodeToken = LexToken<'blockcode'>; - - export type YieldToken = LexToken<'yield'>; - - export type SlashToken = LexToken<'slash'>; - - export type Token = - | AndAttributesToken - | AttributeToken - | BlockcodeToken - | BlockToken - | CallToken - | CaseToken - | ClassToken - | CodeToken - | ColonToken - | CommentToken - | DefaultToken - | DoctypeToken - | DotToken - | EachToken - | ElseIfToken - | ElseToken - | EndAttributesToken - | EndPipelessTextToken - | EndPugInterpolationToken - | EosToken - | ExtendsToken - | FilterToken - | IdToken - | IfToken - | IncludeToken - | IndentToken - | InterpolatedCodeToken - | InterpolationToken - | MixinBlockToken - | MixinToken - | NewlineToken - | OutdentToken - | PathToken - | SlashToken - | StartAttributesToken - | StartPipelessTextToken - | StartPugInterpolationToken - | TagToken - | TextHtmlToken - | TextToken - | WhenToken - | WhileToken - | YieldToken; - - export type LexerFunction = (type: string, exp?: any) => boolean; - export interface LexerOptions { - filename: string; - interpolated?: boolean; - startingLine?: number; - startingColumn?: number; - plugins?: LexerFunction[]; - } - export class Lexer { - input: string; - originalInput: string; - filename?: string; - interpolated: boolean; - lineno: number; - colno: number; - plugins: LexerFunction[]; - indentStack: number[]; - indentRe: RegExp | null; - interpolationAllowed: boolean; - whitespaceRe: RegExp; - tokens: Token[]; - ended: boolean; - constructor(str: string, options?: LexerOptions); - error(code: string, message: string): never; - assert(value: any, message: string): void; - isExpression(exp: string): boolean; - assertExpression(exp: string, noThrow?: boolean): boolean; - assertNestingCorrect(exp: string): void; - private tok(type: Type, val?: any): LexToken; - private tokEnd(tok: LexToken): LexToken; - private incrementLine(increment: number): void; - private incrementColumn(increment: number): void; - private consume(len: number): void; - private scan(regexp: RegExp, type: Type): LexToken | undefined; - private scanEndOfLine(regexp: RegExp, type: Type): LexToken | undefined; - private bracketExpression(skip?: number): number; - scanIndentation(): RegExpExecArray | null; - eos(): true | undefined; - blank(): true | undefined; - comment(): true | undefined; - interpolation(): true | undefined; - tag(): true | undefined; - filter(): true | undefined; - doctype(): true | undefined; - id(): true | undefined; - className(): true | undefined; - endInterpolation(): true | undefined; - addText(type: LexTokenType, value: string, prefix?: string, escaped?: number): void; - text(): true | undefined; - textHtml(): true | undefined; - dot(): true | undefined; - extends(): true | undefined; - prepend(): true | undefined; - append(): true | undefined; - block(): true | undefined; - mixinBlock(): true | undefined; - yield(): true | undefined; - include(): true | undefined; - path(): true | undefined; - case(): true | undefined; - when(): true | undefined; - default(): true | undefined; - call(): true | undefined; - mixin(): true | undefined; - conditional(): true | undefined; - while(): true | undefined; - each(): true | undefined; - eachOf(): true | undefined; - code(): true | undefined; - blockCode(): true | undefined; - attribute(): string; - attributeValue(str: string): { val?: string; mustEscape?: boolean; remainingSource: string }; - attrs(): true | undefined; - attributesBlock(): true | undefined; - indent(): true | NewlineToken | undefined; - pipelessText(indents?: number): boolean | undefined; - slash(): true | undefined; - colon(): true | undefined; - fail(): never; - callLexerFunction(func: string): boolean; - private advance(): boolean; - getTokens(): Token[]; - } - } - function lex(str: string, options?: lex.LexerOptions): lex.Token[]; - export = lex; + namespace lex { + export interface Loc { + start: {line: number; column: number}; + end: {line: number; column: number}; + } + + export type LexTokenType = + | ':' + | '&attributes' + | 'attribute' + | 'block' + | 'blockcode' + | 'call' + | 'case' + | 'class' + | 'code' + | 'comment' + | 'default' + | 'doctype' + | 'dot' + | 'each' + | 'eachOf' + | 'else-if' + | 'else' + | 'end-attributes' + | 'end-pipeless-text' + | 'end-pug-interpolation' + | 'eos' + | 'extends' + | 'filter' + | 'id' + | 'if' + | 'include' + | 'indent' + | 'interpolated-code' + | 'interpolation' + | 'mixin-block' + | 'mixin' + | 'newline' + | 'outdent' + | 'path' + | 'slash' + | 'start-attributes' + | 'start-pipeless-text' + | 'start-pug-interpolation' + | 'tag' + | 'text-html' + | 'text' + | 'when' + | 'while' + | 'yield'; + + export interface LexToken { + type: Type; + loc: Loc; + } + + export interface TagToken extends LexToken<'tag'> { + val: string; + } + + export type StartAttributesToken = LexToken<'start-attributes'>; + + export interface AttributeToken extends LexToken<'attribute'> { + name: string; + val: string | boolean; + mustEscape: boolean; + } + + export type EndAttributesToken = LexToken<'end-attributes'>; + + export interface IndentToken extends LexToken<'indent'> { + val: number; + } + + export interface ClassToken extends LexToken<'class'> { + val: string; + } + + export type OutdentToken = LexToken<'outdent'>; + + export type EosToken = LexToken<'eos'>; + + export interface CommentToken extends LexToken<'comment'> { + val: string; + buffer: boolean; + } + + export type NewlineToken = LexToken<'newline'>; + + export interface TextToken extends LexToken<'text'> { + val: string; + } + + export interface InterpolatedCodeToken + extends LexToken<'interpolated-code'> { + mustEscape: boolean; + buffer: boolean; + val: string; + } + + export interface CodeToken extends LexToken<'code'> { + val: string; + mustEscape: boolean; + buffer: boolean; + } + + export interface IdToken extends LexToken<'id'> { + val: string; + } + + export type StartPipelessTextToken = LexToken<'start-pipeless-text'>; + + export type EndPipelessTextToken = LexToken<'end-pipeless-text'>; + + export interface DoctypeToken extends LexToken<'doctype'> { + val: string; + } + + export type DotToken = LexToken<'dot'>; + + export interface BlockToken extends LexToken<'block'> { + val: string; + mode: 'replace' | 'prepend' | 'append'; + } + + export type ExtendsToken = LexToken<'extends'>; + + export interface PathToken extends LexToken<'path'> { + val: string; + } + + export type StartPugInterpolationToken = LexToken< + 'start-pug-interpolation' + >; + + export type EndPugInterpolationToken = LexToken<'end-pug-interpolation'>; + + export interface InterpolationToken extends LexToken<'interpolation'> { + val: string; + } + + export type IncludeToken = LexToken<'include'>; + + export interface FilterToken extends LexToken<'filter'> { + val: string; + } + + export interface CallToken extends LexToken<'call'> { + val: string; + args: string; + } + + export interface MixinToken extends LexToken<'mixin'> { + val: string; + args: string | null; + } + + export interface IfToken extends LexToken<'if'> { + val: string; + } + + export type MixinBlockToken = LexToken<'mixin-block'>; + + export interface ElseToken extends LexToken<'else'> { + val: string; + } + + export interface AndAttributesToken extends LexToken<'&attributes'> { + val: string; + } + + export interface TextHtmlToken extends LexToken<'text-html'> { + val: string; + } + + export interface EachToken extends LexToken<'each'> { + val: string; + key: string | null; + code: string; + } + + export interface EachOfToken extends LexToken<'eachOf'> { + val: string; + value: string; + code: string; + } + + export interface WhileToken extends LexToken<'while'> { + val: string; + } + + export interface CaseToken extends LexToken<'case'> { + val: string; + } + + export interface WhenToken extends LexToken<'when'> { + val: string; + } + + export type ColonToken = LexToken<':'>; + + export type DefaultToken = LexToken<'default'>; + + export interface ElseIfToken extends LexToken<'else-if'> { + val: string; + } + + export type BlockcodeToken = LexToken<'blockcode'>; + + export type YieldToken = LexToken<'yield'>; + + export type SlashToken = LexToken<'slash'>; + + export type Token = + | AndAttributesToken + | AttributeToken + | BlockcodeToken + | BlockToken + | CallToken + | CaseToken + | ClassToken + | CodeToken + | ColonToken + | CommentToken + | DefaultToken + | DoctypeToken + | DotToken + | EachToken + | EachOfToken + | ElseIfToken + | ElseToken + | EndAttributesToken + | EndPipelessTextToken + | EndPugInterpolationToken + | EosToken + | ExtendsToken + | FilterToken + | IdToken + | IfToken + | IncludeToken + | IndentToken + | InterpolatedCodeToken + | InterpolationToken + | MixinBlockToken + | MixinToken + | NewlineToken + | OutdentToken + | PathToken + | SlashToken + | StartAttributesToken + | StartPipelessTextToken + | StartPugInterpolationToken + | TagToken + | TextHtmlToken + | TextToken + | WhenToken + | WhileToken + | YieldToken; + + export type LexerFunction = (type: string, exp?: any) => boolean; + export interface LexerOptions { + filename: string; + interpolated?: boolean; + startingLine?: number; + startingColumn?: number; + plugins?: LexerFunction[]; + } + export class Lexer { + input: string; + originalInput: string; + filename?: string; + interpolated: boolean; + lineno: number; + colno: number; + plugins: LexerFunction[]; + indentStack: number[]; + indentRe: RegExp | null; + interpolationAllowed: boolean; + whitespaceRe: RegExp; + tokens: Token[]; + ended: boolean; + constructor(str: string, options?: LexerOptions); + error(code: string, message: string): never; + assert(value: any, message: string): void; + isExpression(exp: string): boolean; + assertExpression(exp: string, noThrow?: boolean): boolean; + assertNestingCorrect(exp: string): void; + private tok( + type: Type, + val?: any, + ): LexToken; + private tokEnd( + tok: LexToken, + ): LexToken; + private incrementLine(increment: number): void; + private incrementColumn(increment: number): void; + private consume(len: number): void; + private scan( + regexp: RegExp, + type: Type, + ): LexToken | undefined; + private scanEndOfLine( + regexp: RegExp, + type: Type, + ): LexToken | undefined; + private bracketExpression(skip?: number): number; + scanIndentation(): RegExpExecArray | null; + eos(): true | undefined; + blank(): true | undefined; + comment(): true | undefined; + interpolation(): true | undefined; + tag(): true | undefined; + filter(): true | undefined; + doctype(): true | undefined; + id(): true | undefined; + className(): true | undefined; + endInterpolation(): true | undefined; + addText( + type: LexTokenType, + value: string, + prefix?: string, + escaped?: number, + ): void; + text(): true | undefined; + textHtml(): true | undefined; + dot(): true | undefined; + extends(): true | undefined; + prepend(): true | undefined; + append(): true | undefined; + block(): true | undefined; + mixinBlock(): true | undefined; + yield(): true | undefined; + include(): true | undefined; + path(): true | undefined; + case(): true | undefined; + when(): true | undefined; + default(): true | undefined; + call(): true | undefined; + mixin(): true | undefined; + conditional(): true | undefined; + while(): true | undefined; + each(): true | undefined; + eachOf(): true | undefined; + code(): true | undefined; + blockCode(): true | undefined; + attribute(): string; + attributeValue( + str: string, + ): {val?: string; mustEscape?: boolean; remainingSource: string}; + attrs(): true | undefined; + attributesBlock(): true | undefined; + indent(): true | NewlineToken | undefined; + pipelessText(indents?: number): boolean | undefined; + slash(): true | undefined; + colon(): true | undefined; + fail(): never; + callLexerFunction(func: string): boolean; + private advance(): boolean; + getTokens(): Token[]; + } + } + function lex(str: string, options?: lex.LexerOptions): lex.Token[]; + export = lex; } - diff --git a/packages/pug-lexer/package.json b/packages/pug-lexer/package.json index f9b41c48f..42b120792 100644 --- a/packages/pug-lexer/package.json +++ b/packages/pug-lexer/package.json @@ -15,7 +15,8 @@ "acorn-walk": "^7.1.1" }, "files": [ - "index.js" + "index.js", + "index.d.ts" ], "repository": { "type": "git", diff --git a/yarn.lock b/yarn.lock index 13a4b6123..40f4bc82d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -716,6 +716,11 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" +assert-never@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" + integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== + assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" @@ -819,37 +824,12 @@ babel-preset-jest@^26.0.0: babel-plugin-jest-hoist "^26.0.0" babel-preset-current-node-syntax "^0.1.2" -babel-runtime@^6.11.6, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-types@^6.15.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon-walk@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/babylon-walk/-/babylon-walk-1.0.2.tgz#3b15a5ddbb482a78b4ce9c01c8ba181702d9d6ce" - integrity sha1-OxWl3btIKni0zpwByLoYFwLZ1s4= +babel-walk@3.0.0-canary-5: + version "3.0.0-canary-5" + resolved "https://registry.yarnpkg.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz#f66ecd7298357aee44955f235a6ef54219104b11" + integrity sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw== dependencies: - babel-runtime "^6.11.6" - babel-types "^6.15.0" - lodash.clone "^4.5.0" - -babylon@^6.9.1: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + "@babel/types" "^7.9.6" balanced-match@^1.0.0: version "1.0.0" @@ -1161,11 +1141,6 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js@^2.4.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -2785,11 +2760,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.clone@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" @@ -3378,11 +3348,6 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -3976,11 +3941,6 @@ tmpl@1.0.x: resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -4281,15 +4241,15 @@ window-size@0.1.0: resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= -with@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/with/-/with-6.0.0.tgz#00223660fa0d0aeb4776965e61f902410c4c9d86" - integrity sha512-FrwIIWGUkHViaUXWmEvcwKy+eI0ajKh/Xq192o2kwFtSI7lS7xE5O1E2VNurhWE9ZLRDwr6GAAkKDsDIyStUuw== +with@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/with/-/with-7.0.0.tgz#60b88622fb56482a5ba7fa8ebe1a880d7b64a6e3" + integrity sha512-XS51xsYITl5V0q0AcZG/lMPFBbCETHLjL7Tr6ZOmPGP3UkKBmwOKqLgAmenC5v8MHDcOudpNkO1CW0kpe7Oyag== dependencies: - babel-runtime "^6.11.6" - babel-types "^6.15.0" - babylon "^6.9.1" - babylon-walk "^1.0.2" + "@babel/parser" "^7.9.6" + "@babel/types" "^7.9.6" + assert-never "^1.2.1" + babel-walk "3.0.0-canary-5" word-wrap@~1.2.3: version "1.2.3"