@auscope/angular2parse 18.0.0 → 18.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.
Files changed (68) hide show
  1. package/README.md +1 -1
  2. package/esm2022/auscope-angular2parse.mjs +5 -0
  3. package/esm2022/lib/angular/compiler/assertions.mjs +45 -0
  4. package/esm2022/lib/angular/compiler/ast.mjs +393 -0
  5. package/esm2022/lib/angular/compiler/chars.mjs +78 -0
  6. package/esm2022/lib/angular/compiler/interpolation-config.mjs +24 -0
  7. package/esm2022/lib/angular/compiler/lexer.mjs +344 -0
  8. package/esm2022/lib/angular/compiler/parser.mjs +721 -0
  9. package/esm2022/lib/angular/compiler.mjs +7 -0
  10. package/esm2022/lib/angular/facade/lang.mjs +85 -0
  11. package/esm2022/lib/angular/facade.mjs +2 -0
  12. package/esm2022/lib/angular.mjs +3 -0
  13. package/esm2022/lib/module.mjs +18 -0
  14. package/esm2022/lib/parse.mjs +66 -0
  15. package/esm2022/lib/util/binary-operations.mjs +18 -0
  16. package/esm2022/lib/util/lang.mjs +13 -0
  17. package/esm2022/lib/util.mjs +3 -0
  18. package/esm2022/lib/visitors/parse-visitor-compiler.mjs +96 -0
  19. package/esm2022/lib/visitors/parse-visitor-resolver.mjs +141 -0
  20. package/esm2022/lib/visitors.mjs +3 -0
  21. package/esm2022/public-api.mjs +6 -0
  22. package/fesm2022/auscope-angular2parse.mjs +2033 -0
  23. package/fesm2022/auscope-angular2parse.mjs.map +1 -0
  24. package/index.d.ts +5 -0
  25. package/lib/angular/compiler/assertions.d.ts +9 -0
  26. package/lib/angular/compiler/ast.d.ts +242 -0
  27. package/lib/angular/compiler/chars.d.ts +69 -0
  28. package/lib/angular/compiler/interpolation-config.d.ts +14 -0
  29. package/lib/angular/compiler/lexer.d.ts +44 -0
  30. package/lib/angular/compiler/parser.d.ts +92 -0
  31. package/{projects/angular2parse/src/lib/angular/compiler.ts → lib/angular/compiler.d.ts} +6 -6
  32. package/lib/angular/facade/lang.d.ts +44 -0
  33. package/lib/angular/facade.d.ts +1 -0
  34. package/{projects/angular2parse/src/lib/angular.ts → lib/angular.d.ts} +2 -2
  35. package/lib/module.d.ts +9 -0
  36. package/lib/parse.d.ts +21 -0
  37. package/lib/util/binary-operations.d.ts +1 -0
  38. package/lib/util/lang.d.ts +4 -0
  39. package/{projects/angular2parse/src/lib/util.ts → lib/util.d.ts} +2 -2
  40. package/lib/visitors/parse-visitor-compiler.d.ts +23 -0
  41. package/lib/visitors/parse-visitor-resolver.d.ts +25 -0
  42. package/{projects/angular2parse/src/lib/visitors.ts → lib/visitors.d.ts} +2 -2
  43. package/package.json +36 -42
  44. package/public-api.d.ts +2 -0
  45. package/.editorconfig +0 -13
  46. package/LICENSE +0 -21
  47. package/angular.json +0 -30
  48. package/projects/angular2parse/README.md +0 -49
  49. package/projects/angular2parse/ng-package.json +0 -7
  50. package/projects/angular2parse/package.json +0 -19
  51. package/projects/angular2parse/src/lib/angular/compiler/assertions.ts +0 -49
  52. package/projects/angular2parse/src/lib/angular/compiler/ast.ts +0 -393
  53. package/projects/angular2parse/src/lib/angular/compiler/chars.ts +0 -89
  54. package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.ts +0 -25
  55. package/projects/angular2parse/src/lib/angular/compiler/lexer.ts +0 -383
  56. package/projects/angular2parse/src/lib/angular/compiler/parser.ts +0 -811
  57. package/projects/angular2parse/src/lib/angular/facade/lang.ts +0 -124
  58. package/projects/angular2parse/src/lib/angular/facade.ts +0 -1
  59. package/projects/angular2parse/src/lib/module.ts +0 -12
  60. package/projects/angular2parse/src/lib/parse.ts +0 -78
  61. package/projects/angular2parse/src/lib/util/binary-operations.ts +0 -17
  62. package/projects/angular2parse/src/lib/util/lang.ts +0 -15
  63. package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.ts +0 -149
  64. package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.ts +0 -208
  65. package/projects/angular2parse/src/public-api.ts +0 -5
  66. package/projects/angular2parse/tsconfig.lib.json +0 -19
  67. package/projects/angular2parse/tsconfig.lib.prod.json +0 -9
  68. package/tsconfig.json +0 -33
@@ -0,0 +1,7 @@
1
+ export * from './compiler/assertions';
2
+ export * from './compiler/ast';
3
+ export * from './compiler/chars';
4
+ export * from './compiler/interpolation-config';
5
+ export * from './compiler/lexer';
6
+ export * from './compiler/parser';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyMnBhcnNlL3NyYy9saWIvYW5ndWxhci9jb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tcGlsZXIvYXNzZXJ0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcGlsZXIvYXN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21waWxlci9jaGFycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcGlsZXIvaW50ZXJwb2xhdGlvbi1jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBpbGVyL2xleGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21waWxlci9wYXJzZXInOyJdfQ==
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ export function getTypeNameForDebugging(type) {
9
+ return type['name'] || typeof type;
10
+ }
11
+ export function isPresent(obj) {
12
+ return obj != null;
13
+ }
14
+ export function isBlank(obj) {
15
+ return obj == null;
16
+ }
17
+ const STRING_MAP_PROTO = Object.getPrototypeOf({});
18
+ export function isStrictStringMap(obj) {
19
+ return typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;
20
+ }
21
+ export function stringify(token) {
22
+ if (typeof token === 'string') {
23
+ return token;
24
+ }
25
+ if (token == null) {
26
+ return '' + token;
27
+ }
28
+ if (token.overriddenName) {
29
+ return `${token.overriddenName}`;
30
+ }
31
+ if (token.name) {
32
+ return `${token.name}`;
33
+ }
34
+ const res = token.toString();
35
+ const newLineIndex = res.indexOf('\n');
36
+ return newLineIndex === -1 ? res : res.substring(0, newLineIndex);
37
+ }
38
+ export class NumberWrapper {
39
+ static parseIntAutoRadix(text) {
40
+ const result = parseInt(text);
41
+ if (isNaN(result)) {
42
+ throw new Error('Invalid integer literal when parsing ' + text);
43
+ }
44
+ return result;
45
+ }
46
+ static isNumeric(value) { return !isNaN(value - parseFloat(value)); }
47
+ }
48
+ // JS has NaN !== NaN
49
+ export function looseIdentical(a, b) {
50
+ return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b);
51
+ }
52
+ export function isJsObject(o) {
53
+ return o !== null && (typeof o === 'function' || typeof o === 'object');
54
+ }
55
+ export function print(obj) {
56
+ // tslint:disable-next-line:no-console
57
+ console.log(obj);
58
+ }
59
+ export function warn(obj) {
60
+ console.warn(obj);
61
+ }
62
+ export function setValueOnPath(global, path, value) {
63
+ const parts = path.split('.');
64
+ let obj = global;
65
+ while (parts.length > 1) {
66
+ const name = parts.shift();
67
+ if (obj.hasOwnProperty(name) && obj[name] != null) {
68
+ obj = obj[name];
69
+ }
70
+ else {
71
+ obj = obj[name] = {};
72
+ }
73
+ }
74
+ if (obj === undefined || obj === null) {
75
+ obj = {};
76
+ }
77
+ obj[parts.shift()] = value;
78
+ }
79
+ export function isPrimitive(obj) {
80
+ return !isJsObject(obj);
81
+ }
82
+ export function escapeRegExp(s) {
83
+ return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
84
+ }
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi9hbmd1bGFyL2ZhY2FkZS9sYW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQXlCSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBUztJQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFRO0lBQzlCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFRO0lBQzVCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ25ELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxHQUFRO0lBQ3RDLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQztBQUN0RyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFVO0lBQ2hDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsT0FBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMs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QyxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxDQUFTO0lBQ2xDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxyXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXHJcbiAqL1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCcm93c2VyTm9kZUdsb2JhbCB7XHJcbiAgICBPYmplY3Q6IHR5cGVvZiBPYmplY3Q7XHJcbiAgICBBcnJheTogdHlwZW9mIEFycmF5O1xyXG4gICAgTWFwOiB0eXBlb2YgTWFwO1xyXG4gICAgU2V0OiB0eXBlb2YgU2V0O1xyXG4gICAgRGF0ZTogRGF0ZUNvbnN0cnVjdG9yO1xyXG4gICAgUmVnRXhwOiBSZWdFeHBDb25zdHJ1Y3RvcjtcclxuICAgIEpTT046IHR5cGVvZiBKU09OO1xyXG4gICAgTWF0aDogYW55OyAgLy8gdHlwZW9mIE1hdGg7XHJcbiAgICBhc3NlcnQoY29uZGl0aW9uOiBhbnkpOiB2b2lkO1xyXG4gICAgUmVmbGVjdDogYW55O1xyXG4gICAgZ2V0QW5ndWxhclRlc3RhYmlsaXR5OiBGdW5jdGlvbjtcclxuICAgIGdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzOiBGdW5jdGlvbjtcclxuICAgIGdldEFsbEFuZ3VsYXJSb290RWxlbWVudHM6IEZ1bmN0aW9uO1xyXG4gICAgZnJhbWV3b3JrU3RhYmlsaXplcnM6IEFycmF5PEZ1bmN0aW9uPjtcclxuICAgIHNldFRpbWVvdXQ6IEZ1bmN0aW9uO1xyXG4gICAgY2xlYXJUaW1lb3V0OiBGdW5jdGlvbjtcclxuICAgIHNldEludGVydmFsOiBGdW5jdGlvbjtcclxuICAgIGNsZWFySW50ZXJ2YWw6IEZ1bmN0aW9uO1xyXG4gICAgZW5jb2RlVVJJOiBGdW5jdGlvbjtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlTmFtZUZvckRlYnVnZ2luZyh0eXBlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHR5cGVbJ25hbWUnXSB8fCB0eXBlb2YgdHlwZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlc2VudChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG9iaiAhPSBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNCbGFuayhvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG9iaiA9PSBudWxsO1xyXG59XHJcblxyXG5jb25zdCBTVFJJTkdfTUFQX1BST1RPID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHt9KTtcclxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaWN0U3RyaW5nTWFwKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqICE9PSBudWxsICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopID09PSBTVFJJTkdfTUFQX1BST1RPO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHRva2VuOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICByZXR1cm4gdG9rZW47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRva2VuID09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gJycgKyB0b2tlbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodG9rZW4ub3ZlcnJpZGRlbk5hbWUpIHtcclxuICAgICAgICByZXR1cm4gYCR7dG9rZW4ub3ZlcnJpZGRlbk5hbWV9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodG9rZW4ubmFtZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0b2tlbi5uYW1lfWA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVzID0gdG9rZW4udG9TdHJpbmcoKTtcclxuICAgIGNvbnN0IG5ld0xpbmVJbmRleCA9IHJlcy5pbmRleE9mKCdcXG4nKTtcclxuICAgIHJldHVybiBuZXdMaW5lSW5kZXggPT09IC0xID8gcmVzIDogcmVzLnN1YnN0cmluZygwLCBuZXdMaW5lSW5kZXgpO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTnVtYmVyV3JhcHBlciB7XHJcbiAgICBzdGF0aWMgcGFyc2VJbnRBdXRvUmFkaXgodGV4dDogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCByZXN1bHQ6IG51bWJlciA9IHBhcnNlSW50KHRleHQpO1xyXG4gICAgICAgIGlmIChpc05hTihyZXN1bHQpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbnRlZ2VyIGxpdGVyYWwgd2hlbiBwYXJzaW5nICcgKyB0ZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNOdW1lcmljKHZhbHVlOiBhbnkpOiBib29sZWFuIHsgcmV0dXJuICFpc05hTih2YWx1ZSAtIHBhcnNlRmxvYXQodmFsdWUpKTsgfVxyXG59XHJcblxyXG4vLyBKUyBoYXMgTmFOICE9PSBOYU5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvb3NlSWRlbnRpY2FsKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYSA9PT0gYiB8fCB0eXBlb2YgYSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGIgPT09ICdudW1iZXInICYmIGlzTmFOKGEpICYmIGlzTmFOKGIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNKc09iamVjdChvOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBvICE9PSBudWxsICYmICh0eXBlb2YgbyA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgbyA9PT0gJ29iamVjdCcpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJpbnQob2JqOiBFcnJvciB8IE9iamVjdCkge1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWNvbnNvbGVcclxuICAgIGNvbnNvbGUubG9nKG9iaik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB3YXJuKG9iajogRXJyb3IgfCBPYmplY3QpIHtcclxuICAgIGNvbnNvbGUud2FybihvYmopO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmFsdWVPblBhdGgoZ2xvYmFsOiBhbnksIHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgb2JqOiBhbnkgPSBnbG9iYWw7XHJcbiAgICB3aGlsZSAocGFydHMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSBwYXJ0cy5zaGlmdCgpO1xyXG4gICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkobmFtZSkgJiYgb2JqW25hbWVdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgb2JqID0gb2JqW25hbWVdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG9iaiA9IG9ialtuYW1lXSA9IHt9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChvYmogPT09IHVuZGVmaW5lZCB8fCBvYmogPT09IG51bGwpIHtcclxuICAgICAgICBvYmogPSB7fTtcclxuICAgIH1cclxuICAgIG9ialtwYXJ0cy5zaGlmdCgpXSA9IHZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNQcmltaXRpdmUob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhaXNKc09iamVjdChvYmopO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gcy5yZXBsYWNlKC8oWy4qKz9ePSE6JHt9KCl8W1xcXVxcL1xcXFxdKS9nLCAnXFxcXCQxJyk7XHJcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './facade/lang';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjYWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhcjJwYXJzZS9zcmMvbGliL2FuZ3VsYXIvZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mYWNhZGUvbGFuZyc7Il19
@@ -0,0 +1,3 @@
1
+ export * from './angular/compiler';
2
+ export * from './angular/facade';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi9hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5ndWxhci9jb21waWxlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vYW5ndWxhci9mYWNhZGUnOyJdfQ==
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { PIPES_CONFIG } from './parse';
3
+ import * as i0 from "@angular/core";
4
+ export class Angular2ParseModule {
5
+ static forRoot(pipesConfigMap) {
6
+ return {
7
+ ngModule: Angular2ParseModule,
8
+ providers: [{ provide: PIPES_CONFIG, multi: true, useValue: pipesConfigMap || [] }]
9
+ };
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Angular2ParseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: Angular2ParseModule }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Angular2ParseModule }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Angular2ParseModule, decorators: [{
16
+ type: NgModule
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhcjJwYXJzZS9zcmMvbGliL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQVMsWUFBWSxFQUFlLE1BQU0sU0FBUyxDQUFDOztBQUczRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBNkI7UUFDMUMsT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsU0FBUyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGNBQWMsSUFBSSxFQUFFLEVBQUMsQ0FBQztTQUNsRixDQUFDO0lBQ0osQ0FBQzs4R0FOVSxtQkFBbUI7K0dBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFyc2UsIFBJUEVTX0NPTkZJRywgUGlwZXNDb25maWcgfSBmcm9tICcuL3BhcnNlJztcclxuXHJcbkBOZ01vZHVsZSgpXHJcbmV4cG9ydCBjbGFzcyBBbmd1bGFyMlBhcnNlTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChwaXBlc0NvbmZpZ01hcDogUGlwZXNDb25maWdbXSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8YW55PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQW5ndWxhcjJQYXJzZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFBJUEVTX0NPTkZJRywgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiBwaXBlc0NvbmZpZ01hcCB8fCBbXX1dXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,66 @@
1
+ import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
2
+ import { Parser, Lexer } from './angular';
3
+ import { ParseVisitorResolver, ParseVisitorCompiler } from './visitors';
4
+ import * as i0 from "@angular/core";
5
+ export const PIPES_CONFIG = new InjectionToken('PipesConfig');
6
+ export class Parse {
7
+ /**
8
+ * Used to dependency inject the Angular 2 parser.
9
+ */
10
+ constructor(pipesConfigs) {
11
+ this._parser = new Parser(new Lexer());
12
+ this._pipesCache = new Map();
13
+ this._evalCache = new Map();
14
+ this._calcCache = new Map();
15
+ if (pipesConfigs && pipesConfigs.length) {
16
+ pipesConfigs
17
+ .filter(pipes => pipes && pipes.length)
18
+ .forEach(pipes => pipes.forEach((pipeData) => this._pipesCache.set(pipeData.pipeName, pipeData.pipeInstance)));
19
+ }
20
+ }
21
+ eval(expression) {
22
+ if (this._evalCache.has(expression)) {
23
+ return this._evalCache.get(expression);
24
+ }
25
+ const visitor = new ParseVisitorCompiler();
26
+ let ast = this._parser.parseInterpolation(expression, 'Parse');
27
+ if (!ast) {
28
+ ast = this._parser.parseBinding(expression, 'Parse');
29
+ }
30
+ const fnBody = ast.visit(visitor);
31
+ const pipesCache = this._pipesCache;
32
+ const getFn = new Function('context', 'pipesCache', `return ${fnBody};`);
33
+ const evalParse = function evalParse(context) {
34
+ return getFn(context, pipesCache);
35
+ };
36
+ this._evalCache.set(expression, evalParse);
37
+ return evalParse;
38
+ }
39
+ calc(expression) {
40
+ if (this._calcCache.has(expression)) {
41
+ return this._calcCache.get(expression);
42
+ }
43
+ const visitor = new ParseVisitorResolver(this._pipesCache);
44
+ let ast = this._parser.parseInterpolation(expression, 'Parse');
45
+ if (!ast) {
46
+ ast = this._parser.parseBinding(expression, 'Parse');
47
+ }
48
+ const calcParse = function calcParse(context) {
49
+ return ast.visit(visitor, context);
50
+ };
51
+ this._calcCache.set(expression, calcParse);
52
+ return calcParse;
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Parse, deps: [{ token: PIPES_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
55
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Parse, providedIn: 'root' }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Parse, decorators: [{
58
+ type: Injectable,
59
+ args: [{ providedIn: 'root' }]
60
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
61
+ type: Optional
62
+ }, {
63
+ type: Inject,
64
+ args: [PIPES_CONFIG]
65
+ }] }] });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyMnBhcnNlL3NyYy9saWIvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBaUIsTUFBTSxXQUFXLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUV4RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7QUFROUQsTUFBTSxPQUFPLEtBQUs7SUFNaEI7O09BRUc7SUFFSCxZQUE4QyxZQUE2QjtRQVRuRSxZQUFPLEdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLGdCQUFXLEdBQXFCLElBQUksR0FBRyxFQUFlLENBQUM7UUFDdkQsZUFBVSxHQUEwQixJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUNoRSxlQUFVLEdBQTBCLElBQUksR0FBRyxFQUFvQixDQUFDO1FBT3RFLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QyxZQUFZO2lCQUNULE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO2lCQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkgsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsVUFBa0I7UUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUUzQyxJQUFJLEdBQUcsR0FBa0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXpFLE1BQU0sU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLE9BQVk7WUFDL0MsT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUzQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxDQUFDLFVBQWtCO1FBQ3JCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzRCxJQUFJLEdBQUcsR0FBa0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsU0FBUyxTQUFTLENBQUMsT0FBWTtZQUMvQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUzQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzhHQWhFVSxLQUFLLGtCQVVnQixZQUFZO2tIQVZqQyxLQUFLLGNBRE8sTUFBTTs7MkZBQ2xCLEtBQUs7a0JBRGpCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkFXakIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFyc2VyLCBMZXhlciwgQVNUV2l0aFNvdXJjZSB9IGZyb20gJy4vYW5ndWxhcic7XHJcbmltcG9ydCB7IFBhcnNlVmlzaXRvclJlc29sdmVyLCBQYXJzZVZpc2l0b3JDb21waWxlciB9IGZyb20gJy4vdmlzaXRvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBJUEVTX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbignUGlwZXNDb25maWcnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGlwZXNDb25maWcge1xyXG4gIHBpcGVOYW1lOiBzdHJpbmc7XHJcbiAgcGlwZUluc3RhbmNlOiBhbnk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgUGFyc2Uge1xyXG4gIHByaXZhdGUgX3BhcnNlcjogUGFyc2VyID0gbmV3IFBhcnNlcihuZXcgTGV4ZXIoKSk7XHJcbiAgcHJpdmF0ZSBfcGlwZXNDYWNoZTogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcbiAgcHJpdmF0ZSBfZXZhbENhY2hlOiBNYXA8c3RyaW5nLCBGdW5jdGlvbj4gPSBuZXcgTWFwPHN0cmluZywgRnVuY3Rpb24+KCk7XHJcbiAgcHJpdmF0ZSBfY2FsY0NhY2hlOiBNYXA8c3RyaW5nLCBGdW5jdGlvbj4gPSBuZXcgTWFwPHN0cmluZywgRnVuY3Rpb24+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZWQgdG8gZGVwZW5kZW5jeSBpbmplY3QgdGhlIEFuZ3VsYXIgMiBwYXJzZXIuXHJcbiAgICovXHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoUElQRVNfQ09ORklHKSBwaXBlc0NvbmZpZ3M6IFBpcGVzQ29uZmlnW11bXSkge1xyXG4gICAgaWYgKHBpcGVzQ29uZmlncyAmJiBwaXBlc0NvbmZpZ3MubGVuZ3RoKSB7XHJcbiAgICAgIHBpcGVzQ29uZmlnc1xyXG4gICAgICAgIC5maWx0ZXIocGlwZXMgPT4gcGlwZXMgJiYgcGlwZXMubGVuZ3RoKVxyXG4gICAgICAgIC5mb3JFYWNoKHBpcGVzID0+IHBpcGVzLmZvckVhY2goKHBpcGVEYXRhKSA9PiB0aGlzLl9waXBlc0NhY2hlLnNldChwaXBlRGF0YS5waXBlTmFtZSwgcGlwZURhdGEucGlwZUluc3RhbmNlKSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXZhbChleHByZXNzaW9uOiBzdHJpbmcpOiBGdW5jdGlvbiB7XHJcbiAgICBpZiAodGhpcy5fZXZhbENhY2hlLmhhcyhleHByZXNzaW9uKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZXZhbENhY2hlLmdldChleHByZXNzaW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2aXNpdG9yID0gbmV3IFBhcnNlVmlzaXRvckNvbXBpbGVyKCk7XHJcblxyXG4gICAgbGV0IGFzdDogQVNUV2l0aFNvdXJjZSA9IHRoaXMuX3BhcnNlci5wYXJzZUludGVycG9sYXRpb24oZXhwcmVzc2lvbiwgJ1BhcnNlJyk7XHJcblxyXG4gICAgaWYgKCFhc3QpIHtcclxuICAgICAgYXN0ID0gdGhpcy5fcGFyc2VyLnBhcnNlQmluZGluZyhleHByZXNzaW9uLCAnUGFyc2UnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmbkJvZHkgPSBhc3QudmlzaXQodmlzaXRvcik7XHJcbiAgICBjb25zdCBwaXBlc0NhY2hlID0gdGhpcy5fcGlwZXNDYWNoZTtcclxuICAgIGNvbnN0IGdldEZuID0gbmV3IEZ1bmN0aW9uKCdjb250ZXh0JywgJ3BpcGVzQ2FjaGUnLCBgcmV0dXJuICR7Zm5Cb2R5fTtgKTtcclxuXHJcbiAgICBjb25zdCBldmFsUGFyc2UgPSBmdW5jdGlvbiBldmFsUGFyc2UoY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgcmV0dXJuIGdldEZuKGNvbnRleHQsIHBpcGVzQ2FjaGUpO1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLl9ldmFsQ2FjaGUuc2V0KGV4cHJlc3Npb24sIGV2YWxQYXJzZSk7XHJcblxyXG4gICAgcmV0dXJuIGV2YWxQYXJzZTtcclxuICB9XHJcblxyXG4gIGNhbGMoZXhwcmVzc2lvbjogc3RyaW5nKTogRnVuY3Rpb24ge1xyXG4gICAgaWYgKHRoaXMuX2NhbGNDYWNoZS5oYXMoZXhwcmVzc2lvbikpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2NhbGNDYWNoZS5nZXQoZXhwcmVzc2lvbik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmlzaXRvciA9IG5ldyBQYXJzZVZpc2l0b3JSZXNvbHZlcih0aGlzLl9waXBlc0NhY2hlKTtcclxuXHJcbiAgICBsZXQgYXN0OiBBU1RXaXRoU291cmNlID0gdGhpcy5fcGFyc2VyLnBhcnNlSW50ZXJwb2xhdGlvbihleHByZXNzaW9uLCAnUGFyc2UnKTtcclxuXHJcbiAgICBpZiAoIWFzdCkge1xyXG4gICAgICBhc3QgPSB0aGlzLl9wYXJzZXIucGFyc2VCaW5kaW5nKGV4cHJlc3Npb24sICdQYXJzZScpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNhbGNQYXJzZSA9IGZ1bmN0aW9uIGNhbGNQYXJzZShjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICByZXR1cm4gYXN0LnZpc2l0KHZpc2l0b3IsIGNvbnRleHQpO1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLl9jYWxjQ2FjaGUuc2V0KGV4cHJlc3Npb24sIGNhbGNQYXJzZSk7XHJcblxyXG4gICAgcmV0dXJuIGNhbGNQYXJzZTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,18 @@
1
+ export const BinaryOperations = new Map([
2
+ ['==', (left, right) => left == right],
3
+ ['===', (left, right) => left === right],
4
+ ['!=', (left, right) => left != right],
5
+ ['!==', (left, right) => left !== right],
6
+ ['&&', (left, right) => left && right],
7
+ ['||', (left, right) => left || right],
8
+ ['+', (left, right) => left + right],
9
+ ['-', (left, right) => left - right],
10
+ ['/', (left, right) => left / right],
11
+ ['*', (left, right) => left * right],
12
+ ['%', (left, right) => left % right],
13
+ ['<', (left, right) => left < right],
14
+ ['<=', (left, right) => left <= right],
15
+ ['>', (left, right) => left > right],
16
+ ['>=', (left, right) => left >= right],
17
+ ]);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LW9wZXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyMnBhcnNlL3NyYy9saWIvdXRpbC9iaW5hcnktb3BlcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBYztJQUNqRCxDQUFDLElBQUksRUFBRSxDQUFDLElBQVMsRUFBRSxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUM7SUFDaEQsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFTLEVBQUUsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDO0lBQ2xELENBQUMsSUFBSSxFQUFFLENBQUMsSUFBUyxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztJQUNoRCxDQUFDLEtBQUssRUFBRSxDQUFDLElBQVMsRUFBRSxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7SUFDbEQsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFTLEVBQUUsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO0lBQ2hELENBQUMsSUFBSSxFQUFFLENBQUMsSUFBUyxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztJQUNoRCxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQVMsRUFBRSxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDOUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFTLEVBQUUsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQzlDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBUyxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUM5QyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQVMsRUFBRSxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDOUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFTLEVBQUUsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQzlDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBUyxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUM5QyxDQUFDLElBQUksRUFBRSxDQUFDLElBQVMsRUFBRSxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUM7SUFDaEQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFTLEVBQUUsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQzlDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBUyxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztDQUNuRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQmluYXJ5T3BlcmF0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KFtcclxuICAgIFsnPT0nLCAobGVmdDogYW55LCByaWdodDogYW55KSA9PiBsZWZ0ID09IHJpZ2h0XSxcclxuICAgIFsnPT09JywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCA9PT0gcmlnaHRdLFxyXG4gICAgWychPScsIChsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpID0+IGxlZnQgIT0gcmlnaHRdLFxyXG4gICAgWychPT0nLCAobGVmdDogYW55LCByaWdodDogYW55KSA9PiBsZWZ0ICE9PSByaWdodF0sXHJcbiAgICBbJyYmJywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCAmJiByaWdodF0sXHJcbiAgICBbJ3x8JywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCB8fCByaWdodF0sXHJcbiAgICBbJysnLCAobGVmdDogYW55LCByaWdodDogYW55KSA9PiBsZWZ0ICsgcmlnaHRdLFxyXG4gICAgWyctJywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCAtIHJpZ2h0XSxcclxuICAgIFsnLycsIChsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpID0+IGxlZnQgLyByaWdodF0sXHJcbiAgICBbJyonLCAobGVmdDogYW55LCByaWdodDogYW55KSA9PiBsZWZ0ICogcmlnaHRdLFxyXG4gICAgWyclJywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCAlIHJpZ2h0XSxcclxuICAgIFsnPCcsIChsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpID0+IGxlZnQgPCByaWdodF0sXHJcbiAgICBbJzw9JywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCA8PSByaWdodF0sXHJcbiAgICBbJz4nLCAobGVmdDogYW55LCByaWdodDogYW55KSA9PiBsZWZ0ID4gcmlnaHRdLFxyXG4gICAgWyc+PScsIChsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpID0+IGxlZnQgPj0gcmlnaHRdLFxyXG5dKTsiXX0=
@@ -0,0 +1,13 @@
1
+ export function compileToJSON(json) {
2
+ return JSON.stringify(json).replace(/"/g, '');
3
+ }
4
+ export function isPresent(obj) {
5
+ return obj !== null && obj !== undefined;
6
+ }
7
+ export function isJsObject(obj) {
8
+ return obj !== null && (typeof obj === 'function' || typeof obj === 'object');
9
+ }
10
+ export function isFunction(val) {
11
+ return typeof val === 'function';
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi91dGlsL2xhbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFTO0lBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVE7SUFDOUIsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBUTtJQUMvQixPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxVQUFVLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBUTtJQUMvQixPQUFPLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGVUb0pTT04oanNvbjogYW55KSB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoanNvbikucmVwbGFjZSgvXCIvZywgJycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNQcmVzZW50KG9iajogYW55KSB7XHJcbiAgICByZXR1cm4gb2JqICE9PSBudWxsICYmIG9iaiAhPT0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNKc09iamVjdChvYmo6IGFueSkge1xyXG4gICAgcmV0dXJuIG9iaiAhPT0gbnVsbCAmJiAodHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbDogYW55KSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJztcclxufSJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './util/binary-operations';
2
+ export * from './util/lang';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0aWwvYmluYXJ5LW9wZXJhdGlvbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvbGFuZyc7Il19
@@ -0,0 +1,96 @@
1
+ import { RecursiveAstVisitor } from '../angular';
2
+ import { compileToJSON } from '../util';
3
+ export class ParseVisitorCompiler extends RecursiveAstVisitor {
4
+ visitBinary(ast) {
5
+ const left = ast.left.visit(this);
6
+ const right = ast.right.visit(this);
7
+ return `${left} ${ast.operation} ${right}`;
8
+ }
9
+ // TODO
10
+ visitChain(ast) {
11
+ return compileToJSON(this.visitAll(ast.expressions));
12
+ }
13
+ visitConditional(ast) {
14
+ const condition = ast.condition.visit(this);
15
+ const trueExp = ast.trueExp.visit(this);
16
+ const falseExp = ast.falseExp.visit(this);
17
+ return `${condition} ? ${trueExp} : ${falseExp}`;
18
+ }
19
+ visitPipe(ast) {
20
+ const pipe = ast.name;
21
+ const args = this.visitAll(ast.args);
22
+ const value = ast.exp.visit(this);
23
+ args.unshift(value);
24
+ return `pipesCache.get('${pipe}').transform.apply(null, ${compileToJSON(args)})`;
25
+ }
26
+ // TODO
27
+ visitFunctionCall(ast) {
28
+ const target = ast.target.visit(this);
29
+ const args = compileToJSON(this.visitAll(ast.args));
30
+ return `${target}.apply(${target}, ${args})`;
31
+ }
32
+ visitImplicitReceiver(ast) {
33
+ return `context`;
34
+ }
35
+ visitInterpolation(ast) {
36
+ return this.visitAll(ast.expressions)[0];
37
+ }
38
+ visitKeyedRead(ast) {
39
+ const obj = ast.obj.visit(this);
40
+ const key = ast.key.visit(this);
41
+ return `${obj}[${key}]`;
42
+ }
43
+ visitKeyedWrite(ast) {
44
+ return null;
45
+ }
46
+ visitLiteralArray(ast) {
47
+ return compileToJSON(this.visitAll(ast.expressions));
48
+ }
49
+ visitLiteralMap(ast) {
50
+ const result = {};
51
+ const keys = ast.keys;
52
+ const values = this.visitAll(ast.values);
53
+ for (let i = 0, length = keys.length; i < length; i++) {
54
+ result[keys[i]] = values[i];
55
+ }
56
+ return compileToJSON(result);
57
+ }
58
+ visitLiteralPrimitive(ast) {
59
+ return typeof ast.value === 'string' ? `'${ast.value}'` : ast.value;
60
+ }
61
+ visitMethodCall(ast) {
62
+ const methodName = ast.name;
63
+ const receiver = ast.receiver.visit(this);
64
+ const args = compileToJSON(this.visitAll(ast.args));
65
+ return `${receiver}['${methodName}'].apply(${receiver}, ${args})`;
66
+ }
67
+ visitPrefixNot(ast) {
68
+ return ast.expression.visit(this);
69
+ }
70
+ visitPropertyRead(ast) {
71
+ const property = ast.name;
72
+ const receiver = ast.receiver.visit(this);
73
+ return `${receiver}['${property}']`;
74
+ }
75
+ visitPropertyWrite(ast) {
76
+ return null;
77
+ }
78
+ visitSafePropertyRead(ast) {
79
+ const property = ast.name;
80
+ const receiver = ast.receiver.visit(this);
81
+ return `${receiver}['${property}']`;
82
+ }
83
+ visitSafeMethodCall(ast) {
84
+ const methodName = ast.name;
85
+ const receiver = ast.receiver.visit(this);
86
+ const args = compileToJSON(this.visitAll(ast.args));
87
+ return `${receiver}['${methodName}'].apply(${receiver}, ${args})`;
88
+ }
89
+ visitAll(asts) {
90
+ return asts.map(ast => ast.visit(this));
91
+ }
92
+ visitQuote(ast) {
93
+ return null;
94
+ }
95
+ }
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtdmlzaXRvci1jb21waWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi92aXNpdG9ycy9wYXJzZS12aXNpdG9yLWNvbXBpbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxtQkFBbUIsRUFvQnRCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQUV6RCxXQUFXLENBQUMsR0FBVztRQUNuQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxPQUFPLEdBQUcsSUFBSSxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU87SUFDUCxVQUFVLENBQUMsR0FBVTtRQUNqQixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFnQjtRQUM3QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxQyxPQUFPLEdBQUcsU0FBUyxNQUFNLE9BQU8sTUFBTSxRQUFR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QztJQUVELFFBQVEsQ0FBQyxJQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVU7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFTVCxcclxuICAgIFJlY3Vyc2l2ZUFzdFZpc2l0b3IsXHJcbiAgICBQcm9wZXJ0eVJlYWQsXHJcbiAgICBNZXRob2RDYWxsLFxyXG4gICAgS2V5ZWRSZWFkLFxyXG4gICAgSW1wbGljaXRSZWNlaXZlcixcclxuICAgIExpdGVyYWxQcmltaXRpdmUsXHJcbiAgICBCaW5hcnksXHJcbiAgICBDaGFpbixcclxuICAgIENvbmRpdGlvbmFsLFxyXG4gICAgQmluZGluZ1BpcGUsXHJcbiAgICBGdW5jdGlvbkNhbGwsXHJcbiAgICBJbnRlcnBvbGF0aW9uLFxyXG4gICAgS2V5ZWRXcml0ZSxcclxuICAgIExpdGVyYWxBcnJheSxcclxuICAgIExpdGVyYWxNYXAsXHJcbiAgICBQcmVmaXhOb3QsXHJcbiAgICBQcm9wZXJ0eVdyaXRlLFxyXG4gICAgU2FmZVByb3BlcnR5UmVhZCxcclxuICAgIFNhZmVNZXRob2RDYWxsLFxyXG4gICAgUXVvdGVcclxufSBmcm9tICcuLi9hbmd1bGFyJztcclxuaW1wb3J0IHsgY29tcGlsZVRvSlNPTiB9IGZyb20gJy4uL3V0aWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBhcnNlVmlzaXRvckNvbXBpbGVyIGV4dGVuZHMgUmVjdXJzaXZlQXN0VmlzaXRvciB7XHJcblxyXG4gICAgdmlzaXRCaW5hcnkoYXN0OiBCaW5hcnkpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IGxlZnQgPSBhc3QubGVmdC52aXNpdCh0aGlzKTtcclxuICAgICAgICBjb25zdCByaWdodCA9IGFzdC5yaWdodC52aXNpdCh0aGlzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke2xlZnR9ICR7YXN0Lm9wZXJhdGlvbn0gJHtyaWdodH1gO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE9cclxuICAgIHZpc2l0Q2hhaW4oYXN0OiBDaGFpbik6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbXBpbGVUb0pTT04odGhpcy52aXNpdEFsbChhc3QuZXhwcmVzc2lvbnMpKTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdENvbmRpdGlvbmFsKGFzdDogQ29uZGl0aW9uYWwpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IGFzdC5jb25kaXRpb24udmlzaXQodGhpcyk7XHJcbiAgICAgICAgY29uc3QgdHJ1ZUV4cCA9IGFzdC50cnVlRXhwLnZpc2l0KHRoaXMpO1xyXG4gICAgICAgIGNvbnN0IGZhbHNlRXhwID0gYXN0LmZhbHNlRXhwLnZpc2l0KHRoaXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7Y29uZGl0aW9ufSA/ICR7dHJ1ZUV4cH0gOiAke2ZhbHNlRXhwfWA7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRQaXBlKGFzdDogQmluZGluZ1BpcGUpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHBpcGUgPSBhc3QubmFtZTtcclxuICAgICAgICBjb25zdCBhcmdzID0gdGhpcy52aXNpdEFsbChhc3QuYXJncyk7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhc3QuZXhwLnZpc2l0KHRoaXMpO1xyXG4gICAgICAgIGFyZ3MudW5zaGlmdCh2YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBgcGlwZXNDYWNoZS5nZXQoJyR7cGlwZX0nKS50cmFuc2Zvcm0uYXBwbHkobnVsbCwgJHtjb21waWxlVG9KU09OKGFyZ3MpfSlgO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE9cclxuICAgIHZpc2l0RnVuY3Rpb25DYWxsKGFzdDogRnVuY3Rpb25DYWxsKTogYW55IHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBhc3QudGFyZ2V0LnZpc2l0KHRoaXMpO1xyXG4gICAgICAgIGNvbnN0IGFyZ3MgPSBjb21waWxlVG9KU09OKHRoaXMudmlzaXRBbGwoYXN0LmFyZ3MpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke3RhcmdldH0uYXBwbHkoJHt0YXJnZXR9LCAke2FyZ3N9KWA7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRJbXBsaWNpdFJlY2VpdmVyKGFzdDogSW1wbGljaXRSZWNlaXZlcik6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGBjb250ZXh0YDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdEludGVycG9sYXRpb24oYXN0OiBJbnRlcnBvbGF0aW9uKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52aXNpdEFsbChhc3QuZXhwcmVzc2lvbnMpWzBdO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0S2V5ZWRSZWFkKGFzdDogS2V5ZWRSZWFkKTogYW55IHtcclxuICAgICAgICBjb25zdCBvYmogPSBhc3Qub2JqLnZpc2l0KHRoaXMpO1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGFzdC5rZXkudmlzaXQodGhpcyk7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHtvYmp9WyR7a2V5fV1gO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0S2V5ZWRXcml0ZShhc3Q6IEtleWVkV3JpdGUpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0TGl0ZXJhbEFycmF5KGFzdDogTGl0ZXJhbEFycmF5KTogYW55IHtcclxuICAgICAgICByZXR1cm4gY29tcGlsZVRvSlNPTih0aGlzLnZpc2l0QWxsKGFzdC5leHByZXNzaW9ucykpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0TGl0ZXJhbE1hcChhc3Q6IExpdGVyYWxNYXApOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBhc3Qua2V5cztcclxuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnZpc2l0QWxsKGFzdC52YWx1ZXMpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuZ3RoID0ga2V5cy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICByZXN1bHRba2V5c1tpXV0gPSB2YWx1ZXNbaV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY29tcGlsZVRvSlNPTihyZXN1bHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0TGl0ZXJhbFByaW1pdGl2ZShhc3Q6IExpdGVyYWxQcmltaXRpdmUpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgYXN0LnZhbHVlID09PSAnc3RyaW5nJyA/IGAnJHthc3QudmFsdWV9J2AgOiBhc3QudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRNZXRob2RDYWxsKGFzdDogTWV0aG9kQ2FsbCk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgbWV0aG9kTmFtZSA9IGFzdC5uYW1lO1xyXG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMpO1xyXG4gICAgICAgIGNvbnN0IGFyZ3MgPSBjb21waWxlVG9KU09OKHRoaXMudmlzaXRBbGwoYXN0LmFyZ3MpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke3JlY2VpdmVyfVsnJHttZXRob2ROYW1lfSddLmFwcGx5KCR7cmVjZWl2ZXJ9LCAke2FyZ3N9KWA7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRQcmVmaXhOb3QoYXN0OiBQcmVmaXhOb3QpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBhc3QuZXhwcmVzc2lvbi52aXNpdCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFByb3BlcnR5UmVhZChhc3Q6IFByb3BlcnR5UmVhZCk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSBhc3QubmFtZTtcclxuICAgICAgICBjb25zdCByZWNlaXZlciA9IGFzdC5yZWNlaXZlci52aXNpdCh0aGlzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke3JlY2VpdmVyfVsnJHtwcm9wZXJ0eX0nXWA7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRQcm9wZXJ0eVdyaXRlKGFzdDogUHJvcGVydHlXcml0ZSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRTYWZlUHJvcGVydHlSZWFkKGFzdDogU2FmZVByb3BlcnR5UmVhZCk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSBhc3QubmFtZTtcclxuICAgICAgICBjb25zdCByZWNlaXZlciA9IGFzdC5yZWNlaXZlci52aXNpdCh0aGlzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke3JlY2VpdmVyfVsnJHtwcm9wZXJ0eX0nXWA7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRTYWZlTWV0aG9kQ2FsbChhc3Q6IFNhZmVNZXRob2RDYWxsKTogYW55IHtcclxuICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gYXN0Lm5hbWU7XHJcbiAgICAgICAgY29uc3QgcmVjZWl2ZXIgPSBhc3QucmVjZWl2ZXIudmlzaXQodGhpcyk7XHJcbiAgICAgICAgY29uc3QgYXJncyA9IGNvbXBpbGVUb0pTT04odGhpcy52aXNpdEFsbChhc3QuYXJncykpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7cmVjZWl2ZXJ9Wycke21ldGhvZE5hbWV9J10uYXBwbHkoJHtyZWNlaXZlcn0sICR7YXJnc30pYDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdEFsbChhc3RzOiBBU1RbXSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGFzdHMubWFwKGFzdCA9PiBhc3QudmlzaXQodGhpcykpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0UXVvdGUoYXN0OiBRdW90ZSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,141 @@
1
+ import { RecursiveAstVisitor } from '../angular';
2
+ import * as util from '../util';
3
+ import { BinaryOperations } from '../util/binary-operations';
4
+ export class ParseVisitorResolver extends RecursiveAstVisitor {
5
+ constructor(pipes) {
6
+ super();
7
+ this.pipes = pipes;
8
+ }
9
+ ;
10
+ visitBinary(ast, context) {
11
+ const execFn = BinaryOperations.get(ast.operation);
12
+ if (!execFn) {
13
+ throw new Error(`Parse ERROR: on visitBinary, unknown operator ${ast.operation}`);
14
+ }
15
+ return execFn(ast.left.visit(this, context), ast.right.visit(this, context));
16
+ }
17
+ // TODO
18
+ visitChain(ast, context) {
19
+ return this.visitAll(ast.expressions, context);
20
+ }
21
+ visitConditional(ast, context) {
22
+ if (ast.condition.visit(this, context)) {
23
+ return ast.trueExp.visit(this, context);
24
+ }
25
+ else if (util.isPresent(ast.falseExp)) {
26
+ return ast.falseExp.visit(this, context);
27
+ }
28
+ return null;
29
+ }
30
+ visitPipe(ast, context) {
31
+ const pipe = this.pipes.get(ast.name);
32
+ if (!pipe) {
33
+ throw new Error(`pipe ${ast.name} not found.`);
34
+ }
35
+ if (!pipe.transform) {
36
+ throw new Error(`Parse ERROR: on visitPipe, transform method doesn't exist on pipe ${ast.name}.`);
37
+ }
38
+ const value = ast.exp.visit(this, context);
39
+ const pipeArgs = this.visitAll(ast.args, context);
40
+ pipeArgs.unshift(value);
41
+ return pipe.transform.apply(null, pipeArgs);
42
+ }
43
+ // TODO
44
+ visitFunctionCall(ast, context) {
45
+ const target = ast.target.visit(this, context);
46
+ if (!util.isFunction(target)) {
47
+ throw new Error(`Parse ERROR: on visitFunctionCall, target is not a function.`);
48
+ }
49
+ const args = this.visitAll(ast.args, context);
50
+ return target.apply(target, args);
51
+ }
52
+ visitImplicitReceiver(ast, context) {
53
+ return context;
54
+ }
55
+ visitInterpolation(ast, context) {
56
+ return this.visitAll(ast.expressions, context)[0];
57
+ }
58
+ visitKeyedRead(ast, context) {
59
+ const obj = ast.obj.visit(this, context);
60
+ const key = ast.key.visit(this, context);
61
+ return obj[key];
62
+ }
63
+ visitKeyedWrite(ast, context) {
64
+ const obj = ast.obj.visit(this, context);
65
+ const key = ast.key.visit(this, context);
66
+ const value = ast.value.visit(this, context);
67
+ obj[key] = value;
68
+ return null;
69
+ }
70
+ visitLiteralArray(ast, context) {
71
+ return this.visitAll(ast.expressions, context);
72
+ }
73
+ visitLiteralMap(ast, context) {
74
+ const result = {};
75
+ const keys = ast.keys;
76
+ const values = this.visitAll(ast.values, context);
77
+ for (let i = 0, length = keys.length; i < length; i++) {
78
+ result[keys[i]] = values[i];
79
+ }
80
+ return result;
81
+ }
82
+ visitLiteralPrimitive(ast, context) {
83
+ return ast.value;
84
+ }
85
+ visitMethodCall(ast, context) {
86
+ const receiver = ast.receiver.visit(this, context);
87
+ if (!util.isJsObject(receiver)) {
88
+ throw new Error(`Parse ERROR: on visitMethodCall, invalid method receiver.`);
89
+ }
90
+ const method = receiver[ast.name];
91
+ if (!util.isFunction(method)) {
92
+ throw new Error(`Parse ERROR: on visitMethodCall, method ${ast.name} doesn't exist on receiver.`);
93
+ }
94
+ const args = this.visitAll(ast.args, context);
95
+ return method.apply(receiver, args);
96
+ }
97
+ visitPrefixNot(ast, context) {
98
+ return ast.expression.visit(this, context);
99
+ }
100
+ visitPropertyRead(ast, context) {
101
+ const receiver = ast.receiver.visit(this, context);
102
+ if (!util.isJsObject(receiver)) {
103
+ throw new Error(`Parse ERROR: on visitPropertyRead, invalid property receiver.`);
104
+ }
105
+ return receiver[ast.name];
106
+ }
107
+ visitPropertyWrite(ast, context) {
108
+ const receiver = ast.receiver.visit(this, context);
109
+ if (!util.isJsObject(receiver)) {
110
+ throw new Error(`Parse ERROR: on visitPropertyRead, invalid property receiver.`);
111
+ }
112
+ receiver[ast.name] = ast.value.visit(this, context);
113
+ return null;
114
+ }
115
+ visitSafePropertyRead(ast, context) {
116
+ const receiver = ast.receiver.visit(this, context);
117
+ if (!util.isJsObject(receiver)) {
118
+ throw new Error(`Parse ERROR: on visitSafePropertyRead, invalid property receiver.`);
119
+ }
120
+ return receiver[ast.name];
121
+ }
122
+ visitSafeMethodCall(ast, context) {
123
+ const receiver = ast.receiver.visit(this, context);
124
+ if (!util.isJsObject(receiver)) {
125
+ throw new Error(`Parse ERROR: on visitSafeMethodCall, invalid method receiver.`);
126
+ }
127
+ const method = receiver[ast.name];
128
+ if (!util.isFunction(method)) {
129
+ throw new Error(`Parse ERROR: on visitSafeMethodCall, method ${ast.name} doesn't exist on receiver.`);
130
+ }
131
+ const args = this.visitAll(ast.args, context);
132
+ return method.apply(receiver, args);
133
+ }
134
+ visitAll(asts, context) {
135
+ return asts.map(ast => ast.visit(this, context));
136
+ }
137
+ visitQuote(ast, context) {
138
+ throw new Error(`Parse ERROR: on visitQuote, quote expression not allowed.`);
139
+ }
140
+ }
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtdmlzaXRvci1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi92aXNpdG9ycy9wYXJzZS12aXNpdG9yLXJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxtQkFBbUIsRUFvQnRCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sS0FBSyxJQUFJLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFFekQsWUFBb0IsS0FBdUI7UUFDdkMsS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFrQjtJQUUzQyxDQUFDO0lBQUEsQ0FBQztJQUVGLFdBQVcsQ0FBQyxHQUFXLEVBQUUsT0FBWTtRQUNqQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELE9BQU87SUFDUCxVQUFVLENBQUMsR0FBVSxFQUFFLE9BQVk7UUFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQWdCLEVBQUUsT0FBWTtRQUMzQyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFDSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBZ0IsRUFBRSxPQUFZO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksYUFBYSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDdEcsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbEQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTztJQUNQLGlCQUFpQixDQUFDLEdBQWlCLEVBQUUsT0FBWTtRQUM3QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxHQUFxQixFQUFFLE9BQVk7UUFDckQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQWtCLEVBQUUsT0FBWTtRQUMvQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQWMsRUFBRSxPQUFZO1FBQ3ZDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFlLEVBQUUsT0FBWTtRQUN6QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFpQixFQUFFLE9BQVk7UUFDN0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFlLEVBQUUsT0FBWTtRQUN6QyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxHQUFxQixFQUFFLE9BQVk7UUFDckQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBZSxFQUFFLE9BQVk7UUFDekMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsR0FBRyxDQUFDLElBQUksNkJBQTZCLENBQUMsQ0FBQztRQUN0RyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFjLEVBQUUsT0FBWTtRQUN2QyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBaUIsRUFBRSxPQUFZO1FBQzdDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQztRQUNyRixDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFrQixFQUFFLE9BQVk7UUFDL0MsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFFRCxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQscUJBQXFCLENBQUMsR0FBcUIsRUFBRSxPQUFZO1FBQ3JELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQztRQUN6RixDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFtQixFQUFFLE9BQVk7UUFDakQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsR0FBRyxDQUFDLElBQUksNkJBQTZCLENBQUMsQ0FBQztRQUMxRyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFXLEVBQUUsT0FBWTtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVSxFQUFFLE9BQVk7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBU1QsXHJcbiAgICBSZWN1cnNpdmVBc3RWaXNpdG9yLFxyXG4gICAgUHJvcGVydHlSZWFkLFxyXG4gICAgTWV0aG9kQ2FsbCxcclxuICAgIEtleWVkUmVhZCxcclxuICAgIEltcGxpY2l0UmVjZWl2ZXIsXHJcbiAgICBMaXRlcmFsUHJpbWl0aXZlLFxyXG4gICAgQmluYXJ5LFxyXG4gICAgQ2hhaW4sXHJcbiAgICBDb25kaXRpb25hbCxcclxuICAgIEJpbmRpbmdQaXBlLFxyXG4gICAgRnVuY3Rpb25DYWxsLFxyXG4gICAgSW50ZXJwb2xhdGlvbixcclxuICAgIEtleWVkV3JpdGUsXHJcbiAgICBMaXRlcmFsQXJyYXksXHJcbiAgICBMaXRlcmFsTWFwLFxyXG4gICAgUHJlZml4Tm90LFxyXG4gICAgUHJvcGVydHlXcml0ZSxcclxuICAgIFNhZmVQcm9wZXJ0eVJlYWQsXHJcbiAgICBTYWZlTWV0aG9kQ2FsbCxcclxuICAgIFF1b3RlXHJcbn0gZnJvbSAnLi4vYW5ndWxhcic7XHJcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi4vdXRpbCc7XHJcbmltcG9ydCB7IEJpbmFyeU9wZXJhdGlvbnMgfSBmcm9tICcuLi91dGlsL2JpbmFyeS1vcGVyYXRpb25zJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQYXJzZVZpc2l0b3JSZXNvbHZlciBleHRlbmRzIFJlY3Vyc2l2ZUFzdFZpc2l0b3Ige1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGlwZXM6IE1hcDxzdHJpbmcsIGFueT4pIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfTtcclxuXHJcbiAgICB2aXNpdEJpbmFyeShhc3Q6IEJpbmFyeSwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCBleGVjRm4gPSBCaW5hcnlPcGVyYXRpb25zLmdldChhc3Qub3BlcmF0aW9uKTtcclxuXHJcbiAgICAgICAgaWYgKCFleGVjRm4pIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRCaW5hcnksIHVua25vd24gb3BlcmF0b3IgJHthc3Qub3BlcmF0aW9ufWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGV4ZWNGbihhc3QubGVmdC52aXNpdCh0aGlzLCBjb250ZXh0KSwgYXN0LnJpZ2h0LnZpc2l0KHRoaXMsIGNvbnRleHQpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUT0RPXHJcbiAgICB2aXNpdENoYWluKGFzdDogQ2hhaW4sIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaXRBbGwoYXN0LmV4cHJlc3Npb25zLCBjb250ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdENvbmRpdGlvbmFsKGFzdDogQ29uZGl0aW9uYWwsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgaWYgKGFzdC5jb25kaXRpb24udmlzaXQodGhpcywgY29udGV4dCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFzdC50cnVlRXhwLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh1dGlsLmlzUHJlc2VudChhc3QuZmFsc2VFeHApKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhc3QuZmFsc2VFeHAudmlzaXQodGhpcywgY29udGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFBpcGUoYXN0OiBCaW5kaW5nUGlwZSwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCBwaXBlID0gdGhpcy5waXBlcy5nZXQoYXN0Lm5hbWUpO1xyXG5cclxuICAgICAgICBpZiAoIXBpcGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwaXBlICR7YXN0Lm5hbWV9IG5vdCBmb3VuZC5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghcGlwZS50cmFuc2Zvcm0pIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRQaXBlLCB0cmFuc2Zvcm0gbWV0aG9kIGRvZXNuJ3QgZXhpc3Qgb24gcGlwZSAke2FzdC5uYW1lfS5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXN0LmV4cC52aXNpdCh0aGlzLCBjb250ZXh0KTtcclxuICAgICAgICBjb25zdCBwaXBlQXJncyA9IHRoaXMudmlzaXRBbGwoYXN0LmFyZ3MsIGNvbnRleHQpO1xyXG5cclxuICAgICAgICBwaXBlQXJncy51bnNoaWZ0KHZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHBpcGUudHJhbnNmb3JtLmFwcGx5KG51bGwsIHBpcGVBcmdzKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUT0RPXHJcbiAgICB2aXNpdEZ1bmN0aW9uQ2FsbChhc3Q6IEZ1bmN0aW9uQ2FsbCwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBhc3QudGFyZ2V0LnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG5cclxuICAgICAgICBpZiAoIXV0aWwuaXNGdW5jdGlvbih0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFyc2UgRVJST1I6IG9uIHZpc2l0RnVuY3Rpb25DYWxsLCB0YXJnZXQgaXMgbm90IGEgZnVuY3Rpb24uYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBhcmdzID0gdGhpcy52aXNpdEFsbChhc3QuYXJncywgY29udGV4dCk7XHJcbiAgICAgICAgcmV0dXJuIHRhcmdldC5hcHBseSh0YXJnZXQsIGFyZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0SW1wbGljaXRSZWNlaXZlcihhc3Q6IEltcGxpY2l0UmVjZWl2ZXIsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRJbnRlcnBvbGF0aW9uKGFzdDogSW50ZXJwb2xhdGlvbiwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52aXNpdEFsbChhc3QuZXhwcmVzc2lvbnMsIGNvbnRleHQpWzBdO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0S2V5ZWRSZWFkKGFzdDogS2V5ZWRSZWFkLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IGFzdC5vYmoudmlzaXQodGhpcywgY29udGV4dCk7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gYXN0LmtleS52aXNpdCh0aGlzLCBjb250ZXh0KTtcclxuICAgICAgICByZXR1cm4gb2JqW2tleV07XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRLZXllZFdyaXRlKGFzdDogS2V5ZWRXcml0ZSwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCBvYmogPSBhc3Qub2JqLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGFzdC5rZXkudmlzaXQodGhpcywgY29udGV4dCk7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhc3QudmFsdWUudmlzaXQodGhpcywgY29udGV4dCk7XHJcbiAgICAgICAgb2JqW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdExpdGVyYWxBcnJheShhc3Q6IExpdGVyYWxBcnJheSwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52aXNpdEFsbChhc3QuZXhwcmVzc2lvbnMsIGNvbnRleHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0TGl0ZXJhbE1hcChhc3Q6IExpdGVyYWxNYXAsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IGFzdC5rZXlzO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMudmlzaXRBbGwoYXN0LnZhbHVlcywgY29udGV4dCk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFtrZXlzW2ldXSA9IHZhbHVlc1tpXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRMaXRlcmFsUHJpbWl0aXZlKGFzdDogTGl0ZXJhbFByaW1pdGl2ZSwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gYXN0LnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0TWV0aG9kQ2FsbChhc3Q6IE1ldGhvZENhbGwsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcmVjZWl2ZXIgPSBhc3QucmVjZWl2ZXIudmlzaXQodGhpcywgY29udGV4dCk7XHJcblxyXG4gICAgICAgIGlmICghdXRpbC5pc0pzT2JqZWN0KHJlY2VpdmVyKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNlIEVSUk9SOiBvbiB2aXNpdE1ldGhvZENhbGwsIGludmFsaWQgbWV0aG9kIHJlY2VpdmVyLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbWV0aG9kID0gcmVjZWl2ZXJbYXN0Lm5hbWVdO1xyXG5cclxuICAgICAgICBpZiAoIXV0aWwuaXNGdW5jdGlvbihtZXRob2QpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFyc2UgRVJST1I6IG9uIHZpc2l0TWV0aG9kQ2FsbCwgbWV0aG9kICR7YXN0Lm5hbWV9IGRvZXNuJ3QgZXhpc3Qgb24gcmVjZWl2ZXIuYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBhcmdzID0gdGhpcy52aXNpdEFsbChhc3QuYXJncywgY29udGV4dCk7XHJcbiAgICAgICAgcmV0dXJuIG1ldGhvZC5hcHBseShyZWNlaXZlciwgYXJncyk7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRQcmVmaXhOb3QoYXN0OiBQcmVmaXhOb3QsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGFzdC5leHByZXNzaW9uLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0UHJvcGVydHlSZWFkKGFzdDogUHJvcGVydHlSZWFkLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG5cclxuICAgICAgICBpZiAoIXV0aWwuaXNKc09iamVjdChyZWNlaXZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRQcm9wZXJ0eVJlYWQsIGludmFsaWQgcHJvcGVydHkgcmVjZWl2ZXIuYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVjZWl2ZXJbYXN0Lm5hbWVdO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0UHJvcGVydHlXcml0ZShhc3Q6IFByb3BlcnR5V3JpdGUsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcmVjZWl2ZXIgPSBhc3QucmVjZWl2ZXIudmlzaXQodGhpcywgY29udGV4dCk7XHJcblxyXG4gICAgICAgIGlmICghdXRpbC5pc0pzT2JqZWN0KHJlY2VpdmVyKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNlIEVSUk9SOiBvbiB2aXNpdFByb3BlcnR5UmVhZCwgaW52YWxpZCBwcm9wZXJ0eSByZWNlaXZlci5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlY2VpdmVyW2FzdC5uYW1lXSA9IGFzdC52YWx1ZS52aXNpdCh0aGlzLCBjb250ZXh0KTtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFNhZmVQcm9wZXJ0eVJlYWQoYXN0OiBTYWZlUHJvcGVydHlSZWFkLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG5cclxuICAgICAgICBpZiAoIXV0aWwuaXNKc09iamVjdChyZWNlaXZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRTYWZlUHJvcGVydHlSZWFkLCBpbnZhbGlkIHByb3BlcnR5IHJlY2VpdmVyLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlY2VpdmVyW2FzdC5uYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFNhZmVNZXRob2RDYWxsKGFzdDogU2FmZU1ldGhvZENhbGwsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcmVjZWl2ZXIgPSBhc3QucmVjZWl2ZXIudmlzaXQodGhpcywgY29udGV4dCk7XHJcblxyXG4gICAgICAgIGlmICghdXRpbC5pc0pzT2JqZWN0KHJlY2VpdmVyKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNlIEVSUk9SOiBvbiB2aXNpdFNhZmVNZXRob2RDYWxsLCBpbnZhbGlkIG1ldGhvZCByZWNlaXZlci5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IHJlY2VpdmVyW2FzdC5uYW1lXTtcclxuXHJcbiAgICAgICAgaWYgKCF1dGlsLmlzRnVuY3Rpb24obWV0aG9kKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNlIEVSUk9SOiBvbiB2aXNpdFNhZmVNZXRob2RDYWxsLCBtZXRob2QgJHthc3QubmFtZX0gZG9lc24ndCBleGlzdCBvbiByZWNlaXZlci5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGFyZ3MgPSB0aGlzLnZpc2l0QWxsKGFzdC5hcmdzLCBjb250ZXh0KTtcclxuICAgICAgICByZXR1cm4gbWV0aG9kLmFwcGx5KHJlY2VpdmVyLCBhcmdzKTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdEFsbChhc3RzOiBBU1RbXSwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gYXN0cy5tYXAoYXN0ID0+IGFzdC52aXNpdCh0aGlzLCBjb250ZXh0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRRdW90ZShhc3Q6IFF1b3RlLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFyc2UgRVJST1I6IG9uIHZpc2l0UXVvdGUsIHF1b3RlIGV4cHJlc3Npb24gbm90IGFsbG93ZWQuYCk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './visitors/parse-visitor-compiler';
2
+ export * from './visitors/parse-visitor-resolver';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyMnBhcnNlL3NyYy9saWIvdmlzaXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi92aXNpdG9ycy9wYXJzZS12aXNpdG9yLWNvbXBpbGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi92aXNpdG9ycy9wYXJzZS12aXNpdG9yLXJlc29sdmVyJzsiXX0=
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Public API Surface of angular2parse
3
+ */
4
+ export * from './lib/module';
5
+ export * from './lib/parse';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhbmd1bGFyMnBhcnNlXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYXJzZSdcclxuIl19