@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,85 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi9hbmd1bGFyL2ZhY2FkZS9sYW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQXlCSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBUztJQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFRO0lBQzlCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFRO0lBQzVCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ25ELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxHQUFRO0lBQ3RDLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQztBQUN0RyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFVO0lBQ2hDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1FBQ2YsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDO0tBQ3JCO0lBRUQsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFO1FBQ3RCLE9BQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7S0FDcEM7SUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDWixPQUFPLEdBQUcsS0FBSyxD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QTRCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcclxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxyXG4gKi9cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQnJvd3Nlck5vZGVHbG9iYWwge1xyXG4gICAgT2JqZWN0OiB0eXBlb2YgT2JqZWN0O1xyXG4gICAgQXJyYXk6IHR5cGVvZiBBcnJheTtcclxuICAgIE1hcDogdHlwZW9mIE1hcDtcclxuICAgIFNldDogdHlwZW9mIFNldDtcclxuICAgIERhdGU6IERhdGVDb25zdHJ1Y3RvcjtcclxuICAgIFJlZ0V4cDogUmVnRXhwQ29uc3RydWN0b3I7XHJcbiAgICBKU09OOiB0eXBlb2YgSlNPTjtcclxuICAgIE1hdGg6IGFueTsgIC8vIHR5cGVvZiBNYXRoO1xyXG4gICAgYXNzZXJ0KGNvbmRpdGlvbjogYW55KTogdm9pZDtcclxuICAgIFJlZmxlY3Q6IGFueTtcclxuICAgIGdldEFuZ3VsYXJUZXN0YWJpbGl0eTogRnVuY3Rpb247XHJcbiAgICBnZXRBbGxBbmd1bGFyVGVzdGFiaWxpdGllczogRnVuY3Rpb247XHJcbiAgICBnZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzOiBGdW5jdGlvbjtcclxuICAgIGZyYW1ld29ya1N0YWJpbGl6ZXJzOiBBcnJheTxGdW5jdGlvbj47XHJcbiAgICBzZXRUaW1lb3V0OiBGdW5jdGlvbjtcclxuICAgIGNsZWFyVGltZW91dDogRnVuY3Rpb247XHJcbiAgICBzZXRJbnRlcnZhbDogRnVuY3Rpb247XHJcbiAgICBjbGVhckludGVydmFsOiBGdW5jdGlvbjtcclxuICAgIGVuY29kZVVSSTogRnVuY3Rpb247XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZU5hbWVGb3JEZWJ1Z2dpbmcodHlwZTogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0eXBlWyduYW1lJ10gfHwgdHlwZW9mIHR5cGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBvYmogIT0gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQmxhbmsob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBvYmogPT0gbnVsbDtcclxufVxyXG5cclxuY29uc3QgU1RSSU5HX01BUF9QUk9UTyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih7fSk7XHJcbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmljdFN0cmluZ01hcChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gU1RSSU5HX01BUF9QUk9UTztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSh0b2tlbjogYW55KTogc3RyaW5nIHtcclxuICAgIGlmICh0eXBlb2YgdG9rZW4gPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRva2VuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0b2tlbiA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuICcnICsgdG9rZW47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRva2VuLm92ZXJyaWRkZW5OYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke3Rva2VuLm92ZXJyaWRkZW5OYW1lfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRva2VuLm5hbWUpIHtcclxuICAgICAgICByZXR1cm4gYCR7dG9rZW4ubmFtZX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcyA9IHRva2VuLnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCBuZXdMaW5lSW5kZXggPSByZXMuaW5kZXhPZignXFxuJyk7XHJcbiAgICByZXR1cm4gbmV3TGluZUluZGV4ID09PSAtMSA/IHJlcyA6IHJlcy5zdWJzdHJpbmcoMCwgbmV3TGluZUluZGV4KTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE51bWJlcldyYXBwZXIge1xyXG4gICAgc3RhdGljIHBhcnNlSW50QXV0b1JhZGl4KHRleHQ6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0OiBudW1iZXIgPSBwYXJzZUludCh0ZXh0KTtcclxuICAgICAgICBpZiAoaXNOYU4ocmVzdWx0KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaW50ZWdlciBsaXRlcmFsIHdoZW4gcGFyc2luZyAnICsgdGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzTnVtZXJpYyh2YWx1ZTogYW55KTogYm9vbGVhbiB7IHJldHVybiAhaXNOYU4odmFsdWUgLSBwYXJzZUZsb2F0KHZhbHVlKSk7IH1cclxufVxyXG5cclxuLy8gSlMgaGFzIE5hTiAhPT0gTmFOXHJcbmV4cG9ydCBmdW5jdGlvbiBsb29zZUlkZW50aWNhbChhOiBhbnksIGI6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGEgPT09IGIgfHwgdHlwZW9mIGEgPT09ICdudW1iZXInICYmIHR5cGVvZiBiID09PSAnbnVtYmVyJyAmJiBpc05hTihhKSAmJiBpc05hTihiKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSnNPYmplY3QobzogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gbyAhPT0gbnVsbCAmJiAodHlwZW9mIG8gPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIG8gPT09ICdvYmplY3QnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByaW50KG9iajogRXJyb3IgfCBPYmplY3QpIHtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1jb25zb2xlXHJcbiAgICBjb25zb2xlLmxvZyhvYmopO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gd2FybihvYmo6IEVycm9yIHwgT2JqZWN0KSB7XHJcbiAgICBjb25zb2xlLndhcm4ob2JqKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFZhbHVlT25QYXRoKGdsb2JhbDogYW55LCBwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLicpO1xyXG4gICAgbGV0IG9iajogYW55ID0gZ2xvYmFsO1xyXG4gICAgd2hpbGUgKHBhcnRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBjb25zdCBuYW1lID0gcGFydHMuc2hpZnQoKTtcclxuICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KG5hbWUpICYmIG9ialtuYW1lXSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIG9iaiA9IG9ialtuYW1lXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvYmogPSBvYmpbbmFtZV0gPSB7fTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAob2JqID09PSB1bmRlZmluZWQgfHwgb2JqID09PSBudWxsKSB7XHJcbiAgICAgICAgb2JqID0ge307XHJcbiAgICB9XHJcbiAgICBvYmpbcGFydHMuc2hpZnQoKV0gPSB2YWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIWlzSnNPYmplY3Qob2JqKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHMucmVwbGFjZSgvKFsuKis/Xj0hOiR7fSgpfFtcXF1cXC9cXFxcXSkvZywgJ1xcXFwkMScpO1xyXG59Il19
@@ -1,18 +0,0 @@
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
- }
12
- Angular2ParseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Angular2ParseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- Angular2ParseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: Angular2ParseModule });
14
- Angular2ParseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Angular2ParseModule });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Angular2ParseModule, decorators: [{
16
- type: NgModule
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhcjJwYXJzZS9zcmMvbGliL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQVMsWUFBWSxFQUFlLE1BQU0sU0FBUyxDQUFDOztBQUczRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBNkI7UUFDMUMsT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsU0FBUyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGNBQWMsSUFBSSxFQUFFLEVBQUMsQ0FBQztTQUNsRixDQUFDO0lBQ0osQ0FBQzs7Z0hBTlUsbUJBQW1CO2lIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFyc2UsIFBJUEVTX0NPTkZJRywgUGlwZXNDb25maWcgfSBmcm9tICcuL3BhcnNlJztcclxuXHJcbkBOZ01vZHVsZSgpXHJcbmV4cG9ydCBjbGFzcyBBbmd1bGFyMlBhcnNlTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChwaXBlc0NvbmZpZ01hcDogUGlwZXNDb25maWdbXSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8YW55PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQW5ndWxhcjJQYXJzZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFBJUEVTX0NPTkZJRywgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiBwaXBlc0NvbmZpZ01hcCB8fCBbXX1dXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,66 +0,0 @@
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
- }
55
- Parse.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Parse, deps: [{ token: PIPES_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
56
- Parse.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Parse, providedIn: 'root' });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Parse, decorators: [{
58
- type: Injectable,
59
- args: [{ providedIn: 'root' }]
60
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
61
- type: Optional
62
- }, {
63
- type: Inject,
64
- args: [PIPES_CONFIG]
65
- }] }]; } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyMnBhcnNlL3NyYy9saWIvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBaUIsTUFBTSxXQUFXLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUV4RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7QUFROUQsTUFBTSxPQUFPLEtBQUs7SUFNaEI7O09BRUc7SUFFSCxZQUE4QyxZQUE2QjtRQVRuRSxZQUFPLEdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLGdCQUFXLEdBQXFCLElBQUksR0FBRyxFQUFlLENBQUM7UUFDdkQsZUFBVSxHQUEwQixJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUNoRSxlQUFVLEdBQTBCLElBQUksR0FBRyxFQUFvQixDQUFDO1FBT3RFLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDdkMsWUFBWTtpQkFDVCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztpQkFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xIO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxVQUFrQjtRQUNyQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDeEM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFFM0MsSUFBSSxHQUFHLEdBQWtCLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3REO1FBRUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXpFLE1BQU0sU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLE9BQVk7WUFDL0MsT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUzQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxDQUFDLFVBQWtCO1FBQ3JCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN4QztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTNELElBQUksR0FBRyxHQUFrQixJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU5RSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN0RDtRQUVELE1BQU0sU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLE9BQVk7WUFDL0MsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFM0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7a0dBaEVVLEtBQUssa0JBVWdCLFlBQVk7c0dBVmpDLEtBQUssY0FETyxNQUFNOzJGQUNsQixLQUFLO2tCQURqQixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBV2pCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcnNlciwgTGV4ZXIsIEFTVFdpdGhTb3VyY2UgfSBmcm9tICcuL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBQYXJzZVZpc2l0b3JSZXNvbHZlciwgUGFyc2VWaXNpdG9yQ29tcGlsZXIgfSBmcm9tICcuL3Zpc2l0b3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBQSVBFU19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ1BpcGVzQ29uZmlnJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVzQ29uZmlnIHtcclxuICBwaXBlTmFtZTogc3RyaW5nO1xyXG4gIHBpcGVJbnN0YW5jZTogYW55O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuZXhwb3J0IGNsYXNzIFBhcnNlIHtcclxuICBwcml2YXRlIF9wYXJzZXI6IFBhcnNlciA9IG5ldyBQYXJzZXIobmV3IExleGVyKCkpO1xyXG4gIHByaXZhdGUgX3BpcGVzQ2FjaGU6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG4gIHByaXZhdGUgX2V2YWxDYWNoZTogTWFwPHN0cmluZywgRnVuY3Rpb24+ID0gbmV3IE1hcDxzdHJpbmcsIEZ1bmN0aW9uPigpO1xyXG4gIHByaXZhdGUgX2NhbGNDYWNoZTogTWFwPHN0cmluZywgRnVuY3Rpb24+ID0gbmV3IE1hcDxzdHJpbmcsIEZ1bmN0aW9uPigpO1xyXG5cclxuICAvKipcclxuICAgKiBVc2VkIHRvIGRlcGVuZGVuY3kgaW5qZWN0IHRoZSBBbmd1bGFyIDIgcGFyc2VyLlxyXG4gICAqL1xyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KFBJUEVTX0NPTkZJRykgcGlwZXNDb25maWdzOiBQaXBlc0NvbmZpZ1tdW10pIHtcclxuICAgIGlmIChwaXBlc0NvbmZpZ3MgJiYgcGlwZXNDb25maWdzLmxlbmd0aCkge1xyXG4gICAgICBwaXBlc0NvbmZpZ3NcclxuICAgICAgICAuZmlsdGVyKHBpcGVzID0+IHBpcGVzICYmIHBpcGVzLmxlbmd0aClcclxuICAgICAgICAuZm9yRWFjaChwaXBlcyA9PiBwaXBlcy5mb3JFYWNoKChwaXBlRGF0YSkgPT4gdGhpcy5fcGlwZXNDYWNoZS5zZXQocGlwZURhdGEucGlwZU5hbWUsIHBpcGVEYXRhLnBpcGVJbnN0YW5jZSkpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV2YWwoZXhwcmVzc2lvbjogc3RyaW5nKTogRnVuY3Rpb24ge1xyXG4gICAgaWYgKHRoaXMuX2V2YWxDYWNoZS5oYXMoZXhwcmVzc2lvbikpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2V2YWxDYWNoZS5nZXQoZXhwcmVzc2lvbik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmlzaXRvciA9IG5ldyBQYXJzZVZpc2l0b3JDb21waWxlcigpO1xyXG5cclxuICAgIGxldCBhc3Q6IEFTVFdpdGhTb3VyY2UgPSB0aGlzLl9wYXJzZXIucGFyc2VJbnRlcnBvbGF0aW9uKGV4cHJlc3Npb24sICdQYXJzZScpO1xyXG5cclxuICAgIGlmICghYXN0KSB7XHJcbiAgICAgIGFzdCA9IHRoaXMuX3BhcnNlci5wYXJzZUJpbmRpbmcoZXhwcmVzc2lvbiwgJ1BhcnNlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZm5Cb2R5ID0gYXN0LnZpc2l0KHZpc2l0b3IpO1xyXG4gICAgY29uc3QgcGlwZXNDYWNoZSA9IHRoaXMuX3BpcGVzQ2FjaGU7XHJcbiAgICBjb25zdCBnZXRGbiA9IG5ldyBGdW5jdGlvbignY29udGV4dCcsICdwaXBlc0NhY2hlJywgYHJldHVybiAke2ZuQm9keX07YCk7XHJcblxyXG4gICAgY29uc3QgZXZhbFBhcnNlID0gZnVuY3Rpb24gZXZhbFBhcnNlKGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgIHJldHVybiBnZXRGbihjb250ZXh0LCBwaXBlc0NhY2hlKTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5fZXZhbENhY2hlLnNldChleHByZXNzaW9uLCBldmFsUGFyc2UpO1xyXG5cclxuICAgIHJldHVybiBldmFsUGFyc2U7XHJcbiAgfVxyXG5cclxuICBjYWxjKGV4cHJlc3Npb246IHN0cmluZyk6IEZ1bmN0aW9uIHtcclxuICAgIGlmICh0aGlzLl9jYWxjQ2FjaGUuaGFzKGV4cHJlc3Npb24pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9jYWxjQ2FjaGUuZ2V0KGV4cHJlc3Npb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZpc2l0b3IgPSBuZXcgUGFyc2VWaXNpdG9yUmVzb2x2ZXIodGhpcy5fcGlwZXNDYWNoZSk7XHJcblxyXG4gICAgbGV0IGFzdDogQVNUV2l0aFNvdXJjZSA9IHRoaXMuX3BhcnNlci5wYXJzZUludGVycG9sYXRpb24oZXhwcmVzc2lvbiwgJ1BhcnNlJyk7XHJcblxyXG4gICAgaWYgKCFhc3QpIHtcclxuICAgICAgYXN0ID0gdGhpcy5fcGFyc2VyLnBhcnNlQmluZGluZyhleHByZXNzaW9uLCAnUGFyc2UnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjYWxjUGFyc2UgPSBmdW5jdGlvbiBjYWxjUGFyc2UoY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgcmV0dXJuIGFzdC52aXNpdCh2aXNpdG9yLCBjb250ZXh0KTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5fY2FsY0NhY2hlLnNldChleHByZXNzaW9uLCBjYWxjUGFyc2UpO1xyXG5cclxuICAgIHJldHVybiBjYWxjUGFyc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,96 +0,0 @@
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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USxDQUFDLElBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVTtRQUNqQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQVNULFxyXG4gICAgUmVjdXJzaXZlQXN0VmlzaXRvcixcclxuICAgIFByb3BlcnR5UmVhZCxcclxuICAgIE1ldGhvZENhbGwsXHJcbiAgICBLZXllZFJlYWQsXHJcbiAgICBJbXBsaWNpdFJlY2VpdmVyLFxyXG4gICAgTGl0ZXJhbFByaW1pdGl2ZSxcclxuICAgIEJpbmFyeSxcclxuICAgIENoYWluLFxyXG4gICAgQ29uZGl0aW9uYWwsXHJcbiAgICBCaW5kaW5nUGlwZSxcclxuICAgIEZ1bmN0aW9uQ2FsbCxcclxuICAgIEludGVycG9sYXRpb24sXHJcbiAgICBLZXllZFdyaXRlLFxyXG4gICAgTGl0ZXJhbEFycmF5LFxyXG4gICAgTGl0ZXJhbE1hcCxcclxuICAgIFByZWZpeE5vdCxcclxuICAgIFByb3BlcnR5V3JpdGUsXHJcbiAgICBTYWZlUHJvcGVydHlSZWFkLFxyXG4gICAgU2FmZU1ldGhvZENhbGwsXHJcbiAgICBRdW90ZVxyXG59IGZyb20gJy4uL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBjb21waWxlVG9KU09OIH0gZnJvbSAnLi4vdXRpbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgUGFyc2VWaXNpdG9yQ29tcGlsZXIgZXh0ZW5kcyBSZWN1cnNpdmVBc3RWaXNpdG9yIHtcclxuXHJcbiAgICB2aXNpdEJpbmFyeShhc3Q6IEJpbmFyeSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgbGVmdCA9IGFzdC5sZWZ0LnZpc2l0KHRoaXMpO1xyXG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gYXN0LnJpZ2h0LnZpc2l0KHRoaXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7bGVmdH0gJHthc3Qub3BlcmF0aW9ufSAke3JpZ2h0fWA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVE9ET1xyXG4gICAgdmlzaXRDaGFpbihhc3Q6IENoYWluKTogYW55IHtcclxuICAgICAgICByZXR1cm4gY29tcGlsZVRvSlNPTih0aGlzLnZpc2l0QWxsKGFzdC5leHByZXNzaW9ucykpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0Q29uZGl0aW9uYWwoYXN0OiBDb25kaXRpb25hbCk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgY29uZGl0aW9uID0gYXN0LmNvbmRpdGlvbi52aXNpdCh0aGlzKTtcclxuICAgICAgICBjb25zdCB0cnVlRXhwID0gYXN0LnRydWVFeHAudmlzaXQodGhpcyk7XHJcbiAgICAgICAgY29uc3QgZmFsc2VFeHAgPSBhc3QuZmFsc2VFeHAudmlzaXQodGhpcyk7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHtjb25kaXRpb259ID8gJHt0cnVlRXhwfSA6ICR7ZmFsc2VFeHB9YDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFBpcGUoYXN0OiBCaW5kaW5nUGlwZSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcGlwZSA9IGFzdC5uYW1lO1xyXG4gICAgICAgIGNvbnN0IGFyZ3MgPSB0aGlzLnZpc2l0QWxsKGFzdC5hcmdzKTtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGFzdC5leHAudmlzaXQodGhpcyk7XHJcbiAgICAgICAgYXJncy51bnNoaWZ0KHZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGBwaXBlc0NhY2hlLmdldCgnJHtwaXBlfScpLnRyYW5zZm9ybS5hcHBseShudWxsLCAke2NvbXBpbGVUb0pTT04oYXJncyl9KWA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVE9ET1xyXG4gICAgdmlzaXRGdW5jdGlvbkNhbGwoYXN0OiBGdW5jdGlvbkNhbGwpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGFzdC50YXJnZXQudmlzaXQodGhpcyk7XHJcbiAgICAgICAgY29uc3QgYXJncyA9IGNvbXBpbGVUb0pTT04odGhpcy52aXNpdEFsbChhc3QuYXJncykpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7dGFyZ2V0fS5hcHBseSgke3RhcmdldH0sICR7YXJnc30pYDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdEltcGxpY2l0UmVjZWl2ZXIoYXN0OiBJbXBsaWNpdFJlY2VpdmVyKTogYW55IHtcclxuICAgICAgICByZXR1cm4gYGNvbnRleHRgO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0SW50ZXJwb2xhdGlvbihhc3Q6IEludGVycG9sYXRpb24pOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZpc2l0QWxsKGFzdC5leHByZXNzaW9ucylbMF07XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRLZXllZFJlYWQoYXN0OiBLZXllZFJlYWQpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IGFzdC5vYmoudmlzaXQodGhpcyk7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gYXN0LmtleS52aXNpdCh0aGlzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke29ian1bJHtrZXl9XWA7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRLZXllZFdyaXRlKGFzdDogS2V5ZWRXcml0ZSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRMaXRlcmFsQXJyYXkoYXN0OiBMaXRlcmFsQXJyYXkpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBjb21waWxlVG9KU09OKHRoaXMudmlzaXRBbGwoYXN0LmV4cHJlc3Npb25zKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRMaXRlcmFsTWFwKGFzdDogTGl0ZXJhbE1hcCk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IGFzdC5rZXlzO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMudmlzaXRBbGwoYXN0LnZhbHVlcyk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFtrZXlzW2ldXSA9IHZhbHVlc1tpXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjb21waWxlVG9KU09OKHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRMaXRlcmFsUHJpbWl0aXZlKGFzdDogTGl0ZXJhbFByaW1pdGl2ZSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBhc3QudmFsdWUgPT09ICdzdHJpbmcnID8gYCcke2FzdC52YWx1ZX0nYCA6IGFzdC52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdE1ldGhvZENhbGwoYXN0OiBNZXRob2RDYWxsKTogYW55IHtcclxuICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gYXN0Lm5hbWU7XHJcbiAgICAgICAgY29uc3QgcmVjZWl2ZXIgPSBhc3QucmVjZWl2ZXIudmlzaXQodGhpcyk7XHJcbiAgICAgICAgY29uc3QgYXJncyA9IGNvbXBpbGVUb0pTT04odGhpcy52aXNpdEFsbChhc3QuYXJncykpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7cmVjZWl2ZXJ9Wycke21ldGhvZE5hbWV9J10uYXBwbHkoJHtyZWNlaXZlcn0sICR7YXJnc30pYDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFByZWZpeE5vdChhc3Q6IFByZWZpeE5vdCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGFzdC5leHByZXNzaW9uLnZpc2l0KHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0UHJvcGVydHlSZWFkKGFzdDogUHJvcGVydHlSZWFkKTogYW55IHtcclxuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IGFzdC5uYW1lO1xyXG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7cmVjZWl2ZXJ9Wycke3Byb3BlcnR5fSddYDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFByb3BlcnR5V3JpdGUoYXN0OiBQcm9wZXJ0eVdyaXRlKTogYW55IHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFNhZmVQcm9wZXJ0eVJlYWQoYXN0OiBTYWZlUHJvcGVydHlSZWFkKTogYW55IHtcclxuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IGFzdC5uYW1lO1xyXG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7cmVjZWl2ZXJ9Wycke3Byb3BlcnR5fSddYDtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFNhZmVNZXRob2RDYWxsKGFzdDogU2FmZU1ldGhvZENhbGwpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBhc3QubmFtZTtcclxuICAgICAgICBjb25zdCByZWNlaXZlciA9IGFzdC5yZWNlaXZlci52aXNpdCh0aGlzKTtcclxuICAgICAgICBjb25zdCBhcmdzID0gY29tcGlsZVRvSlNPTih0aGlzLnZpc2l0QWxsKGFzdC5hcmdzKSk7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHtyZWNlaXZlcn1bJyR7bWV0aG9kTmFtZX0nXS5hcHBseSgke3JlY2VpdmVyfSwgJHthcmdzfSlgO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0QWxsKGFzdHM6IEFTVFtdKTogYW55IHtcclxuICAgICAgICByZXR1cm4gYXN0cy5tYXAoYXN0ID0+IGFzdC52aXNpdCh0aGlzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRRdW90ZShhc3Q6IFF1b3RlKTogYW55IHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufSJdfQ==
@@ -1,141 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtdmlzaXRvci1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIycGFyc2Uvc3JjL2xpYi92aXNpdG9ycy9wYXJzZS12aXNpdG9yLXJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxtQkFBbUIsRUFvQnRCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sS0FBSyxJQUFJLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFFekQsWUFBb0IsS0FBdUI7UUFDdkMsS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFrQjtJQUUzQyxDQUFDO0lBQUEsQ0FBQztJQUVGLFdBQVcsQ0FBQyxHQUFXLEVBQUUsT0FBWTtRQUNqQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUNyRjtRQUVELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsT0FBTztJQUNQLFVBQVUsQ0FBQyxHQUFVLEVBQUUsT0FBWTtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMs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LElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVyxFQUFFLE9BQVk7UUFDOUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVUsRUFBRSxPQUFZO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztJQUNqRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQVNULFxyXG4gICAgUmVjdXJzaXZlQXN0VmlzaXRvcixcclxuICAgIFByb3BlcnR5UmVhZCxcclxuICAgIE1ldGhvZENhbGwsXHJcbiAgICBLZXllZFJlYWQsXHJcbiAgICBJbXBsaWNpdFJlY2VpdmVyLFxyXG4gICAgTGl0ZXJhbFByaW1pdGl2ZSxcclxuICAgIEJpbmFyeSxcclxuICAgIENoYWluLFxyXG4gICAgQ29uZGl0aW9uYWwsXHJcbiAgICBCaW5kaW5nUGlwZSxcclxuICAgIEZ1bmN0aW9uQ2FsbCxcclxuICAgIEludGVycG9sYXRpb24sXHJcbiAgICBLZXllZFdyaXRlLFxyXG4gICAgTGl0ZXJhbEFycmF5LFxyXG4gICAgTGl0ZXJhbE1hcCxcclxuICAgIFByZWZpeE5vdCxcclxuICAgIFByb3BlcnR5V3JpdGUsXHJcbiAgICBTYWZlUHJvcGVydHlSZWFkLFxyXG4gICAgU2FmZU1ldGhvZENhbGwsXHJcbiAgICBRdW90ZVxyXG59IGZyb20gJy4uL2FuZ3VsYXInO1xyXG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4uL3V0aWwnO1xyXG5pbXBvcnQgeyBCaW5hcnlPcGVyYXRpb25zIH0gZnJvbSAnLi4vdXRpbC9iaW5hcnktb3BlcmF0aW9ucyc7XHJcblxyXG5leHBvcnQgY2xhc3MgUGFyc2VWaXNpdG9yUmVzb2x2ZXIgZXh0ZW5kcyBSZWN1cnNpdmVBc3RWaXNpdG9yIHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBpcGVzOiBNYXA8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH07XHJcblxyXG4gICAgdmlzaXRCaW5hcnkoYXN0OiBCaW5hcnksIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgZXhlY0ZuID0gQmluYXJ5T3BlcmF0aW9ucy5nZXQoYXN0Lm9wZXJhdGlvbik7XHJcblxyXG4gICAgICAgIGlmICghZXhlY0ZuKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFyc2UgRVJST1I6IG9uIHZpc2l0QmluYXJ5LCB1bmtub3duIG9wZXJhdG9yICR7YXN0Lm9wZXJhdGlvbn1gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBleGVjRm4oYXN0LmxlZnQudmlzaXQodGhpcywgY29udGV4dCksIGFzdC5yaWdodC52aXNpdCh0aGlzLCBjb250ZXh0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVE9ET1xyXG4gICAgdmlzaXRDaGFpbihhc3Q6IENoYWluLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZpc2l0QWxsKGFzdC5leHByZXNzaW9ucywgY29udGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRDb25kaXRpb25hbChhc3Q6IENvbmRpdGlvbmFsLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGlmIChhc3QuY29uZGl0aW9uLnZpc2l0KHRoaXMsIGNvbnRleHQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhc3QudHJ1ZUV4cC52aXNpdCh0aGlzLCBjb250ZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodXRpbC5pc1ByZXNlbnQoYXN0LmZhbHNlRXhwKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXN0LmZhbHNlRXhwLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRQaXBlKGFzdDogQmluZGluZ1BpcGUsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcGlwZSA9IHRoaXMucGlwZXMuZ2V0KGFzdC5uYW1lKTtcclxuXHJcbiAgICAgICAgaWYgKCFwaXBlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGlwZSAke2FzdC5uYW1lfSBub3QgZm91bmQuYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXBpcGUudHJhbnNmb3JtKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFyc2UgRVJST1I6IG9uIHZpc2l0UGlwZSwgdHJhbnNmb3JtIG1ldGhvZCBkb2Vzbid0IGV4aXN0IG9uIHBpcGUgJHthc3QubmFtZX0uYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGFzdC5leHAudmlzaXQodGhpcywgY29udGV4dCk7XHJcbiAgICAgICAgY29uc3QgcGlwZUFyZ3MgPSB0aGlzLnZpc2l0QWxsKGFzdC5hcmdzLCBjb250ZXh0KTtcclxuXHJcbiAgICAgICAgcGlwZUFyZ3MudW5zaGlmdCh2YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBwaXBlLnRyYW5zZm9ybS5hcHBseShudWxsLCBwaXBlQXJncyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVE9ET1xyXG4gICAgdmlzaXRGdW5jdGlvbkNhbGwoYXN0OiBGdW5jdGlvbkNhbGwsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gYXN0LnRhcmdldC52aXNpdCh0aGlzLCBjb250ZXh0KTtcclxuXHJcbiAgICAgICAgaWYgKCF1dGlsLmlzRnVuY3Rpb24odGFyZ2V0KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNlIEVSUk9SOiBvbiB2aXNpdEZ1bmN0aW9uQ2FsbCwgdGFyZ2V0IGlzIG5vdCBhIGZ1bmN0aW9uLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYXJncyA9IHRoaXMudmlzaXRBbGwoYXN0LmFyZ3MsIGNvbnRleHQpO1xyXG4gICAgICAgIHJldHVybiB0YXJnZXQuYXBwbHkodGFyZ2V0LCBhcmdzKTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdEltcGxpY2l0UmVjZWl2ZXIoYXN0OiBJbXBsaWNpdFJlY2VpdmVyLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBjb250ZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0SW50ZXJwb2xhdGlvbihhc3Q6IEludGVycG9sYXRpb24sIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaXRBbGwoYXN0LmV4cHJlc3Npb25zLCBjb250ZXh0KVswXTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdEtleWVkUmVhZChhc3Q6IEtleWVkUmVhZCwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCBvYmogPSBhc3Qub2JqLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGFzdC5rZXkudmlzaXQodGhpcywgY29udGV4dCk7XHJcbiAgICAgICAgcmV0dXJuIG9ialtrZXldO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0S2V5ZWRXcml0ZShhc3Q6IEtleWVkV3JpdGUsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gYXN0Lm9iai52aXNpdCh0aGlzLCBjb250ZXh0KTtcclxuICAgICAgICBjb25zdCBrZXkgPSBhc3Qua2V5LnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXN0LnZhbHVlLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG4gICAgICAgIG9ialtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRMaXRlcmFsQXJyYXkoYXN0OiBMaXRlcmFsQXJyYXksIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaXRBbGwoYXN0LmV4cHJlc3Npb25zLCBjb250ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdExpdGVyYWxNYXAoYXN0OiBMaXRlcmFsTWFwLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBhc3Qua2V5cztcclxuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnZpc2l0QWxsKGFzdC52YWx1ZXMsIGNvbnRleHQpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuZ3RoID0ga2V5cy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICByZXN1bHRba2V5c1tpXV0gPSB2YWx1ZXNbaV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0TGl0ZXJhbFByaW1pdGl2ZShhc3Q6IExpdGVyYWxQcmltaXRpdmUsIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGFzdC52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdE1ldGhvZENhbGwoYXN0OiBNZXRob2RDYWxsLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG5cclxuICAgICAgICBpZiAoIXV0aWwuaXNKc09iamVjdChyZWNlaXZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRNZXRob2RDYWxsLCBpbnZhbGlkIG1ldGhvZCByZWNlaXZlci5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IHJlY2VpdmVyW2FzdC5uYW1lXTtcclxuXHJcbiAgICAgICAgaWYgKCF1dGlsLmlzRnVuY3Rpb24obWV0aG9kKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNlIEVSUk9SOiBvbiB2aXNpdE1ldGhvZENhbGwsIG1ldGhvZCAke2FzdC5uYW1lfSBkb2Vzbid0IGV4aXN0IG9uIHJlY2VpdmVyLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYXJncyA9IHRoaXMudmlzaXRBbGwoYXN0LmFyZ3MsIGNvbnRleHQpO1xyXG4gICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkocmVjZWl2ZXIsIGFyZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0UHJlZml4Tm90KGFzdDogUHJlZml4Tm90LCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBhc3QuZXhwcmVzc2lvbi52aXNpdCh0aGlzLCBjb250ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFByb3BlcnR5UmVhZChhc3Q6IFByb3BlcnR5UmVhZCwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCByZWNlaXZlciA9IGFzdC5yZWNlaXZlci52aXNpdCh0aGlzLCBjb250ZXh0KTtcclxuXHJcbiAgICAgICAgaWYgKCF1dGlsLmlzSnNPYmplY3QocmVjZWl2ZXIpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFyc2UgRVJST1I6IG9uIHZpc2l0UHJvcGVydHlSZWFkLCBpbnZhbGlkIHByb3BlcnR5IHJlY2VpdmVyLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlY2VpdmVyW2FzdC5uYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICB2aXNpdFByb3BlcnR5V3JpdGUoYXN0OiBQcm9wZXJ0eVdyaXRlLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG5cclxuICAgICAgICBpZiAoIXV0aWwuaXNKc09iamVjdChyZWNlaXZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRQcm9wZXJ0eVJlYWQsIGludmFsaWQgcHJvcGVydHkgcmVjZWl2ZXIuYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZWNlaXZlclthc3QubmFtZV0gPSBhc3QudmFsdWUudmlzaXQodGhpcywgY29udGV4dCk7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRTYWZlUHJvcGVydHlSZWFkKGFzdDogU2FmZVByb3BlcnR5UmVhZCwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCByZWNlaXZlciA9IGFzdC5yZWNlaXZlci52aXNpdCh0aGlzLCBjb250ZXh0KTtcclxuXHJcbiAgICAgICAgaWYgKCF1dGlsLmlzSnNPYmplY3QocmVjZWl2ZXIpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFyc2UgRVJST1I6IG9uIHZpc2l0U2FmZVByb3BlcnR5UmVhZCwgaW52YWxpZCBwcm9wZXJ0eSByZWNlaXZlci5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZWNlaXZlclthc3QubmFtZV07XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRTYWZlTWV0aG9kQ2FsbChhc3Q6IFNhZmVNZXRob2RDYWxsLCBjb250ZXh0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHJlY2VpdmVyID0gYXN0LnJlY2VpdmVyLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xyXG5cclxuICAgICAgICBpZiAoIXV0aWwuaXNKc09iamVjdChyZWNlaXZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRTYWZlTWV0aG9kQ2FsbCwgaW52YWxpZCBtZXRob2QgcmVjZWl2ZXIuYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBtZXRob2QgPSByZWNlaXZlclthc3QubmFtZV07XHJcblxyXG4gICAgICAgIGlmICghdXRpbC5pc0Z1bmN0aW9uKG1ldGhvZCkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzZSBFUlJPUjogb24gdmlzaXRTYWZlTWV0aG9kQ2FsbCwgbWV0aG9kICR7YXN0Lm5hbWV9IGRvZXNuJ3QgZXhpc3Qgb24gcmVjZWl2ZXIuYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBhcmdzID0gdGhpcy52aXNpdEFsbChhc3QuYXJncywgY29udGV4dCk7XHJcbiAgICAgICAgcmV0dXJuIG1ldGhvZC5hcHBseShyZWNlaXZlciwgYXJncyk7XHJcbiAgICB9XHJcblxyXG4gICAgdmlzaXRBbGwoYXN0czogQVNUW10sIGNvbnRleHQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGFzdHMubWFwKGFzdCA9PiBhc3QudmlzaXQodGhpcywgY29udGV4dCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpc2l0UXVvdGUoYXN0OiBRdW90ZSwgY29udGV4dDogYW55KTogYW55IHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNlIEVSUk9SOiBvbiB2aXNpdFF1b3RlLCBxdW90ZSBleHByZXNzaW9uIG5vdCBhbGxvd2VkLmApO1xyXG4gICAgfVxyXG59Il19