@auscope/angular2parse 22.0.0 → 22.0.1
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.
- package/README.md +1 -18
- package/fesm2022/auscope-angular2parse.mjs +2047 -0
- package/fesm2022/auscope-angular2parse.mjs.map +1 -0
- package/package.json +34 -41
- package/types/auscope-angular2parse.d.ts +32 -0
- package/.editorconfig +0 -13
- package/LICENSE +0 -21
- package/angular.json +0 -56
- package/projects/angular2parse/README.md +0 -49
- package/projects/angular2parse/ng-package.json +0 -7
- package/projects/angular2parse/package.json +0 -19
- package/projects/angular2parse/src/lib/angular/compiler/assertions.d.ts +0 -10
- package/projects/angular2parse/src/lib/angular/compiler/assertions.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/assertions.js +0 -45
- package/projects/angular2parse/src/lib/angular/compiler/assertions.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/assertions.ts +0 -49
- package/projects/angular2parse/src/lib/angular/compiler/ast.d.ts +0 -243
- package/projects/angular2parse/src/lib/angular/compiler/ast.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/ast.js +0 -393
- package/projects/angular2parse/src/lib/angular/compiler/ast.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/ast.ts +0 -393
- package/projects/angular2parse/src/lib/angular/compiler/chars.d.ts +0 -70
- package/projects/angular2parse/src/lib/angular/compiler/chars.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/chars.js +0 -78
- package/projects/angular2parse/src/lib/angular/compiler/chars.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/chars.ts +0 -89
- package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.d.ts +0 -15
- package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.js +0 -24
- package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.ts +0 -25
- package/projects/angular2parse/src/lib/angular/compiler/lexer.d.ts +0 -45
- package/projects/angular2parse/src/lib/angular/compiler/lexer.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/lexer.js +0 -344
- package/projects/angular2parse/src/lib/angular/compiler/lexer.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/lexer.ts +0 -383
- package/projects/angular2parse/src/lib/angular/compiler/parser.d.ts +0 -93
- package/projects/angular2parse/src/lib/angular/compiler/parser.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/parser.js +0 -735
- package/projects/angular2parse/src/lib/angular/compiler/parser.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/parser.ts +0 -825
- package/projects/angular2parse/src/lib/angular/compiler.d.ts +0 -7
- package/projects/angular2parse/src/lib/angular/compiler.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler.js +0 -7
- package/projects/angular2parse/src/lib/angular/compiler.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler.ts +0 -6
- package/projects/angular2parse/src/lib/angular/facade/lang.d.ts +0 -45
- package/projects/angular2parse/src/lib/angular/facade/lang.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/facade/lang.js +0 -85
- package/projects/angular2parse/src/lib/angular/facade/lang.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/facade/lang.ts +0 -124
- package/projects/angular2parse/src/lib/angular/facade.d.ts +0 -2
- package/projects/angular2parse/src/lib/angular/facade.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/facade.js +0 -2
- package/projects/angular2parse/src/lib/angular/facade.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/facade.ts +0 -1
- package/projects/angular2parse/src/lib/angular.d.ts +0 -3
- package/projects/angular2parse/src/lib/angular.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular.js +0 -3
- package/projects/angular2parse/src/lib/angular.js.map +0 -1
- package/projects/angular2parse/src/lib/angular.ts +0 -2
- package/projects/angular2parse/src/lib/module.d.ts +0 -6
- package/projects/angular2parse/src/lib/module.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/module.js +0 -17
- package/projects/angular2parse/src/lib/module.js.map +0 -1
- package/projects/angular2parse/src/lib/module.ts +0 -12
- package/projects/angular2parse/src/lib/parse.d.ts +0 -19
- package/projects/angular2parse/src/lib/parse.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/parse.js +0 -61
- package/projects/angular2parse/src/lib/parse.js.map +0 -1
- package/projects/angular2parse/src/lib/parse.ts +0 -78
- package/projects/angular2parse/src/lib/util/binary-operations.d.ts +0 -2
- package/projects/angular2parse/src/lib/util/binary-operations.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/util/binary-operations.js +0 -18
- package/projects/angular2parse/src/lib/util/binary-operations.js.map +0 -1
- package/projects/angular2parse/src/lib/util/binary-operations.ts +0 -17
- package/projects/angular2parse/src/lib/util/lang.d.ts +0 -5
- package/projects/angular2parse/src/lib/util/lang.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/util/lang.js +0 -13
- package/projects/angular2parse/src/lib/util/lang.js.map +0 -1
- package/projects/angular2parse/src/lib/util/lang.ts +0 -15
- package/projects/angular2parse/src/lib/util.d.ts +0 -3
- package/projects/angular2parse/src/lib/util.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/util.js +0 -3
- package/projects/angular2parse/src/lib/util.js.map +0 -1
- package/projects/angular2parse/src/lib/util.ts +0 -2
- package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.d.ts +0 -24
- package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.js +0 -96
- package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.js.map +0 -1
- package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.ts +0 -149
- package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.d.ts +0 -26
- package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.js +0 -141
- package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.js.map +0 -1
- package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.ts +0 -208
- package/projects/angular2parse/src/lib/visitors.d.ts +0 -3
- package/projects/angular2parse/src/lib/visitors.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/visitors.js +0 -3
- package/projects/angular2parse/src/lib/visitors.js.map +0 -1
- package/projects/angular2parse/src/lib/visitors.ts +0 -2
- package/projects/angular2parse/src/public-api.d.ts +0 -3
- package/projects/angular2parse/src/public-api.d.ts.map +0 -1
- package/projects/angular2parse/src/public-api.js +0 -6
- package/projects/angular2parse/src/public-api.js.map +0 -1
- package/projects/angular2parse/src/public-api.ts +0 -5
- package/projects/angular2parse/tsconfig.lib.json +0 -22
- package/projects/angular2parse/tsconfig.lib.prod.json +0 -15
- package/tsconfig.json +0 -21
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auscope-angular2parse.mjs","sources":["../../../projects/angular2parse/src/lib/angular/facade/lang.ts","../../../projects/angular2parse/src/lib/angular/compiler/assertions.ts","../../../projects/angular2parse/src/lib/angular/compiler/ast.ts","../../../projects/angular2parse/src/lib/angular/compiler/chars.ts","../../../projects/angular2parse/src/lib/angular/compiler/interpolation-config.ts","../../../projects/angular2parse/src/lib/angular/compiler/lexer.ts","../../../projects/angular2parse/src/lib/angular/compiler/parser.ts","../../../projects/angular2parse/src/lib/util/binary-operations.ts","../../../projects/angular2parse/src/lib/util/lang.ts","../../../projects/angular2parse/src/lib/visitors/parse-visitor-compiler.ts","../../../projects/angular2parse/src/lib/visitors/parse-visitor-resolver.ts","../../../projects/angular2parse/src/lib/parse.ts","../../../projects/angular2parse/src/lib/module.ts","../../../projects/angular2parse/src/public-api.ts","../../../projects/angular2parse/src/auscope-angular2parse.ts"],"sourcesContent":["/**\r\n * @license\r\n * Copyright Google Inc. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\nexport interface BrowserNodeGlobal {\r\n Object: typeof Object;\r\n Array: typeof Array;\r\n Map: typeof Map;\r\n Set: typeof Set;\r\n Date: DateConstructor;\r\n RegExp: RegExpConstructor;\r\n JSON: typeof JSON;\r\n Math: any; // typeof Math;\r\n assert(condition: any): void;\r\n Reflect: any;\r\n getAngularTestability: Function;\r\n getAllAngularTestabilities: Function;\r\n getAllAngularRootElements: Function;\r\n frameworkStabilizers: Array<Function>;\r\n setTimeout: Function;\r\n clearTimeout: Function;\r\n setInterval: Function;\r\n clearInterval: Function;\r\n encodeURI: Function;\r\n}\r\n\r\n\r\nexport function getTypeNameForDebugging(type: any): string {\r\n return type['name'] || typeof type;\r\n}\r\n\r\nexport function isPresent<T>(obj: T | null | undefined): obj is T {\r\n return obj != null;\r\n}\r\n\r\nexport function isBlank(obj: unknown): obj is null | undefined {\r\n return obj == null;\r\n}\r\n\r\nconst STRING_MAP_PROTO = Object.getPrototypeOf({});\r\nexport function isStrictStringMap(obj: any): boolean {\r\n return typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;\r\n}\r\n\r\nexport function stringify(token: any): string {\r\n if (typeof token === 'string') {\r\n return token;\r\n }\r\n\r\n if (token == null) {\r\n return '' + token;\r\n }\r\n\r\n if (token.overriddenName) {\r\n return `${token.overriddenName}`;\r\n }\r\n\r\n if (token.name) {\r\n return `${token.name}`;\r\n }\r\n\r\n const res = token.toString();\r\n const newLineIndex = res.indexOf('\\n');\r\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\r\n}\r\n\r\nexport class NumberWrapper {\r\n static parseIntAutoRadix(text: string): number {\r\n const result: number = parseInt(text);\r\n if (isNaN(result)) {\r\n throw new Error('Invalid integer literal when parsing ' + text);\r\n }\r\n return result;\r\n }\r\n\r\n static isNumeric(value: any): boolean { return !isNaN(value - parseFloat(value)); }\r\n}\r\n\r\n// JS has NaN !== NaN\r\nexport function looseIdentical(a: any, b: any): boolean {\r\n return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b);\r\n}\r\n\r\nexport function isJsObject(o: any): boolean {\r\n return o !== null && (typeof o === 'function' || typeof o === 'object');\r\n}\r\n\r\nexport function print(obj: Error | Object) {\r\n // tslint:disable-next-line:no-console\r\n console.log(obj);\r\n}\r\n\r\nexport function warn(obj: Error | Object) {\r\n console.warn(obj);\r\n}\r\n\r\nexport function setValueOnPath(global: any, path: string, value: any) {\r\n const parts = path.split('.');\r\n let obj: any = global;\r\n while (parts.length > 1) {\r\n const name = parts.shift()!;\r\n if (obj.hasOwnProperty(name) && obj[name] != null) {\r\n obj = obj[name];\r\n } else {\r\n obj = obj[name] = {};\r\n }\r\n }\r\n if (obj === undefined || obj === null) {\r\n obj = {};\r\n }\r\n obj[parts.shift()!] = value;\r\n}\r\n\r\nexport function isPrimitive(obj: any): boolean {\r\n return !isJsObject(obj);\r\n}\r\n\r\nexport function escapeRegExp(s: string): string {\r\n return s.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\r\n}","/**\r\n * @license\r\n * Copyright Google Inc. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\n\r\nimport {isBlank, isPresent} from '../facade/lang';\r\n\r\nconst isDevMode = () => false;\r\n\r\nexport function assertArrayOfStrings(identifier: string, value: any) {\r\n if (!isDevMode() || isBlank(value)) {\r\n return;\r\n }\r\n if (!Array.isArray(value)) {\r\n throw new Error(`Expected '${identifier}' to be an array of strings.`);\r\n }\r\n for (let i = 0; i < value.length; i += 1) {\r\n if (typeof value[i] !== 'string') {\r\n throw new Error(`Expected '${identifier}' to be an array of strings.`);\r\n }\r\n }\r\n}\r\n\r\nconst INTERPOLATION_BLACKLIST_REGEXPS = [\r\n /^\\s*$/, // empty\r\n /[<>]/, // html tag\r\n /^[{}]$/, // i18n expansion\r\n /&(#|[a-z])/i, // character reference,\r\n /^\\/\\//, // comment\r\n];\r\n\r\nexport function assertInterpolationSymbols(identifier: string, value: any): void {\r\n if (isPresent(value) && !(Array.isArray(value) && value.length == 2)) {\r\n throw new Error(`Expected '${identifier}' to be an array, [start, end].`);\r\n } else if (isDevMode() && !isBlank(value)) {\r\n const start = value[0] as string;\r\n const end = value[1] as string;\r\n // black list checking\r\n INTERPOLATION_BLACKLIST_REGEXPS.forEach(regexp => {\r\n if (regexp.test(start) || regexp.test(end)) {\r\n throw new Error(`['${start}', '${end}'] contains unusable interpolation symbol.`);\r\n }\r\n });\r\n }\r\n}","/**\r\n * @license\r\n * Copyright Google Inc. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\n\r\nimport {isBlank} from '../facade/lang';\r\n\r\nexport class ParserError {\r\n public message: string;\r\n constructor(\r\n message: string, public input: string, public errLocation: string, public ctxLocation?: any) {\r\n this.message = `Parser Error: ${message} ${errLocation} [${input}] in ${ctxLocation}`;\r\n }\r\n}\r\n\r\nexport class ParseSpan {\r\n constructor(public start: number, public end: number) {}\r\n}\r\n\r\nexport class AST {\r\n constructor(public span: ParseSpan) {}\r\n visit(visitor: AstVisitor, context: any = null): any { return null; }\r\n toString(): string { return 'AST'; }\r\n}\r\n\r\n/**\r\n * Represents a quoted expression of the form:\r\n *\r\n * quote = prefix `:` uninterpretedExpression\r\n * prefix = identifier\r\n * uninterpretedExpression = arbitrary string\r\n *\r\n * A quoted expression is meant to be pre-processed by an AST transformer that\r\n * converts it into another AST that no longer contains quoted expressions.\r\n * It is meant to allow third-party developers to extend Angular template\r\n * expression language. The `uninterpretedExpression` part of the quote is\r\n * therefore not interpreted by the Angular's own expression parser.\r\n */\r\nexport class Quote extends AST {\r\n constructor(\r\n span: ParseSpan, public prefix: string, public uninterpretedExpression: string,\r\n public location: any) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any { return visitor.visitQuote(this, context); }\r\n toString(): string { return 'Quote'; }\r\n}\r\n\r\nexport class EmptyExpr extends AST {\r\n visit(visitor: AstVisitor, context: any = null) {\r\n // do nothing\r\n }\r\n}\r\n\r\nexport class ImplicitReceiver extends AST {\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitImplicitReceiver(this, context);\r\n }\r\n}\r\n\r\n/**\r\n * Multiple expressions separated by a semicolon.\r\n */\r\nexport class Chain extends AST {\r\n constructor(span: ParseSpan, public expressions: any[]) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any { return visitor.visitChain(this, context); }\r\n}\r\n\r\nexport class Conditional extends AST {\r\n constructor(span: ParseSpan, public condition: AST, public trueExp: AST, public falseExp: AST) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitConditional(this, context);\r\n }\r\n}\r\n\r\nexport class PropertyRead extends AST {\r\n constructor(span: ParseSpan, public receiver: AST, public name: string) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitPropertyRead(this, context);\r\n }\r\n}\r\n\r\nexport class PropertyWrite extends AST {\r\n constructor(span: ParseSpan, public receiver: AST, public name: string, public value: AST) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitPropertyWrite(this, context);\r\n }\r\n}\r\n\r\nexport class SafePropertyRead extends AST {\r\n constructor(span: ParseSpan, public receiver: AST, public name: string) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitSafePropertyRead(this, context);\r\n }\r\n}\r\n\r\nexport class KeyedRead extends AST {\r\n constructor(span: ParseSpan, public obj: AST, public key: AST) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitKeyedRead(this, context);\r\n }\r\n}\r\n\r\nexport class KeyedWrite extends AST {\r\n constructor(span: ParseSpan, public obj: AST, public key: AST, public value: AST) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitKeyedWrite(this, context);\r\n }\r\n}\r\n\r\nexport class BindingPipe extends AST {\r\n constructor(span: ParseSpan, public exp: AST, public name: string, public args: any[]) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any { return visitor.visitPipe(this, context); }\r\n}\r\n\r\nexport class LiteralPrimitive extends AST {\r\n constructor(span: ParseSpan, public value: any) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitLiteralPrimitive(this, context);\r\n }\r\n}\r\n\r\nexport class LiteralArray extends AST {\r\n constructor(span: ParseSpan, public expressions: any[]) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitLiteralArray(this, context);\r\n }\r\n}\r\n\r\nexport class LiteralMap extends AST {\r\n constructor(span: ParseSpan, public keys: any[], public values: any[]) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitLiteralMap(this, context);\r\n }\r\n}\r\n\r\nexport class Interpolation extends AST {\r\n constructor(span: ParseSpan, public strings: any[], public expressions: any[]) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitInterpolation(this, context);\r\n }\r\n}\r\n\r\nexport class Binary extends AST {\r\n constructor(span: ParseSpan, public operation: string, public left: AST, public right: AST) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitBinary(this, context);\r\n }\r\n}\r\n\r\nexport class PrefixNot extends AST {\r\n constructor(span: ParseSpan, public expression: AST) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitPrefixNot(this, context);\r\n }\r\n}\r\n\r\nexport class MethodCall extends AST {\r\n constructor(span: ParseSpan, public receiver: AST, public name: string, public args: any[]) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitMethodCall(this, context);\r\n }\r\n}\r\n\r\nexport class SafeMethodCall extends AST {\r\n constructor(span: ParseSpan, public receiver: AST, public name: string, public args: any[]) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitSafeMethodCall(this, context);\r\n }\r\n}\r\n\r\nexport class FunctionCall extends AST {\r\n constructor(span: ParseSpan, public target: AST, public args: any[]) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitFunctionCall(this, context);\r\n }\r\n}\r\n\r\nexport class ASTWithSource extends AST {\r\n constructor(\r\n public ast: AST, public source: string, public location: string,\r\n public errors: ParserError[]) {\r\n super(new ParseSpan(0, isBlank(source) ? 0 : source.length));\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any { return this.ast.visit(visitor, context); }\r\n toString(): string { return `${this.source} in ${this.location}`; }\r\n}\r\n\r\nexport class TemplateBinding {\r\n constructor(\r\n public span: ParseSpan, public key: string, public keyIsVar: boolean, public name: string,\r\n public expression: ASTWithSource) {}\r\n}\r\n\r\nexport interface AstVisitor {\r\n visitBinary(ast: Binary, context: any): any;\r\n visitChain(ast: Chain, context: any): any;\r\n visitConditional(ast: Conditional, context: any): any;\r\n visitFunctionCall(ast: FunctionCall, context: any): any;\r\n visitImplicitReceiver(ast: ImplicitReceiver, context: any): any;\r\n visitInterpolation(ast: Interpolation, context: any): any;\r\n visitKeyedRead(ast: KeyedRead, context: any): any;\r\n visitKeyedWrite(ast: KeyedWrite, context: any): any;\r\n visitLiteralArray(ast: LiteralArray, context: any): any;\r\n visitLiteralMap(ast: LiteralMap, context: any): any;\r\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): any;\r\n visitMethodCall(ast: MethodCall, context: any): any;\r\n visitPipe(ast: BindingPipe, context: any): any;\r\n visitPrefixNot(ast: PrefixNot, context: any): any;\r\n visitPropertyRead(ast: PropertyRead, context: any): any;\r\n visitPropertyWrite(ast: PropertyWrite, context: any): any;\r\n visitQuote(ast: Quote, context: any): any;\r\n visitSafeMethodCall(ast: SafeMethodCall, context: any): any;\r\n visitSafePropertyRead(ast: SafePropertyRead, context: any): any;\r\n}\r\n\r\nexport class RecursiveAstVisitor implements AstVisitor {\r\n visitBinary(ast: Binary, context: any): any {\r\n ast.left.visit(this);\r\n ast.right.visit(this);\r\n return null;\r\n }\r\n visitChain(ast: Chain, context: any): any { return this.visitAll(ast.expressions, context); }\r\n visitConditional(ast: Conditional, context: any): any {\r\n ast.condition.visit(this);\r\n ast.trueExp.visit(this);\r\n ast.falseExp.visit(this);\r\n return null;\r\n }\r\n visitPipe(ast: BindingPipe, context: any): any {\r\n ast.exp.visit(this);\r\n this.visitAll(ast.args, context);\r\n return null;\r\n }\r\n visitFunctionCall(ast: FunctionCall, context: any): any {\r\n ast.target.visit(this);\r\n this.visitAll(ast.args, context);\r\n return null;\r\n }\r\n visitImplicitReceiver(ast: ImplicitReceiver, context: any): any { return null; }\r\n visitInterpolation(ast: Interpolation, context: any): any {\r\n return this.visitAll(ast.expressions, context);\r\n }\r\n visitKeyedRead(ast: KeyedRead, context: any): any {\r\n ast.obj.visit(this);\r\n ast.key.visit(this);\r\n return null;\r\n }\r\n visitKeyedWrite(ast: KeyedWrite, context: any): any {\r\n ast.obj.visit(this);\r\n ast.key.visit(this);\r\n ast.value.visit(this);\r\n return null;\r\n }\r\n visitLiteralArray(ast: LiteralArray, context: any): any {\r\n return this.visitAll(ast.expressions, context);\r\n }\r\n visitLiteralMap(ast: LiteralMap, context: any): any { return this.visitAll(ast.values, context); }\r\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): any { return null; }\r\n visitMethodCall(ast: MethodCall, context: any): any {\r\n ast.receiver.visit(this);\r\n return this.visitAll(ast.args, context);\r\n }\r\n visitPrefixNot(ast: PrefixNot, context: any): any {\r\n ast.expression.visit(this);\r\n return null;\r\n }\r\n visitPropertyRead(ast: PropertyRead, context: any): any {\r\n ast.receiver.visit(this);\r\n return null;\r\n }\r\n visitPropertyWrite(ast: PropertyWrite, context: any): any {\r\n ast.receiver.visit(this);\r\n ast.value.visit(this);\r\n return null;\r\n }\r\n visitSafePropertyRead(ast: SafePropertyRead, context: any): any {\r\n ast.receiver.visit(this);\r\n return null;\r\n }\r\n visitSafeMethodCall(ast: SafeMethodCall, context: any): any {\r\n ast.receiver.visit(this);\r\n return this.visitAll(ast.args, context);\r\n }\r\n visitAll(asts: AST[], context: any): any {\r\n asts.forEach(ast => ast.visit(this, context));\r\n return null;\r\n }\r\n visitQuote(ast: Quote, context: any): any { return null; }\r\n}\r\n\r\nexport class AstTransformer implements AstVisitor {\r\n visitImplicitReceiver(ast: ImplicitReceiver, context: any): AST { return ast; }\r\n\r\n visitInterpolation(ast: Interpolation, context: any): AST {\r\n return new Interpolation(ast.span, ast.strings, this.visitAll(ast.expressions));\r\n }\r\n\r\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): AST {\r\n return new LiteralPrimitive(ast.span, ast.value);\r\n }\r\n\r\n visitPropertyRead(ast: PropertyRead, context: any): AST {\r\n return new PropertyRead(ast.span, ast.receiver.visit(this), ast.name);\r\n }\r\n\r\n visitPropertyWrite(ast: PropertyWrite, context: any): AST {\r\n return new PropertyWrite(ast.span, ast.receiver.visit(this), ast.name, ast.value);\r\n }\r\n\r\n visitSafePropertyRead(ast: SafePropertyRead, context: any): AST {\r\n return new SafePropertyRead(ast.span, ast.receiver.visit(this), ast.name);\r\n }\r\n\r\n visitMethodCall(ast: MethodCall, context: any): AST {\r\n return new MethodCall(ast.span, ast.receiver.visit(this), ast.name, this.visitAll(ast.args));\r\n }\r\n\r\n visitSafeMethodCall(ast: SafeMethodCall, context: any): AST {\r\n return new SafeMethodCall(\r\n ast.span, ast.receiver.visit(this), ast.name, this.visitAll(ast.args));\r\n }\r\n\r\n visitFunctionCall(ast: FunctionCall, context: any): AST {\r\n return new FunctionCall(ast.span, ast.target.visit(this), this.visitAll(ast.args));\r\n }\r\n\r\n visitLiteralArray(ast: LiteralArray, context: any): AST {\r\n return new LiteralArray(ast.span, this.visitAll(ast.expressions));\r\n }\r\n\r\n visitLiteralMap(ast: LiteralMap, context: any): AST {\r\n return new LiteralMap(ast.span, ast.keys, this.visitAll(ast.values));\r\n }\r\n\r\n visitBinary(ast: Binary, context: any): AST {\r\n return new Binary(ast.span, ast.operation, ast.left.visit(this), ast.right.visit(this));\r\n }\r\n\r\n visitPrefixNot(ast: PrefixNot, context: any): AST {\r\n return new PrefixNot(ast.span, ast.expression.visit(this));\r\n }\r\n\r\n visitConditional(ast: Conditional, context: any): AST {\r\n return new Conditional(\r\n ast.span, ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));\r\n }\r\n\r\n visitPipe(ast: BindingPipe, context: any): AST {\r\n return new BindingPipe(ast.span, ast.exp.visit(this), ast.name, this.visitAll(ast.args));\r\n }\r\n\r\n visitKeyedRead(ast: KeyedRead, context: any): AST {\r\n return new KeyedRead(ast.span, ast.obj.visit(this), ast.key.visit(this));\r\n }\r\n\r\n visitKeyedWrite(ast: KeyedWrite, context: any): AST {\r\n return new KeyedWrite(\r\n ast.span, ast.obj.visit(this), ast.key.visit(this), ast.value.visit(this));\r\n }\r\n\r\n visitAll(asts: any[]): any[] {\r\n const res = new Array(asts.length);\r\n for (let i = 0; i < asts.length; ++i) {\r\n res[i] = asts[i].visit(this);\r\n }\r\n return res;\r\n }\r\n\r\n visitChain(ast: Chain, context: any): AST {\r\n return new Chain(ast.span, this.visitAll(ast.expressions));\r\n }\r\n\r\n visitQuote(ast: Quote, context: any): AST {\r\n return new Quote(ast.span, ast.prefix, ast.uninterpretedExpression, ast.location);\r\n }\r\n}","/**\r\n * @license\r\n * Copyright Google Inc. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\nexport const $EOF = 0;\r\nexport const $TAB = 9;\r\nexport const $LF = 10;\r\nexport const $VTAB = 11;\r\nexport const $FF = 12;\r\nexport const $CR = 13;\r\nexport const $SPACE = 32;\r\nexport const $BANG = 33;\r\nexport const $DQ = 34;\r\nexport const $HASH = 35;\r\nexport const $$ = 36;\r\nexport const $PERCENT = 37;\r\nexport const $AMPERSAND = 38;\r\nexport const $SQ = 39;\r\nexport const $LPAREN = 40;\r\nexport const $RPAREN = 41;\r\nexport const $STAR = 42;\r\nexport const $PLUS = 43;\r\nexport const $COMMA = 44;\r\nexport const $MINUS = 45;\r\nexport const $PERIOD = 46;\r\nexport const $SLASH = 47;\r\nexport const $COLON = 58;\r\nexport const $SEMICOLON = 59;\r\nexport const $LT = 60;\r\nexport const $EQ = 61;\r\nexport const $GT = 62;\r\nexport const $QUESTION = 63;\r\n\r\nexport const $0 = 48;\r\nexport const $9 = 57;\r\n\r\nexport const $A = 65;\r\nexport const $E = 69;\r\nexport const $F = 70;\r\nexport const $X = 88;\r\nexport const $Z = 90;\r\n\r\nexport const $LBRACKET = 91;\r\nexport const $BACKSLASH = 92;\r\nexport const $RBRACKET = 93;\r\nexport const $CARET = 94;\r\nexport const $_ = 95;\r\n\r\nexport const $a = 97;\r\nexport const $e = 101;\r\nexport const $f = 102;\r\nexport const $n = 110;\r\nexport const $r = 114;\r\nexport const $t = 116;\r\nexport const $u = 117;\r\nexport const $v = 118;\r\nexport const $x = 120;\r\nexport const $z = 122;\r\n\r\nexport const $LBRACE = 123;\r\nexport const $BAR = 124;\r\nexport const $RBRACE = 125;\r\nexport const $NBSP = 160;\r\n\r\nexport const $PIPE = 124;\r\nexport const $TILDA = 126;\r\nexport const $AT = 64;\r\n\r\nexport const $BT = 96;\r\n\r\nexport function isWhitespace(code: number): boolean {\r\n return (code >= $TAB && code <= $SPACE) || (code == $NBSP);\r\n}\r\n\r\nexport function isDigit(code: number): boolean {\r\n return $0 <= code && code <= $9;\r\n}\r\n\r\nexport function isAsciiLetter(code: number): boolean {\r\n return code >= $a && code <= $z || code >= $A && code <= $Z;\r\n}\r\n\r\nexport function isAsciiHexDigit(code: number): boolean {\r\n return code >= $a && code <= $f || code >= $A && code <= $F || isDigit(code);\r\n}","/**\r\n * @license\r\n * Copyright Google Inc. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\nimport {assertInterpolationSymbols} from './assertions';\r\n\r\nexport class InterpolationConfig {\r\n static fromArray(markers: [string, string]): InterpolationConfig {\r\n if (!markers) {\r\n return DEFAULT_INTERPOLATION_CONFIG;\r\n }\r\n\r\n assertInterpolationSymbols('interpolation', markers);\r\n return new InterpolationConfig(markers[0], markers[1]);\r\n }\r\n\r\n constructor(public start: string, public end: string){};\r\n}\r\n\r\nexport const DEFAULT_INTERPOLATION_CONFIG: InterpolationConfig =\r\n new InterpolationConfig('{{', '}}');","/**\r\n * @license\r\n * Copyright Google Inc. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\nimport * as chars from './chars';\r\nimport {NumberWrapper} from '../facade/lang';\r\n\r\nexport enum TokenType {\r\n Character,\r\n Identifier,\r\n Keyword,\r\n String,\r\n Operator,\r\n Number,\r\n Error\r\n}\r\n\r\nconst KEYWORDS = ['var', 'let', 'null', 'undefined', 'true', 'false', 'if', 'else', 'this'];\r\n\r\nexport class Lexer {\r\n tokenize(text: string): Token[] {\r\n const scanner = new _Scanner(text);\r\n const tokens: Token[] = [];\r\n let token = scanner.scanToken();\r\n while (token != null) {\r\n tokens.push(token);\r\n token = scanner.scanToken();\r\n }\r\n return tokens;\r\n }\r\n}\r\n\r\nexport class Token {\r\n constructor(\r\n public index: number, public type: TokenType, public numValue: number,\r\n public strValue: string) {}\r\n\r\n isCharacter(code: number): boolean {\r\n return this.type == TokenType.Character && this.numValue == code;\r\n }\r\n\r\n isNumber(): boolean { return this.type == TokenType.Number; }\r\n\r\n isString(): boolean { return this.type == TokenType.String; }\r\n\r\n isOperator(operater: string): boolean {\r\n return this.type == TokenType.Operator && this.strValue == operater;\r\n }\r\n\r\n isIdentifier(): boolean { return this.type == TokenType.Identifier; }\r\n\r\n isKeyword(): boolean { return this.type == TokenType.Keyword; }\r\n\r\n isKeywordLet(): boolean { return this.type == TokenType.Keyword && this.strValue == 'let'; }\r\n\r\n isKeywordNull(): boolean { return this.type == TokenType.Keyword && this.strValue == 'null'; }\r\n\r\n isKeywordUndefined(): boolean {\r\n return this.type == TokenType.Keyword && this.strValue == 'undefined';\r\n }\r\n\r\n isKeywordTrue(): boolean { return this.type == TokenType.Keyword && this.strValue == 'true'; }\r\n\r\n isKeywordFalse(): boolean { return this.type == TokenType.Keyword && this.strValue == 'false'; }\r\n\r\n isKeywordThis(): boolean { return this.type == TokenType.Keyword && this.strValue == 'this'; }\r\n\r\n isError(): boolean { return this.type == TokenType.Error; }\r\n\r\n toNumber(): number { return this.type == TokenType.Number ? this.numValue : -1; }\r\n\r\n toString(): string | null {\r\n switch (this.type) {\r\n case TokenType.Character:\r\n case TokenType.Identifier:\r\n case TokenType.Keyword:\r\n case TokenType.Operator:\r\n case TokenType.String:\r\n case TokenType.Error:\r\n return this.strValue;\r\n case TokenType.Number:\r\n return this.numValue.toString();\r\n default:\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nfunction newCharacterToken(index: number, code: number): Token {\r\n return new Token(index, TokenType.Character, code, String.fromCharCode(code));\r\n}\r\n\r\nfunction newIdentifierToken(index: number, text: string): Token {\r\n return new Token(index, TokenType.Identifier, 0, text);\r\n}\r\n\r\nfunction newKeywordToken(index: number, text: string): Token {\r\n return new Token(index, TokenType.Keyword, 0, text);\r\n}\r\n\r\nfunction newOperatorToken(index: number, text: string): Token {\r\n return new Token(index, TokenType.Operator, 0, text);\r\n}\r\n\r\nfunction newStringToken(index: number, text: string): Token {\r\n return new Token(index, TokenType.String, 0, text);\r\n}\r\n\r\nfunction newNumberToken(index: number, n: number): Token {\r\n return new Token(index, TokenType.Number, n, '');\r\n}\r\n\r\nfunction newErrorToken(index: number, message: string): Token {\r\n return new Token(index, TokenType.Error, 0, message);\r\n}\r\n\r\nexport const EOF: Token = new Token(-1, TokenType.Character, 0, '');\r\n\r\nclass _Scanner {\r\n length: number;\r\n peek: number = 0;\r\n index: number = -1;\r\n\r\n constructor(public input: string) {\r\n this.length = input.length;\r\n this.advance();\r\n }\r\n\r\n advance() {\r\n this.peek = ++this.index >= this.length ? chars.$EOF : this.input.charCodeAt(this.index);\r\n }\r\n\r\n scanToken(): Token | null {\r\n const input = this.input, length = this.length;\r\n let peek = this.peek, index = this.index;\r\n\r\n // Skip whitespace.\r\n while (peek <= chars.$SPACE) {\r\n if (++index >= length) {\r\n peek = chars.$EOF;\r\n break;\r\n } else {\r\n peek = input.charCodeAt(index);\r\n }\r\n }\r\n\r\n this.peek = peek;\r\n this.index = index;\r\n\r\n if (index >= length) {\r\n return null;\r\n }\r\n\r\n // Handle identifiers and numbers.\r\n if (isIdentifierStart(peek)) return this.scanIdentifier();\r\n if (chars.isDigit(peek)) return this.scanNumber(index);\r\n\r\n const start: number = index;\r\n switch (peek) {\r\n case chars.$PERIOD:\r\n this.advance();\r\n return chars.isDigit(this.peek) ? this.scanNumber(start) :\r\n newCharacterToken(start, chars.$PERIOD);\r\n case chars.$LPAREN:\r\n case chars.$RPAREN:\r\n case chars.$LBRACE:\r\n case chars.$RBRACE:\r\n case chars.$LBRACKET:\r\n case chars.$RBRACKET:\r\n case chars.$COMMA:\r\n case chars.$COLON:\r\n case chars.$SEMICOLON:\r\n return this.scanCharacter(start, peek);\r\n case chars.$SQ:\r\n case chars.$DQ:\r\n return this.scanString();\r\n case chars.$HASH:\r\n case chars.$PLUS:\r\n case chars.$MINUS:\r\n case chars.$STAR:\r\n case chars.$SLASH:\r\n case chars.$PERCENT:\r\n case chars.$CARET:\r\n return this.scanOperator(start, String.fromCharCode(peek));\r\n case chars.$QUESTION:\r\n return this.scanComplexOperator(start, '?', chars.$PERIOD, '.');\r\n case chars.$LT:\r\n case chars.$GT:\r\n return this.scanComplexOperator(start, String.fromCharCode(peek), chars.$EQ, '=');\r\n case chars.$BANG:\r\n case chars.$EQ:\r\n return this.scanComplexOperator(\r\n start, String.fromCharCode(peek), chars.$EQ, '=', chars.$EQ, '=');\r\n case chars.$AMPERSAND:\r\n return this.scanComplexOperator(start, '&', chars.$AMPERSAND, '&');\r\n case chars.$BAR:\r\n return this.scanComplexOperator(start, '|', chars.$BAR, '|');\r\n case chars.$NBSP:\r\n while (chars.isWhitespace(this.peek)) this.advance();\r\n return this.scanToken();\r\n }\r\n\r\n this.advance();\r\n return this.error(`Unexpected character [${String.fromCharCode(peek)}]`, 0);\r\n }\r\n\r\n scanCharacter(start: number, code: number): Token {\r\n this.advance();\r\n return newCharacterToken(start, code);\r\n }\r\n\r\n\r\n scanOperator(start: number, str: string): Token {\r\n this.advance();\r\n return newOperatorToken(start, str);\r\n }\r\n\r\n /**\r\n * Tokenize a 2/3 char long operator\r\n *\r\n * @param start start index in the expression\r\n * @param one first symbol (always part of the operator)\r\n * @param twoCode code point for the second symbol\r\n * @param two second symbol (part of the operator when the second code point matches)\r\n * @param threeCode code point for the third symbol\r\n * @param three third symbol (part of the operator when provided and matches source expression)\r\n * @returns {Token}\r\n */\r\n scanComplexOperator(\r\n start: number, one: string, twoCode: number, two: string, threeCode?: number,\r\n three?: string): Token {\r\n this.advance();\r\n let str: string = one;\r\n if (this.peek == twoCode) {\r\n this.advance();\r\n str += two;\r\n }\r\n if (threeCode != null && this.peek == threeCode) {\r\n this.advance();\r\n str += three;\r\n }\r\n return newOperatorToken(start, str);\r\n }\r\n\r\n scanIdentifier(): Token {\r\n const start: number = this.index;\r\n this.advance();\r\n while (isIdentifierPart(this.peek)) this.advance();\r\n const str: string = this.input.substring(start, this.index);\r\n return KEYWORDS.indexOf(str) > -1 ? newKeywordToken(start, str) :\r\n newIdentifierToken(start, str);\r\n }\r\n\r\n scanNumber(start: number): Token {\r\n let simple: boolean = (this.index === start);\r\n this.advance(); // Skip initial digit.\r\n while (true) {\r\n if (chars.isDigit(this.peek)) {\r\n // Do nothing.\r\n } else if (this.peek == chars.$PERIOD) {\r\n simple = false;\r\n } else if (isExponentStart(this.peek)) {\r\n this.advance();\r\n if (isExponentSign(this.peek)) this.advance();\r\n if (!chars.isDigit(this.peek)) return this.error('Invalid exponent', -1);\r\n simple = false;\r\n } else {\r\n break;\r\n }\r\n this.advance();\r\n }\r\n const str: string = this.input.substring(start, this.index);\r\n const value: number = simple ? NumberWrapper.parseIntAutoRadix(str) : parseFloat(str);\r\n return newNumberToken(start, value);\r\n }\r\n\r\n scanString(): Token {\r\n const start: number = this.index;\r\n const quote: number = this.peek;\r\n this.advance(); // Skip initial quote.\r\n\r\n let buffer: string = '';\r\n let marker: number = this.index;\r\n const input: string = this.input;\r\n\r\n while (this.peek != quote) {\r\n if (this.peek == chars.$BACKSLASH) {\r\n buffer += input.substring(marker, this.index);\r\n this.advance();\r\n let unescapedCode: number;\r\n // Workaround for TS2.1-introduced type strictness\r\n this.peek = this.peek;\r\n if (this.peek == chars.$u) {\r\n // 4 character hex code for unicode character.\r\n const hex: string = input.substring(this.index + 1, this.index + 5);\r\n if (/^[0-9a-f]+$/i.test(hex)) {\r\n unescapedCode = parseInt(hex, 16);\r\n } else {\r\n return this.error(`Invalid unicode escape [\\\\u${hex}]`, 0);\r\n }\r\n for (let i: number = 0; i < 5; i++) {\r\n this.advance();\r\n }\r\n } else {\r\n unescapedCode = unescape(this.peek);\r\n this.advance();\r\n }\r\n buffer += String.fromCharCode(unescapedCode);\r\n marker = this.index;\r\n } else if (this.peek == chars.$EOF) {\r\n return this.error('Unterminated quote', 0);\r\n } else {\r\n this.advance();\r\n }\r\n }\r\n\r\n const last: string = input.substring(marker, this.index);\r\n this.advance(); // Skip terminating quote.\r\n\r\n return newStringToken(start, buffer + last);\r\n }\r\n\r\n error(message: string, offset: number): Token {\r\n const position: number = this.index + offset;\r\n return newErrorToken(\r\n position, `Lexer Error: ${message} at column ${position} in expression [${this.input}]`);\r\n }\r\n}\r\n\r\nfunction isIdentifierStart(code: number): boolean {\r\n return (chars.$a <= code && code <= chars.$z) || (chars.$A <= code && code <= chars.$Z) ||\r\n (code == chars.$_) || (code == chars.$$);\r\n}\r\n\r\nexport function isIdentifier(input: string): boolean {\r\n if (input.length == 0) return false;\r\n const scanner = new _Scanner(input);\r\n if (!isIdentifierStart(scanner.peek)) return false;\r\n scanner.advance();\r\n while (scanner.peek !== chars.$EOF) {\r\n if (!isIdentifierPart(scanner.peek)) return false;\r\n scanner.advance();\r\n }\r\n return true;\r\n}\r\n\r\nfunction isIdentifierPart(code: number): boolean {\r\n return chars.isAsciiLetter(code) || chars.isDigit(code) || (code == chars.$_) ||\r\n (code == chars.$$);\r\n}\r\n\r\nfunction isExponentStart(code: number): boolean {\r\n return code == chars.$e || code == chars.$E;\r\n}\r\n\r\nfunction isExponentSign(code: number): boolean {\r\n return code == chars.$MINUS || code == chars.$PLUS;\r\n}\r\n\r\nexport function isQuote(code: number): boolean {\r\n return code === chars.$SQ || code === chars.$DQ || code === chars.$BT;\r\n}\r\n\r\nfunction unescape(code: number): number {\r\n switch (code) {\r\n case chars.$n:\r\n return chars.$LF;\r\n case chars.$f:\r\n return chars.$FF;\r\n case chars.$r:\r\n return chars.$CR;\r\n case chars.$t:\r\n return chars.$TAB;\r\n case chars.$v:\r\n return chars.$VTAB;\r\n default:\r\n return code;\r\n }\r\n}","/**\r\n * @license\r\n * Copyright Google Inc. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\nimport * as chars from './chars';\r\nimport {escapeRegExp, isBlank, isPresent} from '../facade/lang';\r\nimport {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from './interpolation-config';\r\n\r\nimport {AST, ASTWithSource, AstVisitor, Binary, BindingPipe, Chain, Conditional, EmptyExpr, FunctionCall, ImplicitReceiver, Interpolation, KeyedRead, KeyedWrite, LiteralArray, LiteralMap, LiteralPrimitive, MethodCall, ParseSpan, ParserError, PrefixNot, PropertyRead, PropertyWrite, Quote, SafeMethodCall, SafePropertyRead, TemplateBinding} from './ast';\r\nimport {EOF, Lexer, Token, TokenType, isIdentifier, isQuote} from './lexer';\r\n\r\n\r\nexport class SplitInterpolation {\r\n constructor(public strings: string[], public expressions: string[], public offsets: number[]) {}\r\n}\r\n\r\nexport class TemplateBindingParseResult {\r\n constructor(\r\n public templateBindings: TemplateBinding[], public warnings: string[],\r\n public errors: ParserError[]) {}\r\n}\r\n\r\nfunction _createInterpolateRegExp(config: InterpolationConfig): RegExp {\r\n const pattern = escapeRegExp(config.start) + '([\\\\s\\\\S]*?)' + escapeRegExp(config.end);\r\n return new RegExp(pattern, 'g');\r\n}\r\n\r\nexport class Parser {\r\n private errors: ParserError[] = [];\r\n\r\n constructor(private _lexer: Lexer) {}\r\n\r\n parseAction(\r\n input: string, location: any,\r\n interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): ASTWithSource {\r\n this._checkNoInterpolation(input, location, interpolationConfig);\r\n const sourceToLex = this._stripComments(input);\r\n const tokens = this._lexer.tokenize(this._stripComments(input));\r\n const ast = new _ParseAST(\r\n input, location, tokens, sourceToLex.length, true, this.errors,\r\n input.length - sourceToLex.length)\r\n .parseChain();\r\n return new ASTWithSource(ast, input, location, this.errors);\r\n }\r\n\r\n parseBinding(\r\n input: string, location: any,\r\n interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): ASTWithSource {\r\n const ast = this._parseBindingAst(input, location, interpolationConfig);\r\n return new ASTWithSource(ast, input, location, this.errors);\r\n }\r\n\r\n parseSimpleBinding(\r\n input: string, location: string,\r\n interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): ASTWithSource {\r\n const ast = this._parseBindingAst(input, location, interpolationConfig);\r\n const errors = SimpleExpressionChecker.check(ast);\r\n if (errors.length > 0) {\r\n this._reportError(\r\n `Host binding expression cannot contain ${errors.join(' ')}`, input, location);\r\n }\r\n return new ASTWithSource(ast, input, location, this.errors);\r\n }\r\n\r\n private _reportError(message: string, input: string, errLocation: string, ctxLocation?: any) {\r\n this.errors.push(new ParserError(message, input, errLocation, ctxLocation));\r\n }\r\n\r\n private _parseBindingAst(\r\n input: string, location: string, interpolationConfig: InterpolationConfig): AST {\r\n // Quotes expressions use 3rd-party expression language. We don't want to use\r\n // our lexer or parser for that, so we check for that ahead of time.\r\n const quote = this._parseQuote(input, location);\r\n\r\n if (isPresent(quote)) {\r\n return quote;\r\n }\r\n\r\n this._checkNoInterpolation(input, location, interpolationConfig);\r\n const sourceToLex = this._stripComments(input);\r\n const tokens = this._lexer.tokenize(sourceToLex);\r\n return new _ParseAST(\r\n input, location, tokens, sourceToLex.length, false, this.errors,\r\n input.length - sourceToLex.length)\r\n .parseChain();\r\n }\r\n\r\n private _parseQuote(input: string, location: any): AST {\r\n if (isBlank(input)) throw new Error('Quote expression cannot be blank');\r\n const prefixSeparatorIndex = input.indexOf(':');\r\n if (prefixSeparatorIndex == -1) throw new Error('Quote expression requires a prefix');\r\n const prefix = input.substring(0, prefixSeparatorIndex).trim();\r\n if (!isIdentifier(prefix)) throw new Error('Invalid quote prefix');\r\n const uninterpretedExpression = input.substring(prefixSeparatorIndex + 1);\r\n return new Quote(new ParseSpan(0, input.length), prefix, uninterpretedExpression, location);\r\n }\r\n\r\n parseTemplateBindings(prefixToken: string, input: string, location: any):\r\n TemplateBindingParseResult {\r\n const tokens = this._lexer.tokenize(input);\r\n if (prefixToken) {\r\n // Prefix the tokens with the tokens from prefixToken but have them take no space (0 index).\r\n const prefixTokens = this._lexer.tokenize(prefixToken).map(t => {\r\n t.index = 0;\r\n return t;\r\n });\r\n tokens.unshift(...prefixTokens);\r\n }\r\n return new _ParseAST(input, location, tokens, input.length, false, this.errors, 0)\r\n .parseTemplateBindings();\r\n }\r\n\r\n parseInterpolation(\r\n input: string, location: any,\r\n interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): ASTWithSource {\r\n const split = this.splitInterpolation(input, location, interpolationConfig);\r\n if (split == null) throw new Error(`No interpolation found in ${input} at ${location}`);\r\n\r\n const expressions: AST[] = [];\r\n\r\n for (let i = 0; i < split.expressions.length; ++i) {\r\n const expressionText = split.expressions[i];\r\n const sourceToLex = this._stripComments(expressionText);\r\n const tokens = this._lexer.tokenize(this._stripComments(split.expressions[i]));\r\n const ast = new _ParseAST(\r\n input, location, tokens, sourceToLex.length, false, this.errors,\r\n split.offsets[i] + (expressionText.length - sourceToLex.length))\r\n .parseChain();\r\n expressions.push(ast);\r\n }\r\n\r\n return new ASTWithSource(\r\n new Interpolation(\r\n new ParseSpan(0, isBlank(input) ? 0 : input.length), split.strings, expressions),\r\n input, location, this.errors);\r\n }\r\n\r\n splitInterpolation(\r\n input: string, location: string,\r\n interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): SplitInterpolation {\r\n const regexp = _createInterpolateRegExp(interpolationConfig);\r\n const parts = input.split(regexp);\r\n if (parts.length <= 1) {\r\n throw new Error(`Expected interpolation (${interpolationConfig.start}...${interpolationConfig.end}) in ${input} at ${location}`);\r\n }\r\n const strings: string[] = [];\r\n const expressions: string[] = [];\r\n const offsets: number[] = [];\r\n let offset = 0;\r\n for (let i = 0; i < parts.length; i++) {\r\n const part: string = parts[i];\r\n if (i % 2 === 0) {\r\n // fixed string\r\n strings.push(part);\r\n offset += part.length;\r\n } else if (part.trim().length > 0) {\r\n offset += interpolationConfig.start.length;\r\n expressions.push(part);\r\n offsets.push(offset);\r\n offset += part.length + interpolationConfig.end.length;\r\n } else {\r\n this._reportError(\r\n 'Blank expressions are not allowed in interpolated strings', input,\r\n `at column ${this._findInterpolationErrorColumn(parts, i, interpolationConfig)} in`,\r\n location);\r\n expressions.push('$implict');\r\n offsets.push(offset);\r\n }\r\n }\r\n return new SplitInterpolation(strings, expressions, offsets);\r\n }\r\n\r\n wrapLiteralPrimitive(input: string, location: any): ASTWithSource {\r\n return new ASTWithSource(\r\n new LiteralPrimitive(new ParseSpan(0, isBlank(input) ? 0 : input.length), input), input,\r\n location, this.errors);\r\n }\r\n\r\n private _stripComments(input: string): string {\r\n const i = this._commentStart(input);\r\n return isPresent(i) ? input.substring(0, i).trim() : input;\r\n }\r\n\r\n private _commentStart(input: string): number | null {\r\n let outerQuote: number | null = null;\r\n for (let i = 0; i < input.length - 1; i++) {\r\n const char = input.charCodeAt(i);\r\n const nextChar = input.charCodeAt(i + 1);\r\n\r\n if (char === chars.$SLASH && nextChar == chars.$SLASH && isBlank(outerQuote)) return i;\r\n\r\n if (outerQuote === char) {\r\n outerQuote = null;\r\n } else if (isBlank(outerQuote) && isQuote(char)) {\r\n outerQuote = char;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _checkNoInterpolation(\r\n input: string, location: any, interpolationConfig: InterpolationConfig): void {\r\n const regexp = _createInterpolateRegExp(interpolationConfig);\r\n const parts = input.split(regexp);\r\n if (parts.length > 1) {\r\n this._reportError(\r\n `Got interpolation (${interpolationConfig.start}${interpolationConfig.end}) where expression was expected`,\r\n input,\r\n `at column ${this._findInterpolationErrorColumn(parts, 1, interpolationConfig)} in`,\r\n location);\r\n }\r\n }\r\n\r\n private _findInterpolationErrorColumn(\r\n parts: string[], partInErrIdx: number, interpolationConfig: InterpolationConfig): number {\r\n let errLocation = '';\r\n for (let j = 0; j < partInErrIdx; j++) {\r\n errLocation += j % 2 === 0 ?\r\n parts[j] :\r\n `${interpolationConfig.start}${parts[j]}${interpolationConfig.end}`;\r\n }\r\n\r\n return errLocation.length;\r\n }\r\n}\r\n\r\nexport class _ParseAST {\r\n private rparensExpected = 0;\r\n private rbracketsExpected = 0;\r\n private rbracesExpected = 0;\r\n\r\n index: number = 0;\r\n\r\n constructor(\r\n public input: string, public location: any, public tokens: Token[],\r\n public inputLength: number, public parseAction: boolean, private errors: ParserError[],\r\n private offset: number) {}\r\n\r\n peek(offset: number): Token {\r\n const i = this.index + offset;\r\n return i < this.tokens.length ? this.tokens[i] : EOF;\r\n }\r\n\r\n get next(): Token { return this.peek(0); }\r\n\r\n get inputIndex(): number {\r\n return (this.index < this.tokens.length) ? this.next.index + this.offset :\r\n this.inputLength + this.offset;\r\n }\r\n\r\n span(start: number) { return new ParseSpan(start, this.inputIndex); }\r\n\r\n advance() { this.index++; }\r\n\r\n optionalCharacter(code: number): boolean {\r\n if (this.next.isCharacter(code)) {\r\n this.advance();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n peekKeywordLet(): boolean { return this.next.isKeywordLet(); }\r\n\r\n expectCharacter(code: number) {\r\n if (this.optionalCharacter(code)) return;\r\n this.error(`Missing expected ${String.fromCharCode(code)}`);\r\n }\r\n\r\n optionalOperator(op: string): boolean {\r\n if (this.next.isOperator(op)) {\r\n this.advance();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n expectOperator(operator: string) {\r\n if (this.optionalOperator(operator)) return;\r\n this.error(`Missing expected operator ${operator}`);\r\n }\r\n\r\n expectIdentifierOrKeyword(): string {\r\n const n = this.next;\r\n if (!n.isIdentifier() && !n.isKeyword()) {\r\n this.error(`Unexpected token ${n}, expected identifier or keyword`);\r\n return '';\r\n }\r\n this.advance();\r\n const nStr = n.toString();\r\n if (nStr === null) {\r\n throw new Error('Unexpected null token');\r\n }\r\n return nStr;\r\n }\r\n\r\n expectIdentifierOrKeywordOrString(): string {\r\n const n = this.next;\r\n if (!n.isIdentifier() && !n.isKeyword() && !n.isString()) {\r\n this.error(`Unexpected token ${n}, expected identifier, keyword, or string`);\r\n return '';\r\n }\r\n this.advance();\r\n const nStr = n.toString();\r\n if (nStr === null) {\r\n throw new Error('Unexpected null token');\r\n }\r\n return nStr;\r\n }\r\n\r\n parseChain(): AST {\r\n const exprs: AST[] = [];\r\n const start = this.inputIndex;\r\n while (this.index < this.tokens.length) {\r\n const expr = this.parsePipe();\r\n exprs.push(expr);\r\n\r\n if (this.optionalCharacter(chars.$SEMICOLON)) {\r\n if (!this.parseAction) {\r\n this.error('Binding expression cannot contain chained expression');\r\n }\r\n while (this.optionalCharacter(chars.$SEMICOLON)) {\r\n } // read all semicolons\r\n } else if (this.index < this.tokens.length) {\r\n this.error(`Unexpected token '${this.next}'`);\r\n }\r\n }\r\n if (exprs.length == 0) return new EmptyExpr(this.span(start));\r\n if (exprs.length == 1) return exprs[0];\r\n return new Chain(this.span(start), exprs);\r\n }\r\n\r\n parsePipe(): AST {\r\n let result = this.parseExpression();\r\n if (this.optionalOperator('|')) {\r\n if (this.parseAction) {\r\n this.error('Cannot have a pipe in an action expression');\r\n }\r\n\r\n do {\r\n const name = this.expectIdentifierOrKeyword();\r\n const args: AST[] = [];\r\n while (this.optionalCharacter(chars.$COLON)) {\r\n args.push(this.parseExpression());\r\n }\r\n result = new BindingPipe(this.span(result.span.start), result, name, args);\r\n } while (this.optionalOperator('|'));\r\n }\r\n\r\n return result;\r\n }\r\n\r\n parseExpression(): AST { return this.parseConditional(); }\r\n\r\n parseConditional(): AST {\r\n const start = this.inputIndex;\r\n const result = this.parseLogicalOr();\r\n\r\n if (this.optionalOperator('?')) {\r\n const yes = this.parsePipe();\r\n let no: AST;\r\n if (!this.optionalCharacter(chars.$COLON)) {\r\n const end = this.inputIndex;\r\n const expression = this.input.substring(start, end);\r\n this.error(`Conditional expression ${expression} requires all 3 expressions`);\r\n no = new EmptyExpr(this.span(start));\r\n } else {\r\n no = this.parsePipe();\r\n }\r\n return new Conditional(this.span(start), result, yes, no);\r\n } else {\r\n return result;\r\n }\r\n }\r\n\r\n parseLogicalOr(): AST {\r\n // '||'\r\n let result = this.parseLogicalAnd();\r\n while (this.optionalOperator('||')) {\r\n const right = this.parseLogicalAnd();\r\n result = new Binary(this.span(result.span.start), '||', result, right);\r\n }\r\n return result;\r\n }\r\n\r\n parseLogicalAnd(): AST {\r\n // '&&'\r\n let result = this.parseEquality();\r\n while (this.optionalOperator('&&')) {\r\n const right = this.parseEquality();\r\n result = new Binary(this.span(result.span.start), '&&', result, right);\r\n }\r\n return result;\r\n }\r\n\r\n parseEquality(): AST {\r\n // '==','!=','===','!=='\r\n let result = this.parseRelational();\r\n while (this.next.type == TokenType.Operator) {\r\n const operator = this.next.strValue;\r\n switch (operator) {\r\n case '==':\r\n case '===':\r\n case '!=':\r\n case '!==':\r\n this.advance();\r\n const right = this.parseRelational();\r\n result = new Binary(this.span(result.span.start), operator, result, right);\r\n continue;\r\n }\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n parseRelational(): AST {\r\n // '<', '>', '<=', '>='\r\n let result = this.parseAdditive();\r\n while (this.next.type == TokenType.Operator) {\r\n const operator = this.next.strValue;\r\n switch (operator) {\r\n case '<':\r\n case '>':\r\n case '<=':\r\n case '>=':\r\n this.advance();\r\n const right = this.parseAdditive();\r\n result = new Binary(this.span(result.span.start), operator, result, right);\r\n continue;\r\n }\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n parseAdditive(): AST {\r\n // '+', '-'\r\n let result = this.parseMultiplicative();\r\n while (this.next.type == TokenType.Operator) {\r\n const operator = this.next.strValue;\r\n switch (operator) {\r\n case '+':\r\n case '-':\r\n this.advance();\r\n let right = this.parseMultiplicative();\r\n result = new Binary(this.span(result.span.start), operator, result, right);\r\n continue;\r\n }\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n parseMultiplicative(): AST {\r\n // '*', '%', '/'\r\n let result = this.parsePrefix();\r\n while (this.next.type == TokenType.Operator) {\r\n const operator = this.next.strValue;\r\n switch (operator) {\r\n case '*':\r\n case '%':\r\n case '/':\r\n this.advance();\r\n let right = this.parsePrefix();\r\n result = new Binary(this.span(result.span.start), operator, result, right);\r\n continue;\r\n }\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n parsePrefix(): AST {\r\n if (this.next.type == TokenType.Operator) {\r\n const start = this.inputIndex;\r\n const operator = this.next.strValue;\r\n let result: AST;\r\n switch (operator) {\r\n case '+':\r\n this.advance();\r\n return this.parsePrefix();\r\n case '-':\r\n this.advance();\r\n result = this.parsePrefix();\r\n return new Binary(\r\n this.span(start), operator, new LiteralPrimitive(new ParseSpan(start, start), 0),\r\n result);\r\n case '!':\r\n this.advance();\r\n result = this.parsePrefix();\r\n return new PrefixNot(this.span(start), result);\r\n }\r\n }\r\n return this.parseCallChain();\r\n }\r\n\r\n parseCallChain(): AST {\r\n let result = this.parsePrimary();\r\n while (true) {\r\n if (this.optionalCharacter(chars.$PERIOD)) {\r\n result = this.parseAccessMemberOrMethodCall(result, false);\r\n\r\n } else if (this.optionalOperator('?.')) {\r\n result = this.parseAccessMemberOrMethodCall(result, true);\r\n\r\n } else if (this.optionalCharacter(chars.$LBRACKET)) {\r\n this.rbracketsExpected++;\r\n const key = this.parsePipe();\r\n this.rbracketsExpected--;\r\n this.expectCharacter(chars.$RBRACKET);\r\n if (this.optionalOperator('=')) {\r\n const value = this.parseConditional();\r\n result = new KeyedWrite(this.span(result.span.start), result, key, value);\r\n } else {\r\n result = new KeyedRead(this.span(result.span.start), result, key);\r\n }\r\n\r\n } else if (this.optionalCharacter(chars.$LPAREN)) {\r\n this.rparensExpected++;\r\n const args = this.parseCallArguments();\r\n this.rparensExpected--;\r\n this.expectCharacter(chars.$RPAREN);\r\n result = new FunctionCall(this.span(result.span.start), result, args);\r\n\r\n } else {\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n parsePrimary(): AST {\r\n const start = this.inputIndex;\r\n if (this.optionalCharacter(chars.$LPAREN)) {\r\n this.rparensExpected++;\r\n const result = this.parsePipe();\r\n this.rparensExpected--;\r\n this.expectCharacter(chars.$RPAREN);\r\n return result;\r\n\r\n } else if (this.next.isKeywordNull()) {\r\n this.advance();\r\n return new LiteralPrimitive(this.span(start), null);\r\n\r\n } else if (this.next.isKeywordUndefined()) {\r\n this.advance();\r\n return new LiteralPrimitive(this.span(start), void 0);\r\n\r\n } else if (this.next.isKeywordTrue()) {\r\n this.advance();\r\n return new LiteralPrimitive(this.span(start), true);\r\n\r\n } else if (this.next.isKeywordFalse()) {\r\n this.advance();\r\n return new LiteralPrimitive(this.span(start), false);\r\n\r\n } else if (this.next.isKeywordThis()) {\r\n this.advance();\r\n return new ImplicitReceiver(this.span(start));\r\n\r\n } else if (this.optionalCharacter(chars.$LBRACKET)) {\r\n this.rbracketsExpected++;\r\n const elements = this.parseExpressionList(chars.$RBRACKET);\r\n this.rbracketsExpected--;\r\n this.expectCharacter(chars.$RBRACKET);\r\n return new LiteralArray(this.span(start), elements);\r\n\r\n } else if (this.next.isCharacter(chars.$LBRACE)) {\r\n return this.parseLiteralMap();\r\n\r\n } else if (this.next.isIdentifier()) {\r\n return this.parseAccessMemberOrMethodCall(new ImplicitReceiver(this.span(start)), false);\r\n\r\n } else if (this.next.isNumber()) {\r\n const value = this.next.toNumber();\r\n this.advance();\r\n return new LiteralPrimitive(this.span(start), value);\r\n\r\n } else if (this.next.isString()) {\r\n const literalValue = this.next.toString();\r\n this.advance();\r\n return new LiteralPrimitive(this.span(start), literalValue);\r\n\r\n } else if (this.index >= this.tokens.length) {\r\n this.error(`Unexpected end of expression: ${this.input}`);\r\n return new EmptyExpr(this.span(start));\r\n } else {\r\n this.error(`Unexpected token ${this.next}`);\r\n return new EmptyExpr(this.span(start));\r\n }\r\n }\r\n\r\n parseExpressionList(terminator: number): AST[] {\r\n const result: AST[] = [];\r\n if (!this.next.isCharacter(terminator)) {\r\n do {\r\n result.push(this.parsePipe());\r\n } while (this.optionalCharacter(chars.$COMMA));\r\n }\r\n return result;\r\n }\r\n\r\n parseLiteralMap(): LiteralMap {\r\n const keys: string[] = [];\r\n const values: AST[] = [];\r\n const start = this.inputIndex;\r\n this.expectCharacter(chars.$LBRACE);\r\n if (!this.optionalCharacter(chars.$RBRACE)) {\r\n this.rbracesExpected++;\r\n do {\r\n const key = this.expectIdentifierOrKeywordOrString();\r\n keys.push(key);\r\n this.expectCharacter(chars.$COLON);\r\n values.push(this.parsePipe());\r\n } while (this.optionalCharacter(chars.$COMMA));\r\n this.rbracesExpected--;\r\n this.expectCharacter(chars.$RBRACE);\r\n }\r\n return new LiteralMap(this.span(start), keys, values);\r\n }\r\n\r\n parseAccessMemberOrMethodCall(receiver: AST, isSafe: boolean = false): AST {\r\n const start = receiver.span.start;\r\n const id = this.expectIdentifierOrKeyword();\r\n\r\n if (this.optionalCharacter(chars.$LPAREN)) {\r\n this.rparensExpected++;\r\n const args = this.parseCallArguments();\r\n this.expectCharacter(chars.$RPAREN);\r\n this.rparensExpected--;\r\n const span = this.span(start);\r\n return isSafe ? new SafeMethodCall(span, receiver, id, args) :\r\n new MethodCall(span, receiver, id, args);\r\n\r\n } else {\r\n if (isSafe) {\r\n if (this.optionalOperator('=')) {\r\n this.error('The \\'?.\\' operator cannot be used in the assignment');\r\n return new EmptyExpr(this.span(start));\r\n } else {\r\n return new SafePropertyRead(this.span(start), receiver, id);\r\n }\r\n } else {\r\n if (this.optionalOperator('=')) {\r\n if (!this.parseAction) {\r\n this.error('Bindings cannot contain assignments');\r\n return new EmptyExpr(this.span(start));\r\n }\r\n\r\n const value = this.parseConditional();\r\n return new PropertyWrite(this.span(start), receiver, id, value);\r\n } else {\r\n return new PropertyRead(this.span(start), receiver, id);\r\n }\r\n }\r\n }\r\n }\r\n\r\n parseCallArguments(): BindingPipe[] {\r\n if (this.next.isCharacter(chars.$RPAREN)) return [];\r\n const positionals: AST[] = [];\r\n do {\r\n positionals.push(this.parsePipe());\r\n } while (this.optionalCharacter(chars.$COMMA));\r\n return positionals as BindingPipe[];\r\n }\r\n\r\n /**\r\n * An identifier, a keyword, a string with an optional `-` inbetween.\r\n */\r\n expectTemplateBindingKey(): string {\r\n let result = '';\r\n let operatorFound = false;\r\n do {\r\n result += this.expectIdentifierOrKeywordOrString();\r\n operatorFound = this.optionalOperator('-');\r\n if (operatorFound) {\r\n result += '-';\r\n }\r\n } while (operatorFound);\r\n\r\n return result.toString();\r\n }\r\n\r\n parseTemplateBindings(): TemplateBindingParseResult {\r\n const bindings: TemplateBinding[] = [];\r\n let prefix!: string;\r\n const warnings: string[] = [];\r\n while (this.index < this.tokens.length) {\r\n const start = this.inputIndex;\r\n const keyIsVar: boolean = this.peekKeywordLet();\r\n if (keyIsVar) {\r\n this.advance();\r\n }\r\n let key = this.expectTemplateBindingKey();\r\n if (!keyIsVar) {\r\n if (prefix == null) {\r\n prefix = key;\r\n } else {\r\n key = prefix + key[0].toUpperCase() + key.substring(1);\r\n }\r\n }\r\n this.optionalCharacter(chars.$COLON);\r\n let name: string | null = null;\r\n let expression: ASTWithSource | null = null;\r\n if (keyIsVar) {\r\n if (this.optionalOperator('=')) {\r\n name = this.expectTemplateBindingKey();\r\n } else {\r\n name = '\\$implicit';\r\n }\r\n } else if (this.next !== EOF && !this.peekKeywordLet()) {\r\n const start = this.inputIndex;\r\n const ast = this.parsePipe();\r\n const source = this.input.substring(start - this.offset, this.inputIndex - this.offset);\r\n expression = new ASTWithSource(ast, source, this.location, this.errors);\r\n }\r\n if (name === null) {\r\n throw new Error('Internal error: name is not defined after parsing template bindings');\r\n }\r\n if (expression === null) {\r\n throw new Error('Internal error: expression is not defined after parsing template bindings');\r\n }\r\n bindings.push(new TemplateBinding(this.span(start), key, keyIsVar, name, expression));\r\n if (!this.optionalCharacter(chars.$SEMICOLON)) {\r\n this.optionalCharacter(chars.$COMMA);\r\n }\r\n }\r\n return new TemplateBindingParseResult(bindings, warnings, this.errors);\r\n }\r\n\r\n error(message: string, index?: number) {\r\n this.errors.push(new ParserError(message, this.input, this.locationText(index), this.location));\r\n this.skip();\r\n }\r\n\r\n private locationText(index?: number | null) {\r\n if (isBlank(index)) index = this.index;\r\n return (index < this.tokens.length) ? `at column ${this.tokens[index].index + 1} in` :\r\n `at the end of the expression`;\r\n }\r\n\r\n // Error recovery should skip tokens until it encounters a recovery point. skip() treats\r\n // the end of input and a ';' as unconditionally a recovery point. It also treats ')',\r\n // '}' and ']' as conditional recovery points if one of calling productions is expecting\r\n // one of these symbols. This allows skip() to recover from errors such as '(a.) + 1' allowing\r\n // more of the AST to be retained (it doesn't skip any tokens as the ')' is retained because\r\n // of the '(' begins an '(' <expr> ')' production). The recovery points of grouping symbols\r\n // must be conditional as they must be skipped if none of the calling productions are not\r\n // expecting the closing token else we will never make progress in the case of an\r\n // extraneous group closing symbol (such as a stray ')'). This is not the case for ';' because\r\n // parseChain() is always the root production and it expects a ';'.\r\n\r\n // If a production expects one of these token it increments the corresponding nesting count,\r\n // and then decrements it just prior to checking if the token is in the input.\r\n private skip() {\r\n let n = this.next;\r\n while (this.index < this.tokens.length && !n.isCharacter(chars.$SEMICOLON) &&\r\n (this.rparensExpected <= 0 || !n.isCharacter(chars.$RPAREN)) &&\r\n (this.rbracesExpected <= 0 || !n.isCharacter(chars.$RBRACE)) &&\r\n (this.rbracketsExpected <= 0 || !n.isCharacter(chars.$RBRACKET))) {\r\n if (this.next.isError()) {\r\n this.errors.push(\r\n new ParserError(this.next.toString()!, this.input, this.locationText(), this.location));\r\n }\r\n this.advance();\r\n n = this.next;\r\n }\r\n }\r\n}\r\n\r\nclass SimpleExpressionChecker implements AstVisitor {\r\n static check(ast: AST): string[] {\r\n const s = new SimpleExpressionChecker();\r\n ast.visit(s);\r\n return s.errors;\r\n }\r\n\r\n errors: string[] = [];\r\n\r\n visitImplicitReceiver(ast: ImplicitReceiver, context: any) {}\r\n\r\n visitInterpolation(ast: Interpolation, context: any) {}\r\n\r\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any) {}\r\n\r\n visitPropertyRead(ast: PropertyRead, context: any) {}\r\n\r\n visitPropertyWrite(ast: PropertyWrite, context: any) {}\r\n\r\n visitSafePropertyRead(ast: SafePropertyRead, context: any) {}\r\n\r\n visitMethodCall(ast: MethodCall, context: any) {}\r\n\r\n visitSafeMethodCall(ast: SafeMethodCall, context: any) {}\r\n\r\n visitFunctionCall(ast: FunctionCall, context: any) {}\r\n\r\n visitLiteralArray(ast: LiteralArray, context: any) { this.visitAll(ast.expressions); }\r\n\r\n visitLiteralMap(ast: LiteralMap, context: any) { this.visitAll(ast.values); }\r\n\r\n visitBinary(ast: Binary, context: any) {}\r\n\r\n visitPrefixNot(ast: PrefixNot, context: any) {}\r\n\r\n visitConditional(ast: Conditional, context: any) {}\r\n\r\n visitPipe(ast: BindingPipe, context: any) { this.errors.push('pipes'); }\r\n\r\n visitKeyedRead(ast: KeyedRead, context: any) {}\r\n\r\n visitKeyedWrite(ast: KeyedWrite, context: any) {}\r\n\r\n visitAll(asts: any[]): any[] { return asts.map(node => node.visit(this)); }\r\n\r\n visitChain(ast: Chain, context: any) {}\r\n\r\n visitQuote(ast: Quote, context: any) {}\r\n}","export const BinaryOperations = new Map<string, any>([\r\n ['==', (left: any, right: any) => left == right],\r\n ['===', (left: any, right: any) => left === right],\r\n ['!=', (left: any, right: any) => left != right],\r\n ['!==', (left: any, right: any) => left !== right],\r\n ['&&', (left: any, right: any) => left && right],\r\n ['||', (left: any, right: any) => left || right],\r\n ['+', (left: any, right: any) => left + right],\r\n ['-', (left: any, right: any) => left - right],\r\n ['/', (left: any, right: any) => left / right],\r\n ['*', (left: any, right: any) => left * right],\r\n ['%', (left: any, right: any) => left % right],\r\n ['<', (left: any, right: any) => left < right],\r\n ['<=', (left: any, right: any) => left <= right],\r\n ['>', (left: any, right: any) => left > right],\r\n ['>=', (left: any, right: any) => left >= right],\r\n]);","export function compileToJSON(json: any) {\r\n return JSON.stringify(json).replace(/\"/g, '');\r\n}\r\n\r\nexport function isPresent(obj: any) {\r\n return obj !== null && obj !== undefined;\r\n}\r\n\r\nexport function isJsObject(obj: any) {\r\n return obj !== null && (typeof obj === 'function' || typeof obj === 'object');\r\n}\r\n\r\nexport function isFunction(val: any) {\r\n return typeof val === 'function';\r\n}","import {\r\n AST,\r\n RecursiveAstVisitor,\r\n PropertyRead,\r\n MethodCall,\r\n KeyedRead,\r\n ImplicitReceiver,\r\n LiteralPrimitive,\r\n Binary,\r\n Chain,\r\n Conditional,\r\n BindingPipe,\r\n FunctionCall,\r\n Interpolation,\r\n KeyedWrite,\r\n LiteralArray,\r\n LiteralMap,\r\n PrefixNot,\r\n PropertyWrite,\r\n SafePropertyRead,\r\n SafeMethodCall,\r\n Quote\r\n} from '../angular';\r\nimport { compileToJSON } from '../util';\r\n\r\nexport class ParseVisitorCompiler extends RecursiveAstVisitor {\r\n\r\n visitBinary(ast: Binary): any {\r\n const left = ast.left.visit(this);\r\n const right = ast.right.visit(this);\r\n\r\n return `${left} ${ast.operation} ${right}`;\r\n }\r\n\r\n // TODO\r\n visitChain(ast: Chain): any {\r\n return compileToJSON(this.visitAll(ast.expressions));\r\n }\r\n\r\n visitConditional(ast: Conditional): any {\r\n const condition = ast.condition.visit(this);\r\n const trueExp = ast.trueExp.visit(this);\r\n const falseExp = ast.falseExp.visit(this);\r\n\r\n return `${condition} ? ${trueExp} : ${falseExp}`;\r\n }\r\n\r\n visitPipe(ast: BindingPipe): any {\r\n const pipe = ast.name;\r\n const args = this.visitAll(ast.args);\r\n const value = ast.exp.visit(this);\r\n args.unshift(value);\r\n\r\n return `pipesCache.get('${pipe}').transform.apply(null, ${compileToJSON(args)})`;\r\n }\r\n\r\n // TODO\r\n visitFunctionCall(ast: FunctionCall): any {\r\n const target = ast.target.visit(this);\r\n const args = compileToJSON(this.visitAll(ast.args));\r\n\r\n return `${target}.apply(${target}, ${args})`;\r\n }\r\n\r\n visitImplicitReceiver(ast: ImplicitReceiver): any {\r\n return `context`;\r\n }\r\n\r\n visitInterpolation(ast: Interpolation): any {\r\n return this.visitAll(ast.expressions)[0];\r\n }\r\n\r\n visitKeyedRead(ast: KeyedRead): any {\r\n const obj = ast.obj.visit(this);\r\n const key = ast.key.visit(this);\r\n\r\n return `${obj}[${key}]`;\r\n }\r\n\r\n visitKeyedWrite(ast: KeyedWrite): any {\r\n return null;\r\n }\r\n\r\n visitLiteralArray(ast: LiteralArray): any {\r\n return compileToJSON(this.visitAll(ast.expressions));\r\n }\r\n\r\n visitLiteralMap(ast: LiteralMap): any {\r\n const result: any = {};\r\n const keys = ast.keys;\r\n const values = this.visitAll(ast.values);\r\n\r\n for (let i = 0, length = keys.length; i < length; i++) {\r\n result[keys[i]] = values[i];\r\n }\r\n\r\n return compileToJSON(result);\r\n }\r\n\r\n visitLiteralPrimitive(ast: LiteralPrimitive): any {\r\n return typeof ast.value === 'string' ? `'${ast.value}'` : ast.value;\r\n }\r\n\r\n visitMethodCall(ast: MethodCall): any {\r\n const methodName = ast.name;\r\n const receiver = ast.receiver.visit(this);\r\n const args = compileToJSON(this.visitAll(ast.args));\r\n\r\n return `${receiver}['${methodName}'].apply(${receiver}, ${args})`;\r\n }\r\n\r\n visitPrefixNot(ast: PrefixNot): any {\r\n return ast.expression.visit(this);\r\n }\r\n\r\n visitPropertyRead(ast: PropertyRead): any {\r\n const property = ast.name;\r\n const receiver = ast.receiver.visit(this);\r\n\r\n return `${receiver}['${property}']`;\r\n }\r\n\r\n visitPropertyWrite(ast: PropertyWrite): any {\r\n return null;\r\n }\r\n\r\n visitSafePropertyRead(ast: SafePropertyRead): any {\r\n const property = ast.name;\r\n const receiver = ast.receiver.visit(this);\r\n\r\n return `${receiver}['${property}']`;\r\n }\r\n\r\n visitSafeMethodCall(ast: SafeMethodCall): any {\r\n const methodName = ast.name;\r\n const receiver = ast.receiver.visit(this);\r\n const args = compileToJSON(this.visitAll(ast.args));\r\n\r\n return `${receiver}['${methodName}'].apply(${receiver}, ${args})`;\r\n }\r\n\r\n visitAll(asts: AST[]): any {\r\n return asts.map(ast => ast.visit(this));\r\n }\r\n\r\n visitQuote(ast: Quote): any {\r\n return null;\r\n }\r\n}","import {\r\n AST,\r\n RecursiveAstVisitor,\r\n PropertyRead,\r\n MethodCall,\r\n KeyedRead,\r\n ImplicitReceiver,\r\n LiteralPrimitive,\r\n Binary,\r\n Chain,\r\n Conditional,\r\n BindingPipe,\r\n FunctionCall,\r\n Interpolation,\r\n KeyedWrite,\r\n LiteralArray,\r\n LiteralMap,\r\n PrefixNot,\r\n PropertyWrite,\r\n SafePropertyRead,\r\n SafeMethodCall,\r\n Quote\r\n} from '../angular';\r\nimport * as util from '../util';\r\nimport { BinaryOperations } from '../util/binary-operations';\r\n\r\nexport class ParseVisitorResolver extends RecursiveAstVisitor {\r\n\r\n constructor(private pipes: Map<string, any>) {\r\n super();\r\n };\r\n\r\n visitBinary(ast: Binary, context: any): any {\r\n const execFn = BinaryOperations.get(ast.operation);\r\n\r\n if (!execFn) {\r\n throw new Error(`Parse ERROR: on visitBinary, unknown operator ${ast.operation}`);\r\n }\r\n\r\n return execFn(ast.left.visit(this, context), ast.right.visit(this, context));\r\n }\r\n\r\n // TODO\r\n visitChain(ast: Chain, context: any): any {\r\n return this.visitAll(ast.expressions, context);\r\n }\r\n\r\n visitConditional(ast: Conditional, context: any): any {\r\n if (ast.condition.visit(this, context)) {\r\n return ast.trueExp.visit(this, context);\r\n }\r\n else if (util.isPresent(ast.falseExp)) {\r\n return ast.falseExp.visit(this, context);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n visitPipe(ast: BindingPipe, context: any): any {\r\n const pipe = this.pipes.get(ast.name);\r\n\r\n if (!pipe) {\r\n throw new Error(`pipe ${ast.name} not found.`);\r\n }\r\n\r\n if (!pipe.transform) {\r\n throw new Error(`Parse ERROR: on visitPipe, transform method doesn't exist on pipe ${ast.name}.`);\r\n }\r\n\r\n const value = ast.exp.visit(this, context);\r\n const pipeArgs = this.visitAll(ast.args, context);\r\n\r\n pipeArgs.unshift(value);\r\n\r\n return pipe.transform.apply(null, pipeArgs);\r\n }\r\n\r\n // TODO\r\n visitFunctionCall(ast: FunctionCall, context: any): any {\r\n const target = ast.target.visit(this, context);\r\n\r\n if (!util.isFunction(target)) {\r\n throw new Error(`Parse ERROR: on visitFunctionCall, target is not a function.`);\r\n }\r\n\r\n const args = this.visitAll(ast.args, context);\r\n return target.apply(target, args);\r\n }\r\n\r\n visitImplicitReceiver(ast: ImplicitReceiver, context: any): any {\r\n return context;\r\n }\r\n\r\n visitInterpolation(ast: Interpolation, context: any): any {\r\n return this.visitAll(ast.expressions, context)[0];\r\n }\r\n\r\n visitKeyedRead(ast: KeyedRead, context: any): any {\r\n const obj = ast.obj.visit(this, context);\r\n const key = ast.key.visit(this, context);\r\n return obj[key];\r\n }\r\n\r\n visitKeyedWrite(ast: KeyedWrite, context: any): any {\r\n const obj = ast.obj.visit(this, context);\r\n const key = ast.key.visit(this, context);\r\n const value = ast.value.visit(this, context);\r\n obj[key] = value;\r\n return null;\r\n }\r\n\r\n visitLiteralArray(ast: LiteralArray, context: any): any {\r\n return this.visitAll(ast.expressions, context);\r\n }\r\n\r\n visitLiteralMap(ast: LiteralMap, context: any): any {\r\n const result: any = {};\r\n const keys = ast.keys;\r\n const values = this.visitAll(ast.values, context);\r\n\r\n for (let i = 0, length = keys.length; i < length; i++) {\r\n result[keys[i]] = values[i];\r\n }\r\n\r\n return result;\r\n }\r\n\r\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): any {\r\n return ast.value;\r\n }\r\n\r\n visitMethodCall(ast: MethodCall, context: any): any {\r\n const receiver = ast.receiver.visit(this, context);\r\n\r\n if (!util.isJsObject(receiver)) {\r\n throw new Error(`Parse ERROR: on visitMethodCall, invalid method receiver.`);\r\n }\r\n\r\n const method = receiver[ast.name];\r\n\r\n if (!util.isFunction(method)) {\r\n throw new Error(`Parse ERROR: on visitMethodCall, method ${ast.name} doesn't exist on receiver.`);\r\n }\r\n\r\n const args = this.visitAll(ast.args, context);\r\n return method.apply(receiver, args);\r\n }\r\n\r\n visitPrefixNot(ast: PrefixNot, context: any): any {\r\n return ast.expression.visit(this, context);\r\n }\r\n\r\n visitPropertyRead(ast: PropertyRead, context: any): any {\r\n const receiver = ast.receiver.visit(this, context);\r\n\r\n if (!util.isJsObject(receiver)) {\r\n throw new Error(`Parse ERROR: on visitPropertyRead, invalid property receiver.`);\r\n }\r\n\r\n return receiver[ast.name];\r\n }\r\n\r\n visitPropertyWrite(ast: PropertyWrite, context: any): any {\r\n const receiver = ast.receiver.visit(this, context);\r\n\r\n if (!util.isJsObject(receiver)) {\r\n throw new Error(`Parse ERROR: on visitPropertyRead, invalid property receiver.`);\r\n }\r\n\r\n receiver[ast.name] = ast.value.visit(this, context);\r\n return null;\r\n }\r\n\r\n visitSafePropertyRead(ast: SafePropertyRead, context: any): any {\r\n const receiver = ast.receiver.visit(this, context);\r\n\r\n if (!util.isJsObject(receiver)) {\r\n throw new Error(`Parse ERROR: on visitSafePropertyRead, invalid property receiver.`);\r\n }\r\n\r\n return receiver[ast.name];\r\n }\r\n\r\n visitSafeMethodCall(ast: SafeMethodCall, context: any): any {\r\n const receiver = ast.receiver.visit(this, context);\r\n\r\n if (!util.isJsObject(receiver)) {\r\n throw new Error(`Parse ERROR: on visitSafeMethodCall, invalid method receiver.`);\r\n }\r\n\r\n const method = receiver[ast.name];\r\n\r\n if (!util.isFunction(method)) {\r\n throw new Error(`Parse ERROR: on visitSafeMethodCall, method ${ast.name} doesn't exist on receiver.`);\r\n }\r\n\r\n const args = this.visitAll(ast.args, context);\r\n return method.apply(receiver, args);\r\n }\r\n\r\n visitAll(asts: AST[], context: any): any {\r\n return asts.map(ast => ast.visit(this, context));\r\n }\r\n\r\n visitQuote(ast: Quote, context: any): any {\r\n throw new Error(`Parse ERROR: on visitQuote, quote expression not allowed.`);\r\n }\r\n}","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\r\nimport { Parser, Lexer, ASTWithSource } from './angular';\r\nimport { ParseVisitorResolver, ParseVisitorCompiler } from './visitors';\r\n\r\nexport const PIPES_CONFIG = new InjectionToken('PipesConfig');\r\n\r\nexport interface PipesConfig {\r\n pipeName: string;\r\n pipeInstance: any;\r\n}\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class Parse {\r\n private _parser: Parser = new Parser(new Lexer());\r\n private _pipesCache: Map<string, any> = new Map<string, any>();\r\n private _evalCache: Map<string, Function> = new Map<string, Function>();\r\n private _calcCache: Map<string, Function> = new Map<string, Function>();\r\n\r\n /**\r\n * Used to dependency inject the Angular 2 parser.\r\n */\r\n\r\n constructor(@Optional() @Inject(PIPES_CONFIG) pipesConfigs: PipesConfig[][]) {\r\n if (pipesConfigs && pipesConfigs.length) {\r\n pipesConfigs\r\n .filter(pipes => pipes && pipes.length)\r\n .forEach(pipes => pipes.forEach((pipeData) => this._pipesCache.set(pipeData.pipeName, pipeData.pipeInstance)));\r\n }\r\n }\r\n\r\n eval(expression: string): Function | undefined {\r\n if (this._evalCache.has(expression)) {\r\n return this._evalCache.get(expression);\r\n }\r\n\r\n const visitor = new ParseVisitorCompiler();\r\n\r\n let ast: ASTWithSource = this._parser.parseInterpolation(expression, 'Parse');\r\n\r\n if (!ast) {\r\n ast = this._parser.parseBinding(expression, 'Parse');\r\n }\r\n\r\n const fnBody = ast.visit(visitor);\r\n const pipesCache = this._pipesCache;\r\n const getFn = new Function('context', 'pipesCache', `return ${fnBody};`);\r\n\r\n const evalParse = function evalParse(context: any): any {\r\n return getFn(context, pipesCache);\r\n };\r\n\r\n this._evalCache.set(expression, evalParse);\r\n\r\n return evalParse;\r\n }\r\n\r\n calc(expression: string): Function {\r\n if (this._calcCache.has(expression)) {\r\n return this._calcCache.get(expression)!;\r\n }\r\n\r\n const visitor = new ParseVisitorResolver(this._pipesCache);\r\n\r\n let ast: ASTWithSource = this._parser.parseInterpolation(expression, 'Parse');\r\n\r\n if (!ast) {\r\n ast = this._parser.parseBinding(expression, 'Parse');\r\n }\r\n\r\n const calcParse = function calcParse(context: any): any {\r\n return ast.visit(visitor, context);\r\n };\r\n\r\n this._calcCache.set(expression, calcParse);\r\n\r\n return calcParse;\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { Parse, PIPES_CONFIG, PipesConfig } from './parse';\r\n\r\n@NgModule()\r\nexport class Angular2ParseModule {\r\n static forRoot(pipesConfigMap: PipesConfig[]): ModuleWithProviders<any> {\r\n return {\r\n ngModule: Angular2ParseModule,\r\n providers: [{provide: PIPES_CONFIG, multi: true, useValue: pipesConfigMap || []}]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of angular2parse\r\n */\r\nexport * from './lib/module';\r\nexport * from './lib/parse'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isPresent","isJsObject","chars.$EOF","chars.$SPACE","chars.isDigit","chars.$PERIOD","chars.$LPAREN","chars.$RPAREN","chars.$LBRACE","chars.$RBRACE","chars.$LBRACKET","chars.$RBRACKET","chars.$COMMA","chars.$COLON","chars.$SEMICOLON","chars.$SQ","chars.$DQ","chars.$HASH","chars.$PLUS","chars.$MINUS","chars.$STAR","chars.$SLASH","chars.$PERCENT","chars.$CARET","chars.$QUESTION","chars.$LT","chars.$GT","chars.$EQ","chars.$BANG","chars.$AMPERSAND","chars.$BAR","chars.$NBSP","chars.isWhitespace","chars.$BACKSLASH","chars.$u","chars.$a","chars.$z","chars.$A","chars.$Z","chars.$_","chars.$$","chars.isAsciiLetter","chars.$e","chars.$E","chars.$BT","chars.$n","chars.$LF","chars.$f","chars.$FF","chars.$r","chars.$CR","chars.$t","chars.$TAB","chars.$v","chars.$VTAB","util.isPresent","util.isFunction","util.isJsObject"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,42 +1,35 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@auscope/angular2parse",
|
|
3
|
-
"version": "22.0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
"@angular/compiler-cli": "^22.1.1",
|
|
36
|
-
"@angular/language-service": "^22.1.1",
|
|
37
|
-
"@types/node": "^26.2.0",
|
|
38
|
-
"ng-packagr": "^22.1.1",
|
|
39
|
-
"ts-node": "~8.10.2",
|
|
40
|
-
"typescript": "~6.0.3"
|
|
41
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@auscope/angular2parse",
|
|
3
|
+
"version": "22.0.1",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"description": "Fork of articode repo for Angular v22",
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "https://github.com/AuScope/angular2parse/issues"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/AuScope/angular2parse.git",
|
|
12
|
+
"directory": "projects/angular2parse"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/AuScope/angular2parse#readme",
|
|
15
|
+
"peerDependencies": {
|
|
16
|
+
"@angular/common": "^22.1.1",
|
|
17
|
+
"@angular/core": "^22.1.1"
|
|
18
|
+
},
|
|
19
|
+
"module": "fesm2022/auscope-angular2parse.mjs",
|
|
20
|
+
"typings": "types/auscope-angular2parse.d.ts",
|
|
21
|
+
"exports": {
|
|
22
|
+
"./package.json": {
|
|
23
|
+
"default": "./package.json"
|
|
24
|
+
},
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./types/auscope-angular2parse.d.ts",
|
|
27
|
+
"default": "./fesm2022/auscope-angular2parse.mjs"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"sideEffects": false,
|
|
31
|
+
"type": "module",
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"tslib": "^2.3.0"
|
|
34
|
+
}
|
|
42
35
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, ModuleWithProviders } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
declare const PIPES_CONFIG: InjectionToken<unknown>;
|
|
5
|
+
interface PipesConfig {
|
|
6
|
+
pipeName: string;
|
|
7
|
+
pipeInstance: any;
|
|
8
|
+
}
|
|
9
|
+
declare class Parse {
|
|
10
|
+
private _parser;
|
|
11
|
+
private _pipesCache;
|
|
12
|
+
private _evalCache;
|
|
13
|
+
private _calcCache;
|
|
14
|
+
/**
|
|
15
|
+
* Used to dependency inject the Angular 2 parser.
|
|
16
|
+
*/
|
|
17
|
+
constructor(pipesConfigs: PipesConfig[][]);
|
|
18
|
+
eval(expression: string): Function | undefined;
|
|
19
|
+
calc(expression: string): Function;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Parse, [{ optional: true; }]>;
|
|
21
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<Parse>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
declare class Angular2ParseModule {
|
|
25
|
+
static forRoot(pipesConfigMap: PipesConfig[]): ModuleWithProviders<any>;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Angular2ParseModule, never>;
|
|
27
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<Angular2ParseModule, never, never, never>;
|
|
28
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<Angular2ParseModule>;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { Angular2ParseModule, PIPES_CONFIG, Parse };
|
|
32
|
+
export type { PipesConfig };
|
package/.editorconfig
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Editor configuration, see https://editorconfig.org
|
|
2
|
-
root = true
|
|
3
|
-
|
|
4
|
-
[*]
|
|
5
|
-
charset = utf-8
|
|
6
|
-
indent_style = space
|
|
7
|
-
indent_size = 2
|
|
8
|
-
insert_final_newline = true
|
|
9
|
-
trim_trailing_whitespace = true
|
|
10
|
-
|
|
11
|
-
[*.md]
|
|
12
|
-
max_line_length = off
|
|
13
|
-
trim_trailing_whitespace = false
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) Articode 2017
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/angular.json
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
|
3
|
-
"version": 1,
|
|
4
|
-
"newProjectRoot": "projects",
|
|
5
|
-
"projects": {
|
|
6
|
-
"angular2parse": {
|
|
7
|
-
"projectType": "library",
|
|
8
|
-
"root": "projects/angular2parse",
|
|
9
|
-
"sourceRoot": "projects/angular2parse/src",
|
|
10
|
-
"prefix": "lib",
|
|
11
|
-
"architect": {
|
|
12
|
-
"build": {
|
|
13
|
-
"builder": "@angular/build:ng-packagr",
|
|
14
|
-
"options": {
|
|
15
|
-
"tsConfig": "projects/angular2parse/tsconfig.lib.json",
|
|
16
|
-
"project": "projects/angular2parse/ng-package.json"
|
|
17
|
-
},
|
|
18
|
-
"configurations": {
|
|
19
|
-
"production": {
|
|
20
|
-
"tsConfig": "projects/angular2parse/tsconfig.lib.prod.json"
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
"cli": {
|
|
28
|
-
"analytics": false
|
|
29
|
-
},
|
|
30
|
-
"schematics": {
|
|
31
|
-
"@schematics/angular:component": {
|
|
32
|
-
"type": "component"
|
|
33
|
-
},
|
|
34
|
-
"@schematics/angular:directive": {
|
|
35
|
-
"type": "directive"
|
|
36
|
-
},
|
|
37
|
-
"@schematics/angular:service": {
|
|
38
|
-
"type": "service"
|
|
39
|
-
},
|
|
40
|
-
"@schematics/angular:guard": {
|
|
41
|
-
"typeSeparator": "."
|
|
42
|
-
},
|
|
43
|
-
"@schematics/angular:interceptor": {
|
|
44
|
-
"typeSeparator": "."
|
|
45
|
-
},
|
|
46
|
-
"@schematics/angular:module": {
|
|
47
|
-
"typeSeparator": "."
|
|
48
|
-
},
|
|
49
|
-
"@schematics/angular:pipe": {
|
|
50
|
-
"typeSeparator": "."
|
|
51
|
-
},
|
|
52
|
-
"@schematics/angular:resolver": {
|
|
53
|
-
"typeSeparator": "."
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|