@auscope/angular2parse 4.0.1 → 17.0.0

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 (56) hide show
  1. package/README.md +49 -49
  2. package/{esm2020 → esm2022}/auscope-angular2parse.mjs +4 -4
  3. package/esm2022/lib/angular/compiler/assertions.mjs +45 -0
  4. package/{esm2020 → esm2022}/lib/angular/compiler/ast.mjs +393 -393
  5. package/{esm2020 → esm2022}/lib/angular/compiler/chars.mjs +78 -78
  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/{esm2020 → esm2022}/lib/angular/compiler.mjs +7 -7
  10. package/esm2022/lib/angular/facade/lang.mjs +85 -0
  11. package/{esm2020 → esm2022}/lib/angular/facade.mjs +1 -1
  12. package/{esm2020 → esm2022}/lib/angular.mjs +3 -3
  13. package/esm2022/lib/module.mjs +18 -0
  14. package/esm2022/lib/parse.mjs +66 -0
  15. package/{esm2020 → esm2022}/lib/util/binary-operations.mjs +18 -18
  16. package/{esm2020 → esm2022}/lib/util/lang.mjs +13 -13
  17. package/{esm2020 → esm2022}/lib/util.mjs +3 -3
  18. package/esm2022/lib/visitors/parse-visitor-compiler.mjs +96 -0
  19. package/esm2022/lib/visitors/parse-visitor-resolver.mjs +141 -0
  20. package/{esm2020 → esm2022}/lib/visitors.mjs +3 -3
  21. package/{esm2020 → esm2022}/public-api.mjs +6 -6
  22. package/{fesm2020 → fesm2022}/auscope-angular2parse.mjs +1999 -1999
  23. package/fesm2022/auscope-angular2parse.mjs.map +1 -0
  24. package/index.d.ts +5 -5
  25. package/lib/angular/compiler/assertions.d.ts +9 -9
  26. package/lib/angular/compiler/ast.d.ts +242 -242
  27. package/lib/angular/compiler/chars.d.ts +69 -69
  28. package/lib/angular/compiler/interpolation-config.d.ts +14 -14
  29. package/lib/angular/compiler/lexer.d.ts +44 -44
  30. package/lib/angular/compiler/parser.d.ts +92 -92
  31. package/lib/angular/compiler.d.ts +6 -6
  32. package/lib/angular/facade/lang.d.ts +44 -44
  33. package/lib/angular/facade.d.ts +1 -1
  34. package/lib/angular.d.ts +2 -2
  35. package/lib/module.d.ts +9 -9
  36. package/lib/parse.d.ts +21 -21
  37. package/lib/util/binary-operations.d.ts +1 -1
  38. package/lib/util/lang.d.ts +4 -4
  39. package/lib/util.d.ts +2 -2
  40. package/lib/visitors/parse-visitor-compiler.d.ts +23 -23
  41. package/lib/visitors/parse-visitor-resolver.d.ts +25 -25
  42. package/lib/visitors.d.ts +2 -2
  43. package/package.json +8 -14
  44. package/public-api.d.ts +2 -2
  45. package/esm2020/lib/angular/compiler/assertions.mjs +0 -45
  46. package/esm2020/lib/angular/compiler/interpolation-config.mjs +0 -24
  47. package/esm2020/lib/angular/compiler/lexer.mjs +0 -344
  48. package/esm2020/lib/angular/compiler/parser.mjs +0 -721
  49. package/esm2020/lib/angular/facade/lang.mjs +0 -85
  50. package/esm2020/lib/module.mjs +0 -18
  51. package/esm2020/lib/parse.mjs +0 -66
  52. package/esm2020/lib/visitors/parse-visitor-compiler.mjs +0 -96
  53. package/esm2020/lib/visitors/parse-visitor-resolver.mjs +0 -141
  54. package/fesm2015/auscope-angular2parse.mjs +0 -2035
  55. package/fesm2015/auscope-angular2parse.mjs.map +0 -1
  56. package/fesm2020/auscope-angular2parse.mjs.map +0 -1
@@ -1,7 +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==
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyMnBhcnNlL3NyYy9saWIvYW5ndWxhci9jb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tcGlsZXIvYXNzZXJ0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBpbGVyL2FzdCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBpbGVyL2NoYXJzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcGlsZXIvaW50ZXJwb2xhdGlvbi1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21waWxlci9sZXhlcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBpbGVyL3BhcnNlcic7Il19
@@ -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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QyxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxDQUFTO0lBQ2xDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIEJyb3dzZXJOb2RlR2xvYmFsIHtcbiAgICBPYmplY3Q6IHR5cGVvZiBPYmplY3Q7XG4gICAgQXJyYXk6IHR5cGVvZiBBcnJheTtcbiAgICBNYXA6IHR5cGVvZiBNYXA7XG4gICAgU2V0OiB0eXBlb2YgU2V0O1xuICAgIERhdGU6IERhdGVDb25zdHJ1Y3RvcjtcbiAgICBSZWdFeHA6IFJlZ0V4cENvbnN0cnVjdG9yO1xuICAgIEpTT046IHR5cGVvZiBKU09OO1xuICAgIE1hdGg6IGFueTsgIC8vIHR5cGVvZiBNYXRoO1xuICAgIGFzc2VydChjb25kaXRpb246IGFueSk6IHZvaWQ7XG4gICAgUmVmbGVjdDogYW55O1xuICAgIGdldEFuZ3VsYXJUZXN0YWJpbGl0eTogRnVuY3Rpb247XG4gICAgZ2V0QWxsQW5ndWxhclRlc3RhYmlsaXRpZXM6IEZ1bmN0aW9uO1xuICAgIGdldEFsbEFuZ3VsYXJSb290RWxlbWVudHM6IEZ1bmN0aW9uO1xuICAgIGZyYW1ld29ya1N0YWJpbGl6ZXJzOiBBcnJheTxGdW5jdGlvbj47XG4gICAgc2V0VGltZW91dDogRnVuY3Rpb247XG4gICAgY2xlYXJUaW1lb3V0OiBGdW5jdGlvbjtcbiAgICBzZXRJbnRlcnZhbDogRnVuY3Rpb247XG4gICAgY2xlYXJJbnRlcnZhbDogRnVuY3Rpb247XG4gICAgZW5jb2RlVVJJOiBGdW5jdGlvbjtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZU5hbWVGb3JEZWJ1Z2dpbmcodHlwZTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZVsnbmFtZSddIHx8IHR5cGVvZiB0eXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmVzZW50KG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG9iaiAhPSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCbGFuayhvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogPT0gbnVsbDtcbn1cblxuY29uc3QgU1RSSU5HX01BUF9QUk9UTyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih7fSk7XG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpY3RTdHJpbmdNYXAob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqICE9PSBudWxsICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopID09PSBTVFJJTkdfTUFQX1BST1RPO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHRva2VuOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdG9rZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gJycgKyB0b2tlbjtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4ub3ZlcnJpZGRlbk5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGAke3Rva2VuLm92ZXJyaWRkZW5OYW1lfWA7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuLm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGAke3Rva2VuLm5hbWV9YDtcbiAgICB9XG5cbiAgICBjb25zdCByZXMgPSB0b2tlbi50b1N0cmluZygpO1xuICAgIGNvbnN0IG5ld0xpbmVJbmRleCA9IHJlcy5pbmRleE9mKCdcXG4nKTtcbiAgICByZXR1cm4gbmV3TGluZUluZGV4ID09PSAtMSA/IHJlcyA6IHJlcy5zdWJzdHJpbmcoMCwgbmV3TGluZUluZGV4KTtcbn1cblxuZXhwb3J0IGNsYXNzIE51bWJlcldyYXBwZXIge1xuICAgIHN0YXRpYyBwYXJzZUludEF1dG9SYWRpeCh0ZXh0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCByZXN1bHQ6IG51bWJlciA9IHBhcnNlSW50KHRleHQpO1xuICAgICAgICBpZiAoaXNOYU4ocmVzdWx0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGludGVnZXIgbGl0ZXJhbCB3aGVuIHBhcnNpbmcgJyArIHRleHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgc3RhdGljIGlzTnVtZXJpYyh2YWx1ZTogYW55KTogYm9vbGVhbiB7IHJldHVybiAhaXNOYU4odmFsdWUgLSBwYXJzZUZsb2F0KHZhbHVlKSk7IH1cbn1cblxuLy8gSlMgaGFzIE5hTiAhPT0gTmFOXG5leHBvcnQgZnVuY3Rpb24gbG9vc2VJZGVudGljYWwoYTogYW55LCBiOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYSA9PT0gYiB8fCB0eXBlb2YgYSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGIgPT09ICdudW1iZXInICYmIGlzTmFOKGEpICYmIGlzTmFOKGIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNKc09iamVjdChvOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbyAhPT0gbnVsbCAmJiAodHlwZW9mIG8gPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIG8gPT09ICdvYmplY3QnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW50KG9iajogRXJyb3IgfCBPYmplY3QpIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgIGNvbnNvbGUubG9nKG9iaik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YXJuKG9iajogRXJyb3IgfCBPYmplY3QpIHtcbiAgICBjb25zb2xlLndhcm4ob2JqKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFZhbHVlT25QYXRoKGdsb2JhbDogYW55LCBwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBsZXQgb2JqOiBhbnkgPSBnbG9iYWw7XG4gICAgd2hpbGUgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IHBhcnRzLnNoaWZ0KCk7XG4gICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkobmFtZSkgJiYgb2JqW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgIG9iaiA9IG9ialtuYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9iaiA9IG9ialtuYW1lXSA9IHt9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChvYmogPT09IHVuZGVmaW5lZCB8fCBvYmogPT09IG51bGwpIHtcbiAgICAgICAgb2JqID0ge307XG4gICAgfVxuICAgIG9ialtwYXJ0cy5zaGlmdCgpXSA9IHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmltaXRpdmUob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWlzSnNPYmplY3Qob2JqKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzLnJlcGxhY2UoLyhbLiorP149IToke30oKXxbXFxdXFwvXFxcXF0pL2csICdcXFxcJDEnKTtcbn0iXX0=
@@ -1,2 +1,2 @@
1
- export * from './facade/lang';
1
+ export * from './facade/lang';
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjYWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhcjJwYXJzZS9zcmMvbGliL2FuZ3VsYXIvZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mYWNhZGUvbGFuZyc7Il19
@@ -1,3 +1,3 @@
1
- export * from './angular/compiler';
2
- export * from './angular/facade';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi9hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5ndWxhci9jb21waWxlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vYW5ndWxhci9mYWNhZGUnOyJdfQ==
1
+ export * from './angular/compiler';
2
+ export * from './angular/facade';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi9hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5ndWxhci9jb21waWxlcic7XG5leHBvcnQgKiBmcm9tICcuL2FuZ3VsYXIvZmFjYWRlJzsiXX0=
@@ -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: "17.3.6", ngImport: i0, type: Angular2ParseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: Angular2ParseModule }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: Angular2ParseModule }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: Angular2ParseModule, decorators: [{
16
+ type: NgModule
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhcjJwYXJzZS9zcmMvbGliL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQVMsWUFBWSxFQUFlLE1BQU0sU0FBUyxDQUFDOztBQUczRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBNkI7UUFDMUMsT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsU0FBUyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGNBQWMsSUFBSSxFQUFFLEVBQUMsQ0FBQztTQUNsRixDQUFDO0lBQ0osQ0FBQzs4R0FOVSxtQkFBbUI7K0dBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcnNlLCBQSVBFU19DT05GSUcsIFBpcGVzQ29uZmlnIH0gZnJvbSAnLi9wYXJzZSc7XG5cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgQW5ndWxhcjJQYXJzZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KHBpcGVzQ29uZmlnTWFwOiBQaXBlc0NvbmZpZ1tdKTogTW9kdWxlV2l0aFByb3ZpZGVyczxhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXIyUGFyc2VNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogUElQRVNfQ09ORklHLCBtdWx0aTogdHJ1ZSwgdXNlVmFsdWU6IHBpcGVzQ29uZmlnTWFwIHx8IFtdfV1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -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: "17.3.6", 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: "17.3.6", ngImport: i0, type: Parse, providedIn: 'root' }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyMnBhcnNlL3NyYy9saWIvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBaUIsTUFBTSxXQUFXLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUV4RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7QUFROUQsTUFBTSxPQUFPLEtBQUs7SUFNaEI7O09BRUc7SUFFSCxZQUE4QyxZQUE2QjtRQVRuRSxZQUFPLEdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLGdCQUFXLEdBQXFCLElBQUksR0FBRyxFQUFlLENBQUM7UUFDdkQsZUFBVSxHQUEwQixJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUNoRSxlQUFVLEdBQTBCLElBQUksR0FBRyxFQUFvQixDQUFDO1FBT3RFLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QyxZQUFZO2lCQUNULE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO2lCQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkgsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsVUFBa0I7UUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUUzQyxJQUFJLEdBQUcsR0FBa0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXpFLE1BQU0sU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLE9BQVk7WUFDL0MsT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUzQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxDQUFDLFVBQWtCO1FBQ3JCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzRCxJQUFJLEdBQUcsR0FBa0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsU0FBUyxTQUFTLENBQUMsT0FBWTtZQUMvQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUzQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzhHQWhFVSxLQUFLLGtCQVVnQixZQUFZO2tIQVZqQyxLQUFLLGNBRE8sTUFBTTs7MkZBQ2xCLEtBQUs7a0JBRGpCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkFXakIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcnNlciwgTGV4ZXIsIEFTVFdpdGhTb3VyY2UgfSBmcm9tICcuL2FuZ3VsYXInO1xuaW1wb3J0IHsgUGFyc2VWaXNpdG9yUmVzb2x2ZXIsIFBhcnNlVmlzaXRvckNvbXBpbGVyIH0gZnJvbSAnLi92aXNpdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBQSVBFU19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ1BpcGVzQ29uZmlnJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZXNDb25maWcge1xuICBwaXBlTmFtZTogc3RyaW5nO1xuICBwaXBlSW5zdGFuY2U6IGFueTtcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgUGFyc2Uge1xuICBwcml2YXRlIF9wYXJzZXI6IFBhcnNlciA9IG5ldyBQYXJzZXIobmV3IExleGVyKCkpO1xuICBwcml2YXRlIF9waXBlc0NhY2hlOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgcHJpdmF0ZSBfZXZhbENhY2hlOiBNYXA8c3RyaW5nLCBGdW5jdGlvbj4gPSBuZXcgTWFwPHN0cmluZywgRnVuY3Rpb24+KCk7XG4gIHByaXZhdGUgX2NhbGNDYWNoZTogTWFwPHN0cmluZywgRnVuY3Rpb24+ID0gbmV3IE1hcDxzdHJpbmcsIEZ1bmN0aW9uPigpO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGRlcGVuZGVuY3kgaW5qZWN0IHRoZSBBbmd1bGFyIDIgcGFyc2VyLlxuICAgKi9cblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KFBJUEVTX0NPTkZJRykgcGlwZXNDb25maWdzOiBQaXBlc0NvbmZpZ1tdW10pIHtcbiAgICBpZiAocGlwZXNDb25maWdzICYmIHBpcGVzQ29uZmlncy5sZW5ndGgpIHtcbiAgICAgIHBpcGVzQ29uZmlnc1xuICAgICAgICAuZmlsdGVyKHBpcGVzID0+IHBpcGVzICYmIHBpcGVzLmxlbmd0aClcbiAgICAgICAgLmZvckVhY2gocGlwZXMgPT4gcGlwZXMuZm9yRWFjaCgocGlwZURhdGEpID0+IHRoaXMuX3BpcGVzQ2FjaGUuc2V0KHBpcGVEYXRhLnBpcGVOYW1lLCBwaXBlRGF0YS5waXBlSW5zdGFuY2UpKSk7XG4gICAgfVxuICB9XG5cbiAgZXZhbChleHByZXNzaW9uOiBzdHJpbmcpOiBGdW5jdGlvbiB7XG4gICAgaWYgKHRoaXMuX2V2YWxDYWNoZS5oYXMoZXhwcmVzc2lvbikpIHtcbiAgICAgIHJldHVybiB0aGlzLl9ldmFsQ2FjaGUuZ2V0KGV4cHJlc3Npb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHZpc2l0b3IgPSBuZXcgUGFyc2VWaXNpdG9yQ29tcGlsZXIoKTtcblxuICAgIGxldCBhc3Q6IEFTVFdpdGhTb3VyY2UgPSB0aGlzLl9wYXJzZXIucGFyc2VJbnRlcnBvbGF0aW9uKGV4cHJlc3Npb24sICdQYXJzZScpO1xuXG4gICAgaWYgKCFhc3QpIHtcbiAgICAgIGFzdCA9IHRoaXMuX3BhcnNlci5wYXJzZUJpbmRpbmcoZXhwcmVzc2lvbiwgJ1BhcnNlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZm5Cb2R5ID0gYXN0LnZpc2l0KHZpc2l0b3IpO1xuICAgIGNvbnN0IHBpcGVzQ2FjaGUgPSB0aGlzLl9waXBlc0NhY2hlO1xuICAgIGNvbnN0IGdldEZuID0gbmV3IEZ1bmN0aW9uKCdjb250ZXh0JywgJ3BpcGVzQ2FjaGUnLCBgcmV0dXJuICR7Zm5Cb2R5fTtgKTtcblxuICAgIGNvbnN0IGV2YWxQYXJzZSA9IGZ1bmN0aW9uIGV2YWxQYXJzZShjb250ZXh0OiBhbnkpOiBhbnkge1xuICAgICAgcmV0dXJuIGdldEZuKGNvbnRleHQsIHBpcGVzQ2FjaGUpO1xuICAgIH07XG5cbiAgICB0aGlzLl9ldmFsQ2FjaGUuc2V0KGV4cHJlc3Npb24sIGV2YWxQYXJzZSk7XG5cbiAgICByZXR1cm4gZXZhbFBhcnNlO1xuICB9XG5cbiAgY2FsYyhleHByZXNzaW9uOiBzdHJpbmcpOiBGdW5jdGlvbiB7XG4gICAgaWYgKHRoaXMuX2NhbGNDYWNoZS5oYXMoZXhwcmVzc2lvbikpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jYWxjQ2FjaGUuZ2V0KGV4cHJlc3Npb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHZpc2l0b3IgPSBuZXcgUGFyc2VWaXNpdG9yUmVzb2x2ZXIodGhpcy5fcGlwZXNDYWNoZSk7XG5cbiAgICBsZXQgYXN0OiBBU1RXaXRoU291cmNlID0gdGhpcy5fcGFyc2VyLnBhcnNlSW50ZXJwb2xhdGlvbihleHByZXNzaW9uLCAnUGFyc2UnKTtcblxuICAgIGlmICghYXN0KSB7XG4gICAgICBhc3QgPSB0aGlzLl9wYXJzZXIucGFyc2VCaW5kaW5nKGV4cHJlc3Npb24sICdQYXJzZScpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbGNQYXJzZSA9IGZ1bmN0aW9uIGNhbGNQYXJzZShjb250ZXh0OiBhbnkpOiBhbnkge1xuICAgICAgcmV0dXJuIGFzdC52aXNpdCh2aXNpdG9yLCBjb250ZXh0KTtcbiAgICB9O1xuXG4gICAgdGhpcy5fY2FsY0NhY2hlLnNldChleHByZXNzaW9uLCBjYWxjUGFyc2UpO1xuXG4gICAgcmV0dXJuIGNhbGNQYXJzZTtcbiAgfVxufVxuIl19
@@ -1,18 +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=
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+KFtcbiAgICBbJz09JywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCA9PSByaWdodF0sXG4gICAgWyc9PT0nLCAobGVmdDogYW55LCByaWdodDogYW55KSA9PiBsZWZ0ID09PSByaWdodF0sXG4gICAgWychPScsIChsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpID0+IGxlZnQgIT0gcmlnaHRdLFxuICAgIFsnIT09JywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCAhPT0gcmlnaHRdLFxuICAgIFsnJiYnLCAobGVmdDogYW55LCByaWdodDogYW55KSA9PiBsZWZ0ICYmIHJpZ2h0XSxcbiAgICBbJ3x8JywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCB8fCByaWdodF0sXG4gICAgWycrJywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCArIHJpZ2h0XSxcbiAgICBbJy0nLCAobGVmdDogYW55LCByaWdodDogYW55KSA9PiBsZWZ0IC0gcmlnaHRdLFxuICAgIFsnLycsIChsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpID0+IGxlZnQgLyByaWdodF0sXG4gICAgWycqJywgKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSkgPT4gbGVmdCAqIHJpZ2h0XSxcbiAgICBbJyUnLCAobGVmdDogYW55LCByaWdodDogYW55KSA9PiBsZWZ0ICUgcmlnaHRdLFxuICAgIFsnPCcsIChsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpID0+IGxlZnQgPCByaWdodF0sXG4gICAgWyc8PScsIChsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpID0+IGxlZnQgPD0gcmlnaHRdLFxuICAgIFsnPicsIChsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpID0+IGxlZnQgPiByaWdodF0sXG4gICAgWyc+PScsIChsZWZ0OiBhbnksIHJpZ2h0OiBhbnkpID0+IGxlZnQgPj0gcmlnaHRdLFxuXSk7Il19
@@ -1,13 +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==
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi91dGlsL2xhbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFTO0lBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVE7SUFDOUIsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBUTtJQUMvQixPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxVQUFVLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBUTtJQUMvQixPQUFPLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGVUb0pTT04oanNvbjogYW55KSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGpzb24pLnJlcGxhY2UoL1wiL2csICcnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlc2VudChvYmo6IGFueSkge1xuICAgIHJldHVybiBvYmogIT09IG51bGwgJiYgb2JqICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0pzT2JqZWN0KG9iajogYW55KSB7XG4gICAgcmV0dXJuIG9iaiAhPT0gbnVsbCAmJiAodHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbDogYW55KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdmdW5jdGlvbic7XG59Il19
@@ -1,3 +1,3 @@
1
- export * from './util/binary-operations';
2
- export * from './util/lang';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0aWwvYmluYXJ5LW9wZXJhdGlvbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvbGFuZyc7Il19
1
+ export * from './util/binary-operations';
2
+ export * from './util/lang';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0aWwvYmluYXJ5LW9wZXJhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL2xhbmcnOyJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtdmlzaXRvci1jb21waWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi92aXNpdG9ycy9wYXJzZS12aXNpdG9yLWNvbXBpbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxtQkFBbUIsRUFvQnRCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQUV6RCxXQUFXLENBQUMsR0FBVztRQUNuQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxPQUFPLEdBQUcsSUFBSSxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU87SUFDUCxVQUFVLENBQUMsR0FBVTtRQUNqQixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFnQjtRQUM3QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxQyxPQUFPLEdBQUcsU0FBUyxNQUFNLE9BQU8sTUFBTSxRQUFRLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQWdCO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQixPQUFPLG1CQUFtQixJQUFJLDRCQUE0QixhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNyRixDQUFDO0lBRUQsT0FBTztJQUNQLGlCQUFpQixDQUFDLEdBQWlCO1FBQy9CLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXBELE9BQU8sR0FBRyxNQUFNLFVBQVUsTUFBTSxLQUFLLElBQUksR0FBRyxDQUFDO0lBQ2pELENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxHQUFxQjtRQUN2QyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBa0I7UUFDakMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQWM7UUFDekIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsT0FBTyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQWU7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQWlCO1FBQy9CLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFlO1FBQzNCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsR0FBcUI7UUFDdkMsT0FBTyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUN4RSxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQWU7UUFDM0IsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVwRCxPQUFPLEdBQUcsUUFBUSxLQUFLLFVBQVUsWUFBWSxRQUFRLEtBQUssSUFBSSxHQUFHLENBQUM7SUFDdEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFjO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQWlCO1FBQy9CLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDMUIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUMsT0FBTyxHQUFHLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBa0I7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELHFCQUFxQixDQUFDLEdBQXFCO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDMUIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUMsT0FBTyxHQUFHLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsR0FBbUI7UUFDbkMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVwRCxPQUFPLEdBQUcsUUFBUSxLQUFLLFVBQVUsWUFBWSxRQUFRLEtBQUssSUFBSSxHQUFHLENBQUM7SUFDdEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVU7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBU1QsXG4gICAgUmVjdXJzaXZlQXN0VmlzaXRvcixcbiAgICBQcm9wZXJ0eVJlYWQsXG4gICAgTWV0aG9kQ2FsbCxcbiAgICBLZXllZFJlYWQsXG4gICAgSW1wbGljaXRSZWNlaXZlcixcbiAgICBMaXRlcmFsUHJpbWl0aXZlLFxuICAgIEJpbmFyeSxcbiAgICBDaGFpbixcbiAgICBDb25kaXRpb25hbCxcbiAgICBCaW5kaW5nUGlwZSxcbiAgICBGdW5jdGlvbkNhbGwsXG4gICAgSW50ZXJwb2xhdGlvbixcbiAgICBLZXllZFdyaXRlLFxuICAgIExpdGVyYWxBcnJheSxcbiAgICBMaXRlcmFsTWFwLFxuICAgIFByZWZpeE5vdCxcbiAgICBQcm9wZXJ0eVdyaXRlLFxuICAgIFNhZmVQcm9wZXJ0eVJlYWQsXG4gICAgU2FmZU1ldGhvZENhbGwsXG4gICAgUXVvdGVcbn0gZnJvbSAnLi4vYW5ndWxhcic7XG5pbXBvcnQgeyBjb21waWxlVG9KU09OIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBQYXJzZVZpc2l0b3JDb21waWxlciBleHRlbmRzIFJlY3Vyc2l2ZUFzdFZpc2l0b3Ige1xuXG4gICAgdmlzaXRCaW5hcnkoYXN0OiBCaW5hcnkpOiBhbnkge1xuICAgICAgICBjb25zdCBsZWZ0ID0gYXN0LmxlZnQudmlzaXQodGhpcyk7XG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gYXN0LnJpZ2h0LnZpc2l0KHRoaXMpO1xuXG4gICAgICAgIHJldHVybiBgJHtsZWZ0fSAke2FzdC5vcGVyYXRpb259ICR7cmlnaHR9YDtcbiAgICB9XG5cbiAgICAvLyBUT0RPXG4gICAgdmlzaXRDaGFpbihhc3Q6IENoYWluKTogYW55IHtcbiAgICAgICAgcmV0dXJuIGNvbXBpbGVUb0pTT04odGhpcy52aXNpdEFsbChhc3QuZXhwcmVzc2lvbnMpKTtcbiAgICB9XG5cbiAgICB2aXNpdENvbmRpdGlvbmFsKGFzdDogQ29uZGl0aW9uYWwpOiBhbnkge1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPSBhc3QuY29uZGl0aW9uLnZpc2l0KHRoaXMpO1xuICAgICAgICBjb25zdCB0cnVlRXhwID0gYXN0LnRydWVFeHAudmlzaXQodGhpcyk7XG4gICAgICAgIGNvbnN0IGZhbHNlRXhwID0gYXN0LmZhbHNlRXhwLnZpc2l0KHRoaXMpO1xuXG4gICAgICAgIHJldHVybiBgJHtjb25kaXRpb259ID8gJHt0cnVlRXhwfSA6ICR7ZmFsc2VFeHB9YDtcbiAgICB9XG5cbiAgICB2aXNpdFBpcGUoYXN0OiBCaW5kaW5nUGlwZSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHBpcGUgPSBhc3QubmFtZTtcbiAgICAgICAgY29uc3QgYXJncyA9IHRoaXMudmlzaXRBbGwoYXN0LmFyZ3MpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGFzdC5leHAudmlzaXQodGhpcyk7XG4gICAgICAgIGFyZ3MudW5zaGlmdCh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGBwaXBlc0NhY2hlLmdldCgnJHtwaXBlfScpLnRyYW5zZm9ybS5hcHBseShudWxsLCAke2NvbXBpbGVUb0pTT04oYXJncyl9KWA7XG4gICAgfVxuXG4gICAgLy8gVE9ET1xuICAgIHZpc2l0RnVuY3Rpb25DYWxsKGFzdDogRnVuY3Rpb25DYWxsKTogYW55IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gYXN0LnRhcmdldC52aXNpdCh0aGlzKTtcbiAgICAgICAgY29uc3QgYXJncyA9IGNvbXBpbGVUb0pTT04odGhpcy52aXNpdEFsbChhc3QuYXJncykpO1xuXG4gICAgICAgIHJldHVybiBgJHt0YXJnZXR9LmFwcGx5KCR7dGFyZ2V0fSwgJHthcmdzfSlgO1xuICAgIH1cblxuICAgIHZpc2l0SW1wbGljaXRSZWNlaXZlcihhc3Q6IEltcGxpY2l0UmVjZWl2ZXIpOiBhbnkge1xuICAgICAgICByZXR1cm4gYGNvbnRleHRgO1xuICAgIH1cblxuICAgIHZpc2l0SW50ZXJwb2xhdGlvbihhc3Q6IEludGVycG9sYXRpb24pOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpdEFsbChhc3QuZXhwcmVzc2lvbnMpWzBdO1xuICAgIH1cblxuICAgIHZpc2l0S2V5ZWRSZWFkKGFzdDogS2V5ZWRSZWFkKTogYW55IHtcbiAgICAgICAgY29uc3Qgb2JqID0gYXN0Lm9iai52aXNpdCh0aGlzKTtcbiAgICAgICAgY29uc3Qga2V5ID0gYXN0LmtleS52aXNpdCh0aGlzKTtcblxuICAgICAgICByZXR1cm4gYCR7b2JqfVske2tleX1dYDtcbiAgICB9XG5cbiAgICB2aXNpdEtleWVkV3JpdGUoYXN0OiBLZXllZFdyaXRlKTogYW55IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmlzaXRMaXRlcmFsQXJyYXkoYXN0OiBMaXRlcmFsQXJyYXkpOiBhbnkge1xuICAgICAgICByZXR1cm4gY29tcGlsZVRvSlNPTih0aGlzLnZpc2l0QWxsKGFzdC5leHByZXNzaW9ucykpO1xuICAgIH1cblxuICAgIHZpc2l0TGl0ZXJhbE1hcChhc3Q6IExpdGVyYWxNYXApOiBhbnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICAgICAgY29uc3Qga2V5cyA9IGFzdC5rZXlzO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnZpc2l0QWxsKGFzdC52YWx1ZXMpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5c1tpXV0gPSB2YWx1ZXNbaV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcGlsZVRvSlNPTihyZXN1bHQpO1xuICAgIH1cblxuICAgIHZpc2l0TGl0ZXJhbFByaW1pdGl2ZShhc3Q6IExpdGVyYWxQcmltaXRpdmUpOiBhbnkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGFzdC52YWx1ZSA9PT0gJ3N0cmluZycgPyBgJyR7YXN0LnZhbHVlfSdgIDogYXN0LnZhbHVlO1xuICAgIH1cblxuICAgIHZpc2l0TWV0aG9kQ2FsbChhc3Q6IE1ldGhvZENhbGwpOiBhbnkge1xuICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gYXN0Lm5hbWU7XG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMpO1xuICAgICAgICBjb25zdCBhcmdzID0gY29tcGlsZVRvSlNPTih0aGlzLnZpc2l0QWxsKGFzdC5hcmdzKSk7XG5cbiAgICAgICAgcmV0dXJuIGAke3JlY2VpdmVyfVsnJHttZXRob2ROYW1lfSddLmFwcGx5KCR7cmVjZWl2ZXJ9LCAke2FyZ3N9KWA7XG4gICAgfVxuXG4gICAgdmlzaXRQcmVmaXhOb3QoYXN0OiBQcmVmaXhOb3QpOiBhbnkge1xuICAgICAgICByZXR1cm4gYXN0LmV4cHJlc3Npb24udmlzaXQodGhpcyk7XG4gICAgfVxuXG4gICAgdmlzaXRQcm9wZXJ0eVJlYWQoYXN0OiBQcm9wZXJ0eVJlYWQpOiBhbnkge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IGFzdC5uYW1lO1xuICAgICAgICBjb25zdCByZWNlaXZlciA9IGFzdC5yZWNlaXZlci52aXNpdCh0aGlzKTtcblxuICAgICAgICByZXR1cm4gYCR7cmVjZWl2ZXJ9Wycke3Byb3BlcnR5fSddYDtcbiAgICB9XG5cbiAgICB2aXNpdFByb3BlcnR5V3JpdGUoYXN0OiBQcm9wZXJ0eVdyaXRlKTogYW55IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmlzaXRTYWZlUHJvcGVydHlSZWFkKGFzdDogU2FmZVByb3BlcnR5UmVhZCk6IGFueSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gYXN0Lm5hbWU7XG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMpO1xuXG4gICAgICAgIHJldHVybiBgJHtyZWNlaXZlcn1bJyR7cHJvcGVydHl9J11gO1xuICAgIH1cblxuICAgIHZpc2l0U2FmZU1ldGhvZENhbGwoYXN0OiBTYWZlTWV0aG9kQ2FsbCk6IGFueSB7XG4gICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBhc3QubmFtZTtcbiAgICAgICAgY29uc3QgcmVjZWl2ZXIgPSBhc3QucmVjZWl2ZXIudmlzaXQodGhpcyk7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBjb21waWxlVG9KU09OKHRoaXMudmlzaXRBbGwoYXN0LmFyZ3MpKTtcblxuICAgICAgICByZXR1cm4gYCR7cmVjZWl2ZXJ9Wycke21ldGhvZE5hbWV9J10uYXBwbHkoJHtyZWNlaXZlcn0sICR7YXJnc30pYDtcbiAgICB9XG5cbiAgICB2aXNpdEFsbChhc3RzOiBBU1RbXSk6IGFueSB7XG4gICAgICAgIHJldHVybiBhc3RzLm1hcChhc3QgPT4gYXN0LnZpc2l0KHRoaXMpKTtcbiAgICB9XG5cbiAgICB2aXNpdFF1b3RlKGFzdDogUXVvdGUpOiBhbnkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59Il19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtdmlzaXRvci1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi92aXNpdG9ycy9wYXJzZS12aXNpdG9yLXJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxtQkFBbUIsRUFvQnRCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sS0FBSyxJQUFJLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFFekQsWUFBb0IsS0FBdUI7UUFDdkMsS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFrQjtJQUUzQyxDQUFDO0lBQUEsQ0FBQztJQUVGLFdBQVcsQ0FBQyxHQUFXLEVBQUUsT0FBWTtRQUNqQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELE9BQU87SUFDUCxVQUFVLENBQUMsR0FBVSxFQUFFLE9BQVk7UUFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGdC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Q0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsR0FBRyxDQUFDLElBQUksNkJBQTZCLENBQUMsQ0FBQztRQUMxRyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFXLEVBQUUsT0FBWTtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVSxFQUFFLE9BQVk7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQVNULFxuICAgIFJlY3Vyc2l2ZUFzdFZpc2l0b3IsXG4gICAgUHJvcGVydHlSZWFkLFxuICAgIE1ldGhvZENhbGwsXG4gICAgS2V5ZWRSZWFkLFxuICAgIEltcGxpY2l0UmVjZWl2ZXIsXG4gICAgTGl0ZXJhbFByaW1pdGl2ZSxcbiAgICBCaW5hcnksXG4gICAgQ2hhaW4sXG4gICAgQ29uZGl0aW9uYWwsXG4gICAgQmluZGluZ1BpcGUsXG4gICAgRnVuY3Rpb25DYWxsLFxuICAgIEludGVycG9sYXRpb24sXG4gICAgS2V5ZWRXcml0ZSxcbiAgICBMaXRlcmFsQXJyYXksXG4gICAgTGl0ZXJhbE1hcCxcbiAgICBQcmVmaXhOb3QsXG4gICAgUHJvcGVydHlXcml0ZSxcbiAgICBTYWZlUHJvcGVydHlSZWFkLFxuICAgIFNhZmVNZXRob2RDYWxsLFxuICAgIFF1b3RlXG59IGZyb20gJy4uL2FuZ3VsYXInO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IEJpbmFyeU9wZXJhdGlvbnMgfSBmcm9tICcuLi91dGlsL2JpbmFyeS1vcGVyYXRpb25zJztcblxuZXhwb3J0IGNsYXNzIFBhcnNlVmlzaXRvclJlc29sdmVyIGV4dGVuZHMgUmVjdXJzaXZlQXN0VmlzaXRvciB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBpcGVzOiBNYXA8c3RyaW5nLCBhbnk+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfTtcblxuICAgIHZpc2l0QmluYXJ5KGFzdDogQmluYXJ5LCBjb250ZXh0OiBhbnkpOiBhbnkge1xuICAgICAgICBjb25zdCBleGVjRm4gPSBCaW5hcnlPcGVyYXRpb25zLmdldChhc3Qub3BlcmF0aW9uKTtcblxuICAgICAgICBpZiAoIWV4ZWNGbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRCaW5hcnksIHVua25vd24gb3BlcmF0b3IgJHthc3Qub3BlcmF0aW9ufWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4ZWNGbihhc3QubGVmdC52aXNpdCh0aGlzLCBjb250ZXh0KSwgYXN0LnJpZ2h0LnZpc2l0KHRoaXMsIGNvbnRleHQpKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPXG4gICAgdmlzaXRDaGFpbihhc3Q6IENoYWluLCBjb250ZXh0OiBhbnkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpdEFsbChhc3QuZXhwcmVzc2lvbnMsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHZpc2l0Q29uZGl0aW9uYWwoYXN0OiBDb25kaXRpb25hbCwgY29udGV4dDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKGFzdC5jb25kaXRpb24udmlzaXQodGhpcywgY29udGV4dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBhc3QudHJ1ZUV4cC52aXNpdCh0aGlzLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh1dGlsLmlzUHJlc2VudChhc3QuZmFsc2VFeHApKSB7XG4gICAgICAgICAgICByZXR1cm4gYXN0LmZhbHNlRXhwLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmlzaXRQaXBlKGFzdDogQmluZGluZ1BpcGUsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHBpcGUgPSB0aGlzLnBpcGVzLmdldChhc3QubmFtZSk7XG5cbiAgICAgICAgaWYgKCFwaXBlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHBpcGUgJHthc3QubmFtZX0gbm90IGZvdW5kLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFwaXBlLnRyYW5zZm9ybSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRQaXBlLCB0cmFuc2Zvcm0gbWV0aG9kIGRvZXNuJ3QgZXhpc3Qgb24gcGlwZSAke2FzdC5uYW1lfS5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXN0LmV4cC52aXNpdCh0aGlzLCBjb250ZXh0KTtcbiAgICAgICAgY29uc3QgcGlwZUFyZ3MgPSB0aGlzLnZpc2l0QWxsKGFzdC5hcmdzLCBjb250ZXh0KTtcblxuICAgICAgICBwaXBlQXJncy51bnNoaWZ0KHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gcGlwZS50cmFuc2Zvcm0uYXBwbHkobnVsbCwgcGlwZUFyZ3MpO1xuICAgIH1cblxuICAgIC8vIFRPRE9cbiAgICB2aXNpdEZ1bmN0aW9uQ2FsbChhc3Q6IEZ1bmN0aW9uQ2FsbCwgY29udGV4dDogYW55KTogYW55IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gYXN0LnRhcmdldC52aXNpdCh0aGlzLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoIXV0aWwuaXNGdW5jdGlvbih0YXJnZXQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNlIEVSUk9SOiBvbiB2aXNpdEZ1bmN0aW9uQ2FsbCwgdGFyZ2V0IGlzIG5vdCBhIGZ1bmN0aW9uLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXJncyA9IHRoaXMudmlzaXRBbGwoYXN0LmFyZ3MsIGNvbnRleHQpO1xuICAgICAgICByZXR1cm4gdGFyZ2V0LmFwcGx5KHRhcmdldCwgYXJncyk7XG4gICAgfVxuXG4gICAgdmlzaXRJbXBsaWNpdFJlY2VpdmVyKGFzdDogSW1wbGljaXRSZWNlaXZlciwgY29udGV4dDogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfVxuXG4gICAgdmlzaXRJbnRlcnBvbGF0aW9uKGFzdDogSW50ZXJwb2xhdGlvbiwgY29udGV4dDogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaXRBbGwoYXN0LmV4cHJlc3Npb25zLCBjb250ZXh0KVswXTtcbiAgICB9XG5cbiAgICB2aXNpdEtleWVkUmVhZChhc3Q6IEtleWVkUmVhZCwgY29udGV4dDogYW55KTogYW55IHtcbiAgICAgICAgY29uc3Qgb2JqID0gYXN0Lm9iai52aXNpdCh0aGlzLCBjb250ZXh0KTtcbiAgICAgICAgY29uc3Qga2V5ID0gYXN0LmtleS52aXNpdCh0aGlzLCBjb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIG9ialtrZXldO1xuICAgIH1cblxuICAgIHZpc2l0S2V5ZWRXcml0ZShhc3Q6IEtleWVkV3JpdGUsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IGFzdC5vYmoudmlzaXQodGhpcywgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGtleSA9IGFzdC5rZXkudmlzaXQodGhpcywgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXN0LnZhbHVlLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB2aXNpdExpdGVyYWxBcnJheShhc3Q6IExpdGVyYWxBcnJheSwgY29udGV4dDogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaXRBbGwoYXN0LmV4cHJlc3Npb25zLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICB2aXNpdExpdGVyYWxNYXAoYXN0OiBMaXRlcmFsTWFwLCBjb250ZXh0OiBhbnkpOiBhbnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICAgICAgY29uc3Qga2V5cyA9IGFzdC5rZXlzO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnZpc2l0QWxsKGFzdC52YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5c1tpXV0gPSB2YWx1ZXNbaV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHZpc2l0TGl0ZXJhbFByaW1pdGl2ZShhc3Q6IExpdGVyYWxQcmltaXRpdmUsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgICAgIHJldHVybiBhc3QudmFsdWU7XG4gICAgfVxuXG4gICAgdmlzaXRNZXRob2RDYWxsKGFzdDogTWV0aG9kQ2FsbCwgY29udGV4dDogYW55KTogYW55IHtcbiAgICAgICAgY29uc3QgcmVjZWl2ZXIgPSBhc3QucmVjZWl2ZXIudmlzaXQodGhpcywgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKCF1dGlsLmlzSnNPYmplY3QocmVjZWl2ZXIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNlIEVSUk9SOiBvbiB2aXNpdE1ldGhvZENhbGwsIGludmFsaWQgbWV0aG9kIHJlY2VpdmVyLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWV0aG9kID0gcmVjZWl2ZXJbYXN0Lm5hbWVdO1xuXG4gICAgICAgIGlmICghdXRpbC5pc0Z1bmN0aW9uKG1ldGhvZCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFyc2UgRVJST1I6IG9uIHZpc2l0TWV0aG9kQ2FsbCwgbWV0aG9kICR7YXN0Lm5hbWV9IGRvZXNuJ3QgZXhpc3Qgb24gcmVjZWl2ZXIuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcmdzID0gdGhpcy52aXNpdEFsbChhc3QuYXJncywgY29udGV4dCk7XG4gICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkocmVjZWl2ZXIsIGFyZ3MpO1xuICAgIH1cblxuICAgIHZpc2l0UHJlZml4Tm90KGFzdDogUHJlZml4Tm90LCBjb250ZXh0OiBhbnkpOiBhbnkge1xuICAgICAgICByZXR1cm4gYXN0LmV4cHJlc3Npb24udmlzaXQodGhpcywgY29udGV4dCk7XG4gICAgfVxuXG4gICAgdmlzaXRQcm9wZXJ0eVJlYWQoYXN0OiBQcm9wZXJ0eVJlYWQsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmICghdXRpbC5pc0pzT2JqZWN0KHJlY2VpdmVyKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRQcm9wZXJ0eVJlYWQsIGludmFsaWQgcHJvcGVydHkgcmVjZWl2ZXIuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVjZWl2ZXJbYXN0Lm5hbWVdO1xuICAgIH1cblxuICAgIHZpc2l0UHJvcGVydHlXcml0ZShhc3Q6IFByb3BlcnR5V3JpdGUsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmICghdXRpbC5pc0pzT2JqZWN0KHJlY2VpdmVyKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRQcm9wZXJ0eVJlYWQsIGludmFsaWQgcHJvcGVydHkgcmVjZWl2ZXIuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZWNlaXZlclthc3QubmFtZV0gPSBhc3QudmFsdWUudmlzaXQodGhpcywgY29udGV4dCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZpc2l0U2FmZVByb3BlcnR5UmVhZChhc3Q6IFNhZmVQcm9wZXJ0eVJlYWQsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmICghdXRpbC5pc0pzT2JqZWN0KHJlY2VpdmVyKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRTYWZlUHJvcGVydHlSZWFkLCBpbnZhbGlkIHByb3BlcnR5IHJlY2VpdmVyLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlY2VpdmVyW2FzdC5uYW1lXTtcbiAgICB9XG5cbiAgICB2aXNpdFNhZmVNZXRob2RDYWxsKGFzdDogU2FmZU1ldGhvZENhbGwsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmICghdXRpbC5pc0pzT2JqZWN0KHJlY2VpdmVyKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRTYWZlTWV0aG9kQ2FsbCwgaW52YWxpZCBtZXRob2QgcmVjZWl2ZXIuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRob2QgPSByZWNlaXZlclthc3QubmFtZV07XG5cbiAgICAgICAgaWYgKCF1dGlsLmlzRnVuY3Rpb24obWV0aG9kKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRTYWZlTWV0aG9kQ2FsbCwgbWV0aG9kICR7YXN0Lm5hbWV9IGRvZXNuJ3QgZXhpc3Qgb24gcmVjZWl2ZXIuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcmdzID0gdGhpcy52aXNpdEFsbChhc3QuYXJncywgY29udGV4dCk7XG4gICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkocmVjZWl2ZXIsIGFyZ3MpO1xuICAgIH1cblxuICAgIHZpc2l0QWxsKGFzdHM6IEFTVFtdLCBjb250ZXh0OiBhbnkpOiBhbnkge1xuICAgICAgICByZXR1cm4gYXN0cy5tYXAoYXN0ID0+IGFzdC52aXNpdCh0aGlzLCBjb250ZXh0KSk7XG4gICAgfVxuXG4gICAgdmlzaXRRdW90ZShhc3Q6IFF1b3RlLCBjb250ZXh0OiBhbnkpOiBhbnkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNlIEVSUk9SOiBvbiB2aXNpdFF1b3RlLCBxdW90ZSBleHByZXNzaW9uIG5vdCBhbGxvd2VkLmApO1xuICAgIH1cbn0iXX0=
@@ -1,3 +1,3 @@
1
- export * from './visitors/parse-visitor-compiler';
2
- export * from './visitors/parse-visitor-resolver';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyMnBhcnNlL3NyYy9saWIvdmlzaXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi92aXNpdG9ycy9wYXJzZS12aXNpdG9yLWNvbXBpbGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi92aXNpdG9ycy9wYXJzZS12aXNpdG9yLXJlc29sdmVyJzsiXX0=
1
+ export * from './visitors/parse-visitor-compiler';
2
+ export * from './visitors/parse-visitor-resolver';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyMnBhcnNlL3NyYy9saWIvdmlzaXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi92aXNpdG9ycy9wYXJzZS12aXNpdG9yLWNvbXBpbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdmlzaXRvcnMvcGFyc2UtdmlzaXRvci1yZXNvbHZlcic7Il19