This commit is contained in:
2022-07-18 02:50:52 +00:00
parent befd344ab0
commit 06181b34d6
8569 changed files with 818704 additions and 352705 deletions
+366
View File
@@ -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
View File
@@ -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
View File
@@ -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"
}