update
This commit is contained in:
+366
@@ -0,0 +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'
|
||||
| '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 extends LexTokenType> {
|
||||
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 extends LexTokenType>(
|
||||
type: Type,
|
||||
val?: any,
|
||||
): LexToken<Type>;
|
||||
private tokEnd<Type extends LexTokenType>(
|
||||
tok: LexToken<Type>,
|
||||
): LexToken<Type>;
|
||||
private incrementLine(increment: number): void;
|
||||
private incrementColumn(increment: number): void;
|
||||
private consume(len: number): void;
|
||||
private scan<Type extends LexTokenType>(
|
||||
regexp: RegExp,
|
||||
type: Type,
|
||||
): LexToken<Type> | undefined;
|
||||
private scanEndOfLine<Type extends LexTokenType>(
|
||||
regexp: RegExp,
|
||||
type: Type,
|
||||
): LexToken<Type> | 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;
|
||||
}
|
||||
+7
-2
@@ -545,6 +545,7 @@ Lexer.prototype = {
|
||||
interpolated: true,
|
||||
startingLine: this.lineno,
|
||||
startingColumn: this.colno,
|
||||
plugins: this.plugins,
|
||||
});
|
||||
var interpolated;
|
||||
try {
|
||||
@@ -579,7 +580,11 @@ Lexer.prototype = {
|
||||
}
|
||||
if (indexOfStringInterp !== Infinity) {
|
||||
if (matchOfStringInterp[1]) {
|
||||
prefix = prefix + value.substring(0, indexOfStringInterp) + '#{';
|
||||
prefix =
|
||||
prefix +
|
||||
value.substring(0, indexOfStringInterp) +
|
||||
matchOfStringInterp[2] +
|
||||
'{';
|
||||
return this.addText(
|
||||
type,
|
||||
value.substring(indexOfStringInterp + 3),
|
||||
@@ -1082,7 +1087,7 @@ Lexer.prototype = {
|
||||
|
||||
eachOf: function() {
|
||||
var captures;
|
||||
if ((captures = /^(?:each|for) (.*) of *([^\n]+)/.exec(this.input))) {
|
||||
if ((captures = /^(?:each|for) (.*?) of *([^\n]+)/.exec(this.input))) {
|
||||
this.consume(captures[0].length);
|
||||
var tok = this.tok('eachOf', captures[1]);
|
||||
tok.value = captures[1];
|
||||
|
||||
+14
-13
@@ -1,33 +1,33 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"pug-lexer@5.0.0",
|
||||
"/mnt/Foxconn/Digitalent/Deverloper/liff-push_2series"
|
||||
"pug-lexer@5.0.1",
|
||||
"/home/node/nuxt"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "pug-lexer@5.0.0",
|
||||
"_id": "pug-lexer@5.0.0",
|
||||
"_from": "pug-lexer@5.0.1",
|
||||
"_id": "pug-lexer@5.0.1",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-52xMk8nNpuyQ/M2wjZBN5gXQLIylaGkAoTk5Y1pBhVqaopaoj8Z0iVzpbFZAqitL4RHNVDZRnJDsqEYe99Ti0A==",
|
||||
"_integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==",
|
||||
"_location": "/pug-lexer",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "pug-lexer@5.0.0",
|
||||
"raw": "pug-lexer@5.0.1",
|
||||
"name": "pug-lexer",
|
||||
"escapedName": "pug-lexer",
|
||||
"rawSpec": "5.0.0",
|
||||
"rawSpec": "5.0.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "5.0.0"
|
||||
"fetchSpec": "5.0.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/pug"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.0.tgz",
|
||||
"_spec": "5.0.0",
|
||||
"_where": "/mnt/Foxconn/Digitalent/Deverloper/liff-push_2series",
|
||||
"_resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz",
|
||||
"_spec": "5.0.1",
|
||||
"_where": "/home/node/nuxt",
|
||||
"author": {
|
||||
"name": "ForbesLindesay"
|
||||
},
|
||||
@@ -42,7 +42,8 @@
|
||||
"acorn-walk": "^7.1.1"
|
||||
},
|
||||
"files": [
|
||||
"index.js"
|
||||
"index.js",
|
||||
"index.d.ts"
|
||||
],
|
||||
"keywords": [
|
||||
"pug"
|
||||
@@ -53,5 +54,5 @@
|
||||
"type": "git",
|
||||
"url": "https://github.com/pugjs/pug/tree/master/packages/pug-lexer"
|
||||
},
|
||||
"version": "5.0.0"
|
||||
"version": "5.0.1"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user