@angular/compiler-cli 12.2.1 → 12.2.5

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 (53) hide show
  1. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +2 -2
  2. package/ngcc/src/packages/build_marker.d.ts +1 -1
  3. package/ngcc/src/packages/build_marker.js +1 -1
  4. package/package.json +2 -2
  5. package/src/ngtsc/annotations/src/component.d.ts +2 -0
  6. package/src/ngtsc/annotations/src/component.js +4 -1
  7. package/src/ngtsc/core/api/src/interfaces.d.ts +1 -1
  8. package/src/ngtsc/core/api/src/interfaces.js +1 -1
  9. package/src/ngtsc/core/api/src/options.d.ts +10 -1
  10. package/src/ngtsc/core/api/src/options.js +1 -1
  11. package/src/ngtsc/core/src/compiler.d.ts +11 -0
  12. package/src/ngtsc/core/src/compiler.js +77 -12
  13. package/src/ngtsc/diagnostics/src/error_code.d.ts +9 -0
  14. package/src/ngtsc/diagnostics/src/error_code.js +10 -1
  15. package/src/ngtsc/program.d.ts +0 -1
  16. package/src/ngtsc/program.js +1 -2
  17. package/src/ngtsc/transform/src/api.d.ts +2 -0
  18. package/src/ngtsc/transform/src/api.js +1 -1
  19. package/src/ngtsc/transform/src/compilation.d.ts +2 -0
  20. package/src/ngtsc/transform/src/compilation.js +75 -33
  21. package/src/ngtsc/typecheck/api/api.d.ts +21 -0
  22. package/src/ngtsc/typecheck/api/api.js +1 -1
  23. package/src/ngtsc/typecheck/api/checker.d.ts +2 -2
  24. package/src/ngtsc/typecheck/api/checker.js +1 -1
  25. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +1 -15
  26. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +1 -1
  27. package/src/ngtsc/typecheck/extended/api/api.d.ts +50 -0
  28. package/src/ngtsc/typecheck/extended/api/api.js +124 -0
  29. package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +19 -0
  30. package/src/ngtsc/typecheck/extended/api/extended_template_checker.js +20 -0
  31. package/src/ngtsc/{core/src/config.d.ts → typecheck/extended/api/index.d.ts} +3 -2
  32. package/src/ngtsc/typecheck/extended/api/index.js +23 -0
  33. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +22 -0
  34. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.js +52 -0
  35. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +23 -0
  36. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.js +64 -0
  37. package/src/ngtsc/typecheck/extended/index.d.ts +9 -0
  38. package/src/ngtsc/typecheck/extended/index.js +23 -0
  39. package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +18 -0
  40. package/src/ngtsc/typecheck/extended/src/extended_template_checker.js +55 -0
  41. package/src/ngtsc/typecheck/src/checker.d.ts +2 -3
  42. package/src/ngtsc/typecheck/src/checker.js +8 -7
  43. package/src/ngtsc/typecheck/src/context.d.ts +1 -2
  44. package/src/ngtsc/typecheck/src/context.js +1 -1
  45. package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -2
  46. package/src/ngtsc/typecheck/src/diagnostics.js +1 -1
  47. package/src/ngtsc/typecheck/src/dom.d.ts +1 -2
  48. package/src/ngtsc/typecheck/src/dom.js +1 -1
  49. package/src/ngtsc/typecheck/src/oob.d.ts +1 -2
  50. package/src/ngtsc/typecheck/src/oob.js +1 -1
  51. package/src/transformers/downlevel_decorators_transform.js +85 -91
  52. package/src/version.js +1 -1
  53. package/src/ngtsc/core/src/config.js +0 -28
@@ -17,4 +17,4 @@
17
17
  "use strict";
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90eXBlY2hlY2svYXBpL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtBYnNvbHV0ZVNvdXJjZVNwYW4sIEJvdW5kVGFyZ2V0LCBEaXJlY3RpdmVNZXRhLCBQYXJzZVNvdXJjZVNwYW4sIFNjaGVtYU1ldGFkYXRhfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aH0gZnJvbSAnLi4vLi4vZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtSZWZlcmVuY2V9IGZyb20gJy4uLy4uL2ltcG9ydHMnO1xuaW1wb3J0IHtDbGFzc1Byb3BlcnR5TWFwcGluZywgRGlyZWN0aXZlVHlwZUNoZWNrTWV0YX0gZnJvbSAnLi4vLi4vbWV0YWRhdGEnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcblxuXG4vKipcbiAqIEV4dGVuc2lvbiBvZiBgRGlyZWN0aXZlTWV0YWAgdGhhdCBpbmNsdWRlcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIHR5cGUtY2hlY2sgdGhlXG4gKiB1c2FnZSBvZiBhIHBhcnRpY3VsYXIgZGlyZWN0aXZlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVDaGVja2FibGVEaXJlY3RpdmVNZXRhIGV4dGVuZHMgRGlyZWN0aXZlTWV0YSwgRGlyZWN0aXZlVHlwZUNoZWNrTWV0YSB7XG4gIHJlZjogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+O1xuICBxdWVyaWVzOiBzdHJpbmdbXTtcbiAgaW5wdXRzOiBDbGFzc1Byb3BlcnR5TWFwcGluZztcbiAgb3V0cHV0czogQ2xhc3NQcm9wZXJ0eU1hcHBpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFRlbXBsYXRlSWQgPSBzdHJpbmcme19fYnJhbmQ6ICdUZW1wbGF0ZUlkJ307XG5cbi8qKlxuICogTWV0YWRhdGEgcmVxdWlyZWQgaW4gYWRkaXRpb24gdG8gYSBjb21wb25lbnQgY2xhc3MgaW4gb3JkZXIgdG8gZ2VuZXJhdGUgYSB0eXBlIGNoZWNrIGJsb2NrIChUQ0IpXG4gKiBmb3IgdGhhdCBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUNoZWNrQmxvY2tNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY2xhc3Mgd2hpY2ggZ2F2ZSByaXNlIHRvIHRoaXMgVENCLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIG1hcCBlcnJvcnMgYmFjayB0byB0aGUgYHRzLkNsYXNzRGVjbGFyYXRpb25gIGZvciB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgaWQ6IFRlbXBsYXRlSWQ7XG5cbiAgLyoqXG4gICAqIFNlbWFudGljIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0ZW1wbGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgYm91bmRUYXJnZXQ6IEJvdW5kVGFyZ2V0PFR5cGVDaGVja2FibGVEaXJlY3RpdmVNZXRhPjtcblxuICAvKlxuICAgKiBQaXBlcyB1c2VkIGluIHRoZSB0ZW1wbGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcGlwZXM6IE1hcDxzdHJpbmcsIFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPHRzLkNsYXNzRGVjbGFyYXRpb24+Pj47XG5cbiAgLyoqXG4gICAqIFNjaGVtYXMgdGhhdCBhcHBseSB0byB0aGlzIHRlbXBsYXRlLlxuICAgKi9cbiAgc2NoZW1hczogU2NoZW1hTWV0YWRhdGFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlQ3Rvck1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0ZWQgdHlwZSBjb25zdHJ1Y3RvciBmdW5jdGlvbi5cbiAgICovXG4gIGZuTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGdlbmVyYXRlIGEgYm9keSBmb3IgdGhlIGZ1bmN0aW9uIG9yIG5vdC5cbiAgICovXG4gIGJvZHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElucHV0LCBvdXRwdXQsIGFuZCBxdWVyeSBmaWVsZCBuYW1lcyBpbiB0aGUgdHlwZSB3aGljaCBzaG91bGQgYmUgaW5jbHVkZWQgYXMgY29uc3RydWN0b3IgaW5wdXQuXG4gICAqL1xuICBmaWVsZHM6IHtpbnB1dHM6IHN0cmluZ1tdOyBvdXRwdXRzOiBzdHJpbmdbXTsgcXVlcmllczogc3RyaW5nW107fTtcblxuICAvKipcbiAgICogYFNldGAgb2YgZmllbGQgbmFtZXMgd2hpY2ggaGF2ZSB0eXBlIGNvZXJjaW9uIGVuYWJsZWQuXG4gICAqL1xuICBjb2VyY2VkSW5wdXRGaWVsZHM6IFNldDxzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVDaGVja2luZ0NvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNoZWNrIHRoZSBsZWZ0LWhhbmQgc2lkZSB0eXBlIG9mIGJpbmRpbmcgb3BlcmF0aW9ucy5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGlmIHRoaXMgaXMgYGZhbHNlYCB0aGVuIHRoZSBleHByZXNzaW9uIGBbaW5wdXRdPVwiZXhwclwiYCB3aWxsIGhhdmUgYGV4cHJgIHR5cGUtXG4gICAqIGNoZWNrZWQsIGJ1dCBub3QgdGhlIGFzc2lnbm1lbnQgb2YgdGhlIHJlc3VsdGluZyB0eXBlIHRvIHRoZSBgaW5wdXRgIHByb3BlcnR5IG9mIHdoaWNoZXZlclxuICAgKiBkaXJlY3RpdmUgb3IgY29tcG9uZW50IGlzIHJlY2VpdmluZyB0aGUgYmluZGluZy4gSWYgc2V0IHRvIGB0cnVlYCwgYm90aCBzaWRlcyBvZiB0aGUgYXNzaWdubWVudFxuICAgKiBhcmUgY2hlY2tlZC5cbiAgICpcbiAgICogVGhpcyBmbGFnIG9ubHkgYWZmZWN0cyBiaW5kaW5ncyB0byBjb21wb25lbnRzL2RpcmVjdGl2ZXMuIEJpbmRpbmdzIHRvIHRoZSBET00gYXJlIGNoZWNrZWQgaWZcbiAgICogYGNoZWNrVHlwZU9mRG9tQmluZGluZ3NgIGlzIHNldC5cbiAgICovXG4gIGNoZWNrVHlwZU9mSW5wdXRCaW5kaW5nczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBob25vciB0aGUgYWNjZXNzIG1vZGlmaWVycyBvbiBpbnB1dCBiaW5kaW5ncyBmb3IgdGhlIGNvbXBvbmVudC9kaXJlY3RpdmUuXG4gICAqXG4gICAqIElmIGEgdGVtcGxhdGUgYmluZGluZyBhdHRlbXB0cyB0byBhc3NpZ24gdG8gYW4gaW5wdXQgdGhhdCBpcyBwcml2YXRlL3Byb3RlY3RlZC9yZWFkb25seSxcbiAgICogdGhpcyB3aWxsIHByb2R1Y2UgZXJyb3JzIHdoZW4gZW5hYmxlZCBidXQgd2lsbCBub3Qgd2hlbiBkaXNhYmxlZC5cbiAgICovXG4gIGhvbm9yQWNjZXNzTW9kaWZpZXJzRm9ySW5wdXRCaW5kaW5nczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2Ugc3RyaWN0IG51bGwgdHlwZXMgZm9yIGlucHV0IGJpbmRpbmdzIGZvciBkaXJlY3RpdmVzLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgYXBwbGljYXRpb25zIHRoYXQgYXJlIGNvbXBpbGVkIHdpdGggVHlwZVNjcmlwdCdzIGBzdHJpY3ROdWxsQ2hlY2tzYCBlbmFibGVkXG4gICAqIHdpbGwgcHJvZHVjZSB0eXBlIGVycm9ycyBmb3IgYmluZGluZ3Mgd2hpY2ggY2FuIGV2YWx1YXRlIHRvIGB1bmRlZmluZWRgIG9yIGBudWxsYCB3aGVyZSB0aGVcbiAgICogaW5wdXRzJ3MgdHlwZSBkb2VzIG5vdCBpbmNsdWRlIGB1bmRlZmluZWRgIG9yIGBudWxsYCBpbiBpdHMgdHlwZS4gSWYgc2V0IHRvIGBmYWxzZWAsIGFsbFxuICAgKiBiaW5kaW5nIGV4cHJlc3Npb25zIGFyZSB3cmFwcGVkIGluIGEgbm9uLW51bGwgYXNzZXJ0aW9uIG9wZXJhdG9yIHRvIGVmZmVjdGl2ZWx5IGRpc2FibGUgc3RyaWN0XG4gICAqIG51bGwgY2hlY2tzLiBUaGlzIG1heSBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gdGhlIGRpcmVjdGl2ZSBpcyBmcm9tIGEgbGlicmFyeSB0aGF0IGlzIG5vdFxuICAgKiBjb21waWxlZCB3aXRoIGBzdHJpY3ROdWxsQ2hlY2tzYCBlbmFibGVkLlxuICAgKlxuICAgKiBJZiBgY2hlY2tUeXBlT2ZJbnB1dEJpbmRpbmdzYCBpcyBzZXQgdG8gYGZhbHNlYCwgdGhpcyBmbGFnIGhhcyBubyBlZmZlY3QuXG4gICAqL1xuICBzdHJpY3ROdWxsSW5wdXRCaW5kaW5nczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjaGVjayB0ZXh0IGF0dHJpYnV0ZXMgdGhhdCBoYXBwZW4gdG8gYmUgY29uc3VtZWQgYnkgYSBkaXJlY3RpdmUgb3IgY29tcG9uZW50LlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgaW4gYSB0ZW1wbGF0ZSBjb250YWluaW5nIGA8aW5wdXQgbWF0SW5wdXQgZGlzYWJsZWQ+YCB0aGUgYGRpc2FibGVkYCBhdHRyaWJ1dGUgZW5kc1xuICAgKiB1cCBiZWluZyBjb25zdW1lZCBhcyBhbiBpbnB1dCB3aXRoIHR5cGUgYGJvb2xlYW5gIGJ5IHRoZSBgbWF0SW5wdXRgIGRpcmVjdGl2ZS4gQXQgcnVudGltZSwgdGhlXG4gICAqIGlucHV0IHdpbGwgYmUgc2V0IHRvIHRoZSBhdHRyaWJ1dGUncyBzdHJpbmcgdmFsdWUsIHdoaWNoIGlzIGFuIGVtcHR5IHN0cmluZyBmb3IgYXR0cmlidXRlc1xuICAgKiB3aXRob3V0IGEgdmFsdWUsIHNvIHdpdGggdGhpcyBmbGFnIHNldCB0byBgdHJ1ZWAsIGFuIGVycm9yIHdvdWxkIGJlIHJlcG9ydGVkLiBJZiBzZXQgdG9cbiAgICogYGZhbHNlYCwgdGV4dCBhdHRyaWJ1dGVzIHdpbGwgbmV2ZXIgcmVwb3J0IGFuIGVycm9yLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgaWYgYGNoZWNrVHlwZU9mSW5wdXRCaW5kaW5nc2AgaXMgc2V0IHRvIGBmYWxzZWAsIHRoaXMgZmxhZyBoYXMgbm8gZWZmZWN0LlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZBdHRyaWJ1dGVzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNoZWNrIHRoZSBsZWZ0LWhhbmQgc2lkZSB0eXBlIG9mIGJpbmRpbmcgb3BlcmF0aW9ucyB0byBET00gcHJvcGVydGllcy5cbiAgICpcbiAgICogQXMgYGNoZWNrVHlwZU9mQmluZGluZ3NgLCBidXQgb25seSBhcHBsaWVzIHRvIGJpbmRpbmdzIHRvIERPTSBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgdXNlIG9mIHRoZSBgRG9tU2NoZW1hQ2hlY2tlcmAgdG8gdmFsaWRhdGUgdGhlIHRlbXBsYXRlIGFnYWluc3QgdGhlIERPTVxuICAgKiBzY2hlbWEuIFJhdGhlciwgdGhpcyBmbGFnIGlzIGFuIGV4cGVyaW1lbnRhbCwgbm90IHlldCBjb21wbGV0ZSBmZWF0dXJlIHdoaWNoIHVzZXMgdGhlXG4gICAqIGxpYi5kb20uZC50cyBET00gdHlwaW5ncyBpbiBUeXBlU2NyaXB0IHRvIHZhbGlkYXRlIHRoYXQgRE9NIGJpbmRpbmdzIGFyZSBvZiB0aGUgY29ycmVjdCB0eXBlXG4gICAqIGZvciBhc3NpZ25hYmlsaXR5IHRvIHRoZSB1bmRlcmx5aW5nIERPTSBlbGVtZW50IHByb3BlcnRpZXMuXG4gICAqL1xuICBjaGVja1R5cGVPZkRvbUJpbmRpbmdzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluZmVyIHRoZSB0eXBlIG9mIHRoZSBgJGV2ZW50YCB2YXJpYWJsZSBpbiBldmVudCBiaW5kaW5ncyBmb3IgZGlyZWN0aXZlIG91dHB1dHMgb3JcbiAgICogYW5pbWF0aW9uIGV2ZW50cy5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBgdHJ1ZWAsIHRoZSB0eXBlIG9mIGAkZXZlbnRgIHdpbGwgYmUgaW5mZXJyZWQgYmFzZWQgb24gdGhlIGdlbmVyaWMgdHlwZSBvZlxuICAgKiBgRXZlbnRFbWl0dGVyYC9gU3ViamVjdGAgb2YgdGhlIG91dHB1dC4gSWYgc2V0IHRvIGBmYWxzZWAsIHRoZSBgJGV2ZW50YCB2YXJpYWJsZSB3aWxsIGJlIG9mXG4gICAqIHR5cGUgYGFueWAuXG4gICAqL1xuICBjaGVja1R5cGVPZk91dHB1dEV2ZW50czogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmZlciB0aGUgdHlwZSBvZiB0aGUgYCRldmVudGAgdmFyaWFibGUgaW4gZXZlbnQgYmluZGluZ3MgZm9yIGFuaW1hdGlvbnMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBgJGV2ZW50YCB3aWxsIGJlIGBBbmltYXRpb25FdmVudGAgZnJvbSBgQGFuZ3VsYXIvYW5pbWF0aW9uc2AuXG4gICAqIElmIHNldCB0byBgZmFsc2VgLCB0aGUgYCRldmVudGAgdmFyaWFibGUgd2lsbCBiZSBvZiB0eXBlIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZBbmltYXRpb25FdmVudHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5mZXIgdGhlIHR5cGUgb2YgdGhlIGAkZXZlbnRgIHZhcmlhYmxlIGluIGV2ZW50IGJpbmRpbmdzIHRvIERPTSBldmVudHMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBgJGV2ZW50YCB3aWxsIGJlIGluZmVycmVkIGJhc2VkIG9uIFR5cGVTY3JpcHQnc1xuICAgKiBgSFRNTEVsZW1lbnRFdmVudE1hcGAsIHdpdGggYSBmYWxsYmFjayB0byB0aGUgbmF0aXZlIGBFdmVudGAgdHlwZS4gSWYgc2V0IHRvIGBmYWxzZWAsIHRoZVxuICAgKiBgJGV2ZW50YCB2YXJpYWJsZSB3aWxsIGJlIG9mIHR5cGUgYGFueWAuXG4gICAqL1xuICBjaGVja1R5cGVPZkRvbUV2ZW50czogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmZlciB0aGUgdHlwZSBvZiBsb2NhbCByZWZlcmVuY2VzIHRvIERPTSBlbGVtZW50cy5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBgdHJ1ZWAsIHRoZSB0eXBlIG9mIGEgYCNyZWZgIHZhcmlhYmxlIG9uIGEgRE9NIG5vZGUgaW4gdGhlIHRlbXBsYXRlIHdpbGwgYmVcbiAgICogZGV0ZXJtaW5lZCBieSB0aGUgdHlwZSBvZiBgZG9jdW1lbnQuY3JlYXRlRWxlbWVudGAgZm9yIHRoZSBnaXZlbiBET00gbm9kZSB0eXBlLiBJZiBzZXQgdG9cbiAgICogYGZhbHNlYCwgdGhlIHR5cGUgb2YgYHJlZmAgZm9yIERPTSBub2RlcyB3aWxsIGJlIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZEb21SZWZlcmVuY2VzOiBib29sZWFuO1xuXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5mZXIgdGhlIHR5cGUgb2YgbG9jYWwgcmVmZXJlbmNlcy5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBgdHJ1ZWAsIHRoZSB0eXBlIG9mIGEgYCNyZWZgIHZhcmlhYmxlIHRoYXQgcG9pbnRzIHRvIGEgZGlyZWN0aXZlIG9yIGBUZW1wbGF0ZVJlZmAgaW5cbiAgICogdGhlIHRlbXBsYXRlIHdpbGwgYmUgaW5mZXJyZWQgY29ycmVjdGx5LiBJZiBzZXQgdG8gYGZhbHNlYCwgdGhlIHR5cGUgb2YgYHJlZmAgZm9yIHdpbGwgYmVcbiAgICogYGFueWAuXG4gICAqL1xuICBjaGVja1R5cGVPZk5vbkRvbVJlZmVyZW5jZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWRqdXN0IHRoZSBvdXRwdXQgb2YgdGhlIFRDQiB0byBlbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBgVGVtcGxhdGVUeXBlQ2hlY2tlcmAuXG4gICAqXG4gICAqIFRoZSBzdGF0ZW1lbnRzIGdlbmVyYXRlZCBpbiB0aGUgVENCIGFyZSBvcHRpbWl6ZWQgZm9yIHBlcmZvcm1hbmNlIGFuZCBwcm9kdWNpbmcgZGlhZ25vc3RpY3MuXG4gICAqIFRoZXNlIG9wdGltaXphdGlvbnMgY2FuIHJlc3VsdCBpbiBnZW5lcmF0aW5nIGEgVENCIHRoYXQgZG9lcyBub3QgaGF2ZSBhbGwgdGhlIGluZm9ybWF0aW9uXG4gICAqIG5lZWRlZCBieSB0aGUgYFRlbXBsYXRlVHlwZUNoZWNrZXJgIGZvciByZXRyaWV2aW5nIGBTeW1ib2xgcy4gRm9yIGV4YW1wbGUsIGFzIGFuIG9wdGltaXphdGlvbixcbiAgICogdGhlIFRDQiB3aWxsIG5vdCBnZW5lcmF0ZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBzdGF0ZW1lbnRzIGZvciBkaXJlY3RpdmVzIHRoYXQgaGF2ZSBub1xuICAgKiByZWZlcmVuY2VzLCBpbnB1dHMsIG9yIG91dHB1dHMuIEhvd2V2ZXIsIHRoZSBgVGVtcGxhdGVUeXBlQ2hlY2tlcmAgYWx3YXlzIG5lZWRzIHRoZXNlXG4gICAqIHN0YXRlbWVudHMgdG8gYmUgcHJlc2VudCBpbiBvcmRlciB0byBwcm92aWRlIGB0cy5TeW1ib2xgcyBhbmQgYHRzLlR5cGVgcyBmb3IgdGhlIGRpcmVjdGl2ZXMuXG4gICAqXG4gICAqIFdoZW4gc2V0IHRvIGBmYWxzZWAsIGVuYWJsZXMgVENCIG9wdGltaXphdGlvbnMgZm9yIHRlbXBsYXRlIGRpYWdub3N0aWNzLlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIGVuc3VyZXMgYWxsIGluZm9ybWF0aW9uIHJlcXVpcmVkIGJ5IGBUZW1wbGF0ZVR5cGVDaGVja2VyYCB0b1xuICAgKiByZXRyaWV2ZSBzeW1ib2xzIGZvciB0ZW1wbGF0ZSBub2RlcyBpcyBhdmFpbGFibGUgaW4gdGhlIFRDQi5cbiAgICovXG4gIGVuYWJsZVRlbXBsYXRlVHlwZUNoZWNrZXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSB0eXBlIGluZm9ybWF0aW9uIGZyb20gcGlwZXMgaW4gdGhlIHR5cGUtY2hlY2tpbmcgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlbiB0aGUgcGlwZSdzIHR5cGUgc2lnbmF0dXJlIGZvciBgdHJhbnNmb3JtKClgIHdpbGwgYmUgdXNlZCB0byBjaGVjayB0aGVcbiAgICogdXNhZ2Ugb2YgdGhlIHBpcGUuIElmIHRoaXMgaXMgYGZhbHNlYCwgdGhlbiB0aGUgcmVzdWx0IG9mIGFwcGx5aW5nIGEgcGlwZSB3aWxsIGJlIGBhbnlgLCBhbmRcbiAgICogdGhlIHR5cGVzIG9mIHRoZSBwaXBlJ3MgdmFsdWUgYW5kIGFyZ3VtZW50cyB3aWxsIG5vdCBiZSBtYXRjaGVkIGFnYWluc3QgdGhlIGB0cmFuc2Zvcm0oKWBcbiAgICogbWV0aG9kLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZQaXBlczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBuYXJyb3cgdGhlIHR5cGVzIG9mIHRlbXBsYXRlIGNvbnRleHRzLlxuICAgKi9cbiAgYXBwbHlUZW1wbGF0ZUNvbnRleHRHdWFyZHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIGEgc3RyaWN0IHR5cGUgZm9yIG51bGwtc2FmZSBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYGZhbHNlYCwgdGhlbiB0aGUgcmV0dXJuIHR5cGUgb2YgYGE/LmJgIG9yIGBhPygpYCB3aWxsIGJlIGBhbnlgLiBJZiBzZXQgdG8gYHRydWVgLFxuICAgKiB0aGVuIHRoZSByZXR1cm4gdHlwZSBvZiBgYT8uYmAgZm9yIGV4YW1wbGUgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUgdHlwZSBvZiB0aGUgdGVybmFyeVxuICAgKiBleHByZXNzaW9uIGBhICE9IG51bGwgPyBhLmIgOiBhYC5cbiAgICovXG4gIHN0cmljdFNhZmVOYXZpZ2F0aW9uVHlwZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVzY2VuZCBpbnRvIHRlbXBsYXRlIGJvZGllcyBhbmQgY2hlY2sgYW55IGJpbmRpbmdzIHRoZXJlLlxuICAgKi9cbiAgY2hlY2tUZW1wbGF0ZUJvZGllczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbHdheXMgYXBwbHkgRE9NIHNjaGVtYSBjaGVja3MgaW4gdGVtcGxhdGUgYm9kaWVzLCBpbmRlcGVuZGVudGx5IG9mIHRoZVxuICAgKiBgY2hlY2tUZW1wbGF0ZUJvZGllc2Agc2V0dGluZy5cbiAgICovXG4gIGFsd2F5c0NoZWNrU2NoZW1hSW5UZW1wbGF0ZUJvZGllczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjaGVjayByZXNvbHZhYmxlIHF1ZXJpZXMuXG4gICAqXG4gICAqIFRoaXMgaXMgY3VycmVudGx5IGFuIHVuc3VwcG9ydGVkIGZlYXR1cmUuXG4gICAqL1xuICBjaGVja1F1ZXJpZXM6IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBhbnkgZ2VuZXJpYyB0eXBlcyBvZiB0aGUgY29udGV4dCBjb21wb25lbnQuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGVuIGlmIHRoZSBjb250ZXh0IGNvbXBvbmVudCBoYXMgZ2VuZXJpYyB0eXBlcywgdGhvc2Ugd2lsbCBiZSBtaXJyb3JlZCBpblxuICAgKiB0aGUgdGVtcGxhdGUgdHlwZS1jaGVja2luZyBjb250ZXh0LiBJZiBgZmFsc2VgLCBhbnkgZ2VuZXJpYyB0eXBlIHBhcmFtZXRlcnMgb2YgdGhlIGNvbnRleHRcbiAgICogY29tcG9uZW50IHdpbGwgYmUgc2V0IHRvIGBhbnlgIGR1cmluZyB0eXBlLWNoZWNraW5nLlxuICAgKi9cbiAgdXNlQ29udGV4dEdlbmVyaWNUeXBlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBpbmZlciB0eXBlcyBmb3Igb2JqZWN0IGFuZCBhcnJheSBsaXRlcmFscyBpbiB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGVuIHRoZSB0eXBlIG9mIGFuIG9iamVjdCBvciBhbiBhcnJheSBsaXRlcmFsIGluIHRoZSB0ZW1wbGF0ZSB3aWxsIGJlIHRoZVxuICAgKiBzYW1lIHR5cGUgdGhhdCBUeXBlU2NyaXB0IHdvdWxkIGluZmVyIGlmIHRoZSBsaXRlcmFsIGFwcGVhcmVkIGluIGNvZGUuIElmIGBmYWxzZWAsIHRoZW4gc3VjaFxuICAgKiBsaXRlcmFscyBhcmUgY2FzdCB0byBgYW55YCB3aGVuIGRlY2xhcmVkLlxuICAgKi9cbiAgc3RyaWN0TGl0ZXJhbFR5cGVzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBpbmxpbmUgdHlwZSBjb25zdHJ1Y3RvcnMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCBjcmVhdGUgaW5saW5lIHR5cGUgY29uc3RydWN0b3JzIHdoZW4gcmVxdWlyZWQuIEZvciBleGFtcGxlLCBpZiBhIHR5cGVcbiAgICogY29uc3RydWN0b3IncyBwYXJhbWV0ZXJzIGhhcyBwcml2YXRlIHR5cGVzLCBpdCBjYW5ub3QgYmUgY3JlYXRlZCBub3JtYWxseSwgc28gd2UgaW5saW5lIGl0IGluXG4gICAqIHRoZSBkaXJlY3RpdmVzIGRlZmluaXRpb24gZmlsZS5cbiAgICpcbiAgICogSWYgZmFsc2UsIGRvIG5vdCBjcmVhdGUgaW5saW5lIHR5cGUgY29uc3RydWN0b3JzLiBGYWxsIGJhY2sgdG8gdXNpbmcgYGFueWAgdHlwZSBmb3JcbiAgICogY29uc3RydWN0b3JzIHRoYXQgbm9ybWFsbHkgcmVxdWlyZSBpbmxpbmluZy5cbiAgICpcbiAgICogVGhpcyBvcHRpb24gcmVxdWlyZXMgdGhlIGVudmlyb25tZW50IHRvIHN1cHBvcnQgaW5saW5pbmcuIElmIHRoZSBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0XG4gICAqIGlubGluaW5nLCB0aGlzIG11c3QgYmUgc2V0IHRvIGBmYWxzZWAuXG4gICAqL1xuICB1c2VJbmxpbmVUeXBlQ29uc3RydWN0b3JzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBwcm9kdWNlIGRpYWdub3N0aWMgc3VnZ2VzdGlvbnMgaW4gY2FzZXMgd2hlcmUgdGhlIGNvbXBpbGVyIGNvdWxkIGhhdmVcbiAgICogaW5mZXJyZWQgYSBiZXR0ZXIgdHlwZSBmb3IgYSBjb25zdHJ1Y3QsIGJ1dCB3YXMgcHJldmVudGVkIGZyb20gZG9pbmcgc28gYnkgdGhlIGN1cnJlbnQgdHlwZVxuICAgKiBjaGVja2luZyBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIGNvbXBpbGVyIGNvdWxkIGhhdmUgdXNlZCBhIHRlbXBsYXRlIGNvbnRleHQgZ3VhcmQgdG8gaW5mZXIgYSBiZXR0ZXIgdHlwZVxuICAgKiBmb3IgYSBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZSdzIGNvbnRleHQgYW5kIGBsZXQtYCB2YXJpYWJsZXMsIGJ1dCB0aGUgdXNlciBpcyBpblxuICAgKiBgZnVsbFRlbXBsYXRlVHlwZUNoZWNrYCBtb2RlIGFuZCBzdWNoIGd1YXJkcyBhcmUgdGhlcmVmb3JlIGRpc2FibGVkLlxuICAgKlxuICAgKiBUaGlzIG1vZGUgaXMgdXNlZnVsIGZvciBjbGllbnRzIGxpa2UgdGhlIExhbmd1YWdlIFNlcnZpY2Ugd2hpY2ggd2FudCB0byBpbmZvcm0gdXNlcnMgb2ZcbiAgICogb3Bwb3J0dW5pdGllcyB0byBpbXByb3ZlIHRoZWlyIG93biBkZXZlbG9wZXIgZXhwZXJpZW5jZS5cbiAgICovXG4gIHN1Z2dlc3Rpb25zRm9yU3Vib3B0aW1hbFR5cGVJbmZlcmVuY2U6IGJvb2xlYW47XG59XG5cblxuZXhwb3J0IHR5cGUgVGVtcGxhdGVTb3VyY2VNYXBwaW5nID1cbiAgICBEaXJlY3RUZW1wbGF0ZVNvdXJjZU1hcHBpbmd8SW5kaXJlY3RUZW1wbGF0ZVNvdXJjZU1hcHBpbmd8RXh0ZXJuYWxUZW1wbGF0ZVNvdXJjZU1hcHBpbmc7XG5cbi8qKlxuICogQSBtYXBwaW5nIHRvIGFuIGlubGluZSB0ZW1wbGF0ZSBpbiBhIFRTIGZpbGUuXG4gKlxuICogYFBhcnNlU291cmNlU3BhbmBzIGZvciB0aGlzIHRlbXBsYXRlIHNob3VsZCBiZSBhY2N1cmF0ZSBmb3IgZGlyZWN0IHJlcG9ydGluZyBpbiBhIFRTIGVycm9yXG4gKiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdFRlbXBsYXRlU291cmNlTWFwcGluZyB7XG4gIHR5cGU6ICdkaXJlY3QnO1xuICBub2RlOiB0cy5TdHJpbmdMaXRlcmFsfHRzLk5vU3Vic3RpdHV0aW9uVGVtcGxhdGVMaXRlcmFsO1xufVxuXG4vKipcbiAqIEEgbWFwcGluZyB0byBhIHRlbXBsYXRlIHdoaWNoIGlzIHN0aWxsIGluIGEgVFMgZmlsZSwgYnV0IHdoZXJlIHRoZSBub2RlIHBvc2l0aW9ucyBpbiBhbnlcbiAqIGBQYXJzZVNvdXJjZVNwYW5gcyBhcmUgbm90IGFjY3VyYXRlIGZvciBvbmUgcmVhc29uIG9yIGFub3RoZXIuXG4gKlxuICogVGhpcyBjYW4gb2NjdXIgaWYgdGhlIHRlbXBsYXRlIGV4cHJlc3Npb24gd2FzIGludGVycG9sYXRlZCBpbiBhIHdheSB3aGVyZSB0aGUgY29tcGlsZXIgY291bGQgbm90XG4gKiBjb25zdHJ1Y3QgYSBjb250aWd1b3VzIG1hcHBpbmcgZm9yIHRoZSB0ZW1wbGF0ZSBzdHJpbmcuIFRoZSBgbm9kZWAgcmVmZXJzIHRvIHRoZSBgdGVtcGxhdGVgXG4gKiBleHByZXNzaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZGlyZWN0VGVtcGxhdGVTb3VyY2VNYXBwaW5nIHtcbiAgdHlwZTogJ2luZGlyZWN0JztcbiAgY29tcG9uZW50Q2xhc3M6IENsYXNzRGVjbGFyYXRpb247XG4gIG5vZGU6IHRzLkV4cHJlc3Npb247XG4gIHRlbXBsYXRlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBtYXBwaW5nIHRvIGEgdGVtcGxhdGUgZGVjbGFyZWQgaW4gYW4gZXh0ZXJuYWwgSFRNTCBmaWxlLCB3aGVyZSBub2RlIHBvc2l0aW9ucyBpblxuICogYFBhcnNlU291cmNlU3BhbmBzIHJlcHJlc2VudCBhY2N1cmF0ZSBvZmZzZXRzIGludG8gdGhlIGV4dGVybmFsIGZpbGUuXG4gKlxuICogSW4gdGhpcyBjYXNlLCB0aGUgZ2l2ZW4gYG5vZGVgIHJlZmVycyB0byB0aGUgYHRlbXBsYXRlVXJsYCBleHByZXNzaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVybmFsVGVtcGxhdGVTb3VyY2VNYXBwaW5nIHtcbiAgdHlwZTogJ2V4dGVybmFsJztcbiAgY29tcG9uZW50Q2xhc3M6IENsYXNzRGVjbGFyYXRpb247XG4gIG5vZGU6IHRzLkV4cHJlc3Npb247XG4gIHRlbXBsYXRlOiBzdHJpbmc7XG4gIHRlbXBsYXRlVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBtYXBwaW5nIG9mIGEgVENCIHRlbXBsYXRlIGlkIHRvIGEgc3BhbiBpbiB0aGUgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZSBzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTG9jYXRpb24ge1xuICBpZDogVGVtcGxhdGVJZDtcbiAgc3BhbjogQWJzb2x1dGVTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYWxsIGEgbm9kZSdzIHRlbXBsYXRlIG1hcHBpbmcgaW5mb3JtYXRpb24gd2Uga25vdy4gVXNlZnVsIGZvciBwcm9kdWNpbmdcbiAqIGRpYWdub3N0aWNzIGJhc2VkIG9uIGEgVENCIG5vZGUgb3IgZ2VuZXJhbGx5IG1hcHBpbmcgZnJvbSBhIFRDQiBub2RlIGJhY2sgdG8gYSB0ZW1wbGF0ZSBsb2NhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdWxsVGVtcGxhdGVNYXBwaW5nIHtcbiAgc291cmNlTG9jYXRpb246IFNvdXJjZUxvY2F0aW9uO1xuICB0ZW1wbGF0ZVNvdXJjZU1hcHBpbmc6IFRlbXBsYXRlU291cmNlTWFwcGluZztcbiAgc3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90eXBlY2hlY2svYXBpL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtBYnNvbHV0ZVNvdXJjZVNwYW4sIEJvdW5kVGFyZ2V0LCBEaXJlY3RpdmVNZXRhLCBQYXJzZVNvdXJjZVNwYW4sIFNjaGVtYU1ldGFkYXRhfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7RXJyb3JDb2RlfSBmcm9tICcuLi8uLi9kaWFnbm9zdGljcyc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7UmVmZXJlbmNlfSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7Q2xhc3NQcm9wZXJ0eU1hcHBpbmcsIERpcmVjdGl2ZVR5cGVDaGVja01ldGF9IGZyb20gJy4uLy4uL21ldGFkYXRhJztcbmltcG9ydCB7Q2xhc3NEZWNsYXJhdGlvbn0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5cblxuLyoqXG4gKiBFeHRlbnNpb24gb2YgYERpcmVjdGl2ZU1ldGFgIHRoYXQgaW5jbHVkZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byB0eXBlLWNoZWNrIHRoZVxuICogdXNhZ2Ugb2YgYSBwYXJ0aWN1bGFyIGRpcmVjdGl2ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlQ2hlY2thYmxlRGlyZWN0aXZlTWV0YSBleHRlbmRzIERpcmVjdGl2ZU1ldGEsIERpcmVjdGl2ZVR5cGVDaGVja01ldGEge1xuICByZWY6IFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPjtcbiAgcXVlcmllczogc3RyaW5nW107XG4gIGlucHV0czogQ2xhc3NQcm9wZXJ0eU1hcHBpbmc7XG4gIG91dHB1dHM6IENsYXNzUHJvcGVydHlNYXBwaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZUlkID0gc3RyaW5nJntfX2JyYW5kOiAnVGVtcGxhdGVJZCd9O1xuXG4vKipcbiAqIEEgYHRzLkRpYWdub3N0aWNgIHdpdGggYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGlhZ25vc3RpYyByZWxhdGVkIHRvIHRlbXBsYXRlXG4gKiB0eXBlLWNoZWNraW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRGlhZ25vc3RpYyBleHRlbmRzIHRzLkRpYWdub3N0aWMge1xuICAvKipcbiAgICogVGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0ZW1wbGF0ZSB0aGF0IHJlc3VsdGVkIGluIHRoaXMgZGlhZ25vc3RpYy5cbiAgICovXG4gIGNvbXBvbmVudEZpbGU6IHRzLlNvdXJjZUZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBpZCBvZiB0aGUgY29tcG9uZW50IHRoYXQgcmVzdWx0ZWQgaW4gdGhpcyBkaWFnbm9zdGljLlxuICAgKi9cbiAgdGVtcGxhdGVJZDogVGVtcGxhdGVJZDtcbn1cblxuLyoqXG4gKiBBIGBUZW1wbGF0ZURpYWdub3N0aWNgIHdpdGggYSBzcGVjaWZpYyBlcnJvciBjb2RlLlxuICovXG5leHBvcnQgdHlwZSBOZ1RlbXBsYXRlRGlhZ25vc3RpYzxUIGV4dGVuZHMgRXJyb3JDb2RlPiA9IFRlbXBsYXRlRGlhZ25vc3RpYyZ7X19uZ0NvZGU6IFR9O1xuXG4vKipcbiAqIE1ldGFkYXRhIHJlcXVpcmVkIGluIGFkZGl0aW9uIHRvIGEgY29tcG9uZW50IGNsYXNzIGluIG9yZGVyIHRvIGdlbmVyYXRlIGEgdHlwZSBjaGVjayBibG9jayAoVENCKVxuICogZm9yIHRoYXQgY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVDaGVja0Jsb2NrTWV0YWRhdGEge1xuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGNsYXNzIHdoaWNoIGdhdmUgcmlzZSB0byB0aGlzIFRDQi5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBtYXAgZXJyb3JzIGJhY2sgdG8gdGhlIGB0cy5DbGFzc0RlY2xhcmF0aW9uYCBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGlkOiBUZW1wbGF0ZUlkO1xuXG4gIC8qKlxuICAgKiBTZW1hbnRpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGVtcGxhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGJvdW5kVGFyZ2V0OiBCb3VuZFRhcmdldDxUeXBlQ2hlY2thYmxlRGlyZWN0aXZlTWV0YT47XG5cbiAgLypcbiAgICogUGlwZXMgdXNlZCBpbiB0aGUgdGVtcGxhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHBpcGVzOiBNYXA8c3RyaW5nLCBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbjx0cy5DbGFzc0RlY2xhcmF0aW9uPj4+O1xuXG4gIC8qKlxuICAgKiBTY2hlbWFzIHRoYXQgYXBwbHkgdG8gdGhpcyB0ZW1wbGF0ZS5cbiAgICovXG4gIHNjaGVtYXM6IFNjaGVtYU1ldGFkYXRhW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUN0b3JNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIHR5cGUgY29uc3RydWN0b3IgZnVuY3Rpb24uXG4gICAqL1xuICBmbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBnZW5lcmF0ZSBhIGJvZHkgZm9yIHRoZSBmdW5jdGlvbiBvciBub3QuXG4gICAqL1xuICBib2R5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnB1dCwgb3V0cHV0LCBhbmQgcXVlcnkgZmllbGQgbmFtZXMgaW4gdGhlIHR5cGUgd2hpY2ggc2hvdWxkIGJlIGluY2x1ZGVkIGFzIGNvbnN0cnVjdG9yIGlucHV0LlxuICAgKi9cbiAgZmllbGRzOiB7aW5wdXRzOiBzdHJpbmdbXTsgb3V0cHV0czogc3RyaW5nW107IHF1ZXJpZXM6IHN0cmluZ1tdO307XG5cbiAgLyoqXG4gICAqIGBTZXRgIG9mIGZpZWxkIG5hbWVzIHdoaWNoIGhhdmUgdHlwZSBjb2VyY2lvbiBlbmFibGVkLlxuICAgKi9cbiAgY29lcmNlZElucHV0RmllbGRzOiBTZXQ8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlQ2hlY2tpbmdDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0byBjaGVjayB0aGUgbGVmdC1oYW5kIHNpZGUgdHlwZSBvZiBiaW5kaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBpZiB0aGlzIGlzIGBmYWxzZWAgdGhlbiB0aGUgZXhwcmVzc2lvbiBgW2lucHV0XT1cImV4cHJcImAgd2lsbCBoYXZlIGBleHByYCB0eXBlLVxuICAgKiBjaGVja2VkLCBidXQgbm90IHRoZSBhc3NpZ25tZW50IG9mIHRoZSByZXN1bHRpbmcgdHlwZSB0byB0aGUgYGlucHV0YCBwcm9wZXJ0eSBvZiB3aGljaGV2ZXJcbiAgICogZGlyZWN0aXZlIG9yIGNvbXBvbmVudCBpcyByZWNlaXZpbmcgdGhlIGJpbmRpbmcuIElmIHNldCB0byBgdHJ1ZWAsIGJvdGggc2lkZXMgb2YgdGhlIGFzc2lnbm1lbnRcbiAgICogYXJlIGNoZWNrZWQuXG4gICAqXG4gICAqIFRoaXMgZmxhZyBvbmx5IGFmZmVjdHMgYmluZGluZ3MgdG8gY29tcG9uZW50cy9kaXJlY3RpdmVzLiBCaW5kaW5ncyB0byB0aGUgRE9NIGFyZSBjaGVja2VkIGlmXG4gICAqIGBjaGVja1R5cGVPZkRvbUJpbmRpbmdzYCBpcyBzZXQuXG4gICAqL1xuICBjaGVja1R5cGVPZklucHV0QmluZGluZ3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaG9ub3IgdGhlIGFjY2VzcyBtb2RpZmllcnMgb24gaW5wdXQgYmluZGluZ3MgZm9yIHRoZSBjb21wb25lbnQvZGlyZWN0aXZlLlxuICAgKlxuICAgKiBJZiBhIHRlbXBsYXRlIGJpbmRpbmcgYXR0ZW1wdHMgdG8gYXNzaWduIHRvIGFuIGlucHV0IHRoYXQgaXMgcHJpdmF0ZS9wcm90ZWN0ZWQvcmVhZG9ubHksXG4gICAqIHRoaXMgd2lsbCBwcm9kdWNlIGVycm9ycyB3aGVuIGVuYWJsZWQgYnV0IHdpbGwgbm90IHdoZW4gZGlzYWJsZWQuXG4gICAqL1xuICBob25vckFjY2Vzc01vZGlmaWVyc0ZvcklucHV0QmluZGluZ3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIHN0cmljdCBudWxsIHR5cGVzIGZvciBpbnB1dCBiaW5kaW5ncyBmb3IgZGlyZWN0aXZlcy5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBgdHJ1ZWAsIGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBjb21waWxlZCB3aXRoIFR5cGVTY3JpcHQncyBgc3RyaWN0TnVsbENoZWNrc2AgZW5hYmxlZFxuICAgKiB3aWxsIHByb2R1Y2UgdHlwZSBlcnJvcnMgZm9yIGJpbmRpbmdzIHdoaWNoIGNhbiBldmFsdWF0ZSB0byBgdW5kZWZpbmVkYCBvciBgbnVsbGAgd2hlcmUgdGhlXG4gICAqIGlucHV0cydzIHR5cGUgZG9lcyBub3QgaW5jbHVkZSBgdW5kZWZpbmVkYCBvciBgbnVsbGAgaW4gaXRzIHR5cGUuIElmIHNldCB0byBgZmFsc2VgLCBhbGxcbiAgICogYmluZGluZyBleHByZXNzaW9ucyBhcmUgd3JhcHBlZCBpbiBhIG5vbi1udWxsIGFzc2VydGlvbiBvcGVyYXRvciB0byBlZmZlY3RpdmVseSBkaXNhYmxlIHN0cmljdFxuICAgKiBudWxsIGNoZWNrcy4gVGhpcyBtYXkgYmUgcGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgZnJvbSBhIGxpYnJhcnkgdGhhdCBpcyBub3RcbiAgICogY29tcGlsZWQgd2l0aCBgc3RyaWN0TnVsbENoZWNrc2AgZW5hYmxlZC5cbiAgICpcbiAgICogSWYgYGNoZWNrVHlwZU9mSW5wdXRCaW5kaW5nc2AgaXMgc2V0IHRvIGBmYWxzZWAsIHRoaXMgZmxhZyBoYXMgbm8gZWZmZWN0LlxuICAgKi9cbiAgc3RyaWN0TnVsbElucHV0QmluZGluZ3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2hlY2sgdGV4dCBhdHRyaWJ1dGVzIHRoYXQgaGFwcGVuIHRvIGJlIGNvbnN1bWVkIGJ5IGEgZGlyZWN0aXZlIG9yIGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGluIGEgdGVtcGxhdGUgY29udGFpbmluZyBgPGlucHV0IG1hdElucHV0IGRpc2FibGVkPmAgdGhlIGBkaXNhYmxlZGAgYXR0cmlidXRlIGVuZHNcbiAgICogdXAgYmVpbmcgY29uc3VtZWQgYXMgYW4gaW5wdXQgd2l0aCB0eXBlIGBib29sZWFuYCBieSB0aGUgYG1hdElucHV0YCBkaXJlY3RpdmUuIEF0IHJ1bnRpbWUsIHRoZVxuICAgKiBpbnB1dCB3aWxsIGJlIHNldCB0byB0aGUgYXR0cmlidXRlJ3Mgc3RyaW5nIHZhbHVlLCB3aGljaCBpcyBhbiBlbXB0eSBzdHJpbmcgZm9yIGF0dHJpYnV0ZXNcbiAgICogd2l0aG91dCBhIHZhbHVlLCBzbyB3aXRoIHRoaXMgZmxhZyBzZXQgdG8gYHRydWVgLCBhbiBlcnJvciB3b3VsZCBiZSByZXBvcnRlZC4gSWYgc2V0IHRvXG4gICAqIGBmYWxzZWAsIHRleHQgYXR0cmlidXRlcyB3aWxsIG5ldmVyIHJlcG9ydCBhbiBlcnJvci5cbiAgICpcbiAgICogTm90ZSB0aGF0IGlmIGBjaGVja1R5cGVPZklucHV0QmluZGluZ3NgIGlzIHNldCB0byBgZmFsc2VgLCB0aGlzIGZsYWcgaGFzIG5vIGVmZmVjdC5cbiAgICovXG4gIGNoZWNrVHlwZU9mQXR0cmlidXRlczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjaGVjayB0aGUgbGVmdC1oYW5kIHNpZGUgdHlwZSBvZiBiaW5kaW5nIG9wZXJhdGlvbnMgdG8gRE9NIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEFzIGBjaGVja1R5cGVPZkJpbmRpbmdzYCwgYnV0IG9ubHkgYXBwbGllcyB0byBiaW5kaW5ncyB0byBET00gcHJvcGVydGllcy5cbiAgICpcbiAgICogVGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIHVzZSBvZiB0aGUgYERvbVNjaGVtYUNoZWNrZXJgIHRvIHZhbGlkYXRlIHRoZSB0ZW1wbGF0ZSBhZ2FpbnN0IHRoZSBET01cbiAgICogc2NoZW1hLiBSYXRoZXIsIHRoaXMgZmxhZyBpcyBhbiBleHBlcmltZW50YWwsIG5vdCB5ZXQgY29tcGxldGUgZmVhdHVyZSB3aGljaCB1c2VzIHRoZVxuICAgKiBsaWIuZG9tLmQudHMgRE9NIHR5cGluZ3MgaW4gVHlwZVNjcmlwdCB0byB2YWxpZGF0ZSB0aGF0IERPTSBiaW5kaW5ncyBhcmUgb2YgdGhlIGNvcnJlY3QgdHlwZVxuICAgKiBmb3IgYXNzaWduYWJpbGl0eSB0byB0aGUgdW5kZXJseWluZyBET00gZWxlbWVudCBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZEb21CaW5kaW5nczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmZlciB0aGUgdHlwZSBvZiB0aGUgYCRldmVudGAgdmFyaWFibGUgaW4gZXZlbnQgYmluZGluZ3MgZm9yIGRpcmVjdGl2ZSBvdXRwdXRzIG9yXG4gICAqIGFuaW1hdGlvbiBldmVudHMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBgJGV2ZW50YCB3aWxsIGJlIGluZmVycmVkIGJhc2VkIG9uIHRoZSBnZW5lcmljIHR5cGUgb2ZcbiAgICogYEV2ZW50RW1pdHRlcmAvYFN1YmplY3RgIG9mIHRoZSBvdXRwdXQuIElmIHNldCB0byBgZmFsc2VgLCB0aGUgYCRldmVudGAgdmFyaWFibGUgd2lsbCBiZSBvZlxuICAgKiB0eXBlIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZPdXRwdXRFdmVudHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5mZXIgdGhlIHR5cGUgb2YgdGhlIGAkZXZlbnRgIHZhcmlhYmxlIGluIGV2ZW50IGJpbmRpbmdzIGZvciBhbmltYXRpb25zLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlIHR5cGUgb2YgYCRldmVudGAgd2lsbCBiZSBgQW5pbWF0aW9uRXZlbnRgIGZyb20gYEBhbmd1bGFyL2FuaW1hdGlvbnNgLlxuICAgKiBJZiBzZXQgdG8gYGZhbHNlYCwgdGhlIGAkZXZlbnRgIHZhcmlhYmxlIHdpbGwgYmUgb2YgdHlwZSBgYW55YC5cbiAgICovXG4gIGNoZWNrVHlwZU9mQW5pbWF0aW9uRXZlbnRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluZmVyIHRoZSB0eXBlIG9mIHRoZSBgJGV2ZW50YCB2YXJpYWJsZSBpbiBldmVudCBiaW5kaW5ncyB0byBET00gZXZlbnRzLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlIHR5cGUgb2YgYCRldmVudGAgd2lsbCBiZSBpbmZlcnJlZCBiYXNlZCBvbiBUeXBlU2NyaXB0J3NcbiAgICogYEhUTUxFbGVtZW50RXZlbnRNYXBgLCB3aXRoIGEgZmFsbGJhY2sgdG8gdGhlIG5hdGl2ZSBgRXZlbnRgIHR5cGUuIElmIHNldCB0byBgZmFsc2VgLCB0aGVcbiAgICogYCRldmVudGAgdmFyaWFibGUgd2lsbCBiZSBvZiB0eXBlIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZEb21FdmVudHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5mZXIgdGhlIHR5cGUgb2YgbG9jYWwgcmVmZXJlbmNlcyB0byBET00gZWxlbWVudHMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBhIGAjcmVmYCB2YXJpYWJsZSBvbiBhIERPTSBub2RlIGluIHRoZSB0ZW1wbGF0ZSB3aWxsIGJlXG4gICAqIGRldGVybWluZWQgYnkgdGhlIHR5cGUgb2YgYGRvY3VtZW50LmNyZWF0ZUVsZW1lbnRgIGZvciB0aGUgZ2l2ZW4gRE9NIG5vZGUgdHlwZS4gSWYgc2V0IHRvXG4gICAqIGBmYWxzZWAsIHRoZSB0eXBlIG9mIGByZWZgIGZvciBET00gbm9kZXMgd2lsbCBiZSBgYW55YC5cbiAgICovXG4gIGNoZWNrVHlwZU9mRG9tUmVmZXJlbmNlczogYm9vbGVhbjtcblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluZmVyIHRoZSB0eXBlIG9mIGxvY2FsIHJlZmVyZW5jZXMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBhIGAjcmVmYCB2YXJpYWJsZSB0aGF0IHBvaW50cyB0byBhIGRpcmVjdGl2ZSBvciBgVGVtcGxhdGVSZWZgIGluXG4gICAqIHRoZSB0ZW1wbGF0ZSB3aWxsIGJlIGluZmVycmVkIGNvcnJlY3RseS4gSWYgc2V0IHRvIGBmYWxzZWAsIHRoZSB0eXBlIG9mIGByZWZgIGZvciB3aWxsIGJlXG4gICAqIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZOb25Eb21SZWZlcmVuY2VzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFkanVzdCB0aGUgb3V0cHV0IG9mIHRoZSBUQ0IgdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgYFRlbXBsYXRlVHlwZUNoZWNrZXJgLlxuICAgKlxuICAgKiBUaGUgc3RhdGVtZW50cyBnZW5lcmF0ZWQgaW4gdGhlIFRDQiBhcmUgb3B0aW1pemVkIGZvciBwZXJmb3JtYW5jZSBhbmQgcHJvZHVjaW5nIGRpYWdub3N0aWNzLlxuICAgKiBUaGVzZSBvcHRpbWl6YXRpb25zIGNhbiByZXN1bHQgaW4gZ2VuZXJhdGluZyBhIFRDQiB0aGF0IGRvZXMgbm90IGhhdmUgYWxsIHRoZSBpbmZvcm1hdGlvblxuICAgKiBuZWVkZWQgYnkgdGhlIGBUZW1wbGF0ZVR5cGVDaGVja2VyYCBmb3IgcmV0cmlldmluZyBgU3ltYm9sYHMuIEZvciBleGFtcGxlLCBhcyBhbiBvcHRpbWl6YXRpb24sXG4gICAqIHRoZSBUQ0Igd2lsbCBub3QgZ2VuZXJhdGUgdmFyaWFibGUgZGVjbGFyYXRpb24gc3RhdGVtZW50cyBmb3IgZGlyZWN0aXZlcyB0aGF0IGhhdmUgbm9cbiAgICogcmVmZXJlbmNlcywgaW5wdXRzLCBvciBvdXRwdXRzLiBIb3dldmVyLCB0aGUgYFRlbXBsYXRlVHlwZUNoZWNrZXJgIGFsd2F5cyBuZWVkcyB0aGVzZVxuICAgKiBzdGF0ZW1lbnRzIHRvIGJlIHByZXNlbnQgaW4gb3JkZXIgdG8gcHJvdmlkZSBgdHMuU3ltYm9sYHMgYW5kIGB0cy5UeXBlYHMgZm9yIHRoZSBkaXJlY3RpdmVzLlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBgZmFsc2VgLCBlbmFibGVzIFRDQiBvcHRpbWl6YXRpb25zIGZvciB0ZW1wbGF0ZSBkaWFnbm9zdGljcy5cbiAgICogV2hlbiBzZXQgdG8gYHRydWVgLCBlbnN1cmVzIGFsbCBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSBgVGVtcGxhdGVUeXBlQ2hlY2tlcmAgdG9cbiAgICogcmV0cmlldmUgc3ltYm9scyBmb3IgdGVtcGxhdGUgbm9kZXMgaXMgYXZhaWxhYmxlIGluIHRoZSBUQ0IuXG4gICAqL1xuICBlbmFibGVUZW1wbGF0ZVR5cGVDaGVja2VyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgdHlwZSBpbmZvcm1hdGlvbiBmcm9tIHBpcGVzIGluIHRoZSB0eXBlLWNoZWNraW5nIG9wZXJhdGlvbi5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBgdHJ1ZWAsIHRoZW4gdGhlIHBpcGUncyB0eXBlIHNpZ25hdHVyZSBmb3IgYHRyYW5zZm9ybSgpYCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgdGhlXG4gICAqIHVzYWdlIG9mIHRoZSBwaXBlLiBJZiB0aGlzIGlzIGBmYWxzZWAsIHRoZW4gdGhlIHJlc3VsdCBvZiBhcHBseWluZyBhIHBpcGUgd2lsbCBiZSBgYW55YCwgYW5kXG4gICAqIHRoZSB0eXBlcyBvZiB0aGUgcGlwZSdzIHZhbHVlIGFuZCBhcmd1bWVudHMgd2lsbCBub3QgYmUgbWF0Y2hlZCBhZ2FpbnN0IHRoZSBgdHJhbnNmb3JtKClgXG4gICAqIG1ldGhvZC5cbiAgICovXG4gIGNoZWNrVHlwZU9mUGlwZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gbmFycm93IHRoZSB0eXBlcyBvZiB0ZW1wbGF0ZSBjb250ZXh0cy5cbiAgICovXG4gIGFwcGx5VGVtcGxhdGVDb250ZXh0R3VhcmRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBhIHN0cmljdCB0eXBlIGZvciBudWxsLXNhZmUgbmF2aWdhdGlvbiBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGBmYWxzZWAsIHRoZW4gdGhlIHJldHVybiB0eXBlIG9mIGBhPy5iYCBvciBgYT8oKWAgd2lsbCBiZSBgYW55YC4gSWYgc2V0IHRvIGB0cnVlYCxcbiAgICogdGhlbiB0aGUgcmV0dXJuIHR5cGUgb2YgYGE/LmJgIGZvciBleGFtcGxlIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIHR5cGUgb2YgdGhlIHRlcm5hcnlcbiAgICogZXhwcmVzc2lvbiBgYSAhPSBudWxsID8gYS5iIDogYWAuXG4gICAqL1xuICBzdHJpY3RTYWZlTmF2aWdhdGlvblR5cGVzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRlc2NlbmQgaW50byB0ZW1wbGF0ZSBib2RpZXMgYW5kIGNoZWNrIGFueSBiaW5kaW5ncyB0aGVyZS5cbiAgICovXG4gIGNoZWNrVGVtcGxhdGVCb2RpZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWx3YXlzIGFwcGx5IERPTSBzY2hlbWEgY2hlY2tzIGluIHRlbXBsYXRlIGJvZGllcywgaW5kZXBlbmRlbnRseSBvZiB0aGVcbiAgICogYGNoZWNrVGVtcGxhdGVCb2RpZXNgIHNldHRpbmcuXG4gICAqL1xuICBhbHdheXNDaGVja1NjaGVtYUluVGVtcGxhdGVCb2RpZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2hlY2sgcmVzb2x2YWJsZSBxdWVyaWVzLlxuICAgKlxuICAgKiBUaGlzIGlzIGN1cnJlbnRseSBhbiB1bnN1cHBvcnRlZCBmZWF0dXJlLlxuICAgKi9cbiAgY2hlY2tRdWVyaWVzOiBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgYW55IGdlbmVyaWMgdHlwZXMgb2YgdGhlIGNvbnRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlbiBpZiB0aGUgY29udGV4dCBjb21wb25lbnQgaGFzIGdlbmVyaWMgdHlwZXMsIHRob3NlIHdpbGwgYmUgbWlycm9yZWQgaW5cbiAgICogdGhlIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgY29udGV4dC4gSWYgYGZhbHNlYCwgYW55IGdlbmVyaWMgdHlwZSBwYXJhbWV0ZXJzIG9mIHRoZSBjb250ZXh0XG4gICAqIGNvbXBvbmVudCB3aWxsIGJlIHNldCB0byBgYW55YCBkdXJpbmcgdHlwZS1jaGVja2luZy5cbiAgICovXG4gIHVzZUNvbnRleHRHZW5lcmljVHlwZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5mZXIgdHlwZXMgZm9yIG9iamVjdCBhbmQgYXJyYXkgbGl0ZXJhbHMgaW4gdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlbiB0aGUgdHlwZSBvZiBhbiBvYmplY3Qgb3IgYW4gYXJyYXkgbGl0ZXJhbCBpbiB0aGUgdGVtcGxhdGUgd2lsbCBiZSB0aGVcbiAgICogc2FtZSB0eXBlIHRoYXQgVHlwZVNjcmlwdCB3b3VsZCBpbmZlciBpZiB0aGUgbGl0ZXJhbCBhcHBlYXJlZCBpbiBjb2RlLiBJZiBgZmFsc2VgLCB0aGVuIHN1Y2hcbiAgICogbGl0ZXJhbHMgYXJlIGNhc3QgdG8gYGFueWAgd2hlbiBkZWNsYXJlZC5cbiAgICovXG4gIHN0cmljdExpdGVyYWxUeXBlczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgaW5saW5lIHR5cGUgY29uc3RydWN0b3JzLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgY3JlYXRlIGlubGluZSB0eXBlIGNvbnN0cnVjdG9ycyB3aGVuIHJlcXVpcmVkLiBGb3IgZXhhbXBsZSwgaWYgYSB0eXBlXG4gICAqIGNvbnN0cnVjdG9yJ3MgcGFyYW1ldGVycyBoYXMgcHJpdmF0ZSB0eXBlcywgaXQgY2Fubm90IGJlIGNyZWF0ZWQgbm9ybWFsbHksIHNvIHdlIGlubGluZSBpdCBpblxuICAgKiB0aGUgZGlyZWN0aXZlcyBkZWZpbml0aW9uIGZpbGUuXG4gICAqXG4gICAqIElmIGZhbHNlLCBkbyBub3QgY3JlYXRlIGlubGluZSB0eXBlIGNvbnN0cnVjdG9ycy4gRmFsbCBiYWNrIHRvIHVzaW5nIGBhbnlgIHR5cGUgZm9yXG4gICAqIGNvbnN0cnVjdG9ycyB0aGF0IG5vcm1hbGx5IHJlcXVpcmUgaW5saW5pbmcuXG4gICAqXG4gICAqIFRoaXMgb3B0aW9uIHJlcXVpcmVzIHRoZSBlbnZpcm9ubWVudCB0byBzdXBwb3J0IGlubGluaW5nLiBJZiB0aGUgZW52aXJvbm1lbnQgZG9lcyBub3Qgc3VwcG9ydFxuICAgKiBpbmxpbmluZywgdGhpcyBtdXN0IGJlIHNldCB0byBgZmFsc2VgLlxuICAgKi9cbiAgdXNlSW5saW5lVHlwZUNvbnN0cnVjdG9yczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gcHJvZHVjZSBkaWFnbm9zdGljIHN1Z2dlc3Rpb25zIGluIGNhc2VzIHdoZXJlIHRoZSBjb21waWxlciBjb3VsZCBoYXZlXG4gICAqIGluZmVycmVkIGEgYmV0dGVyIHR5cGUgZm9yIGEgY29uc3RydWN0LCBidXQgd2FzIHByZXZlbnRlZCBmcm9tIGRvaW5nIHNvIGJ5IHRoZSBjdXJyZW50IHR5cGVcbiAgICogY2hlY2tpbmcgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBjb21waWxlciBjb3VsZCBoYXZlIHVzZWQgYSB0ZW1wbGF0ZSBjb250ZXh0IGd1YXJkIHRvIGluZmVyIGEgYmV0dGVyIHR5cGVcbiAgICogZm9yIGEgc3RydWN0dXJhbCBkaXJlY3RpdmUncyBjb250ZXh0IGFuZCBgbGV0LWAgdmFyaWFibGVzLCBidXQgdGhlIHVzZXIgaXMgaW5cbiAgICogYGZ1bGxUZW1wbGF0ZVR5cGVDaGVja2AgbW9kZSBhbmQgc3VjaCBndWFyZHMgYXJlIHRoZXJlZm9yZSBkaXNhYmxlZC5cbiAgICpcbiAgICogVGhpcyBtb2RlIGlzIHVzZWZ1bCBmb3IgY2xpZW50cyBsaWtlIHRoZSBMYW5ndWFnZSBTZXJ2aWNlIHdoaWNoIHdhbnQgdG8gaW5mb3JtIHVzZXJzIG9mXG4gICAqIG9wcG9ydHVuaXRpZXMgdG8gaW1wcm92ZSB0aGVpciBvd24gZGV2ZWxvcGVyIGV4cGVyaWVuY2UuXG4gICAqL1xuICBzdWdnZXN0aW9uc0ZvclN1Ym9wdGltYWxUeXBlSW5mZXJlbmNlOiBib29sZWFuO1xufVxuXG5cbmV4cG9ydCB0eXBlIFRlbXBsYXRlU291cmNlTWFwcGluZyA9XG4gICAgRGlyZWN0VGVtcGxhdGVTb3VyY2VNYXBwaW5nfEluZGlyZWN0VGVtcGxhdGVTb3VyY2VNYXBwaW5nfEV4dGVybmFsVGVtcGxhdGVTb3VyY2VNYXBwaW5nO1xuXG4vKipcbiAqIEEgbWFwcGluZyB0byBhbiBpbmxpbmUgdGVtcGxhdGUgaW4gYSBUUyBmaWxlLlxuICpcbiAqIGBQYXJzZVNvdXJjZVNwYW5gcyBmb3IgdGhpcyB0ZW1wbGF0ZSBzaG91bGQgYmUgYWNjdXJhdGUgZm9yIGRpcmVjdCByZXBvcnRpbmcgaW4gYSBUUyBlcnJvclxuICogbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RUZW1wbGF0ZVNvdXJjZU1hcHBpbmcge1xuICB0eXBlOiAnZGlyZWN0JztcbiAgbm9kZTogdHMuU3RyaW5nTGl0ZXJhbHx0cy5Ob1N1YnN0aXR1dGlvblRlbXBsYXRlTGl0ZXJhbDtcbn1cblxuLyoqXG4gKiBBIG1hcHBpbmcgdG8gYSB0ZW1wbGF0ZSB3aGljaCBpcyBzdGlsbCBpbiBhIFRTIGZpbGUsIGJ1dCB3aGVyZSB0aGUgbm9kZSBwb3NpdGlvbnMgaW4gYW55XG4gKiBgUGFyc2VTb3VyY2VTcGFuYHMgYXJlIG5vdCBhY2N1cmF0ZSBmb3Igb25lIHJlYXNvbiBvciBhbm90aGVyLlxuICpcbiAqIFRoaXMgY2FuIG9jY3VyIGlmIHRoZSB0ZW1wbGF0ZSBleHByZXNzaW9uIHdhcyBpbnRlcnBvbGF0ZWQgaW4gYSB3YXkgd2hlcmUgdGhlIGNvbXBpbGVyIGNvdWxkIG5vdFxuICogY29uc3RydWN0IGEgY29udGlndW91cyBtYXBwaW5nIGZvciB0aGUgdGVtcGxhdGUgc3RyaW5nLiBUaGUgYG5vZGVgIHJlZmVycyB0byB0aGUgYHRlbXBsYXRlYFxuICogZXhwcmVzc2lvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmRpcmVjdFRlbXBsYXRlU291cmNlTWFwcGluZyB7XG4gIHR5cGU6ICdpbmRpcmVjdCc7XG4gIGNvbXBvbmVudENsYXNzOiBDbGFzc0RlY2xhcmF0aW9uO1xuICBub2RlOiB0cy5FeHByZXNzaW9uO1xuICB0ZW1wbGF0ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbWFwcGluZyB0byBhIHRlbXBsYXRlIGRlY2xhcmVkIGluIGFuIGV4dGVybmFsIEhUTUwgZmlsZSwgd2hlcmUgbm9kZSBwb3NpdGlvbnMgaW5cbiAqIGBQYXJzZVNvdXJjZVNwYW5gcyByZXByZXNlbnQgYWNjdXJhdGUgb2Zmc2V0cyBpbnRvIHRoZSBleHRlcm5hbCBmaWxlLlxuICpcbiAqIEluIHRoaXMgY2FzZSwgdGhlIGdpdmVuIGBub2RlYCByZWZlcnMgdG8gdGhlIGB0ZW1wbGF0ZVVybGAgZXhwcmVzc2lvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbFRlbXBsYXRlU291cmNlTWFwcGluZyB7XG4gIHR5cGU6ICdleHRlcm5hbCc7XG4gIGNvbXBvbmVudENsYXNzOiBDbGFzc0RlY2xhcmF0aW9uO1xuICBub2RlOiB0cy5FeHByZXNzaW9uO1xuICB0ZW1wbGF0ZTogc3RyaW5nO1xuICB0ZW1wbGF0ZVVybDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbWFwcGluZyBvZiBhIFRDQiB0ZW1wbGF0ZSBpZCB0byBhIHNwYW4gaW4gdGhlIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZUxvY2F0aW9uIHtcbiAgaWQ6IFRlbXBsYXRlSWQ7XG4gIHNwYW46IEFic29sdXRlU291cmNlU3Bhbjtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFsbCBhIG5vZGUncyB0ZW1wbGF0ZSBtYXBwaW5nIGluZm9ybWF0aW9uIHdlIGtub3cuIFVzZWZ1bCBmb3IgcHJvZHVjaW5nXG4gKiBkaWFnbm9zdGljcyBiYXNlZCBvbiBhIFRDQiBub2RlIG9yIGdlbmVyYWxseSBtYXBwaW5nIGZyb20gYSBUQ0Igbm9kZSBiYWNrIHRvIGEgdGVtcGxhdGUgbG9jYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbFRlbXBsYXRlTWFwcGluZyB7XG4gIHNvdXJjZUxvY2F0aW9uOiBTb3VyY2VMb2NhdGlvbjtcbiAgdGVtcGxhdGVTb3VyY2VNYXBwaW5nOiBUZW1wbGF0ZVNvdXJjZU1hcHBpbmc7XG4gIHNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cbiJdfQ==
@@ -11,7 +11,7 @@ import { AbsoluteFsPath } from '@angular/compiler-cli/src/ngtsc/file_system';
11
11
  import { TextAttribute } from '@angular/compiler/src/render3/r3_ast';
12
12
  import * as ts from 'typescript';
13
13
  import { ErrorCode } from '../../diagnostics';
14
- import { FullTemplateMapping, TypeCheckableDirectiveMeta } from './api';
14
+ import { FullTemplateMapping, NgTemplateDiagnostic, TypeCheckableDirectiveMeta } from './api';
15
15
  import { GlobalCompletion } from './completion';
16
16
  import { DirectiveInScope, PipeInScope } from './scope';
17
17
  import { ElementSymbol, ShimLocation, Symbol, TemplateSymbol } from './symbols';
@@ -151,7 +151,7 @@ export interface TemplateTypeChecker {
151
151
  start: number;
152
152
  end: number;
153
153
  sourceFile: ts.SourceFile;
154
- }[]): ts.Diagnostic;
154
+ }[]): NgTemplateDiagnostic<T>;
155
155
  }
156
156
  /**
157
157
  * Describes the scope of the caller's interest in template type-checking results.
@@ -41,4 +41,4 @@
41
41
  OptimizeFor[OptimizeFor["WholeProgram"] = 1] = "WholeProgram";
42
42
  })(OptimizeFor = exports.OptimizeFor || (exports.OptimizeFor = {}));
43
43
  });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL2FwaS9jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQThLSDs7T0FFRztJQUNILElBQVksV0FtQlg7SUFuQkQsV0FBWSxXQUFXO1FBQ3JCOzs7Ozs7V0FNRztRQUNILHlEQUFVLENBQUE7UUFFVjs7Ozs7OztXQU9HO1FBQ0gsNkRBQVksQ0FBQTtJQUNkLENBQUMsRUFuQlcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFtQnRCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QVNULCBMaXRlcmFsUHJpbWl0aXZlLCBNZXRob2RDYWxsLCBQYXJzZUVycm9yLCBQYXJzZVNvdXJjZVNwYW4sIFByb3BlcnR5UmVhZCwgU2FmZU1ldGhvZENhbGwsIFNhZmVQcm9wZXJ0eVJlYWQsIFRtcGxBc3RFbGVtZW50LCBUbXBsQXN0Tm9kZSwgVG1wbEFzdFRlbXBsYXRlfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7VGV4dEF0dHJpYnV0ZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtFcnJvckNvZGV9IGZyb20gJy4uLy4uL2RpYWdub3N0aWNzJztcblxuaW1wb3J0IHtGdWxsVGVtcGxhdGVNYXBwaW5nLCBUeXBlQ2hlY2thYmxlRGlyZWN0aXZlTWV0YX0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtHbG9iYWxDb21wbGV0aW9ufSBmcm9tICcuL2NvbXBsZXRpb24nO1xuaW1wb3J0IHtEaXJlY3RpdmVJblNjb3BlLCBQaXBlSW5TY29wZX0gZnJvbSAnLi9zY29wZSc7XG5pbXBvcnQge0RpcmVjdGl2ZVN5bWJvbCwgRWxlbWVudFN5bWJvbCwgU2hpbUxvY2F0aW9uLCBTeW1ib2wsIFRlbXBsYXRlU3ltYm9sfSBmcm9tICcuL3N5bWJvbHMnO1xuXG4vKipcbiAqIEludGVyZmFjZSB0byB0aGUgQW5ndWxhciBUZW1wbGF0ZSBUeXBlIENoZWNrZXIgdG8gZXh0cmFjdCBkaWFnbm9zdGljcyBhbmQgaW50ZWxsaWdlbmNlIGZyb20gdGhlXG4gKiBjb21waWxlcidzIHVuZGVyc3RhbmRpbmcgb2YgY29tcG9uZW50IHRlbXBsYXRlcy5cbiAqXG4gKiBUaGlzIGludGVyZmFjZSBpcyBhbmFsb2dvdXMgdG8gVHlwZVNjcmlwdCdzIG93biBgdHMuVHlwZUNoZWNrZXJgIEFQSS5cbiAqXG4gKiBJbiBnZW5lcmFsLCB0aGlzIGludGVyZmFjZSBzdXBwb3J0cyB0d28ga2luZHMgb2Ygb3BlcmF0aW9uczpcbiAqICAtIHVwZGF0aW5nIFR5cGUgQ2hlY2sgQmxvY2tzIChUQ0IpcyB0aGF0IGNhcHR1cmUgdGhlIHRlbXBsYXRlIGluIHRoZSBmb3JtIG9mIFR5cGVTY3JpcHQgY29kZVxuICogIC0gcXVlcnlpbmcgaW5mb3JtYXRpb24gYWJvdXQgYXZhaWxhYmxlIFRDQnMsIGluY2x1ZGluZyBkaWFnbm9zdGljc1xuICpcbiAqIE9uY2UgYSBUQ0IgaXMgYXZhaWxhYmxlLCBpbmZvcm1hdGlvbiBhYm91dCBpdCBjYW4gYmUgcXVlcmllZC4gSWYgbm8gVENCIGlzIGF2YWlsYWJsZSB0byBhbnN3ZXIgYVxuICogcXVlcnksIGRlcGVuZGluZyBvbiB0aGUgbWV0aG9kIGVpdGhlciBgbnVsbGAgd2lsbCBiZSByZXR1cm5lZCBvciBhbiBlcnJvciB3aWxsIGJlIHRocm93bi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVR5cGVDaGVja2VyIHtcbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSB0ZW1wbGF0ZSBpbiB1c2UgZm9yIHRoZSBnaXZlbiBjb21wb25lbnQuXG4gICAqL1xuICBnZXRUZW1wbGF0ZShjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiBUbXBsQXN0Tm9kZVtdfG51bGw7XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgYHRzLkRpYWdub3N0aWNgcyBjdXJyZW50bHkgYXZhaWxhYmxlIGZvciB0aGUgZ2l2ZW4gYHRzLlNvdXJjZUZpbGVgLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGZhaWwgKHRocm93KSBpZiB0aGVyZSBhcmUgY29tcG9uZW50cyB3aXRoaW4gdGhlIGB0cy5Tb3VyY2VGaWxlYCB0aGF0IGRvIG5vdFxuICAgKiBoYXZlIFRDQnMgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBHZW5lcmF0aW5nIGEgdGVtcGxhdGUgdHlwZS1jaGVja2luZyBwcm9ncmFtIGlzIGV4cGVuc2l2ZSwgYW5kIGluIHNvbWUgd29ya2Zsb3dzIChlLmcuIGNoZWNraW5nXG4gICAqIGFuIGVudGlyZSBwcm9ncmFtIGJlZm9yZSBlbWl0KSwgaXQgc2hvdWxkIGlkZWFsbHkgb25seSBiZSBkb25lIG9uY2UuIFRoZSBgb3B0aW1pemVGb3JgIGZsYWdcbiAgICogYWxsb3dzIHRoZSBjYWxsZXIgdG8gaGludCB0byBgZ2V0RGlhZ25vc3RpY3NGb3JGaWxlYCAod2hpY2ggaW50ZXJuYWxseSB3aWxsIGNyZWF0ZSBhIHRlbXBsYXRlXG4gICAqIHR5cGUtY2hlY2tpbmcgcHJvZ3JhbSBpZiBuZWVkZWQpIHdoZXRoZXIgdGhlIGNhbGxlciBpcyBpbnRlcmVzdGVkIGluIGp1c3QgdGhlIHJlc3VsdHMgb2YgdGhlXG4gICAqIHNpbmdsZSBmaWxlLCBvciB3aGV0aGVyIHRoZXkgcGxhbiB0byBxdWVyeSBhYm91dCBvdGhlciBmaWxlcyBpbiB0aGUgcHJvZ3JhbS4gQmFzZWQgb24gdGhpc1xuICAgKiBmbGFnLCBgZ2V0RGlhZ25vc3RpY3NGb3JGaWxlYCB3aWxsIGRldGVybWluZSBob3cgbXVjaCBvZiB0aGUgdXNlcidzIHByb2dyYW0gdG8gcHJlcGFyZSBmb3JcbiAgICogY2hlY2tpbmcgYXMgcGFydCBvZiB0aGUgdGVtcGxhdGUgdHlwZS1jaGVja2luZyBwcm9ncmFtIGl0IGNyZWF0ZXMuXG4gICAqL1xuICBnZXREaWFnbm9zdGljc0ZvckZpbGUoc2Y6IHRzLlNvdXJjZUZpbGUsIG9wdGltaXplRm9yOiBPcHRpbWl6ZUZvcik6IHRzLkRpYWdub3N0aWNbXTtcblxuICAvKipcbiAgICogR2l2ZW4gYSBgc2hpbWAgYW5kIHBvc2l0aW9uIHdpdGhpbiB0aGUgZmlsZSwgcmV0dXJucyBpbmZvcm1hdGlvbiBmb3IgbWFwcGluZyBiYWNrIHRvIGEgdGVtcGxhdGVcbiAgICogbG9jYXRpb24uXG4gICAqL1xuICBnZXRUZW1wbGF0ZU1hcHBpbmdBdFNoaW1Mb2NhdGlvbihzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbik6IEZ1bGxUZW1wbGF0ZU1hcHBpbmd8bnVsbDtcblxuICAvKipcbiAgICogR2V0IGFsbCBgdHMuRGlhZ25vc3RpY2BzIGN1cnJlbnRseSBhdmFpbGFibGUgdGhhdCBwZXJ0YWluIHRvIHRoZSBnaXZlbiBjb21wb25lbnQuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGFsd2F5cyBydW5zIGluIGBPcHRpbWl6ZUZvci5TaW5nbGVGaWxlYCBtb2RlLlxuICAgKi9cbiAgZ2V0RGlhZ25vc3RpY3NGb3JDb21wb25lbnQoY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogdHMuRGlhZ25vc3RpY1tdO1xuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHNoaW1zIGZvciB0aGUgd2hvbGUgcHJvZ3JhbSBhcmUgZ2VuZXJhdGVkLiBUaGlzIHR5cGUgb2Ygb3BlcmF0aW9uIHdvdWxkIGJlIHJlcXVpcmVkIGJ5XG4gICAqIG9wZXJhdGlvbnMgbGlrZSBcImZpbmQgcmVmZXJlbmNlc1wiIGFuZCBcInJlZmFjdG9yL3JlbmFtZVwiIGJlY2F1c2UgcmVmZXJlbmNlcyBtYXkgYXBwZWFyIGluIHR5cGVcbiAgICogY2hlY2sgYmxvY2tzIGdlbmVyYXRlZCBmcm9tIHRlbXBsYXRlcyBhbnl3aGVyZSBpbiB0aGUgcHJvZ3JhbS5cbiAgICovXG4gIGdlbmVyYXRlQWxsVHlwZUNoZWNrQmxvY2tzKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBnaXZlbiBmaWxlIGlzIGluIHRoZSByZWNvcmQgb2Yga25vd24gc2hpbXMgZ2VuZXJhdGVkIGJ5IHRoZSBjb21waWxlcixcbiAgICogYGZhbHNlYCBpZiB3ZSBjYW5ub3QgZmluZCB0aGUgZmlsZSBpbiB0aGUgc2hpbSByZWNvcmRzLlxuICAgKi9cbiAgaXNUcmFja2VkVHlwZUNoZWNrRmlsZShmaWxlUGF0aDogQWJzb2x1dGVGc1BhdGgpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgdG9wLWxldmVsIG5vZGUgcmVwcmVzZW50aW5nIHRoZSBUQ0IgZm9yIHRoZSBnaXZlbiBjb21wb25lbnQuXG4gICAqXG4gICAqIFRoaXMgY2FuIHJldHVybiBgbnVsbGAgaWYgdGhlcmUgaXMgbm8gVENCIGF2YWlsYWJsZSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgYWx3YXlzIHJ1bnMgaW4gYE9wdGltaXplRm9yLlNpbmdsZUZpbGVgIG1vZGUuXG4gICAqL1xuICBnZXRUeXBlQ2hlY2tCbG9jayhjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiB0cy5Ob2RlfG51bGw7XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGBTeW1ib2xgIGZvciB0aGUgbm9kZSBpbiBhIGNvbXBvbmVudCdzIHRlbXBsYXRlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjYW4gcmV0dXJuIGBudWxsYCBpZiBhIHZhbGlkIGBTeW1ib2xgIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGZvciB0aGUgbm9kZS5cbiAgICpcbiAgICogQHNlZSBTeW1ib2xcbiAgICovXG4gIGdldFN5bWJvbE9mTm9kZShub2RlOiBUbXBsQXN0RWxlbWVudCwgY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogRWxlbWVudFN5bWJvbHxudWxsO1xuICBnZXRTeW1ib2xPZk5vZGUobm9kZTogVG1wbEFzdFRlbXBsYXRlLCBjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiBUZW1wbGF0ZVN5bWJvbHxudWxsO1xuICBnZXRTeW1ib2xPZk5vZGUobm9kZTogQVNUfFRtcGxBc3ROb2RlLCBjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiBTeW1ib2x8bnVsbDtcblxuICAvKipcbiAgICogR2V0IFwiZ2xvYmFsXCIgYENvbXBsZXRpb25gcyBpbiB0aGUgZ2l2ZW4gY29udGV4dC5cbiAgICpcbiAgICogR2xvYmFsIGNvbXBsZXRpb25zIGFyZSBjb21wbGV0aW9ucyBpbiB0aGUgZ2xvYmFsIGNvbnRleHQsIGFzIG9wcG9zZWQgdG8gY29tcGxldGlvbnMgd2l0aGluIGFuXG4gICAqIGV4aXN0aW5nIGV4cHJlc3Npb24uIEZvciBleGFtcGxlLCBjb21wbGV0aW5nIGluc2lkZSBhIG5ldyBpbnRlcnBvbGF0aW9uIGV4cHJlc3Npb24gKGB7e3x9fWApIG9yXG4gICAqIGluc2lkZSBhIG5ldyBwcm9wZXJ0eSBiaW5kaW5nIGBbaW5wdXRdPVwifFwiIHNob3VsZCByZXRyaWV2ZSBnbG9iYWwgY29tcGxldGlvbnMsIHdoaWNoIHdpbGxcbiAgICogaW5jbHVkZSBjb21wbGV0aW9ucyBmcm9tIHRoZSB0ZW1wbGF0ZSdzIGNvbnRleHQgY29tcG9uZW50LCBhcyB3ZWxsIGFzIGFueSBsb2NhbCByZWZlcmVuY2VzIG9yXG4gICAqIHRlbXBsYXRlIHZhcmlhYmxlcyB3aGljaCBhcmUgaW4gc2NvcGUgZm9yIHRoYXQgZXhwcmVzc2lvbi5cbiAgICovXG4gIGdldEdsb2JhbENvbXBsZXRpb25zKFxuICAgICAgY29udGV4dDogVG1wbEFzdFRlbXBsYXRlfG51bGwsIGNvbXBvbmVudDogdHMuQ2xhc3NEZWNsYXJhdGlvbixcbiAgICAgIG5vZGU6IEFTVHxUbXBsQXN0Tm9kZSk6IEdsb2JhbENvbXBsZXRpb258bnVsbDtcblxuXG4gIC8qKlxuICAgKiBGb3IgdGhlIGdpdmVuIGV4cHJlc3Npb24gbm9kZSwgcmV0cmlldmUgYSBgU2hpbUxvY2F0aW9uYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm1cbiAgICogYXV0b2NvbXBsZXRpb24gYXQgdGhhdCBwb2ludCBpbiB0aGUgZXhwcmVzc2lvbiwgaWYgc3VjaCBhIGxvY2F0aW9uIGV4aXN0cy5cbiAgICovXG4gIGdldEV4cHJlc3Npb25Db21wbGV0aW9uTG9jYXRpb24oXG4gICAgICBleHByOiBQcm9wZXJ0eVJlYWR8U2FmZVByb3BlcnR5UmVhZHxNZXRob2RDYWxsfFNhZmVNZXRob2RDYWxsLFxuICAgICAgY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogU2hpbUxvY2F0aW9ufG51bGw7XG5cbiAgLyoqXG4gICAqIEZvciB0aGUgZ2l2ZW4gbm9kZSByZXByZXNlbnRzIGEgYExpdGVyYWxQcmltaXRpdmVgKHRoZSBgVGV4dEF0dHJpYnV0ZWAgcmVwcmVzZW50cyBhIHN0cmluZ1xuICAgKiBsaXRlcmFsKSwgcmV0cmlldmUgYSBgU2hpbUxvY2F0aW9uYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gYXV0b2NvbXBsZXRpb24gYXQgdGhhdCBwb2ludCBpblxuICAgKiB0aGUgbm9kZSwgaWYgc3VjaCBhIGxvY2F0aW9uIGV4aXN0cy5cbiAgICovXG4gIGdldExpdGVyYWxDb21wbGV0aW9uTG9jYXRpb24oXG4gICAgICBzdHJOb2RlOiBMaXRlcmFsUHJpbWl0aXZlfFRleHRBdHRyaWJ1dGUsIGNvbXBvbmVudDogdHMuQ2xhc3NEZWNsYXJhdGlvbik6IFNoaW1Mb2NhdGlvbnxudWxsO1xuXG4gIC8qKlxuICAgKiBHZXQgYmFzaWMgbWV0YWRhdGEgb24gdGhlIGRpcmVjdGl2ZXMgd2hpY2ggYXJlIGluIHNjb3BlIGZvciB0aGUgZ2l2ZW4gY29tcG9uZW50LlxuICAgKi9cbiAgZ2V0RGlyZWN0aXZlc0luU2NvcGUoY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogRGlyZWN0aXZlSW5TY29wZVtdfG51bGw7XG5cbiAgLyoqXG4gICAqIEdldCBiYXNpYyBtZXRhZGF0YSBvbiB0aGUgcGlwZXMgd2hpY2ggYXJlIGluIHNjb3BlIGZvciB0aGUgZ2l2ZW4gY29tcG9uZW50LlxuICAgKi9cbiAgZ2V0UGlwZXNJblNjb3BlKGNvbXBvbmVudDogdHMuQ2xhc3NEZWNsYXJhdGlvbik6IFBpcGVJblNjb3BlW118bnVsbDtcblxuICAvKipcbiAgICogUmV0cmlldmUgYSBgTWFwYCBvZiBwb3RlbnRpYWwgdGVtcGxhdGUgZWxlbWVudCB0YWdzLCB0byBlaXRoZXIgdGhlIGBEaXJlY3RpdmVJblNjb3BlYCB0aGF0XG4gICAqIGRlY2xhcmVzIHRoZW0gKGlmIHRoZSB0YWcgaXMgZnJvbSBhIGRpcmVjdGl2ZS9jb21wb25lbnQpLCBvciBgbnVsbGAgaWYgdGhlIHRhZyBvcmlnaW5hdGVzIGZyb21cbiAgICogdGhlIERPTSBzY2hlbWEuXG4gICAqL1xuICBnZXRQb3RlbnRpYWxFbGVtZW50VGFncyhjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiBNYXA8c3RyaW5nLCBEaXJlY3RpdmVJblNjb3BlfG51bGw+O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbnkgcG90ZW50aWFsIERPTSBiaW5kaW5ncyBmb3IgdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAqXG4gICAqIFRoaXMgcmV0dXJucyBhbiBhcnJheSBvZiBvYmplY3RzIHdoaWNoIGxpc3QgYm90aCB0aGUgYXR0cmlidXRlIGFuZCBwcm9wZXJ0eSBuYW1lcyBvZiBlYWNoXG4gICAqIGJpbmRpbmcsIHdoaWNoIGFyZSB1c3VhbGx5IGlkZW50aWNhbCBidXQgY2FuIHZhcnkgaWYgdGhlIEhUTUwgYXR0cmlidXRlIG5hbWUgaXMgZm9yIGV4YW1wbGUgYVxuICAgKiByZXNlcnZlZCBrZXl3b3JkIGluIEpTLCBsaWtlIHRoZSBgZm9yYCBhdHRyaWJ1dGUgd2hpY2ggY29ycmVzcG9uZHMgdG8gdGhlIGBodG1sRm9yYCBwcm9wZXJ0eS5cbiAgICovXG4gIGdldFBvdGVudGlhbERvbUJpbmRpbmdzKHRhZ05hbWU6IHN0cmluZyk6IHthdHRyaWJ1dGU6IHN0cmluZywgcHJvcGVydHk6IHN0cmluZ31bXTtcblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIHR5cGUgY2hlY2tpbmcgZW5naW5lJ3MgbWV0YWRhdGEgZm9yIHRoZSBnaXZlbiBkaXJlY3RpdmUgY2xhc3MsIGlmIGF2YWlsYWJsZS5cbiAgICovXG4gIGdldERpcmVjdGl2ZU1ldGFkYXRhKGRpcjogdHMuQ2xhc3NEZWNsYXJhdGlvbik6IFR5cGVDaGVja2FibGVEaXJlY3RpdmVNZXRhfG51bGw7XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBgVGVtcGxhdGVUeXBlQ2hlY2tlcmAncyBzdGF0ZSBmb3IgdGhlIGdpdmVuIGNsYXNzLCBzbyB0aGF0IGl0IHdpbGwgYmUgcmVjb21wdXRlZCBvblxuICAgKiB0aGUgbmV4dCByZXF1ZXN0LlxuICAgKi9cbiAgaW52YWxpZGF0ZUNsYXNzKGNsYXp6OiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogdm9pZDtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIGB0cy5EaWFnbm9zdGljYCBmb3IgYSBnaXZlbiBgUGFyc2VTb3VyY2VTcGFuYCB3aXRoaW4gYSB0ZW1wbGF0ZS5cbiAgICovXG4gIG1ha2VUZW1wbGF0ZURpYWdub3N0aWM8VCBleHRlbmRzIEVycm9yQ29kZT4oXG4gICAgICBjbGF6ejogdHMuQ2xhc3NEZWNsYXJhdGlvbiwgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuLCBjYXRlZ29yeTogdHMuRGlhZ25vc3RpY0NhdGVnb3J5LFxuICAgICAgZXJyb3JDb2RlOiBULCBtZXNzYWdlOiBzdHJpbmcsIHJlbGF0ZWRJbmZvcm1hdGlvbj86IHtcbiAgICAgICAgdGV4dDogc3RyaW5nLFxuICAgICAgICBzdGFydDogbnVtYmVyLFxuICAgICAgICBlbmQ6IG51bWJlcixcbiAgICAgICAgc291cmNlRmlsZTogdHMuU291cmNlRmlsZSxcbiAgICAgIH1bXSk6IHRzLkRpYWdub3N0aWM7XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIHRoZSBzY29wZSBvZiB0aGUgY2FsbGVyJ3MgaW50ZXJlc3QgaW4gdGVtcGxhdGUgdHlwZS1jaGVja2luZyByZXN1bHRzLlxuICovXG5leHBvcnQgZW51bSBPcHRpbWl6ZUZvciB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBhIGNvbnN1bWVyIG9mIGEgYFRlbXBsYXRlVHlwZUNoZWNrZXJgIGlzIG9ubHkgaW50ZXJlc3RlZCBpbiByZXN1bHRzIGZvciBhIGdpdmVuXG4gICAqIGZpbGUsIGFuZCB3YW50cyB0aGVtIGFzIGZhc3QgYXMgcG9zc2libGUuXG4gICAqXG4gICAqIENhbGxpbmcgYFRlbXBsYXRlVHlwZUNoZWNrZXJgIG1ldGhvZHMgc3VjY2Vzc2l2ZWx5IGZvciBtdWx0aXBsZSBmaWxlcyB3aGlsZSBzcGVjaWZ5aW5nXG4gICAqIGBPcHRpbWl6ZUZvci5TaW5nbGVGaWxlYCBjYW4gcmVzdWx0IGluIHNpZ25pZmljYW50IHVubmVjZXNzYXJ5IG92ZXJoZWFkIG92ZXJhbGwuXG4gICAqL1xuICBTaW5nbGVGaWxlLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBhIGNvbnN1bWVyIG9mIGEgYFRlbXBsYXRlVHlwZUNoZWNrZXJgIGludGVuZHMgdG8gcXVlcnkgZm9yIHJlc3VsdHMgcGVydGFpbmluZyB0b1xuICAgKiB0aGUgZW50aXJlIHVzZXIgcHJvZ3JhbSwgYW5kIHNvIHRoZSB0eXBlLWNoZWNrZXIgc2hvdWxkIGludGVybmFsbHkgb3B0aW1pemUgZm9yIHRoaXMgY2FzZS5cbiAgICpcbiAgICogSW5pdGlhbCBjYWxscyB0byByZXRyaWV2ZSB0eXBlLWNoZWNraW5nIGluZm9ybWF0aW9uIG1heSB0YWtlIGxvbmdlciwgYnV0IHJlcGVhdGVkIGNhbGxzIHRvXG4gICAqIGdhdGhlciBpbmZvcm1hdGlvbiBmb3IgdGhlIHdob2xlIHVzZXIgcHJvZ3JhbSB3aWxsIGJlIHNpZ25pZmljYW50bHkgZmFzdGVyIHdpdGggdGhpcyBtb2RlIG9mXG4gICAqIG9wdGltaXphdGlvbi5cbiAgICovXG4gIFdob2xlUHJvZ3JhbSxcbn1cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL2FwaS9jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQThLSDs7T0FFRztJQUNILElBQVksV0FtQlg7SUFuQkQsV0FBWSxXQUFXO1FBQ3JCOzs7Ozs7V0FNRztRQUNILHlEQUFVLENBQUE7UUFFVjs7Ozs7OztXQU9HO1FBQ0gsNkRBQVksQ0FBQTtJQUNkLENBQUMsRUFuQlcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFtQnRCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QVNULCBMaXRlcmFsUHJpbWl0aXZlLCBNZXRob2RDYWxsLCBQYXJzZUVycm9yLCBQYXJzZVNvdXJjZVNwYW4sIFByb3BlcnR5UmVhZCwgU2FmZU1ldGhvZENhbGwsIFNhZmVQcm9wZXJ0eVJlYWQsIFRtcGxBc3RFbGVtZW50LCBUbXBsQXN0Tm9kZSwgVG1wbEFzdFRlbXBsYXRlfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7VGV4dEF0dHJpYnV0ZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtFcnJvckNvZGV9IGZyb20gJy4uLy4uL2RpYWdub3N0aWNzJztcblxuaW1wb3J0IHtGdWxsVGVtcGxhdGVNYXBwaW5nLCBOZ1RlbXBsYXRlRGlhZ25vc3RpYywgVHlwZUNoZWNrYWJsZURpcmVjdGl2ZU1ldGF9IGZyb20gJy4vYXBpJztcbmltcG9ydCB7R2xvYmFsQ29tcGxldGlvbn0gZnJvbSAnLi9jb21wbGV0aW9uJztcbmltcG9ydCB7RGlyZWN0aXZlSW5TY29wZSwgUGlwZUluU2NvcGV9IGZyb20gJy4vc2NvcGUnO1xuaW1wb3J0IHtEaXJlY3RpdmVTeW1ib2wsIEVsZW1lbnRTeW1ib2wsIFNoaW1Mb2NhdGlvbiwgU3ltYm9sLCBUZW1wbGF0ZVN5bWJvbH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgdG8gdGhlIEFuZ3VsYXIgVGVtcGxhdGUgVHlwZSBDaGVja2VyIHRvIGV4dHJhY3QgZGlhZ25vc3RpY3MgYW5kIGludGVsbGlnZW5jZSBmcm9tIHRoZVxuICogY29tcGlsZXIncyB1bmRlcnN0YW5kaW5nIG9mIGNvbXBvbmVudCB0ZW1wbGF0ZXMuXG4gKlxuICogVGhpcyBpbnRlcmZhY2UgaXMgYW5hbG9nb3VzIHRvIFR5cGVTY3JpcHQncyBvd24gYHRzLlR5cGVDaGVja2VyYCBBUEkuXG4gKlxuICogSW4gZ2VuZXJhbCwgdGhpcyBpbnRlcmZhY2Ugc3VwcG9ydHMgdHdvIGtpbmRzIG9mIG9wZXJhdGlvbnM6XG4gKiAgLSB1cGRhdGluZyBUeXBlIENoZWNrIEJsb2NrcyAoVENCKXMgdGhhdCBjYXB0dXJlIHRoZSB0ZW1wbGF0ZSBpbiB0aGUgZm9ybSBvZiBUeXBlU2NyaXB0IGNvZGVcbiAqICAtIHF1ZXJ5aW5nIGluZm9ybWF0aW9uIGFib3V0IGF2YWlsYWJsZSBUQ0JzLCBpbmNsdWRpbmcgZGlhZ25vc3RpY3NcbiAqXG4gKiBPbmNlIGEgVENCIGlzIGF2YWlsYWJsZSwgaW5mb3JtYXRpb24gYWJvdXQgaXQgY2FuIGJlIHF1ZXJpZWQuIElmIG5vIFRDQiBpcyBhdmFpbGFibGUgdG8gYW5zd2VyIGFcbiAqIHF1ZXJ5LCBkZXBlbmRpbmcgb24gdGhlIG1ldGhvZCBlaXRoZXIgYG51bGxgIHdpbGwgYmUgcmV0dXJuZWQgb3IgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVUeXBlQ2hlY2tlciB7XG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgdGVtcGxhdGUgaW4gdXNlIGZvciB0aGUgZ2l2ZW4gY29tcG9uZW50LlxuICAgKi9cbiAgZ2V0VGVtcGxhdGUoY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogVG1wbEFzdE5vZGVbXXxudWxsO1xuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGB0cy5EaWFnbm9zdGljYHMgY3VycmVudGx5IGF2YWlsYWJsZSBmb3IgdGhlIGdpdmVuIGB0cy5Tb3VyY2VGaWxlYC5cbiAgICpcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBmYWlsICh0aHJvdykgaWYgdGhlcmUgYXJlIGNvbXBvbmVudHMgd2l0aGluIHRoZSBgdHMuU291cmNlRmlsZWAgdGhhdCBkbyBub3RcbiAgICogaGF2ZSBUQ0JzIGF2YWlsYWJsZS5cbiAgICpcbiAgICogR2VuZXJhdGluZyBhIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgcHJvZ3JhbSBpcyBleHBlbnNpdmUsIGFuZCBpbiBzb21lIHdvcmtmbG93cyAoZS5nLiBjaGVja2luZ1xuICAgKiBhbiBlbnRpcmUgcHJvZ3JhbSBiZWZvcmUgZW1pdCksIGl0IHNob3VsZCBpZGVhbGx5IG9ubHkgYmUgZG9uZSBvbmNlLiBUaGUgYG9wdGltaXplRm9yYCBmbGFnXG4gICAqIGFsbG93cyB0aGUgY2FsbGVyIHRvIGhpbnQgdG8gYGdldERpYWdub3N0aWNzRm9yRmlsZWAgKHdoaWNoIGludGVybmFsbHkgd2lsbCBjcmVhdGUgYSB0ZW1wbGF0ZVxuICAgKiB0eXBlLWNoZWNraW5nIHByb2dyYW0gaWYgbmVlZGVkKSB3aGV0aGVyIHRoZSBjYWxsZXIgaXMgaW50ZXJlc3RlZCBpbiBqdXN0IHRoZSByZXN1bHRzIG9mIHRoZVxuICAgKiBzaW5nbGUgZmlsZSwgb3Igd2hldGhlciB0aGV5IHBsYW4gdG8gcXVlcnkgYWJvdXQgb3RoZXIgZmlsZXMgaW4gdGhlIHByb2dyYW0uIEJhc2VkIG9uIHRoaXNcbiAgICogZmxhZywgYGdldERpYWdub3N0aWNzRm9yRmlsZWAgd2lsbCBkZXRlcm1pbmUgaG93IG11Y2ggb2YgdGhlIHVzZXIncyBwcm9ncmFtIHRvIHByZXBhcmUgZm9yXG4gICAqIGNoZWNraW5nIGFzIHBhcnQgb2YgdGhlIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgcHJvZ3JhbSBpdCBjcmVhdGVzLlxuICAgKi9cbiAgZ2V0RGlhZ25vc3RpY3NGb3JGaWxlKHNmOiB0cy5Tb3VyY2VGaWxlLCBvcHRpbWl6ZUZvcjogT3B0aW1pemVGb3IpOiB0cy5EaWFnbm9zdGljW107XG5cbiAgLyoqXG4gICAqIEdpdmVuIGEgYHNoaW1gIGFuZCBwb3NpdGlvbiB3aXRoaW4gdGhlIGZpbGUsIHJldHVybnMgaW5mb3JtYXRpb24gZm9yIG1hcHBpbmcgYmFjayB0byBhIHRlbXBsYXRlXG4gICAqIGxvY2F0aW9uLlxuICAgKi9cbiAgZ2V0VGVtcGxhdGVNYXBwaW5nQXRTaGltTG9jYXRpb24oc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb24pOiBGdWxsVGVtcGxhdGVNYXBwaW5nfG51bGw7XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgYHRzLkRpYWdub3N0aWNgcyBjdXJyZW50bHkgYXZhaWxhYmxlIHRoYXQgcGVydGFpbiB0byB0aGUgZ2l2ZW4gY29tcG9uZW50LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBhbHdheXMgcnVucyBpbiBgT3B0aW1pemVGb3IuU2luZ2xlRmlsZWAgbW9kZS5cbiAgICovXG4gIGdldERpYWdub3N0aWNzRm9yQ29tcG9uZW50KGNvbXBvbmVudDogdHMuQ2xhc3NEZWNsYXJhdGlvbik6IHRzLkRpYWdub3N0aWNbXTtcblxuICAvKipcbiAgICogRW5zdXJlcyBzaGltcyBmb3IgdGhlIHdob2xlIHByb2dyYW0gYXJlIGdlbmVyYXRlZC4gVGhpcyB0eXBlIG9mIG9wZXJhdGlvbiB3b3VsZCBiZSByZXF1aXJlZCBieVxuICAgKiBvcGVyYXRpb25zIGxpa2UgXCJmaW5kIHJlZmVyZW5jZXNcIiBhbmQgXCJyZWZhY3Rvci9yZW5hbWVcIiBiZWNhdXNlIHJlZmVyZW5jZXMgbWF5IGFwcGVhciBpbiB0eXBlXG4gICAqIGNoZWNrIGJsb2NrcyBnZW5lcmF0ZWQgZnJvbSB0ZW1wbGF0ZXMgYW55d2hlcmUgaW4gdGhlIHByb2dyYW0uXG4gICAqL1xuICBnZW5lcmF0ZUFsbFR5cGVDaGVja0Jsb2NrcygpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZ2l2ZW4gZmlsZSBpcyBpbiB0aGUgcmVjb3JkIG9mIGtub3duIHNoaW1zIGdlbmVyYXRlZCBieSB0aGUgY29tcGlsZXIsXG4gICAqIGBmYWxzZWAgaWYgd2UgY2Fubm90IGZpbmQgdGhlIGZpbGUgaW4gdGhlIHNoaW0gcmVjb3Jkcy5cbiAgICovXG4gIGlzVHJhY2tlZFR5cGVDaGVja0ZpbGUoZmlsZVBhdGg6IEFic29sdXRlRnNQYXRoKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIHRvcC1sZXZlbCBub2RlIHJlcHJlc2VudGluZyB0aGUgVENCIGZvciB0aGUgZ2l2ZW4gY29tcG9uZW50LlxuICAgKlxuICAgKiBUaGlzIGNhbiByZXR1cm4gYG51bGxgIGlmIHRoZXJlIGlzIG5vIFRDQiBhdmFpbGFibGUgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGFsd2F5cyBydW5zIGluIGBPcHRpbWl6ZUZvci5TaW5nbGVGaWxlYCBtb2RlLlxuICAgKi9cbiAgZ2V0VHlwZUNoZWNrQmxvY2soY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogdHMuTm9kZXxudWxsO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBgU3ltYm9sYCBmb3IgdGhlIG5vZGUgaW4gYSBjb21wb25lbnQncyB0ZW1wbGF0ZS5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgY2FuIHJldHVybiBgbnVsbGAgaWYgYSB2YWxpZCBgU3ltYm9sYCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBmb3IgdGhlIG5vZGUuXG4gICAqXG4gICAqIEBzZWUgU3ltYm9sXG4gICAqL1xuICBnZXRTeW1ib2xPZk5vZGUobm9kZTogVG1wbEFzdEVsZW1lbnQsIGNvbXBvbmVudDogdHMuQ2xhc3NEZWNsYXJhdGlvbik6IEVsZW1lbnRTeW1ib2x8bnVsbDtcbiAgZ2V0U3ltYm9sT2ZOb2RlKG5vZGU6IFRtcGxBc3RUZW1wbGF0ZSwgY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogVGVtcGxhdGVTeW1ib2x8bnVsbDtcbiAgZ2V0U3ltYm9sT2ZOb2RlKG5vZGU6IEFTVHxUbXBsQXN0Tm9kZSwgY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogU3ltYm9sfG51bGw7XG5cbiAgLyoqXG4gICAqIEdldCBcImdsb2JhbFwiIGBDb21wbGV0aW9uYHMgaW4gdGhlIGdpdmVuIGNvbnRleHQuXG4gICAqXG4gICAqIEdsb2JhbCBjb21wbGV0aW9ucyBhcmUgY29tcGxldGlvbnMgaW4gdGhlIGdsb2JhbCBjb250ZXh0LCBhcyBvcHBvc2VkIHRvIGNvbXBsZXRpb25zIHdpdGhpbiBhblxuICAgKiBleGlzdGluZyBleHByZXNzaW9uLiBGb3IgZXhhbXBsZSwgY29tcGxldGluZyBpbnNpZGUgYSBuZXcgaW50ZXJwb2xhdGlvbiBleHByZXNzaW9uIChge3t8fX1gKSBvclxuICAgKiBpbnNpZGUgYSBuZXcgcHJvcGVydHkgYmluZGluZyBgW2lucHV0XT1cInxcIiBzaG91bGQgcmV0cmlldmUgZ2xvYmFsIGNvbXBsZXRpb25zLCB3aGljaCB3aWxsXG4gICAqIGluY2x1ZGUgY29tcGxldGlvbnMgZnJvbSB0aGUgdGVtcGxhdGUncyBjb250ZXh0IGNvbXBvbmVudCwgYXMgd2VsbCBhcyBhbnkgbG9jYWwgcmVmZXJlbmNlcyBvclxuICAgKiB0ZW1wbGF0ZSB2YXJpYWJsZXMgd2hpY2ggYXJlIGluIHNjb3BlIGZvciB0aGF0IGV4cHJlc3Npb24uXG4gICAqL1xuICBnZXRHbG9iYWxDb21wbGV0aW9ucyhcbiAgICAgIGNvbnRleHQ6IFRtcGxBc3RUZW1wbGF0ZXxudWxsLCBjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24sXG4gICAgICBub2RlOiBBU1R8VG1wbEFzdE5vZGUpOiBHbG9iYWxDb21wbGV0aW9ufG51bGw7XG5cblxuICAvKipcbiAgICogRm9yIHRoZSBnaXZlbiBleHByZXNzaW9uIG5vZGUsIHJldHJpZXZlIGEgYFNoaW1Mb2NhdGlvbmAgdGhhdCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtXG4gICAqIGF1dG9jb21wbGV0aW9uIGF0IHRoYXQgcG9pbnQgaW4gdGhlIGV4cHJlc3Npb24sIGlmIHN1Y2ggYSBsb2NhdGlvbiBleGlzdHMuXG4gICAqL1xuICBnZXRFeHByZXNzaW9uQ29tcGxldGlvbkxvY2F0aW9uKFxuICAgICAgZXhwcjogUHJvcGVydHlSZWFkfFNhZmVQcm9wZXJ0eVJlYWR8TWV0aG9kQ2FsbHxTYWZlTWV0aG9kQ2FsbCxcbiAgICAgIGNvbXBvbmVudDogdHMuQ2xhc3NEZWNsYXJhdGlvbik6IFNoaW1Mb2NhdGlvbnxudWxsO1xuXG4gIC8qKlxuICAgKiBGb3IgdGhlIGdpdmVuIG5vZGUgcmVwcmVzZW50cyBhIGBMaXRlcmFsUHJpbWl0aXZlYCh0aGUgYFRleHRBdHRyaWJ1dGVgIHJlcHJlc2VudHMgYSBzdHJpbmdcbiAgICogbGl0ZXJhbCksIHJldHJpZXZlIGEgYFNoaW1Mb2NhdGlvbmAgdGhhdCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIGF1dG9jb21wbGV0aW9uIGF0IHRoYXQgcG9pbnQgaW5cbiAgICogdGhlIG5vZGUsIGlmIHN1Y2ggYSBsb2NhdGlvbiBleGlzdHMuXG4gICAqL1xuICBnZXRMaXRlcmFsQ29tcGxldGlvbkxvY2F0aW9uKFxuICAgICAgc3RyTm9kZTogTGl0ZXJhbFByaW1pdGl2ZXxUZXh0QXR0cmlidXRlLCBjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiBTaGltTG9jYXRpb258bnVsbDtcblxuICAvKipcbiAgICogR2V0IGJhc2ljIG1ldGFkYXRhIG9uIHRoZSBkaXJlY3RpdmVzIHdoaWNoIGFyZSBpbiBzY29wZSBmb3IgdGhlIGdpdmVuIGNvbXBvbmVudC5cbiAgICovXG4gIGdldERpcmVjdGl2ZXNJblNjb3BlKGNvbXBvbmVudDogdHMuQ2xhc3NEZWNsYXJhdGlvbik6IERpcmVjdGl2ZUluU2NvcGVbXXxudWxsO1xuXG4gIC8qKlxuICAgKiBHZXQgYmFzaWMgbWV0YWRhdGEgb24gdGhlIHBpcGVzIHdoaWNoIGFyZSBpbiBzY29wZSBmb3IgdGhlIGdpdmVuIGNvbXBvbmVudC5cbiAgICovXG4gIGdldFBpcGVzSW5TY29wZShjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiBQaXBlSW5TY29wZVtdfG51bGw7XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGEgYE1hcGAgb2YgcG90ZW50aWFsIHRlbXBsYXRlIGVsZW1lbnQgdGFncywgdG8gZWl0aGVyIHRoZSBgRGlyZWN0aXZlSW5TY29wZWAgdGhhdFxuICAgKiBkZWNsYXJlcyB0aGVtIChpZiB0aGUgdGFnIGlzIGZyb20gYSBkaXJlY3RpdmUvY29tcG9uZW50KSwgb3IgYG51bGxgIGlmIHRoZSB0YWcgb3JpZ2luYXRlcyBmcm9tXG4gICAqIHRoZSBET00gc2NoZW1hLlxuICAgKi9cbiAgZ2V0UG90ZW50aWFsRWxlbWVudFRhZ3MoY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogTWFwPHN0cmluZywgRGlyZWN0aXZlSW5TY29wZXxudWxsPjtcblxuICAvKipcbiAgICogUmV0cmlldmUgYW55IHBvdGVudGlhbCBET00gYmluZGluZ3MgZm9yIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgKlxuICAgKiBUaGlzIHJldHVybnMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aGljaCBsaXN0IGJvdGggdGhlIGF0dHJpYnV0ZSBhbmQgcHJvcGVydHkgbmFtZXMgb2YgZWFjaFxuICAgKiBiaW5kaW5nLCB3aGljaCBhcmUgdXN1YWxseSBpZGVudGljYWwgYnV0IGNhbiB2YXJ5IGlmIHRoZSBIVE1MIGF0dHJpYnV0ZSBuYW1lIGlzIGZvciBleGFtcGxlIGFcbiAgICogcmVzZXJ2ZWQga2V5d29yZCBpbiBKUywgbGlrZSB0aGUgYGZvcmAgYXR0cmlidXRlIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHRoZSBgaHRtbEZvcmAgcHJvcGVydHkuXG4gICAqL1xuICBnZXRQb3RlbnRpYWxEb21CaW5kaW5ncyh0YWdOYW1lOiBzdHJpbmcpOiB7YXR0cmlidXRlOiBzdHJpbmcsIHByb3BlcnR5OiBzdHJpbmd9W107XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSB0eXBlIGNoZWNraW5nIGVuZ2luZSdzIG1ldGFkYXRhIGZvciB0aGUgZ2l2ZW4gZGlyZWN0aXZlIGNsYXNzLCBpZiBhdmFpbGFibGUuXG4gICAqL1xuICBnZXREaXJlY3RpdmVNZXRhZGF0YShkaXI6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiBUeXBlQ2hlY2thYmxlRGlyZWN0aXZlTWV0YXxudWxsO1xuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgYFRlbXBsYXRlVHlwZUNoZWNrZXJgJ3Mgc3RhdGUgZm9yIHRoZSBnaXZlbiBjbGFzcywgc28gdGhhdCBpdCB3aWxsIGJlIHJlY29tcHV0ZWQgb25cbiAgICogdGhlIG5leHQgcmVxdWVzdC5cbiAgICovXG4gIGludmFsaWRhdGVDbGFzcyhjbGF6ejogdHMuQ2xhc3NEZWNsYXJhdGlvbik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBgdHMuRGlhZ25vc3RpY2AgZm9yIGEgZ2l2ZW4gYFBhcnNlU291cmNlU3BhbmAgd2l0aGluIGEgdGVtcGxhdGUuXG4gICAqL1xuICBtYWtlVGVtcGxhdGVEaWFnbm9zdGljPFQgZXh0ZW5kcyBFcnJvckNvZGU+KFxuICAgICAgY2xheno6IHRzLkNsYXNzRGVjbGFyYXRpb24sIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3BhbiwgY2F0ZWdvcnk6IHRzLkRpYWdub3N0aWNDYXRlZ29yeSxcbiAgICAgIGVycm9yQ29kZTogVCwgbWVzc2FnZTogc3RyaW5nLCByZWxhdGVkSW5mb3JtYXRpb24/OiB7XG4gICAgICAgIHRleHQ6IHN0cmluZyxcbiAgICAgICAgc3RhcnQ6IG51bWJlcixcbiAgICAgICAgZW5kOiBudW1iZXIsXG4gICAgICAgIHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUsXG4gICAgICB9W10pOiBOZ1RlbXBsYXRlRGlhZ25vc3RpYzxUPjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIHNjb3BlIG9mIHRoZSBjYWxsZXIncyBpbnRlcmVzdCBpbiB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIHJlc3VsdHMuXG4gKi9cbmV4cG9ydCBlbnVtIE9wdGltaXplRm9yIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IGEgY29uc3VtZXIgb2YgYSBgVGVtcGxhdGVUeXBlQ2hlY2tlcmAgaXMgb25seSBpbnRlcmVzdGVkIGluIHJlc3VsdHMgZm9yIGEgZ2l2ZW5cbiAgICogZmlsZSwgYW5kIHdhbnRzIHRoZW0gYXMgZmFzdCBhcyBwb3NzaWJsZS5cbiAgICpcbiAgICogQ2FsbGluZyBgVGVtcGxhdGVUeXBlQ2hlY2tlcmAgbWV0aG9kcyBzdWNjZXNzaXZlbHkgZm9yIG11bHRpcGxlIGZpbGVzIHdoaWxlIHNwZWNpZnlpbmdcbiAgICogYE9wdGltaXplRm9yLlNpbmdsZUZpbGVgIGNhbiByZXN1bHQgaW4gc2lnbmlmaWNhbnQgdW5uZWNlc3Nhcnkgb3ZlcmhlYWQgb3ZlcmFsbC5cbiAgICovXG4gIFNpbmdsZUZpbGUsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IGEgY29uc3VtZXIgb2YgYSBgVGVtcGxhdGVUeXBlQ2hlY2tlcmAgaW50ZW5kcyB0byBxdWVyeSBmb3IgcmVzdWx0cyBwZXJ0YWluaW5nIHRvXG4gICAqIHRoZSBlbnRpcmUgdXNlciBwcm9ncmFtLCBhbmQgc28gdGhlIHR5cGUtY2hlY2tlciBzaG91bGQgaW50ZXJuYWxseSBvcHRpbWl6ZSBmb3IgdGhpcyBjYXNlLlxuICAgKlxuICAgKiBJbml0aWFsIGNhbGxzIHRvIHJldHJpZXZlIHR5cGUtY2hlY2tpbmcgaW5mb3JtYXRpb24gbWF5IHRha2UgbG9uZ2VyLCBidXQgcmVwZWF0ZWQgY2FsbHMgdG9cbiAgICogZ2F0aGVyIGluZm9ybWF0aW9uIGZvciB0aGUgd2hvbGUgdXNlciBwcm9ncmFtIHdpbGwgYmUgc2lnbmlmaWNhbnRseSBmYXN0ZXIgd2l0aCB0aGlzIG1vZGUgb2ZcbiAgICogb3B0aW1pemF0aW9uLlxuICAgKi9cbiAgV2hvbGVQcm9ncmFtLFxufVxuIl19
@@ -8,21 +8,7 @@
8
8
  /// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic" />
9
9
  import { ParseSourceSpan } from '@angular/compiler';
10
10
  import * as ts from 'typescript';
11
- import { TemplateId, TemplateSourceMapping } from '../../api';
12
- /**
13
- * A `ts.Diagnostic` with additional information about the diagnostic related to template
14
- * type-checking.
15
- */
16
- export interface TemplateDiagnostic extends ts.Diagnostic {
17
- /**
18
- * The component with the template that resulted in this diagnostic.
19
- */
20
- componentFile: ts.SourceFile;
21
- /**
22
- * The template id of the component that resulted in this diagnostic.
23
- */
24
- templateId: TemplateId;
25
- }
11
+ import { TemplateDiagnostic, TemplateId, TemplateSourceMapping } from '../../api';
26
12
  /**
27
13
  * Constructs a `ts.Diagnostic` for a given `ParseSourceSpan` within a template.
28
14
  */
@@ -138,4 +138,4 @@
138
138
  }
139
139
  exports.isTemplateDiagnostic = isTemplateDiagnostic;
140
140
  });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL2RpYWdub3N0aWNzL3NyYy9kaWFnbm9zdGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFHSCwrQkFBaUM7SUFvQmpDOztPQUVHO0lBQ0gsU0FBZ0Isc0JBQXNCLENBQ2xDLFVBQXNCLEVBQUUsT0FBOEIsRUFBRSxJQUFxQixFQUM3RSxRQUErQixFQUFFLElBQVksRUFBRSxXQUE2QyxFQUM1RixlQUtHOztRQUNMLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxrQkFBa0IsR0FBZ0QsU0FBUyxDQUFDO1lBQ2hGLElBQUksZUFBZSxLQUFLLFNBQVMsRUFBRTtnQkFDakMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDOztvQkFDeEIsS0FBNkIsSUFBQSxvQkFBQSxpQkFBQSxlQUFlLENBQUEsZ0RBQUEsNkVBQUU7d0JBQXpDLElBQU0sY0FBYyw0QkFBQTt3QkFDdkIsa0JBQWtCLENBQUMsSUFBSSxDQUFDOzRCQUN0QixRQUFRLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU87NEJBQ3ZDLElBQUksRUFBRSxDQUFDOzRCQUNQLElBQUksRUFBRSxjQUFjLENBQUMsVUFBVTs0QkFDL0IsS0FBSyxFQUFFLGNBQWMsQ0FBQyxLQUFLOzRCQUMzQixNQUFNLEVBQUUsY0FBYyxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsS0FBSzs0QkFDakQsV0FBVyxFQUFFLGNBQWMsQ0FBQyxJQUFJO3lCQUNqQyxDQUFDLENBQUM7cUJBQ0o7Ozs7Ozs7OzthQUNGO1lBQ0Qsd0ZBQXdGO1lBQ3hGLCtGQUErRjtZQUMvRiw4Q0FBOEM7WUFDOUMsT0FBTztnQkFDTCxNQUFNLEVBQUUsT0FBTztn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eEIsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtnQkFDM0MsdUZBQXVGO2dCQUN2RixrQkFBa0Isb0JBQUE7YUFDbkIsQ0FBQztTQUNIO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFvQyxPQUEwQixDQUFDLElBQU0sQ0FBQyxDQUFDO1NBQ3hGO0lBQ0gsQ0FBQztJQWpHRCx3REFpR0M7SUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxVQUF5QjtRQUM1RCxPQUFPLFVBQVUsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQzdDLEVBQUUsQ0FBQyxZQUFZLENBQUUsVUFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBSEQsb0RBR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtQYXJzZVNvdXJjZVNwYW59IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0V4dGVybmFsVGVtcGxhdGVTb3VyY2VNYXBwaW5nLCBUZW1wbGF0ZUlkLCBUZW1wbGF0ZVNvdXJjZU1hcHBpbmd9IGZyb20gJy4uLy4uL2FwaSc7XG5cbi8qKlxuICogQSBgdHMuRGlhZ25vc3RpY2Agd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkaWFnbm9zdGljIHJlbGF0ZWQgdG8gdGVtcGxhdGVcbiAqIHR5cGUtY2hlY2tpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVEaWFnbm9zdGljIGV4dGVuZHMgdHMuRGlhZ25vc3RpYyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHdpdGggdGhlIHRlbXBsYXRlIHRoYXQgcmVzdWx0ZWQgaW4gdGhpcyBkaWFnbm9zdGljLlxuICAgKi9cbiAgY29tcG9uZW50RmlsZTogdHMuU291cmNlRmlsZTtcblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIGlkIG9mIHRoZSBjb21wb25lbnQgdGhhdCByZXN1bHRlZCBpbiB0aGlzIGRpYWdub3N0aWMuXG4gICAqL1xuICB0ZW1wbGF0ZUlkOiBUZW1wbGF0ZUlkO1xufVxuXG4vKipcbiAqIENvbnN0cnVjdHMgYSBgdHMuRGlhZ25vc3RpY2AgZm9yIGEgZ2l2ZW4gYFBhcnNlU291cmNlU3BhbmAgd2l0aGluIGEgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlVGVtcGxhdGVEaWFnbm9zdGljKFxuICAgIHRlbXBsYXRlSWQ6IFRlbXBsYXRlSWQsIG1hcHBpbmc6IFRlbXBsYXRlU291cmNlTWFwcGluZywgc3BhbjogUGFyc2VTb3VyY2VTcGFuLFxuICAgIGNhdGVnb3J5OiB0cy5EaWFnbm9zdGljQ2F0ZWdvcnksIGNvZGU6IG51bWJlciwgbWVzc2FnZVRleHQ6IHN0cmluZ3x0cy5EaWFnbm9zdGljTWVzc2FnZUNoYWluLFxuICAgIHJlbGF0ZWRNZXNzYWdlcz86IHtcbiAgICAgIHRleHQ6IHN0cmluZyxcbiAgICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgICBlbmQ6IG51bWJlcixcbiAgICAgIHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUsXG4gICAgfVtdKTogVGVtcGxhdGVEaWFnbm9zdGljIHtcbiAgaWYgKG1hcHBpbmcudHlwZSA9PT0gJ2RpcmVjdCcpIHtcbiAgICBsZXQgcmVsYXRlZEluZm9ybWF0aW9uOiB0cy5EaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uW118dW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChyZWxhdGVkTWVzc2FnZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVsYXRlZEluZm9ybWF0aW9uID0gW107XG4gICAgICBmb3IgKGNvbnN0IHJlbGF0ZWRNZXNzYWdlIG9mIHJlbGF0ZWRNZXNzYWdlcykge1xuICAgICAgICByZWxhdGVkSW5mb3JtYXRpb24ucHVzaCh7XG4gICAgICAgICAgY2F0ZWdvcnk6IHRzLkRpYWdub3N0aWNDYXRlZ29yeS5NZXNzYWdlLFxuICAgICAgICAgIGNvZGU6IDAsXG4gICAgICAgICAgZmlsZTogcmVsYXRlZE1lc3NhZ2Uuc291cmNlRmlsZSxcbiAgICAgICAgICBzdGFydDogcmVsYXRlZE1lc3NhZ2Uuc3RhcnQsXG4gICAgICAgICAgbGVuZ3RoOiByZWxhdGVkTWVzc2FnZS5lbmQgLSByZWxhdGVkTWVzc2FnZS5zdGFydCxcbiAgICAgICAgICBtZXNzYWdlVGV4dDogcmVsYXRlZE1lc3NhZ2UudGV4dCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEZvciBkaXJlY3QgbWFwcGluZ3MsIHRoZSBlcnJvciBpcyBzaG93biBpbmxpbmUgYXMgbmd0c2Mgd2FzIGFibGUgdG8gcGlucG9pbnQgYSBzdHJpbmdcbiAgICAvLyBjb25zdGFudCB3aXRoaW4gdGhlIGBAQ29tcG9uZW50YCBkZWNvcmF0b3IgZm9yIHRoZSB0ZW1wbGF0ZS4gVGhpcyBhbGxvd3MgdXMgdG8gbWFwIHRoZSBlcnJvclxuICAgIC8vIGRpcmVjdGx5IGludG8gdGhlIGJ5dGVzIG9mIHRoZSBzb3VyY2UgZmlsZS5cbiAgICByZXR1cm4ge1xuICAgICAgc291cmNlOiAnbmd0c2MnLFxuICAgICAgY29kZSxcbiAgICAgIGNhdGVnb3J5LFxuICAgICAgbWVzc2FnZVRleHQsXG4gICAgICBmaWxlOiBtYXBwaW5nLm5vZGUuZ2V0U291cmNlRmlsZSgpLFxuICAgICAgY29tcG9uZW50RmlsZTogbWFwcGluZy5ub2RlLmdldFNvdXJjZUZpbGUoKSxcbiAgICAgIHRlbXBsYXRlSWQsXG4gICAgICBzdGFydDogc3Bhbi5zdGFydC5vZmZzZXQsXG4gICAgICBsZW5ndGg6IHNwYW4uZW5kLm9mZnNldCAtIHNwYW4uc3RhcnQub2Zmc2V0LFxuICAgICAgcmVsYXRlZEluZm9ybWF0aW9uLFxuICAgIH07XG4gIH0gZWxzZSBpZiAobWFwcGluZy50eXBlID09PSAnaW5kaXJlY3QnIHx8IG1hcHBpbmcudHlwZSA9PT0gJ2V4dGVybmFsJykge1xuICAgIC8vIEZvciBpbmRpcmVjdCBtYXBwaW5ncyAodGVtcGxhdGUgd2FzIGRlY2xhcmVkIGlubGluZSwgYnV0IG5ndHNjIGNvdWxkbid0IG1hcCBpdCBkaXJlY3RseVxuICAgIC8vIHRvIGEgc3RyaW5nIGNvbnN0YW50IGluIHRoZSBkZWNvcmF0b3IpLCB0aGUgY29tcG9uZW50J3MgZmlsZSBuYW1lIGlzIGdpdmVuIHdpdGggYSBzdWZmaXhcbiAgICAvLyBpbmRpY2F0aW5nIGl0J3Mgbm90IHRoZSBUUyBmaWxlIGJlaW5nIGRpc3BsYXllZCwgYnV0IGEgdGVtcGxhdGUuXG4gICAgLy8gRm9yIGV4dGVybmFsIHRlbW9wbGF0ZXMsIHRoZSBIVE1MIGZpbGVuYW1lIGlzIHVzZWQuXG4gICAgY29uc3QgY29tcG9uZW50U2YgPSBtYXBwaW5nLmNvbXBvbmVudENsYXNzLmdldFNvdXJjZUZpbGUoKTtcbiAgICBjb25zdCBjb21wb25lbnROYW1lID0gbWFwcGluZy5jb21wb25lbnRDbGFzcy5uYW1lLnRleHQ7XG4gICAgLy8gVE9ETyhhbHhodWIpOiByZW1vdmUgY2FzdCB3aGVuIFRTIGluIGczIHN1cHBvcnRzIHRoaXMgbmFycm93aW5nLlxuICAgIGNvbnN0IGZpbGVOYW1lID0gbWFwcGluZy50eXBlID09PSAnaW5kaXJlY3QnID9cbiAgICAgICAgYCR7Y29tcG9uZW50U2YuZmlsZU5hbWV9ICgke2NvbXBvbmVudE5hbWV9IHRlbXBsYXRlKWAgOlxuICAgICAgICAobWFwcGluZyBhcyBFeHRlcm5hbFRlbXBsYXRlU291cmNlTWFwcGluZykudGVtcGxhdGVVcmw7XG4gICAgLy8gVE9ETyhhbHhodWIpOiBpbnZlc3RpZ2F0ZSBjcmVhdGluZyBhIGZha2UgYHRzLlNvdXJjZUZpbGVgIGhlcmUgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgVFNcbiAgICAvLyBwYXJzZXIgYWdhaW5zdCB0aGUgdGVtcGxhdGUgKEhUTUwgaXMganVzdCByZWFsbHkgc3ludGFjdGljYWxseSBpbnZhbGlkIFR5cGVTY3JpcHQgY29kZSA7KS5cbiAgICAvLyBBbHNvIGludmVzdGlnYXRlIGNhY2hpbmcgdGhlIGZpbGUgdG8gYXZvaWQgcnVubmluZyB0aGUgcGFyc2VyIG11bHRpcGxlIHRpbWVzLlxuICAgIGNvbnN0IHNmID0gdHMuY3JlYXRlU291cmNlRmlsZShcbiAgICAgICAgZmlsZU5hbWUsIG1hcHBpbmcudGVtcGxhdGUsIHRzLlNjcmlwdFRhcmdldC5MYXRlc3QsIGZhbHNlLCB0cy5TY3JpcHRLaW5kLkpTWCk7XG5cbiAgICBsZXQgcmVsYXRlZEluZm9ybWF0aW9uOiB0cy5EaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uW10gPSBbXTtcbiAgICBpZiAocmVsYXRlZE1lc3NhZ2VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgcmVsYXRlZE1lc3NhZ2Ugb2YgcmVsYXRlZE1lc3NhZ2VzKSB7XG4gICAgICAgIHJlbGF0ZWRJbmZvcm1hdGlvbi5wdXNoKHtcbiAgICAgICAgICBjYXRlZ29yeTogdHMuRGlhZ25vc3RpY0NhdGVnb3J5Lk1lc3NhZ2UsXG4gICAgICAgICAgY29kZTogMCxcbiAgICAgICAgICBmaWxlOiByZWxhdGVkTWVzc2FnZS5zb3VyY2VGaWxlLFxuICAgICAgICAgIHN0YXJ0OiByZWxhdGVkTWVzc2FnZS5zdGFydCxcbiAgICAgICAgICBsZW5ndGg6IHJlbGF0ZWRNZXNzYWdlLmVuZCAtIHJlbGF0ZWRNZXNzYWdlLnN0YXJ0LFxuICAgICAgICAgIG1lc3NhZ2VUZXh0OiByZWxhdGVkTWVzc2FnZS50ZXh0LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZWxhdGVkSW5mb3JtYXRpb24ucHVzaCh7XG4gICAgICBjYXRlZ29yeTogdHMuRGlhZ25vc3RpY0NhdGVnb3J5Lk1lc3NhZ2UsXG4gICAgICBjb2RlOiAwLFxuICAgICAgZmlsZTogY29tcG9uZW50U2YsXG4gICAgICAvLyBtYXBwaW5nLm5vZGUgcmVwcmVzZW50cyBlaXRoZXIgdGhlICd0ZW1wbGF0ZScgb3IgJ3RlbXBsYXRlVXJsJyBleHByZXNzaW9uLiBnZXRTdGFydCgpXG4gICAgICAvLyBhbmQgZ2V0RW5kKCkgYXJlIHVzZWQgYmVjYXVzZSB0aGV5IGRvbid0IGluY2x1ZGUgc3Vycm91bmRpbmcgd2hpdGVzcGFjZS5cbiAgICAgIHN0YXJ0OiBtYXBwaW5nLm5vZGUuZ2V0U3RhcnQoKSxcbiAgICAgIGxlbmd0aDogbWFwcGluZy5ub2RlLmdldEVuZCgpIC0gbWFwcGluZy5ub2RlLmdldFN0YXJ0KCksXG4gICAgICBtZXNzYWdlVGV4dDogYEVycm9yIG9jY3VycyBpbiB0aGUgdGVtcGxhdGUgb2YgY29tcG9uZW50ICR7Y29tcG9uZW50TmFtZX0uYCxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6ICduZ3RzYycsXG4gICAgICBjYXRlZ29yeSxcbiAgICAgIGNvZGUsXG4gICAgICBtZXNzYWdlVGV4dCxcbiAgICAgIGZpbGU6IHNmLFxuICAgICAgY29tcG9uZW50RmlsZTogY29tcG9uZW50U2YsXG4gICAgICB0ZW1wbGF0ZUlkLFxuICAgICAgc3RhcnQ6IHNwYW4uc3RhcnQub2Zmc2V0LFxuICAgICAgbGVuZ3RoOiBzcGFuLmVuZC5vZmZzZXQgLSBzcGFuLnN0YXJ0Lm9mZnNldCxcbiAgICAgIC8vIFNob3cgYSBzZWNvbmRhcnkgbWVzc2FnZSBpbmRpY2F0aW5nIHRoZSBjb21wb25lbnQgd2hvc2UgdGVtcGxhdGUgY29udGFpbnMgdGhlIGVycm9yLlxuICAgICAgcmVsYXRlZEluZm9ybWF0aW9uLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHNvdXJjZSBtYXBwaW5nIHR5cGU6ICR7KG1hcHBpbmcgYXMge3R5cGU6IHN0cmluZ30pLnR5cGV9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVEaWFnbm9zdGljKGRpYWdub3N0aWM6IHRzLkRpYWdub3N0aWMpOiBkaWFnbm9zdGljIGlzIFRlbXBsYXRlRGlhZ25vc3RpYyB7XG4gIHJldHVybiBkaWFnbm9zdGljLmhhc093blByb3BlcnR5KCdjb21wb25lbnRGaWxlJykgJiZcbiAgICAgIHRzLmlzU291cmNlRmlsZSgoZGlhZ25vc3RpYyBhcyBhbnkpLmNvbXBvbmVudEZpbGUpO1xufVxuIl19
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL2RpYWdub3N0aWNzL3NyYy9kaWFnbm9zdGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFHSCwrQkFBaUM7SUFJakM7O09BRUc7SUFDSCxTQUFnQixzQkFBc0IsQ0FDbEMsVUFBc0IsRUFBRSxPQUE4QixFQUFFLElBQXFCLEVBQzdFLFFBQStCLEVBQUUsSUFBWSxFQUFFLFdBQTZDLEVBQzVGLGVBS0c7O1FBQ0wsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM3QixJQUFJLGtCQUFrQixHQUFnRCxTQUFTLENBQUM7WUFDaEYsSUFBSSxlQUFlLEtBQUssU0FBUyxFQUFFO2dCQUNqQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7O29CQUN4QixLQUE2QixJQUFBLG9CQUFBLGlCQUFBLGVBQWUsQ0FBQSxnREFBQSw2RUFBRTt3QkFBekMsSUFBTSxjQUFjLDRCQUFBO3dCQUN2QixrQkFBa0IsQ0FBQyxJQUFJLENBQUM7NEJBQ3RCLFFBQVEsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTzs0QkFDdkMsSUFBSSxFQUFFLENBQUM7NEJBQ1AsSUFBSSxFQUFFLGNBQWMsQ0FBQyxVQUFVOzRCQUMvQixLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUs7NEJBQzNCLE1BQU0sRUFBRSxjQUFjLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxLQUFLOzRCQUNqRCxXQUFXLEVBQUUsY0FBYyxDQUFDLElBQUk7eUJBQ2pDLENBQUMsQ0FBQztxQkFDSjs7Ozs7Ozs7O2FBQ0Y7WUFDRCx3RkFBd0Y7WUFDeEYsK0ZBQStGO1lBQy9GLDhDQUE4QztZQUM5QyxPQUFPO2dCQUNMLE1BQU0sRUFBRSxPQUFPO2dC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QixNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUMzQyx1RkFBdUY7Z0JBQ3ZGLGtCQUFrQixvQkFBQTthQUNuQixDQUFDO1NBQ0g7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQW9DLE9BQTBCLENBQUMsSUFBTSxDQUFDLENBQUM7U0FDeEY7SUFDSCxDQUFDO0lBakdELHdEQWlHQztJQUVELFNBQWdCLG9CQUFvQixDQUFDLFVBQXlCO1FBQzVELE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7WUFDN0MsRUFBRSxDQUFDLFlBQVksQ0FBRSxVQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFIRCxvREFHQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1BhcnNlU291cmNlU3Bhbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7RXh0ZXJuYWxUZW1wbGF0ZVNvdXJjZU1hcHBpbmcsIFRlbXBsYXRlRGlhZ25vc3RpYywgVGVtcGxhdGVJZCwgVGVtcGxhdGVTb3VyY2VNYXBwaW5nfSBmcm9tICcuLi8uLi9hcGknO1xuXG4vKipcbiAqIENvbnN0cnVjdHMgYSBgdHMuRGlhZ25vc3RpY2AgZm9yIGEgZ2l2ZW4gYFBhcnNlU291cmNlU3BhbmAgd2l0aGluIGEgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlVGVtcGxhdGVEaWFnbm9zdGljKFxuICAgIHRlbXBsYXRlSWQ6IFRlbXBsYXRlSWQsIG1hcHBpbmc6IFRlbXBsYXRlU291cmNlTWFwcGluZywgc3BhbjogUGFyc2VTb3VyY2VTcGFuLFxuICAgIGNhdGVnb3J5OiB0cy5EaWFnbm9zdGljQ2F0ZWdvcnksIGNvZGU6IG51bWJlciwgbWVzc2FnZVRleHQ6IHN0cmluZ3x0cy5EaWFnbm9zdGljTWVzc2FnZUNoYWluLFxuICAgIHJlbGF0ZWRNZXNzYWdlcz86IHtcbiAgICAgIHRleHQ6IHN0cmluZyxcbiAgICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgICBlbmQ6IG51bWJlcixcbiAgICAgIHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUsXG4gICAgfVtdKTogVGVtcGxhdGVEaWFnbm9zdGljIHtcbiAgaWYgKG1hcHBpbmcudHlwZSA9PT0gJ2RpcmVjdCcpIHtcbiAgICBsZXQgcmVsYXRlZEluZm9ybWF0aW9uOiB0cy5EaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uW118dW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChyZWxhdGVkTWVzc2FnZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVsYXRlZEluZm9ybWF0aW9uID0gW107XG4gICAgICBmb3IgKGNvbnN0IHJlbGF0ZWRNZXNzYWdlIG9mIHJlbGF0ZWRNZXNzYWdlcykge1xuICAgICAgICByZWxhdGVkSW5mb3JtYXRpb24ucHVzaCh7XG4gICAgICAgICAgY2F0ZWdvcnk6IHRzLkRpYWdub3N0aWNDYXRlZ29yeS5NZXNzYWdlLFxuICAgICAgICAgIGNvZGU6IDAsXG4gICAgICAgICAgZmlsZTogcmVsYXRlZE1lc3NhZ2Uuc291cmNlRmlsZSxcbiAgICAgICAgICBzdGFydDogcmVsYXRlZE1lc3NhZ2Uuc3RhcnQsXG4gICAgICAgICAgbGVuZ3RoOiByZWxhdGVkTWVzc2FnZS5lbmQgLSByZWxhdGVkTWVzc2FnZS5zdGFydCxcbiAgICAgICAgICBtZXNzYWdlVGV4dDogcmVsYXRlZE1lc3NhZ2UudGV4dCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEZvciBkaXJlY3QgbWFwcGluZ3MsIHRoZSBlcnJvciBpcyBzaG93biBpbmxpbmUgYXMgbmd0c2Mgd2FzIGFibGUgdG8gcGlucG9pbnQgYSBzdHJpbmdcbiAgICAvLyBjb25zdGFudCB3aXRoaW4gdGhlIGBAQ29tcG9uZW50YCBkZWNvcmF0b3IgZm9yIHRoZSB0ZW1wbGF0ZS4gVGhpcyBhbGxvd3MgdXMgdG8gbWFwIHRoZSBlcnJvclxuICAgIC8vIGRpcmVjdGx5IGludG8gdGhlIGJ5dGVzIG9mIHRoZSBzb3VyY2UgZmlsZS5cbiAgICByZXR1cm4ge1xuICAgICAgc291cmNlOiAnbmd0c2MnLFxuICAgICAgY29kZSxcbiAgICAgIGNhdGVnb3J5LFxuICAgICAgbWVzc2FnZVRleHQsXG4gICAgICBmaWxlOiBtYXBwaW5nLm5vZGUuZ2V0U291cmNlRmlsZSgpLFxuICAgICAgY29tcG9uZW50RmlsZTogbWFwcGluZy5ub2RlLmdldFNvdXJjZUZpbGUoKSxcbiAgICAgIHRlbXBsYXRlSWQsXG4gICAgICBzdGFydDogc3Bhbi5zdGFydC5vZmZzZXQsXG4gICAgICBsZW5ndGg6IHNwYW4uZW5kLm9mZnNldCAtIHNwYW4uc3RhcnQub2Zmc2V0LFxuICAgICAgcmVsYXRlZEluZm9ybWF0aW9uLFxuICAgIH07XG4gIH0gZWxzZSBpZiAobWFwcGluZy50eXBlID09PSAnaW5kaXJlY3QnIHx8IG1hcHBpbmcudHlwZSA9PT0gJ2V4dGVybmFsJykge1xuICAgIC8vIEZvciBpbmRpcmVjdCBtYXBwaW5ncyAodGVtcGxhdGUgd2FzIGRlY2xhcmVkIGlubGluZSwgYnV0IG5ndHNjIGNvdWxkbid0IG1hcCBpdCBkaXJlY3RseVxuICAgIC8vIHRvIGEgc3RyaW5nIGNvbnN0YW50IGluIHRoZSBkZWNvcmF0b3IpLCB0aGUgY29tcG9uZW50J3MgZmlsZSBuYW1lIGlzIGdpdmVuIHdpdGggYSBzdWZmaXhcbiAgICAvLyBpbmRpY2F0aW5nIGl0J3Mgbm90IHRoZSBUUyBmaWxlIGJlaW5nIGRpc3BsYXllZCwgYnV0IGEgdGVtcGxhdGUuXG4gICAgLy8gRm9yIGV4dGVybmFsIHRlbW9wbGF0ZXMsIHRoZSBIVE1MIGZpbGVuYW1lIGlzIHVzZWQuXG4gICAgY29uc3QgY29tcG9uZW50U2YgPSBtYXBwaW5nLmNvbXBvbmVudENsYXNzLmdldFNvdXJjZUZpbGUoKTtcbiAgICBjb25zdCBjb21wb25lbnROYW1lID0gbWFwcGluZy5jb21wb25lbnRDbGFzcy5uYW1lLnRleHQ7XG4gICAgLy8gVE9ETyhhbHhodWIpOiByZW1vdmUgY2FzdCB3aGVuIFRTIGluIGczIHN1cHBvcnRzIHRoaXMgbmFycm93aW5nLlxuICAgIGNvbnN0IGZpbGVOYW1lID0gbWFwcGluZy50eXBlID09PSAnaW5kaXJlY3QnID9cbiAgICAgICAgYCR7Y29tcG9uZW50U2YuZmlsZU5hbWV9ICgke2NvbXBvbmVudE5hbWV9IHRlbXBsYXRlKWAgOlxuICAgICAgICAobWFwcGluZyBhcyBFeHRlcm5hbFRlbXBsYXRlU291cmNlTWFwcGluZykudGVtcGxhdGVVcmw7XG4gICAgLy8gVE9ETyhhbHhodWIpOiBpbnZlc3RpZ2F0ZSBjcmVhdGluZyBhIGZha2UgYHRzLlNvdXJjZUZpbGVgIGhlcmUgaW5zdGVhZCBvZiBpbnZva2luZyB0aGUgVFNcbiAgICAvLyBwYXJzZXIgYWdhaW5zdCB0aGUgdGVtcGxhdGUgKEhUTUwgaXMganVzdCByZWFsbHkgc3ludGFjdGljYWxseSBpbnZhbGlkIFR5cGVTY3JpcHQgY29kZSA7KS5cbiAgICAvLyBBbHNvIGludmVzdGlnYXRlIGNhY2hpbmcgdGhlIGZpbGUgdG8gYXZvaWQgcnVubmluZyB0aGUgcGFyc2VyIG11bHRpcGxlIHRpbWVzLlxuICAgIGNvbnN0IHNmID0gdHMuY3JlYXRlU291cmNlRmlsZShcbiAgICAgICAgZmlsZU5hbWUsIG1hcHBpbmcudGVtcGxhdGUsIHRzLlNjcmlwdFRhcmdldC5MYXRlc3QsIGZhbHNlLCB0cy5TY3JpcHRLaW5kLkpTWCk7XG5cbiAgICBsZXQgcmVsYXRlZEluZm9ybWF0aW9uOiB0cy5EaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uW10gPSBbXTtcbiAgICBpZiAocmVsYXRlZE1lc3NhZ2VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgcmVsYXRlZE1lc3NhZ2Ugb2YgcmVsYXRlZE1lc3NhZ2VzKSB7XG4gICAgICAgIHJlbGF0ZWRJbmZvcm1hdGlvbi5wdXNoKHtcbiAgICAgICAgICBjYXRlZ29yeTogdHMuRGlhZ25vc3RpY0NhdGVnb3J5Lk1lc3NhZ2UsXG4gICAgICAgICAgY29kZTogMCxcbiAgICAgICAgICBmaWxlOiByZWxhdGVkTWVzc2FnZS5zb3VyY2VGaWxlLFxuICAgICAgICAgIHN0YXJ0OiByZWxhdGVkTWVzc2FnZS5zdGFydCxcbiAgICAgICAgICBsZW5ndGg6IHJlbGF0ZWRNZXNzYWdlLmVuZCAtIHJlbGF0ZWRNZXNzYWdlLnN0YXJ0LFxuICAgICAgICAgIG1lc3NhZ2VUZXh0OiByZWxhdGVkTWVzc2FnZS50ZXh0LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZWxhdGVkSW5mb3JtYXRpb24ucHVzaCh7XG4gICAgICBjYXRlZ29yeTogdHMuRGlhZ25vc3RpY0NhdGVnb3J5Lk1lc3NhZ2UsXG4gICAgICBjb2RlOiAwLFxuICAgICAgZmlsZTogY29tcG9uZW50U2YsXG4gICAgICAvLyBtYXBwaW5nLm5vZGUgcmVwcmVzZW50cyBlaXRoZXIgdGhlICd0ZW1wbGF0ZScgb3IgJ3RlbXBsYXRlVXJsJyBleHByZXNzaW9uLiBnZXRTdGFydCgpXG4gICAgICAvLyBhbmQgZ2V0RW5kKCkgYXJlIHVzZWQgYmVjYXVzZSB0aGV5IGRvbid0IGluY2x1ZGUgc3Vycm91bmRpbmcgd2hpdGVzcGFjZS5cbiAgICAgIHN0YXJ0OiBtYXBwaW5nLm5vZGUuZ2V0U3RhcnQoKSxcbiAgICAgIGxlbmd0aDogbWFwcGluZy5ub2RlLmdldEVuZCgpIC0gbWFwcGluZy5ub2RlLmdldFN0YXJ0KCksXG4gICAgICBtZXNzYWdlVGV4dDogYEVycm9yIG9jY3VycyBpbiB0aGUgdGVtcGxhdGUgb2YgY29tcG9uZW50ICR7Y29tcG9uZW50TmFtZX0uYCxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6ICduZ3RzYycsXG4gICAgICBjYXRlZ29yeSxcbiAgICAgIGNvZGUsXG4gICAgICBtZXNzYWdlVGV4dCxcbiAgICAgIGZpbGU6IHNmLFxuICAgICAgY29tcG9uZW50RmlsZTogY29tcG9uZW50U2YsXG4gICAgICB0ZW1wbGF0ZUlkLFxuICAgICAgc3RhcnQ6IHNwYW4uc3RhcnQub2Zmc2V0LFxuICAgICAgbGVuZ3RoOiBzcGFuLmVuZC5vZmZzZXQgLSBzcGFuLnN0YXJ0Lm9mZnNldCxcbiAgICAgIC8vIFNob3cgYSBzZWNvbmRhcnkgbWVzc2FnZSBpbmRpY2F0aW5nIHRoZSBjb21wb25lbnQgd2hvc2UgdGVtcGxhdGUgY29udGFpbnMgdGhlIGVycm9yLlxuICAgICAgcmVsYXRlZEluZm9ybWF0aW9uLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHNvdXJjZSBtYXBwaW5nIHR5cGU6ICR7KG1hcHBpbmcgYXMge3R5cGU6IHN0cmluZ30pLnR5cGV9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVEaWFnbm9zdGljKGRpYWdub3N0aWM6IHRzLkRpYWdub3N0aWMpOiBkaWFnbm9zdGljIGlzIFRlbXBsYXRlRGlhZ25vc3RpYyB7XG4gIHJldHVybiBkaWFnbm9zdGljLmhhc093blByb3BlcnR5KCdjb21wb25lbnRGaWxlJykgJiZcbiAgICAgIHRzLmlzU291cmNlRmlsZSgoZGlhZ25vc3RpYyBhcyBhbnkpLmNvbXBvbmVudEZpbGUpO1xufVxuIl19
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC 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
+ /// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/extended/api/api" />
9
+ import { AST, TmplAstNode } from '@angular/compiler';
10
+ import * as ts from 'typescript';
11
+ import { ErrorCode } from '../../../diagnostics';
12
+ import { NgTemplateDiagnostic, TemplateTypeChecker } from '../../api';
13
+ /**
14
+ * A Template Check receives information about the template it's checking and returns
15
+ * information about the diagnostics to be generated.
16
+ */
17
+ export interface TemplateCheck<T extends ErrorCode> {
18
+ /** Unique template check code, used for configuration and searching the error. */
19
+ code: T;
20
+ /** Runs check and returns information about the diagnostics to be generated. */
21
+ run(ctx: TemplateContext, component: ts.ClassDeclaration, template: TmplAstNode[]): NgTemplateDiagnostic<T>[];
22
+ }
23
+ /**
24
+ * The TemplateContext provided to a Template Check to get diagnostic information.
25
+ */
26
+ export interface TemplateContext {
27
+ /** Interface that provides information about template nodes. */
28
+ templateTypeChecker: TemplateTypeChecker;
29
+ /**
30
+ * TypeScript interface that provides type information about symbols that appear
31
+ * in the template (it is not to query types outside the Angular component).
32
+ */
33
+ typeChecker: ts.TypeChecker;
34
+ }
35
+ /**
36
+ * This abstract class provides a base implementation for the run method.
37
+ */
38
+ export declare abstract class TemplateCheckWithVisitor<T extends ErrorCode> implements TemplateCheck<T> {
39
+ abstract code: T;
40
+ /**
41
+ * Base implementation for run function, visits all nodes in template and calls
42
+ * `visitNode()` for each one.
43
+ */
44
+ run(ctx: TemplateContext, component: ts.ClassDeclaration, template: TmplAstNode[]): NgTemplateDiagnostic<T>[];
45
+ /**
46
+ * Visit a TmplAstNode or AST node of the template. Authors should override this
47
+ * method to implement the check and return diagnostics.
48
+ */
49
+ abstract visitNode(ctx: TemplateContext, component: ts.ClassDeclaration, node: TmplAstNode | AST): NgTemplateDiagnostic<T>[];
50
+ }
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC 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
+ (function (factory) {
9
+ if (typeof module === "object" && typeof module.exports === "object") {
10
+ var v = factory(require, exports);
11
+ if (v !== undefined) module.exports = v;
12
+ }
13
+ else if (typeof define === "function" && define.amd) {
14
+ define("@angular/compiler-cli/src/ngtsc/typecheck/extended/api/api", ["require", "exports", "tslib", "@angular/compiler", "@angular/compiler/src/compiler"], factory);
15
+ }
16
+ })(function (require, exports) {
17
+ "use strict";
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.TemplateCheckWithVisitor = void 0;
20
+ var tslib_1 = require("tslib");
21
+ var compiler_1 = require("@angular/compiler");
22
+ var compiler_2 = require("@angular/compiler/src/compiler");
23
+ /**
24
+ * This abstract class provides a base implementation for the run method.
25
+ */
26
+ var TemplateCheckWithVisitor = /** @class */ (function () {
27
+ function TemplateCheckWithVisitor() {
28
+ }
29
+ /**
30
+ * Base implementation for run function, visits all nodes in template and calls
31
+ * `visitNode()` for each one.
32
+ */
33
+ TemplateCheckWithVisitor.prototype.run = function (ctx, component, template) {
34
+ var visitor = new TemplateVisitor(ctx, component, this);
35
+ return visitor.getDiagnostics(template);
36
+ };
37
+ return TemplateCheckWithVisitor;
38
+ }());
39
+ exports.TemplateCheckWithVisitor = TemplateCheckWithVisitor;
40
+ /**
41
+ * Visits all nodes in a template (TmplAstNode and AST) and calls `visitNode` for each one.
42
+ */
43
+ var TemplateVisitor = /** @class */ (function (_super) {
44
+ tslib_1.__extends(TemplateVisitor, _super);
45
+ function TemplateVisitor(ctx, component, check) {
46
+ var _this = _super.call(this) || this;
47
+ _this.ctx = ctx;
48
+ _this.component = component;
49
+ _this.check = check;
50
+ _this.diagnostics = [];
51
+ return _this;
52
+ }
53
+ TemplateVisitor.prototype.visit = function (node, context) {
54
+ var _a;
55
+ (_a = this.diagnostics).push.apply(_a, tslib_1.__spreadArray([], tslib_1.__read(this.check.visitNode(this.ctx, this.component, node))));
56
+ node.visit(this);
57
+ };
58
+ TemplateVisitor.prototype.visitAllNodes = function (nodes) {
59
+ var e_1, _a;
60
+ try {
61
+ for (var nodes_1 = tslib_1.__values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {
62
+ var node = nodes_1_1.value;
63
+ this.visit(node);
64
+ }
65
+ }
66
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
67
+ finally {
68
+ try {
69
+ if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);
70
+ }
71
+ finally { if (e_1) throw e_1.error; }
72
+ }
73
+ };
74
+ TemplateVisitor.prototype.visitAst = function (ast) {
75
+ if (ast instanceof compiler_2.ASTWithSource) {
76
+ ast = ast.ast;
77
+ }
78
+ this.visit(ast);
79
+ };
80
+ TemplateVisitor.prototype.visitElement = function (element) {
81
+ this.visitAllNodes(element.attributes);
82
+ this.visitAllNodes(element.inputs);
83
+ this.visitAllNodes(element.outputs);
84
+ this.visitAllNodes(element.references);
85
+ this.visitAllNodes(element.children);
86
+ };
87
+ TemplateVisitor.prototype.visitTemplate = function (template) {
88
+ this.visitAllNodes(template.attributes);
89
+ if (template.tagName === 'ng-template') {
90
+ // Only visit input/outputs/templateAttrs if this isn't an inline template node
91
+ // generated for a structural directive (like `<div *ngIf></div>`). These nodes
92
+ // would be visited when the underlying element of an inline template node is processed.
93
+ this.visitAllNodes(template.inputs);
94
+ this.visitAllNodes(template.outputs);
95
+ this.visitAllNodes(template.templateAttrs);
96
+ }
97
+ this.visitAllNodes(template.variables);
98
+ this.visitAllNodes(template.references);
99
+ this.visitAllNodes(template.children);
100
+ };
101
+ TemplateVisitor.prototype.visitContent = function (content) { };
102
+ TemplateVisitor.prototype.visitVariable = function (variable) { };
103
+ TemplateVisitor.prototype.visitReference = function (reference) { };
104
+ TemplateVisitor.prototype.visitTextAttribute = function (attribute) { };
105
+ TemplateVisitor.prototype.visitBoundAttribute = function (attribute) {
106
+ this.visitAst(attribute.value);
107
+ };
108
+ TemplateVisitor.prototype.visitBoundEvent = function (attribute) {
109
+ this.visitAst(attribute.handler);
110
+ };
111
+ TemplateVisitor.prototype.visitText = function (text) { };
112
+ TemplateVisitor.prototype.visitBoundText = function (text) {
113
+ this.visitAst(text.value);
114
+ };
115
+ TemplateVisitor.prototype.visitIcu = function (icu) { };
116
+ TemplateVisitor.prototype.getDiagnostics = function (template) {
117
+ this.diagnostics = [];
118
+ this.visitAllNodes(template);
119
+ return this.diagnostics;
120
+ };
121
+ return TemplateVisitor;
122
+ }(compiler_1.RecursiveAstVisitor));
123
+ });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90eXBlY2hlY2svZXh0ZW5kZWQvYXBpL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBRUgsOENBQWdTO0lBQ2hTLDJEQUE2RDtJQWlDN0Q7O09BRUc7SUFDSDtRQUFBO1FBbUJBLENBQUM7UUFoQkM7OztXQUdHO1FBQ0gsc0NBQUcsR0FBSCxVQUFJLEdBQW9CLEVBQUUsU0FBOEIsRUFDcEQsUUFBdUI7WUFDekIsSUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUksR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3RCxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQVFILCtCQUFDO0lBQUQsQ0FBQyxBQW5CRCxJQW1CQztJQW5CcUIsNERBQXdCO0lBcUI5Qzs7T0FFRztJQUNIO1FBQW1ELDJDQUFtQjtRQUlwRSx5QkFDcUIsR0FBb0IsRUFBbUIsU0FBOEIsRUFDckUsS0FBa0M7WUFGdkQsWUFHRSxpQkFBTyxTQUNSO1lBSG9CLFNBQUcsR0FBSCxHQUFHLENBQWlCO1lBQW1CLGVBQVMsR0FBVCxTQUFTLENBQXFCO1lBQ3JFLFdBQUssR0FBTCxLQUFLLENBQTZCO1lBSnZELGlCQUFXLEdBQThCLEVBQUUsQ0FBQzs7UUFNNUMsQ0FBQztRQUVRLCtCQUFLLEdBQWQsVUFBZSxJQUFxQixFQUFFLE9BQWE7O1lBQ2pELENBQUEsS0FBQSxJQUFJLENBQUMsV0FBVyxDQUFBLENBQUMsSUFBSSxvREFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUU7WUFDL0UsSUFB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QUFELENBQUMsQUF2RUQsQ0FBbUQsOEJBQW1CLEdBdUVyRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0FTVCwgUmVjdXJzaXZlQXN0VmlzaXRvciwgVG1wbEFzdEJvdW5kQXR0cmlidXRlLCBUbXBsQXN0Qm91bmRFdmVudCwgVG1wbEFzdEJvdW5kVGV4dCwgVG1wbEFzdENvbnRlbnQsIFRtcGxBc3RFbGVtZW50LCBUbXBsQXN0SWN1LCBUbXBsQXN0Tm9kZSwgVG1wbEFzdFJlY3Vyc2l2ZVZpc2l0b3IsIFRtcGxBc3RSZWZlcmVuY2UsIFRtcGxBc3RUZW1wbGF0ZSwgVG1wbEFzdFRleHQsIFRtcGxBc3RUZXh0QXR0cmlidXRlLCBUbXBsQXN0VmFyaWFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7QVNUV2l0aFNvdXJjZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0Vycm9yQ29kZX0gZnJvbSAnLi4vLi4vLi4vZGlhZ25vc3RpY3MnO1xuaW1wb3J0IHtOZ1RlbXBsYXRlRGlhZ25vc3RpYywgVGVtcGxhdGVUeXBlQ2hlY2tlcn0gZnJvbSAnLi4vLi4vYXBpJztcblxuLyoqXG4gKiBBIFRlbXBsYXRlIENoZWNrIHJlY2VpdmVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0ZW1wbGF0ZSBpdCdzIGNoZWNraW5nIGFuZCByZXR1cm5zXG4gKiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGlhZ25vc3RpY3MgdG8gYmUgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlQ2hlY2s8VCBleHRlbmRzIEVycm9yQ29kZT4ge1xuICAvKiogVW5pcXVlIHRlbXBsYXRlIGNoZWNrIGNvZGUsIHVzZWQgZm9yIGNvbmZpZ3VyYXRpb24gYW5kIHNlYXJjaGluZyB0aGUgZXJyb3IuICovXG4gIGNvZGU6IFQ7XG5cbiAgLyoqIFJ1bnMgY2hlY2sgYW5kIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRpYWdub3N0aWNzIHRvIGJlIGdlbmVyYXRlZC4gKi9cbiAgcnVuKGN0eDogVGVtcGxhdGVDb250ZXh0LCBjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24sXG4gICAgICB0ZW1wbGF0ZTogVG1wbEFzdE5vZGVbXSk6IE5nVGVtcGxhdGVEaWFnbm9zdGljPFQ+W107XG59XG5cbi8qKlxuICogVGhlIFRlbXBsYXRlQ29udGV4dCBwcm92aWRlZCB0byBhIFRlbXBsYXRlIENoZWNrIHRvIGdldCBkaWFnbm9zdGljIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlQ29udGV4dCB7XG4gIC8qKiBJbnRlcmZhY2UgdGhhdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0ZW1wbGF0ZSBub2Rlcy4gKi9cbiAgdGVtcGxhdGVUeXBlQ2hlY2tlcjogVGVtcGxhdGVUeXBlQ2hlY2tlcjtcblxuICAvKipcbiAgICogVHlwZVNjcmlwdCBpbnRlcmZhY2UgdGhhdCBwcm92aWRlcyB0eXBlIGluZm9ybWF0aW9uIGFib3V0IHN5bWJvbHMgdGhhdCBhcHBlYXJcbiAgICogaW4gdGhlIHRlbXBsYXRlIChpdCBpcyBub3QgdG8gcXVlcnkgdHlwZXMgb3V0c2lkZSB0aGUgQW5ndWxhciBjb21wb25lbnQpLlxuICAgKi9cbiAgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyO1xufVxuXG4vKipcbiAqIFRoaXMgYWJzdHJhY3QgY2xhc3MgcHJvdmlkZXMgYSBiYXNlIGltcGxlbWVudGF0aW9uIGZvciB0aGUgcnVuIG1ldGhvZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRlbXBsYXRlQ2hlY2tXaXRoVmlzaXRvcjxUIGV4dGVuZHMgRXJyb3JDb2RlPiBpbXBsZW1lbnRzIFRlbXBsYXRlQ2hlY2s8VD4ge1xuICBhYnN0cmFjdCBjb2RlOiBUO1xuXG4gIC8qKlxuICAgKiBCYXNlIGltcGxlbWVudGF0aW9uIGZvciBydW4gZnVuY3Rpb24sIHZpc2l0cyBhbGwgbm9kZXMgaW4gdGVtcGxhdGUgYW5kIGNhbGxzXG4gICAqIGB2aXNpdE5vZGUoKWAgZm9yIGVhY2ggb25lLlxuICAgKi9cbiAgcnVuKGN0eDogVGVtcGxhdGVDb250ZXh0LCBjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24sXG4gICAgICB0ZW1wbGF0ZTogVG1wbEFzdE5vZGVbXSk6IE5nVGVtcGxhdGVEaWFnbm9zdGljPFQ+W10ge1xuICAgIGNvbnN0IHZpc2l0b3IgPSBuZXcgVGVtcGxhdGVWaXNpdG9yPFQ+KGN0eCwgY29tcG9uZW50LCB0aGlzKTtcbiAgICByZXR1cm4gdmlzaXRvci5nZXREaWFnbm9zdGljcyh0ZW1wbGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogVmlzaXQgYSBUbXBsQXN0Tm9kZSBvciBBU1Qgbm9kZSBvZiB0aGUgdGVtcGxhdGUuIEF1dGhvcnMgc2hvdWxkIG92ZXJyaWRlIHRoaXNcbiAgICogbWV0aG9kIHRvIGltcGxlbWVudCB0aGUgY2hlY2sgYW5kIHJldHVybiBkaWFnbm9zdGljcy5cbiAgICovXG4gIGFic3RyYWN0IHZpc2l0Tm9kZShjdHg6IFRlbXBsYXRlQ29udGV4dCwgY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uLCBub2RlOiBUbXBsQXN0Tm9kZXxBU1QpOlxuICAgICAgTmdUZW1wbGF0ZURpYWdub3N0aWM8VD5bXTtcbn1cblxuLyoqXG4gKiBWaXNpdHMgYWxsIG5vZGVzIGluIGEgdGVtcGxhdGUgKFRtcGxBc3ROb2RlIGFuZCBBU1QpIGFuZCBjYWxscyBgdmlzaXROb2RlYCBmb3IgZWFjaCBvbmUuXG4gKi9cbmNsYXNzIFRlbXBsYXRlVmlzaXRvcjxUIGV4dGVuZHMgRXJyb3JDb2RlPiBleHRlbmRzIFJlY3Vyc2l2ZUFzdFZpc2l0b3IgaW1wbGVtZW50c1xuICAgIFRtcGxBc3RSZWN1cnNpdmVWaXNpdG9yIHtcbiAgZGlhZ25vc3RpY3M6IE5nVGVtcGxhdGVEaWFnbm9zdGljPFQ+W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY3R4OiBUZW1wbGF0ZUNvbnRleHQsIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50OiB0cy5DbGFzc0RlY2xhcmF0aW9uLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGVjazogVGVtcGxhdGVDaGVja1dpdGhWaXNpdG9yPFQ+KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHZpc2l0KG5vZGU6IEFTVHxUbXBsQXN0Tm9kZSwgY29udGV4dD86IGFueSkge1xuICAgIHRoaXMuZGlhZ25vc3RpY3MucHVzaCguLi50aGlzLmNoZWNrLnZpc2l0Tm9kZSh0aGlzLmN0eCwgdGhpcy5jb21wb25lbnQsIG5vZGUpKTtcbiAgICBub2RlLnZpc2l0KHRoaXMpO1xuICB9XG5cbiAgdmlzaXRBbGxOb2Rlcyhub2RlczogVG1wbEFzdE5vZGVbXSkge1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgICAgdGhpcy52aXNpdChub2RlKTtcbiAgICB9XG4gIH1cblxuICB2aXNpdEFzdChhc3Q6IEFTVCkge1xuICAgIGlmIChhc3QgaW5zdGFuY2VvZiBBU1RXaXRoU291cmNlKSB7XG4gICAgICBhc3QgPSBhc3QuYXN0O1xuICAgIH1cbiAgICB0aGlzLnZpc2l0KGFzdCk7XG4gIH1cblxuICB2aXNpdEVsZW1lbnQoZWxlbWVudDogVG1wbEFzdEVsZW1lbnQpIHtcbiAgICB0aGlzLnZpc2l0QWxsTm9kZXMoZWxlbWVudC5hdHRyaWJ1dGVzKTtcbiAgICB0aGlzLnZpc2l0QWxsTm9kZXMoZWxlbWVudC5pbnB1dHMpO1xuICAgIHRoaXMudmlzaXRBbGxOb2RlcyhlbGVtZW50Lm91dHB1dHMpO1xuICAgIHRoaXMudmlzaXRBbGxOb2RlcyhlbGVtZW50LnJlZmVyZW5jZXMpO1xuICAgIHRoaXMudmlzaXRBbGxOb2RlcyhlbGVtZW50LmNoaWxkcmVuKTtcbiAgfVxuXG4gIHZpc2l0VGVtcGxhdGUodGVtcGxhdGU6IFRtcGxBc3RUZW1wbGF0ZSkge1xuICAgIHRoaXMudmlzaXRBbGxOb2Rlcyh0ZW1wbGF0ZS5hdHRyaWJ1dGVzKTtcbiAgICBpZiAodGVtcGxhdGUudGFnTmFtZSA9PT0gJ25nLXRlbXBsYXRlJykge1xuICAgICAgLy8gT25seSB2aXNpdCBpbnB1dC9vdXRwdXRzL3RlbXBsYXRlQXR0cnMgaWYgdGhpcyBpc24ndCBhbiBpbmxpbmUgdGVtcGxhdGUgbm9kZVxuICAgICAgLy8gZ2VuZXJhdGVkIGZvciBhIHN0cnVjdHVyYWwgZGlyZWN0aXZlIChsaWtlIGA8ZGl2ICpuZ0lmPjwvZGl2PmApLiBUaGVzZSBub2Rlc1xuICAgICAgLy8gd291bGQgYmUgdmlzaXRlZCB3aGVuIHRoZSB1bmRlcmx5aW5nIGVsZW1lbnQgb2YgYW4gaW5saW5lIHRlbXBsYXRlIG5vZGUgaXMgcHJvY2Vzc2VkLlxuICAgICAgdGhpcy52aXNpdEFsbE5vZGVzKHRlbXBsYXRlLmlucHV0cyk7XG4gICAgICB0aGlzLnZpc2l0QWxsTm9kZXModGVtcGxhdGUub3V0cHV0cyk7XG4gICAgICB0aGlzLnZpc2l0QWxsTm9kZXModGVtcGxhdGUudGVtcGxhdGVBdHRycyk7XG4gICAgfVxuICAgIHRoaXMudmlzaXRBbGxOb2Rlcyh0ZW1wbGF0ZS52YXJpYWJsZXMpO1xuICAgIHRoaXMudmlzaXRBbGxOb2Rlcyh0ZW1wbGF0ZS5yZWZlcmVuY2VzKTtcbiAgICB0aGlzLnZpc2l0QWxsTm9kZXModGVtcGxhdGUuY2hpbGRyZW4pO1xuICB9XG4gIHZpc2l0Q29udGVudChjb250ZW50OiBUbXBsQXN0Q29udGVudCk6IHZvaWQge31cbiAgdmlzaXRWYXJpYWJsZSh2YXJpYWJsZTogVG1wbEFzdFZhcmlhYmxlKTogdm9pZCB7fVxuICB2aXNpdFJlZmVyZW5jZShyZWZlcmVuY2U6IFRtcGxBc3RSZWZlcmVuY2UpOiB2b2lkIHt9XG4gIHZpc2l0VGV4dEF0dHJpYnV0ZShhdHRyaWJ1dGU6IFRtcGxBc3RUZXh0QXR0cmlidXRlKTogdm9pZCB7fVxuICB2aXNpdEJvdW5kQXR0cmlidXRlKGF0dHJpYnV0ZTogVG1wbEFzdEJvdW5kQXR0cmlidXRlKTogdm9pZCB7XG4gICAgdGhpcy52aXNpdEFzdChhdHRyaWJ1dGUudmFsdWUpO1xuICB9XG4gIHZpc2l0Qm91bmRFdmVudChhdHRyaWJ1dGU6IFRtcGxBc3RCb3VuZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy52aXNpdEFzdChhdHRyaWJ1dGUuaGFuZGxlcik7XG4gIH1cbiAgdmlzaXRUZXh0KHRleHQ6IFRtcGxBc3RUZXh0KTogdm9pZCB7fVxuICB2aXNpdEJvdW5kVGV4dCh0ZXh0OiBUbXBsQXN0Qm91bmRUZXh0KTogdm9pZCB7XG4gICAgdGhpcy52aXNpdEFzdCh0ZXh0LnZhbHVlKTtcbiAgfVxuICB2aXNpdEljdShpY3U6IFRtcGxBc3RJY3UpOiB2b2lkIHt9XG5cbiAgZ2V0RGlhZ25vc3RpY3ModGVtcGxhdGU6IFRtcGxBc3ROb2RlW10pOiBOZ1RlbXBsYXRlRGlhZ25vc3RpYzxUPltdIHtcbiAgICB0aGlzLmRpYWdub3N0aWNzID0gW107XG4gICAgdGhpcy52aXNpdEFsbE5vZGVzKHRlbXBsYXRlKTtcbiAgICByZXR1cm4gdGhpcy5kaWFnbm9zdGljcztcbiAgfVxufVxuIl19
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC 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
+ /// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/extended/api/extended_template_checker" />
9
+ import * as ts from 'typescript';
10
+ import { TemplateDiagnostic } from '../../api';
11
+ /**
12
+ * Interface to generate extended template diangostics from the component tempaltes.
13
+ */
14
+ export interface ExtendedTemplateChecker {
15
+ /**
16
+ * Run `TemplateCheck`s for a component and return the generated `ts.Diagnostic`s.
17
+ */
18
+ getDiagnosticsForComponent(component: ts.ClassDeclaration): TemplateDiagnostic[];
19
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC 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
+ (function (factory) {
9
+ if (typeof module === "object" && typeof module.exports === "object") {
10
+ var v = factory(require, exports);
11
+ if (v !== undefined) module.exports = v;
12
+ }
13
+ else if (typeof define === "function" && define.amd) {
14
+ define("@angular/compiler-cli/src/ngtsc/typecheck/extended/api/extended_template_checker", ["require", "exports"], factory);
15
+ }
16
+ })(function (require, exports) {
17
+ "use strict";
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWRfdGVtcGxhdGVfY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL2V4dGVuZGVkL2FwaS9leHRlbmRlZF90ZW1wbGF0ZV9jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7VGVtcGxhdGVEaWFnbm9zdGljfSBmcm9tICcuLi8uLi9hcGknO1xuXG4vKipcbiAqIEludGVyZmFjZSB0byBnZW5lcmF0ZSBleHRlbmRlZCB0ZW1wbGF0ZSBkaWFuZ29zdGljcyBmcm9tIHRoZSBjb21wb25lbnQgdGVtcGFsdGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkVGVtcGxhdGVDaGVja2VyIHtcbiAgLyoqXG4gICAqIFJ1biBgVGVtcGxhdGVDaGVja2BzIGZvciBhIGNvbXBvbmVudCBhbmQgcmV0dXJuIHRoZSBnZW5lcmF0ZWQgYHRzLkRpYWdub3N0aWNgcy5cbiAgICovXG4gIGdldERpYWdub3N0aWNzRm9yQ29tcG9uZW50KGNvbXBvbmVudDogdHMuQ2xhc3NEZWNsYXJhdGlvbik6IFRlbXBsYXRlRGlhZ25vc3RpY1tdO1xufVxuIl19
@@ -5,5 +5,6 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- /// <amd-module name="@angular/compiler-cli/src/ngtsc/core/src/config" />
9
- export declare const compileUndecoratedClassesWithAngularFeatures = false;
8
+ /// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/extended/api" />
9
+ export * from './api';
10
+ export * from './extended_template_checker';
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC 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
+ (function (factory) {
9
+ if (typeof module === "object" && typeof module.exports === "object") {
10
+ var v = factory(require, exports);
11
+ if (v !== undefined) module.exports = v;
12
+ }
13
+ else if (typeof define === "function" && define.amd) {
14
+ define("@angular/compiler-cli/src/ngtsc/typecheck/extended/api", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/typecheck/extended/api/api", "@angular/compiler-cli/src/ngtsc/typecheck/extended/api/extended_template_checker"], factory);
15
+ }
16
+ })(function (require, exports) {
17
+ "use strict";
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ var tslib_1 = require("tslib");
20
+ tslib_1.__exportStar(require("@angular/compiler-cli/src/ngtsc/typecheck/extended/api/api"), exports);
21
+ tslib_1.__exportStar(require("@angular/compiler-cli/src/ngtsc/typecheck/extended/api/extended_template_checker"), exports);
22
+ });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3R5cGVjaGVjay9leHRlbmRlZC9hcGkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBRUgscUdBQXNCO0lBQ3RCLDJIQUE0QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2V4dGVuZGVkX3RlbXBsYXRlX2NoZWNrZXInO1xuIl19
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC 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
+ /// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box" />
9
+ import { AST, TmplAstNode } from '@angular/compiler';
10
+ import * as ts from 'typescript';
11
+ import { ErrorCode } from '../../../../diagnostics';
12
+ import { NgTemplateDiagnostic } from '../../../api';
13
+ import { TemplateCheckWithVisitor, TemplateContext } from '../../api';
14
+ /**
15
+ * Ensures the two-way binding syntax is correct.
16
+ * Parentheses should be inside the brackets "[()]".
17
+ * Will return diagnostic information when "([])" is found.
18
+ */
19
+ export declare class InvalidBananaInBoxCheck extends TemplateCheckWithVisitor<ErrorCode.INVALID_BANANA_IN_BOX> {
20
+ code: ErrorCode.INVALID_BANANA_IN_BOX;
21
+ visitNode(ctx: TemplateContext, component: ts.ClassDeclaration, node: TmplAstNode | AST): NgTemplateDiagnostic<ErrorCode.INVALID_BANANA_IN_BOX>[];
22
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC 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
+ (function (factory) {
9
+ if (typeof module === "object" && typeof module.exports === "object") {
10
+ var v = factory(require, exports);
11
+ if (v !== undefined) module.exports = v;
12
+ }
13
+ else if (typeof define === "function" && define.amd) {
14
+ define("@angular/compiler-cli/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box", ["require", "exports", "tslib", "@angular/compiler", "typescript", "@angular/compiler-cli/src/ngtsc/diagnostics", "@angular/compiler-cli/src/ngtsc/typecheck/extended/api"], factory);
15
+ }
16
+ })(function (require, exports) {
17
+ "use strict";
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.InvalidBananaInBoxCheck = void 0;
20
+ var tslib_1 = require("tslib");
21
+ var compiler_1 = require("@angular/compiler");
22
+ var ts = require("typescript");
23
+ var diagnostics_1 = require("@angular/compiler-cli/src/ngtsc/diagnostics");
24
+ var api_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/extended/api");
25
+ /**
26
+ * Ensures the two-way binding syntax is correct.
27
+ * Parentheses should be inside the brackets "[()]".
28
+ * Will return diagnostic information when "([])" is found.
29
+ */
30
+ var InvalidBananaInBoxCheck = /** @class */ (function (_super) {
31
+ tslib_1.__extends(InvalidBananaInBoxCheck, _super);
32
+ function InvalidBananaInBoxCheck() {
33
+ var _this = _super !== null && _super.apply(this, arguments) || this;
34
+ _this.code = diagnostics_1.ErrorCode.INVALID_BANANA_IN_BOX;
35
+ return _this;
36
+ }
37
+ InvalidBananaInBoxCheck.prototype.visitNode = function (ctx, component, node) {
38
+ if (!(node instanceof compiler_1.TmplAstBoundEvent))
39
+ return [];
40
+ var name = node.name;
41
+ if (!name.startsWith('[') || !name.endsWith(']'))
42
+ return [];
43
+ var boundSyntax = node.sourceSpan.toString();
44
+ var expectedBoundSyntax = boundSyntax.replace("(" + name + ")", "[(" + name.slice(1, -1) + ")]");
45
+ var diagnostic = ctx.templateTypeChecker.makeTemplateDiagnostic(component, node.sourceSpan, ts.DiagnosticCategory.Warning, diagnostics_1.ErrorCode.INVALID_BANANA_IN_BOX, "In the two-way binding syntax the parentheses should be inside the brackets, ex. '" + expectedBoundSyntax + "'. \n Find more at https://angular.io/guide/two-way-binding");
46
+ return [diagnostic];
47
+ };
48
+ return InvalidBananaInBoxCheck;
49
+ }(api_1.TemplateCheckWithVisitor));
50
+ exports.InvalidBananaInBoxCheck = InvalidBananaInBoxCheck;
51
+ });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3R5cGVjaGVjay9leHRlbmRlZC9jaGVja3MvaW52YWxpZF9iYW5hbmFfaW5fYm94L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFFSCw4Q0FBc0U7SUFDdEUsK0JBQWlDO0lBRWpDLDJFQUFrRDtJQUVsRCw4RUFBb0U7SUFFcEU7Ozs7T0FJRztJQUNIO1FBQ0ksbURBQXlEO1FBRDdEO1lBQUEscUVBb0JDO1lBbEJVLFVBQUksR0FBRyx1QkFBUyxDQUFDLHFCQUE4QixDQUFDOztRQWtCM0QsQ0FBQztRQWhCVSwyQ0FBUyxHQUFsQixVQUFtQixHQUFvQixFQUFFLFNBQThCLEVBQUUsSUFBcUI7WUFFNUYsSUFBSSxDQUFDLENBQUMsSUFBSSxZQUFZLDRCQUFpQixDQUFDO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBRXBELElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUU1RCxJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9DLElBQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFJLElBQUksTUFBRyxFQUFFLE9BQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBSSxDQUFDLENBQUM7WUFDekYsSUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixDQUM3RCxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLHVCQUFTLENBQUMscUJBQXFCLEVBQzFGLHVGQUNJLG1CQUFtQix1RUFDK0IsQ0FBQyxDQUFDO1lBQzVELE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0gsOEJBQUM7SUFBRCxDQUFDLEFBcEJELENBQ0ksOEJBQXdCLEdBbUIzQjtJQXBCWSwwREFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtBU1QsIFRtcGxBc3RCb3VuZEV2ZW50LCBUbXBsQXN0Tm9kZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7RXJyb3JDb2RlfSBmcm9tICcuLi8uLi8uLi8uLi9kaWFnbm9zdGljcyc7XG5pbXBvcnQge05nVGVtcGxhdGVEaWFnbm9zdGljfSBmcm9tICcuLi8uLi8uLi9hcGknO1xuaW1wb3J0IHtUZW1wbGF0ZUNoZWNrV2l0aFZpc2l0b3IsIFRlbXBsYXRlQ29udGV4dH0gZnJvbSAnLi4vLi4vYXBpJztcblxuLyoqXG4gKiBFbnN1cmVzIHRoZSB0d28td2F5IGJpbmRpbmcgc3ludGF4IGlzIGNvcnJlY3QuXG4gKiBQYXJlbnRoZXNlcyBzaG91bGQgYmUgaW5zaWRlIHRoZSBicmFja2V0cyBcIlsoKV1cIi5cbiAqIFdpbGwgcmV0dXJuIGRpYWdub3N0aWMgaW5mb3JtYXRpb24gd2hlbiBcIihbXSlcIiBpcyBmb3VuZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEludmFsaWRCYW5hbmFJbkJveENoZWNrIGV4dGVuZHNcbiAgICBUZW1wbGF0ZUNoZWNrV2l0aFZpc2l0b3I8RXJyb3JDb2RlLklOVkFMSURfQkFOQU5BX0lOX0JPWD4ge1xuICBvdmVycmlkZSBjb2RlID0gRXJyb3JDb2RlLklOVkFMSURfQkFOQU5BX0lOX0JPWCBhcyBjb25zdDtcblxuICBvdmVycmlkZSB2aXNpdE5vZGUoY3R4OiBUZW1wbGF0ZUNvbnRleHQsIGNvbXBvbmVudDogdHMuQ2xhc3NEZWNsYXJhdGlvbiwgbm9kZTogVG1wbEFzdE5vZGV8QVNUKTpcbiAgICAgIE5nVGVtcGxhdGVEaWFnbm9zdGljPEVycm9yQ29kZS5JTlZBTElEX0JBTkFOQV9JTl9CT1g+W10ge1xuICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBUbXBsQXN0Qm91bmRFdmVudCkpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IG5hbWUgPSBub2RlLm5hbWU7XG4gICAgaWYgKCFuYW1lLnN0YXJ0c1dpdGgoJ1snKSB8fCAhbmFtZS5lbmRzV2l0aCgnXScpKSByZXR1cm4gW107XG5cbiAgICBjb25zdCBib3VuZFN5bnRheCA9IG5vZGUuc291cmNlU3Bhbi50b1N0cmluZygpO1xuICAgIGNvbnN0IGV4cGVjdGVkQm91bmRTeW50YXggPSBib3VuZFN5bnRheC5yZXBsYWNlKGAoJHtuYW1lfSlgLCBgWygke25hbWUuc2xpY2UoMSwgLTEpfSldYCk7XG4gICAgY29uc3QgZGlhZ25vc3RpYyA9IGN0eC50ZW1wbGF0ZVR5cGVDaGVja2VyLm1ha2VUZW1wbGF0ZURpYWdub3N0aWMoXG4gICAgICAgIGNvbXBvbmVudCwgbm9kZS5zb3VyY2VTcGFuLCB0cy5EaWFnbm9zdGljQ2F0ZWdvcnkuV2FybmluZywgRXJyb3JDb2RlLklOVkFMSURfQkFOQU5BX0lOX0JPWCxcbiAgICAgICAgYEluIHRoZSB0d28td2F5IGJpbmRpbmcgc3ludGF4IHRoZSBwYXJlbnRoZXNlcyBzaG91bGQgYmUgaW5zaWRlIHRoZSBicmFja2V0cywgZXguICcke1xuICAgICAgICAgICAgZXhwZWN0ZWRCb3VuZFN5bnRheH0nLiBcbiAgICAgICAgRmluZCBtb3JlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS90d28td2F5LWJpbmRpbmdgKTtcbiAgICByZXR1cm4gW2RpYWdub3N0aWNdO1xuICB9XG59XG4iXX0=