@angular/compiler-cli 10.1.0-rc.0 → 10.1.3

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 (84) hide show
  1. package/ngcc/src/execution/create_compile_function.js +6 -3
  2. package/ngcc/src/host/esm2015_host.d.ts +18 -0
  3. package/ngcc/src/host/esm2015_host.js +53 -31
  4. package/ngcc/src/main.js +9 -12
  5. package/ngcc/src/ngcc_options.d.ts +8 -7
  6. package/ngcc/src/ngcc_options.js +27 -3
  7. package/ngcc/src/packages/build_marker.d.ts +1 -1
  8. package/ngcc/src/packages/build_marker.js +1 -1
  9. package/ngcc/src/packages/entry_point_bundle.d.ts +12 -1
  10. package/ngcc/src/packages/entry_point_bundle.js +9 -6
  11. package/ngcc/src/packages/ngcc_compiler_host.d.ts +16 -1
  12. package/ngcc/src/packages/ngcc_compiler_host.js +35 -5
  13. package/ngcc/src/packages/source_file_cache.d.ts +97 -0
  14. package/ngcc/src/packages/source_file_cache.js +207 -0
  15. package/ngcc/src/rendering/renderer.js +9 -10
  16. package/package.json +2 -2
  17. package/src/ngtsc/annotations/src/component.d.ts +4 -1
  18. package/src/ngtsc/annotations/src/component.js +94 -122
  19. package/src/ngtsc/annotations/src/directive.d.ts +5 -1
  20. package/src/ngtsc/annotations/src/directive.js +21 -11
  21. package/src/ngtsc/annotations/src/typecheck_scopes.d.ts +56 -0
  22. package/src/ngtsc/annotations/src/typecheck_scopes.js +109 -0
  23. package/src/ngtsc/annotations/src/util.js +4 -2
  24. package/src/ngtsc/core/src/compiler.js +4 -3
  25. package/src/ngtsc/diagnostics/src/error_code.d.ts +4 -0
  26. package/src/ngtsc/diagnostics/src/error_code.js +5 -1
  27. package/src/ngtsc/file_system/src/invalid_file_system.d.ts +2 -2
  28. package/src/ngtsc/file_system/src/invalid_file_system.js +1 -1
  29. package/src/ngtsc/file_system/src/node_js_file_system.d.ts +2 -2
  30. package/src/ngtsc/file_system/src/node_js_file_system.js +1 -1
  31. package/src/ngtsc/file_system/src/types.d.ts +2 -2
  32. package/src/ngtsc/file_system/src/types.js +1 -1
  33. package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +3 -3
  34. package/src/ngtsc/file_system/testing/src/mock_file_system.js +2 -2
  35. package/src/ngtsc/indexer/src/template.js +10 -24
  36. package/src/ngtsc/metadata/index.d.ts +2 -0
  37. package/src/ngtsc/metadata/index.js +7 -3
  38. package/src/ngtsc/metadata/src/api.d.ts +13 -4
  39. package/src/ngtsc/metadata/src/api.js +1 -1
  40. package/src/ngtsc/metadata/src/dts.js +7 -4
  41. package/src/ngtsc/metadata/src/inheritance.d.ts +1 -1
  42. package/src/ngtsc/metadata/src/inheritance.js +10 -6
  43. package/src/ngtsc/metadata/src/property_mapping.d.ts +117 -0
  44. package/src/ngtsc/metadata/src/property_mapping.js +244 -0
  45. package/src/ngtsc/metadata/src/util.d.ts +2 -3
  46. package/src/ngtsc/metadata/src/util.js +9 -9
  47. package/src/ngtsc/modulewithproviders/src/scanner.js +2 -2
  48. package/src/ngtsc/reflection/src/host.d.ts +1 -1
  49. package/src/ngtsc/reflection/src/host.js +1 -1
  50. package/src/ngtsc/reflection/src/type_to_value.js +6 -2
  51. package/src/ngtsc/scope/src/local.d.ts +1 -0
  52. package/src/ngtsc/scope/src/local.js +2 -1
  53. package/src/ngtsc/translator/index.d.ts +1 -1
  54. package/src/ngtsc/translator/index.js +3 -2
  55. package/src/ngtsc/translator/src/translator.d.ts +8 -1
  56. package/src/ngtsc/translator/src/translator.js +185 -111
  57. package/src/ngtsc/typecheck/api/api.d.ts +3 -1
  58. package/src/ngtsc/typecheck/api/api.js +1 -1
  59. package/src/ngtsc/typecheck/diagnostics/index.d.ts +10 -0
  60. package/src/ngtsc/typecheck/diagnostics/index.js +23 -0
  61. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +33 -0
  62. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +114 -0
  63. package/src/ngtsc/typecheck/diagnostics/src/id.d.ts +11 -0
  64. package/src/ngtsc/typecheck/diagnostics/src/id.js +37 -0
  65. package/src/ngtsc/typecheck/index.d.ts +0 -1
  66. package/src/ngtsc/typecheck/index.js +3 -5
  67. package/src/ngtsc/typecheck/src/checker.js +1 -1
  68. package/src/ngtsc/typecheck/src/context.d.ts +1 -1
  69. package/src/ngtsc/typecheck/src/context.js +3 -3
  70. package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -22
  71. package/src/ngtsc/typecheck/src/diagnostics.js +5 -96
  72. package/src/ngtsc/typecheck/src/dom.d.ts +2 -1
  73. package/src/ngtsc/typecheck/src/dom.js +3 -3
  74. package/src/ngtsc/typecheck/src/environment.js +4 -4
  75. package/src/ngtsc/typecheck/src/oob.d.ts +2 -1
  76. package/src/ngtsc/typecheck/src/oob.js +3 -3
  77. package/src/ngtsc/typecheck/src/source.js +5 -18
  78. package/src/ngtsc/typecheck/src/type_check_block.js +49 -95
  79. package/src/transformers/node_emitter.d.ts +2 -8
  80. package/src/transformers/node_emitter.js +54 -68
  81. package/src/transformers/node_emitter_transform.js +8 -8
  82. package/src/transformers/util.d.ts +6 -0
  83. package/src/transformers/util.js +11 -2
  84. package/src/version.js +1 -1
@@ -11,7 +11,7 @@
11
11
  if (v !== undefined) module.exports = v;
12
12
  }
13
13
  else if (typeof define === "function" && define.amd) {
14
- define("@angular/compiler-cli/src/ngtsc/metadata/src/dts", ["require", "exports", "tslib", "typescript", "@angular/compiler-cli/src/ngtsc/imports", "@angular/compiler-cli/src/ngtsc/reflection", "@angular/compiler-cli/src/ngtsc/metadata/src/util"], factory);
14
+ define("@angular/compiler-cli/src/ngtsc/metadata/src/dts", ["require", "exports", "tslib", "typescript", "@angular/compiler-cli/src/ngtsc/imports", "@angular/compiler-cli/src/ngtsc/reflection", "@angular/compiler-cli/src/ngtsc/metadata/src/property_mapping", "@angular/compiler-cli/src/ngtsc/metadata/src/util"], factory);
15
15
  }
16
16
  })(function (require, exports) {
17
17
  "use strict";
@@ -21,6 +21,7 @@
21
21
  var ts = require("typescript");
22
22
  var imports_1 = require("@angular/compiler-cli/src/ngtsc/imports");
23
23
  var reflection_1 = require("@angular/compiler-cli/src/ngtsc/reflection");
24
+ var property_mapping_1 = require("@angular/compiler-cli/src/ngtsc/metadata/src/property_mapping");
24
25
  var util_1 = require("@angular/compiler-cli/src/ngtsc/metadata/src/util");
25
26
  /**
26
27
  * A `MetadataReader` that can read metadata from `.d.ts` files, which have static Ivy properties
@@ -79,8 +80,10 @@
79
80
  // The type metadata was the wrong shape.
80
81
  return null;
81
82
  }
82
- var inputs = util_1.readStringMapType(def.type.typeArguments[3]);
83
- return tslib_1.__assign(tslib_1.__assign({ ref: ref, name: clazz.name.text, isComponent: def.name === 'ɵcmp', selector: util_1.readStringType(def.type.typeArguments[1]), exportAs: util_1.readStringArrayType(def.type.typeArguments[2]), inputs: inputs, outputs: util_1.readStringMapType(def.type.typeArguments[4]), queries: util_1.readStringArrayType(def.type.typeArguments[5]) }, util_1.extractDirectiveTypeCheckMeta(clazz, inputs, this.reflector)), { baseClass: readBaseClass(clazz, this.checker, this.reflector) });
83
+ var inputs = property_mapping_1.ClassPropertyMapping.fromMappedObject(util_1.readStringMapType(def.type.typeArguments[3]));
84
+ var outputs = property_mapping_1.ClassPropertyMapping.fromMappedObject(util_1.readStringMapType(def.type.typeArguments[4]));
85
+ return tslib_1.__assign(tslib_1.__assign({ ref: ref, name: clazz.name.text, isComponent: def.name === 'ɵcmp', selector: util_1.readStringType(def.type.typeArguments[1]), exportAs: util_1.readStringArrayType(def.type.typeArguments[2]), inputs: inputs,
86
+ outputs: outputs, queries: util_1.readStringArrayType(def.type.typeArguments[5]) }, util_1.extractDirectiveTypeCheckMeta(clazz, inputs, this.reflector)), { baseClass: readBaseClass(clazz, this.checker, this.reflector) });
84
87
  };
85
88
  /**
86
89
  * Read pipe metadata from a referenced class in a .d.ts file.
@@ -148,4 +151,4 @@
148
151
  return null;
149
152
  }
150
153
  });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9tZXRhZGF0YS9zcmMvZHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFFakMsbUVBQXdDO0lBQ3hDLHlFQUEyRjtJQUczRiwwRUFBd0k7SUFFeEk7OztPQUdHO0lBQ0g7UUFDRSwyQkFBb0IsT0FBdUIsRUFBVSxTQUF5QjtZQUExRCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtZQUFVLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQUcsQ0FBQztRQUVsRjs7Ozs7V0FLRztRQUNILCtDQUFtQixHQUFuQixVQUFvQixHQUFnQztZQUNsRCxJQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLElBQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUN6RCx3RkFBd0Y7WUFDeEYsOERBQThEO1lBQzlELElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM1RCxVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQXpDLENBQXlDLENBQUMsQ0FBQztZQUN6RCxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07WUFDSCw4REFBOEQ7WUFDOUQsV0FBVyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDdEUsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUztnQkFDNUMsV0FBVyxD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LE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtSZWZlcmVuY2V9IGZyb20gJy4uLy4uL2ltcG9ydHMnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9uLCBpc05hbWVkQ2xhc3NEZWNsYXJhdGlvbiwgUmVmbGVjdGlvbkhvc3R9IGZyb20gJy4uLy4uL3JlZmxlY3Rpb24nO1xuXG5pbXBvcnQge0RpcmVjdGl2ZU1ldGEsIE1ldGFkYXRhUmVhZGVyLCBOZ01vZHVsZU1ldGEsIFBpcGVNZXRhfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge2V4dHJhY3REaXJlY3RpdmVUeXBlQ2hlY2tNZXRhLCBleHRyYWN0UmVmZXJlbmNlc0Zyb21UeXBlLCByZWFkU3RyaW5nQXJyYXlUeXBlLCByZWFkU3RyaW5nTWFwVHlwZSwgcmVhZFN0cmluZ1R5cGV9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogQSBgTWV0YWRhdGFSZWFkZXJgIHRoYXQgY2FuIHJlYWQgbWV0YWRhdGEgZnJvbSBgLmQudHNgIGZpbGVzLCB3aGljaCBoYXZlIHN0YXRpYyBJdnkgcHJvcGVydGllc1xuICogZnJvbSBhbiB1cHN0cmVhbSBjb21waWxhdGlvbiBhbHJlYWR5LlxuICovXG5leHBvcnQgY2xhc3MgRHRzTWV0YWRhdGFSZWFkZXIgaW1wbGVtZW50cyBNZXRhZGF0YVJlYWRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsIHByaXZhdGUgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCkge31cblxuICAvKipcbiAgICogUmVhZCB0aGUgbWV0YWRhdGEgZnJvbSBhIGNsYXNzIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBjb21waWxlZCBzb21laG93IChlaXRoZXIgaXQncyBpbiBhIC5kLnRzXG4gICAqIGZpbGUsIG9yIGluIGEgLnRzIGZpbGUgd2l0aCBhIGhhbmR3cml0dGVuIGRlZmluaXRpb24pLlxuICAgKlxuICAgKiBAcGFyYW0gcmVmIGBSZWZlcmVuY2VgIHRvIHRoZSBjbGFzcyBvZiBpbnRlcmVzdCwgd2l0aCB0aGUgY29udGV4dCBvZiBob3cgaXQgd2FzIG9idGFpbmVkLlxuICAgKi9cbiAgZ2V0TmdNb2R1bGVNZXRhZGF0YShyZWY6IFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPik6IE5nTW9kdWxlTWV0YXxudWxsIHtcbiAgICBjb25zdCBjbGF6eiA9IHJlZi5ub2RlO1xuICAgIGNvbnN0IHJlc29sdXRpb25Db250ZXh0ID0gY2xhenouZ2V0U291cmNlRmlsZSgpLmZpbGVOYW1lO1xuICAgIC8vIFRoaXMgb3BlcmF0aW9uIGlzIGV4cGxpY2l0bHkgbm90IG1lbW9pemVkLCBhcyBpdCBkZXBlbmRzIG9uIGByZWYub3duZWRCeU1vZHVsZUd1ZXNzYC5cbiAgICAvLyBUT0RPKGFseGh1Yik6IGludmVzdGlnYXRlIGNhY2hpbmcgb2YgLmQudHMgbW9kdWxlIG1ldGFkYXRhLlxuICAgIGNvbnN0IG5nTW9kdWxlRGVmID0gdGhpcy5yZWZsZWN0b3IuZ2V0TWVtYmVyc09mQ2xhc3MoY2xhenopLmZpbmQoXG4gICAgICAgIG1lbWJlciA9PiBtZW1iZXIubmFtZSA9PT0gJ8m1bW9kJyAmJiBtZW1iZXIuaXNTdGF0aWMpO1xuICAgIGlmIChuZ01vZHVsZURlZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBzaGFwZSBvZiB0aGUgbmdNb2R1bGVEZWYgdHlwZSBpcyBjb3JyZWN0LlxuICAgICAgICBuZ01vZHVsZURlZi50eXBlID09PSBudWxsIHx8ICF0cy5pc1R5cGVSZWZlcmVuY2VOb2RlKG5nTW9kdWxlRGVmLnR5cGUpIHx8XG4gICAgICAgIG5nTW9kdWxlRGVmLnR5cGUudHlwZUFyZ3VtZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIG5nTW9kdWxlRGVmLnR5cGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT09IDQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIFJlYWQgdGhlIE1vZHVsZURhdGEgb3V0IG9mIHRoZSB0eXBlIGFyZ3VtZW50cy5cbiAgICBjb25zdCBbXywgZGVjbGFyYXRpb25NZXRhZGF0YSwgaW1wb3J0TWV0YWRhdGEsIGV4cG9ydE1ldGFkYXRhXSA9IG5nTW9kdWxlRGVmLnR5cGUudHlwZUFyZ3VtZW50cztcbiAgICByZXR1cm4ge1xuICAgICAgcmVmLFxuICAgICAgZGVjbGFyYXRpb25zOiBleHRyYWN0UmVmZXJlbmNlc0Zyb21UeXBlKFxuICAgICAgICAgIHRoaXMuY2hlY2tlciwgZGVjbGFyYXRpb25NZXRhZGF0YSwgcmVmLm93bmVkQnlNb2R1bGVHdWVzcywgcmVzb2x1dGlvbkNvbnRleHQpLFxuICAgICAgZXhwb3J0czogZXh0cmFjdFJlZmVyZW5jZXNGcm9tVHlwZShcbiAgICAgICAgICB0aGlzLmNoZWNrZXIsIGV4cG9ydE1ldGFkYXRhLCByZWYub3duZWRCeU1vZHVsZUd1ZXNzLCByZXNvbHV0aW9uQ29udGV4dCksXG4gICAgICBpbXBvcnRzOiBleHRyYWN0UmVmZXJlbmNlc0Zyb21UeXBlKFxuICAgICAgICAgIHRoaXMuY2hlY2tlciwgaW1wb3J0TWV0YWRhdGEsIHJlZi5vd25lZEJ5TW9kdWxlR3Vlc3MsIHJlc29sdXRpb25Db250ZXh0KSxcbiAgICAgIHNjaGVtYXM6IFtdLFxuICAgICAgcmF3RGVjbGFyYXRpb25zOiBudWxsLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVhZCBkaXJlY3RpdmUgKG9yIGNvbXBvbmVudCkgbWV0YWRhdGEgZnJvbSBhIHJlZmVyZW5jZWQgY2xhc3MgaW4gYSAuZC50cyBmaWxlLlxuICAgKi9cbiAgZ2V0RGlyZWN0aXZlTWV0YWRhdGEocmVmOiBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbj4pOiBEaXJlY3RpdmVNZXRhfG51bGwge1xuICAgIGNvbnN0IGNsYXp6ID0gcmVmLm5vZGU7XG4gICAgY29uc3QgZGVmID0gdGhpcy5yZWZsZWN0b3IuZ2V0TWVtYmVyc09mQ2xhc3MoY2xhenopLmZpbmQoXG4gICAgICAgIGZpZWxkID0+IGZpZWxkLmlzU3RhdGljICYmIChmaWVsZC5uYW1lID09PSAnybVjbXAnIHx8IGZpZWxkLm5hbWUgPT09ICfJtWRpcicpKTtcbiAgICBpZiAoZGVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIE5vIGRlZmluaXRpb24gY291bGQgYmUgZm91bmQuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkZWYudHlwZSA9PT0gbnVsbCB8fCAhdHMuaXNUeXBlUmVmZXJlbmNlTm9kZShkZWYudHlwZSkgfHxcbiAgICAgICAgZGVmLnR5cGUudHlwZUFyZ3VtZW50cyA9PT0gdW5kZWZpbmVkIHx8IGRlZi50eXBlLnR5cGVBcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgICAgLy8gVGhlIHR5cGUgbWV0YWRhdGEgd2FzIHRoZSB3cm9uZyBzaGFwZS5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0cyA9IHJlYWRTdHJpbmdNYXBUeXBlKGRlZi50eXBlLnR5cGVBcmd1bWVudHNbM10pO1xuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICBuYW1lOiBjbGF6ei5uYW1lLnRleHQsXG4gICAgICBpc0NvbXBvbmVudDogZGVmLm5hbWUgPT09ICfJtWNtcCcsXG4gICAgICBzZWxlY3RvcjogcmVhZFN0cmluZ1R5cGUoZGVmLnR5cGUudHlwZUFyZ3VtZW50c1sxXSksXG4gICAgICBleHBvcnRBczogcmVhZFN0cmluZ0FycmF5VHlwZShkZWYudHlwZS50eXBlQXJndW1lbnRzWzJdKSxcbiAgICAgIGlucHV0cyxcbiAgICAgIG91dHB1dHM6IHJlYWRTdHJpbmdNYXBUeXBlKGRlZi50eXBlLnR5cGVBcmd1bWVudHNbNF0pLFxuICAgICAgcXVlcmllczogcmVhZFN0cmluZ0FycmF5VHlwZShkZWYudHlwZS50eXBlQXJndW1lbnRzWzVdKSxcbiAgICAgIC4uLmV4dHJhY3REaXJlY3RpdmVUeXBlQ2hlY2tNZXRhKGNsYXp6LCBpbnB1dHMsIHRoaXMucmVmbGVjdG9yKSxcbiAgICAgIGJhc2VDbGFzczogcmVhZEJhc2VDbGFzcyhjbGF6eiwgdGhpcy5jaGVja2VyLCB0aGlzLnJlZmxlY3RvciksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIHBpcGUgbWV0YWRhdGEgZnJvbSBhIHJlZmVyZW5jZWQgY2xhc3MgaW4gYSAuZC50cyBmaWxlLlxuICAgKi9cbiAgZ2V0UGlwZU1ldGFkYXRhKHJlZjogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+KTogUGlwZU1ldGF8bnVsbCB7XG4gICAgY29uc3QgZGVmID0gdGhpcy5yZWZsZWN0b3IuZ2V0TWVtYmVyc09mQ2xhc3MocmVmLm5vZGUpLmZpbmQoXG4gICAgICAgIGZpZWxkID0+IGZpZWxkLmlzU3RhdGljICYmIGZpZWxkLm5hbWUgPT09ICfJtXBpcGUnKTtcbiAgICBpZiAoZGVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIE5vIGRlZmluaXRpb24gY291bGQgYmUgZm91bmQuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkZWYudHlwZSA9PT0gbnVsbCB8fCAhdHMuaXNUeXBlUmVmZXJlbmNlTm9kZShkZWYudHlwZSkgfHxcbiAgICAgICAgZGVmLnR5cGUudHlwZUFyZ3VtZW50cyA9PT0gdW5kZWZpbmVkIHx8IGRlZi50eXBlLnR5cGVBcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgICAgLy8gVGhlIHR5cGUgbWV0YWRhdGEgd2FzIHRoZSB3cm9uZyBzaGFwZS5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCB0eXBlID0gZGVmLnR5cGUudHlwZUFyZ3VtZW50c1sxXTtcbiAgICBpZiAoIXRzLmlzTGl0ZXJhbFR5cGVOb2RlKHR5cGUpIHx8ICF0cy5pc1N0cmluZ0xpdGVyYWwodHlwZS5saXRlcmFsKSkge1xuICAgICAgLy8gVGhlIHR5cGUgbWV0YWRhdGEgd2FzIHRoZSB3cm9uZyB0eXBlLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSB0eXBlLmxpdGVyYWwudGV4dDtcbiAgICByZXR1cm4ge3JlZiwgbmFtZX07XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhZEJhc2VDbGFzcyhjbGF6ejogQ2xhc3NEZWNsYXJhdGlvbiwgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsIHJlZmxlY3RvcjogUmVmbGVjdGlvbkhvc3QpOlxuICAgIFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPnwnZHluYW1pYyd8bnVsbCB7XG4gIGlmICghaXNOYW1lZENsYXNzRGVjbGFyYXRpb24oY2xhenopKSB7XG4gICAgLy8gVGVjaG5pY2FsbHkgdGhpcyBpcyBhbiBlcnJvciBpbiBhIC5kLnRzIGZpbGUsIGJ1dCBmb3IgdGhlIHB1cnBvc2VzIG9mIGZpbmRpbmcgdGhlIGJhc2UgY2xhc3NcbiAgICAvLyBpdCdzIGlnbm9yZWQuXG4gICAgcmV0dXJuIHJlZmxlY3Rvci5oYXNCYXNlQ2xhc3MoY2xhenopID8gJ2R5bmFtaWMnIDogbnVsbDtcbiAgfVxuXG4gIGlmIChjbGF6ei5oZXJpdGFnZUNsYXVzZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAoY29uc3QgY2xhdXNlIG9mIGNsYXp6Lmhlcml0YWdlQ2xhdXNlcykge1xuICAgICAgaWYgKGNsYXVzZS50b2tlbiA9PT0gdHMuU3ludGF4S2luZC5FeHRlbmRzS2V5d29yZCkge1xuICAgICAgICBjb25zdCBiYXNlRXhwciA9IGNsYXVzZS50eXBlc1swXS5leHByZXNzaW9uO1xuICAgICAgICBsZXQgc3ltYm9sID0gY2hlY2tlci5nZXRTeW1ib2xBdExvY2F0aW9uKGJhc2VFeHByKTtcbiAgICAgICAgaWYgKHN5bWJvbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuICdkeW5hbWljJztcbiAgICAgICAgfSBlbHNlIGlmIChzeW1ib2wuZmxhZ3MgJiB0cy5TeW1ib2xGbGFncy5BbGlhcykge1xuICAgICAgICAgIHN5bWJvbCA9IGNoZWNrZXIuZ2V0QWxpYXNlZFN5bWJvbChzeW1ib2wpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzeW1ib2wudmFsdWVEZWNsYXJhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBpc05hbWVkQ2xhc3NEZWNsYXJhdGlvbihzeW1ib2wudmFsdWVEZWNsYXJhdGlvbikpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlZmVyZW5jZShzeW1ib2wudmFsdWVEZWNsYXJhdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICdkeW5hbWljJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9tZXRhZGF0YS9zcmMvZHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFFakMsbUVBQXdDO0lBQ3hDLHlFQUEyRjtJQUczRixrR0FBd0Q7SUFDeEQsMEVBQXdJO0lBRXhJOzs7T0FHRztJQUNIO1FBQ0UsMkJBQW9CLE9BQXVCLEVBQVUsU0FBeUI7WUFBMUQsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7WUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUFHLENBQUM7UUFFbEY7Ozs7O1dBS0c7UUFDSCwrQ0FBbUIsR0FBbkIsVUFBb0IsR0FBZ0M7WUFDbEQsSUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUN2QixJQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDekQsd0ZBQXdGO1lBQ3hGLDhEQUE4RDtZQUM5RCxJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDNUQsVUFBQSxNQUFNLElBQUksT0FBQSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxFQUF6QyxDQUF5QyxDQUFDLENBQUM7WUFDekQsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFO2dCQUM3QixPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNO1lBQ0gsOERBQThEO1lBQzlELFdBQVcsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RFLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVM7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TUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7eUJBQy9DOzZCQUFNOzRCQUNMLE9BQU8sU0FBUyxDQUFDO3lCQUNsQjtxQkFDRjtpQkFDRjs7Ozs7Ozs7O1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7UmVmZXJlbmNlfSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7Q2xhc3NEZWNsYXJhdGlvbiwgaXNOYW1lZENsYXNzRGVjbGFyYXRpb24sIFJlZmxlY3Rpb25Ib3N0fSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcblxuaW1wb3J0IHtEaXJlY3RpdmVNZXRhLCBNZXRhZGF0YVJlYWRlciwgTmdNb2R1bGVNZXRhLCBQaXBlTWV0YX0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtDbGFzc1Byb3BlcnR5TWFwcGluZ30gZnJvbSAnLi9wcm9wZXJ0eV9tYXBwaW5nJztcbmltcG9ydCB7ZXh0cmFjdERpcmVjdGl2ZVR5cGVDaGVja01ldGEsIGV4dHJhY3RSZWZlcmVuY2VzRnJvbVR5cGUsIHJlYWRTdHJpbmdBcnJheVR5cGUsIHJlYWRTdHJpbmdNYXBUeXBlLCByZWFkU3RyaW5nVHlwZX0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBBIGBNZXRhZGF0YVJlYWRlcmAgdGhhdCBjYW4gcmVhZCBtZXRhZGF0YSBmcm9tIGAuZC50c2AgZmlsZXMsIHdoaWNoIGhhdmUgc3RhdGljIEl2eSBwcm9wZXJ0aWVzXG4gKiBmcm9tIGFuIHVwc3RyZWFtIGNvbXBpbGF0aW9uIGFscmVhZHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBEdHNNZXRhZGF0YVJlYWRlciBpbXBsZW1lbnRzIE1ldGFkYXRhUmVhZGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgcHJpdmF0ZSByZWZsZWN0b3I6IFJlZmxlY3Rpb25Ib3N0KSB7fVxuXG4gIC8qKlxuICAgKiBSZWFkIHRoZSBtZXRhZGF0YSBmcm9tIGEgY2xhc3MgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIGNvbXBpbGVkIHNvbWVob3cgKGVpdGhlciBpdCdzIGluIGEgLmQudHNcbiAgICogZmlsZSwgb3IgaW4gYSAudHMgZmlsZSB3aXRoIGEgaGFuZHdyaXR0ZW4gZGVmaW5pdGlvbikuXG4gICAqXG4gICAqIEBwYXJhbSByZWYgYFJlZmVyZW5jZWAgdG8gdGhlIGNsYXNzIG9mIGludGVyZXN0LCB3aXRoIHRoZSBjb250ZXh0IG9mIGhvdyBpdCB3YXMgb2J0YWluZWQuXG4gICAqL1xuICBnZXROZ01vZHVsZU1ldGFkYXRhKHJlZjogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+KTogTmdNb2R1bGVNZXRhfG51bGwge1xuICAgIGNvbnN0IGNsYXp6ID0gcmVmLm5vZGU7XG4gICAgY29uc3QgcmVzb2x1dGlvbkNvbnRleHQgPSBjbGF6ei5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWU7XG4gICAgLy8gVGhpcyBvcGVyYXRpb24gaXMgZXhwbGljaXRseSBub3QgbWVtb2l6ZWQsIGFzIGl0IGRlcGVuZHMgb24gYHJlZi5vd25lZEJ5TW9kdWxlR3Vlc3NgLlxuICAgIC8vIFRPRE8oYWx4aHViKTogaW52ZXN0aWdhdGUgY2FjaGluZyBvZiAuZC50cyBtb2R1bGUgbWV0YWRhdGEuXG4gICAgY29uc3QgbmdNb2R1bGVEZWYgPSB0aGlzLnJlZmxlY3Rvci5nZXRNZW1iZXJzT2ZDbGFzcyhjbGF6eikuZmluZChcbiAgICAgICAgbWVtYmVyID0+IG1lbWJlci5uYW1lID09PSAnybVtb2QnICYmIG1lbWJlci5pc1N0YXRpYyk7XG4gICAgaWYgKG5nTW9kdWxlRGVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIHNoYXBlIG9mIHRoZSBuZ01vZHVsZURlZiB0eXBlIGlzIGNvcnJlY3QuXG4gICAgICAgIG5nTW9kdWxlRGVmLnR5cGUgPT09IG51bGwgfHwgIXRzLmlzVHlwZVJlZmVyZW5jZU5vZGUobmdNb2R1bGVEZWYudHlwZSkgfHxcbiAgICAgICAgbmdNb2R1bGVEZWYudHlwZS50eXBlQXJndW1lbnRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgbmdNb2R1bGVEZWYudHlwZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPT0gNCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gUmVhZCB0aGUgTW9kdWxlRGF0YSBvdXQgb2YgdGhlIHR5cGUgYXJndW1lbnRzLlxuICAgIGNvbnN0IFtfLCBkZWNsYXJhdGlvbk1ldGFkYXRhLCBpbXBvcnRNZXRhZGF0YSwgZXhwb3J0TWV0YWRhdGFdID0gbmdNb2R1bGVEZWYudHlwZS50eXBlQXJndW1lbnRzO1xuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICBkZWNsYXJhdGlvbnM6IGV4dHJhY3RSZWZlcmVuY2VzRnJvbVR5cGUoXG4gICAgICAgICAgdGhpcy5jaGVja2VyLCBkZWNsYXJhdGlvbk1ldGFkYXRhLCByZWYub3duZWRCeU1vZHVsZUd1ZXNzLCByZXNvbHV0aW9uQ29udGV4dCksXG4gICAgICBleHBvcnRzOiBleHRyYWN0UmVmZXJlbmNlc0Zyb21UeXBlKFxuICAgICAgICAgIHRoaXMuY2hlY2tlciwgZXhwb3J0TWV0YWRhdGEsIHJlZi5vd25lZEJ5TW9kdWxlR3Vlc3MsIHJlc29sdXRpb25Db250ZXh0KSxcbiAgICAgIGltcG9ydHM6IGV4dHJhY3RSZWZlcmVuY2VzRnJvbVR5cGUoXG4gICAgICAgICAgdGhpcy5jaGVja2VyLCBpbXBvcnRNZXRhZGF0YSwgcmVmLm93bmVkQnlNb2R1bGVHdWVzcywgcmVzb2x1dGlvbkNvbnRleHQpLFxuICAgICAgc2NoZW1hczogW10sXG4gICAgICByYXdEZWNsYXJhdGlvbnM6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIGRpcmVjdGl2ZSAob3IgY29tcG9uZW50KSBtZXRhZGF0YSBmcm9tIGEgcmVmZXJlbmNlZCBjbGFzcyBpbiBhIC5kLnRzIGZpbGUuXG4gICAqL1xuICBnZXREaXJlY3RpdmVNZXRhZGF0YShyZWY6IFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPik6IERpcmVjdGl2ZU1ldGF8bnVsbCB7XG4gICAgY29uc3QgY2xhenogPSByZWYubm9kZTtcbiAgICBjb25zdCBkZWYgPSB0aGlzLnJlZmxlY3Rvci5nZXRNZW1iZXJzT2ZDbGFzcyhjbGF6eikuZmluZChcbiAgICAgICAgZmllbGQgPT4gZmllbGQuaXNTdGF0aWMgJiYgKGZpZWxkLm5hbWUgPT09ICfJtWNtcCcgfHwgZmllbGQubmFtZSA9PT0gJ8m1ZGlyJykpO1xuICAgIGlmIChkZWYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gTm8gZGVmaW5pdGlvbiBjb3VsZCBiZSBmb3VuZC5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRlZi50eXBlID09PSBudWxsIHx8ICF0cy5pc1R5cGVSZWZlcmVuY2VOb2RlKGRlZi50eXBlKSB8fFxuICAgICAgICBkZWYudHlwZS50eXBlQXJndW1lbnRzID09PSB1bmRlZmluZWQgfHwgZGVmLnR5cGUudHlwZUFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgICAvLyBUaGUgdHlwZSBtZXRhZGF0YSB3YXMgdGhlIHdyb25nIHNoYXBlLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgaW5wdXRzID1cbiAgICAgICAgQ2xhc3NQcm9wZXJ0eU1hcHBpbmcuZnJvbU1hcHBlZE9iamVjdChyZWFkU3RyaW5nTWFwVHlwZShkZWYudHlwZS50eXBlQXJndW1lbnRzWzNdKSk7XG4gICAgY29uc3Qgb3V0cHV0cyA9XG4gICAgICAgIENsYXNzUHJvcGVydHlNYXBwaW5nLmZyb21NYXBwZWRPYmplY3QocmVhZFN0cmluZ01hcFR5cGUoZGVmLnR5cGUudHlwZUFyZ3VtZW50c1s0XSkpO1xuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICBuYW1lOiBjbGF6ei5uYW1lLnRleHQsXG4gICAgICBpc0NvbXBvbmVudDogZGVmLm5hbWUgPT09ICfJtWNtcCcsXG4gICAgICBzZWxlY3RvcjogcmVhZFN0cmluZ1R5cGUoZGVmLnR5cGUudHlwZUFyZ3VtZW50c1sxXSksXG4gICAgICBleHBvcnRBczogcmVhZFN0cmluZ0FycmF5VHlwZShkZWYudHlwZS50eXBlQXJndW1lbnRzWzJdKSxcbiAgICAgIGlucHV0cyxcbiAgICAgIG91dHB1dHMsXG4gICAgICBxdWVyaWVzOiByZWFkU3RyaW5nQXJyYXlUeXBlKGRlZi50eXBlLnR5cGVBcmd1bWVudHNbNV0pLFxuICAgICAgLi4uZXh0cmFjdERpcmVjdGl2ZVR5cGVDaGVja01ldGEoY2xhenosIGlucHV0cywgdGhpcy5yZWZsZWN0b3IpLFxuICAgICAgYmFzZUNsYXNzOiByZWFkQmFzZUNsYXNzKGNsYXp6LCB0aGlzLmNoZWNrZXIsIHRoaXMucmVmbGVjdG9yKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWQgcGlwZSBtZXRhZGF0YSBmcm9tIGEgcmVmZXJlbmNlZCBjbGFzcyBpbiBhIC5kLnRzIGZpbGUuXG4gICAqL1xuICBnZXRQaXBlTWV0YWRhdGEocmVmOiBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbj4pOiBQaXBlTWV0YXxudWxsIHtcbiAgICBjb25zdCBkZWYgPSB0aGlzLnJlZmxlY3Rvci5nZXRNZW1iZXJzT2ZDbGFzcyhyZWYubm9kZSkuZmluZChcbiAgICAgICAgZmllbGQgPT4gZmllbGQuaXNTdGF0aWMgJiYgZmllbGQubmFtZSA9PT0gJ8m1cGlwZScpO1xuICAgIGlmIChkZWYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gTm8gZGVmaW5pdGlvbiBjb3VsZCBiZSBmb3VuZC5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRlZi50eXBlID09PSBudWxsIHx8ICF0cy5pc1R5cGVSZWZlcmVuY2VOb2RlKGRlZi50eXBlKSB8fFxuICAgICAgICBkZWYudHlwZS50eXBlQXJndW1lbnRzID09PSB1bmRlZmluZWQgfHwgZGVmLnR5cGUudHlwZUFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgICAvLyBUaGUgdHlwZSBtZXRhZGF0YSB3YXMgdGhlIHdyb25nIHNoYXBlLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHR5cGUgPSBkZWYudHlwZS50eXBlQXJndW1lbnRzWzFdO1xuICAgIGlmICghdHMuaXNMaXRlcmFsVHlwZU5vZGUodHlwZSkgfHwgIXRzLmlzU3RyaW5nTGl0ZXJhbCh0eXBlLmxpdGVyYWwpKSB7XG4gICAgICAvLyBUaGUgdHlwZSBtZXRhZGF0YSB3YXMgdGhlIHdyb25nIHR5cGUuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IHR5cGUubGl0ZXJhbC50ZXh0O1xuICAgIHJldHVybiB7cmVmLCBuYW1lfTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkQmFzZUNsYXNzKGNsYXp6OiBDbGFzc0RlY2xhcmF0aW9uLCBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCk6XG4gICAgUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+fCdkeW5hbWljJ3xudWxsIHtcbiAgaWYgKCFpc05hbWVkQ2xhc3NEZWNsYXJhdGlvbihjbGF6eikpIHtcbiAgICAvLyBUZWNobmljYWxseSB0aGlzIGlzIGFuIGVycm9yIGluIGEgLmQudHMgZmlsZSwgYnV0IGZvciB0aGUgcHVycG9zZXMgb2YgZmluZGluZyB0aGUgYmFzZSBjbGFzc1xuICAgIC8vIGl0J3MgaWdub3JlZC5cbiAgICByZXR1cm4gcmVmbGVjdG9yLmhhc0Jhc2VDbGFzcyhjbGF6eikgPyAnZHluYW1pYycgOiBudWxsO1xuICB9XG5cbiAgaWYgKGNsYXp6Lmhlcml0YWdlQ2xhdXNlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChjb25zdCBjbGF1c2Ugb2YgY2xhenouaGVyaXRhZ2VDbGF1c2VzKSB7XG4gICAgICBpZiAoY2xhdXNlLnRva2VuID09PSB0cy5TeW50YXhLaW5kLkV4dGVuZHNLZXl3b3JkKSB7XG4gICAgICAgIGNvbnN0IGJhc2VFeHByID0gY2xhdXNlLnR5cGVzWzBdLmV4cHJlc3Npb247XG4gICAgICAgIGxldCBzeW1ib2wgPSBjaGVja2VyLmdldFN5bWJvbEF0TG9jYXRpb24oYmFzZUV4cHIpO1xuICAgICAgICBpZiAoc3ltYm9sID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gJ2R5bmFtaWMnO1xuICAgICAgICB9IGVsc2UgaWYgKHN5bWJvbC5mbGFncyAmIHRzLlN5bWJvbEZsYWdzLkFsaWFzKSB7XG4gICAgICAgICAgc3ltYm9sID0gY2hlY2tlci5nZXRBbGlhc2VkU3ltYm9sKHN5bWJvbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN5bWJvbC52YWx1ZURlY2xhcmF0aW9uICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGlzTmFtZWRDbGFzc0RlY2xhcmF0aW9uKHN5bWJvbC52YWx1ZURlY2xhcmF0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBuZXcgUmVmZXJlbmNlKHN5bWJvbC52YWx1ZURlY2xhcmF0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gJ2R5bmFtaWMnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuIl19
@@ -7,8 +7,8 @@
7
7
  */
8
8
  /// <amd-module name="@angular/compiler-cli/src/ngtsc/metadata/src/inheritance" />
9
9
  import { Reference } from '../../imports';
10
- import { DirectiveMeta, MetadataReader } from '../../metadata';
11
10
  import { ClassDeclaration } from '../../reflection';
11
+ import { DirectiveMeta, MetadataReader } from './api';
12
12
  /**
13
13
  * Given a reference to a directive, return a flattened version of its `DirectiveMeta` metadata
14
14
  * which includes metadata from its entire inheritance chain.
@@ -11,13 +11,14 @@
11
11
  if (v !== undefined) module.exports = v;
12
12
  }
13
13
  else if (typeof define === "function" && define.amd) {
14
- define("@angular/compiler-cli/src/ngtsc/metadata/src/inheritance", ["require", "exports", "tslib"], factory);
14
+ define("@angular/compiler-cli/src/ngtsc/metadata/src/inheritance", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/metadata/src/property_mapping"], factory);
15
15
  }
16
16
  })(function (require, exports) {
17
17
  "use strict";
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.flattenInheritedDirectiveMetadata = void 0;
20
20
  var tslib_1 = require("tslib");
21
+ var property_mapping_1 = require("@angular/compiler-cli/src/ngtsc/metadata/src/property_mapping");
21
22
  /**
22
23
  * Given a reference to a directive, return a flattened version of its `DirectiveMeta` metadata
23
24
  * which includes metadata from its entire inheritance chain.
@@ -31,13 +32,16 @@
31
32
  if (topMeta === null) {
32
33
  throw new Error("Metadata not found for directive: " + dir.debugName);
33
34
  }
34
- var inputs = {};
35
- var outputs = {};
35
+ if (topMeta.baseClass === null) {
36
+ return topMeta;
37
+ }
36
38
  var coercedInputFields = new Set();
37
39
  var undeclaredInputFields = new Set();
38
40
  var restrictedInputFields = new Set();
39
41
  var stringLiteralInputFields = new Set();
40
42
  var isDynamic = false;
43
+ var inputs = property_mapping_1.ClassPropertyMapping.empty();
44
+ var outputs = property_mapping_1.ClassPropertyMapping.empty();
41
45
  var addMetadata = function (meta) {
42
46
  var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
43
47
  if (meta.baseClass === 'dynamic') {
@@ -53,8 +57,8 @@
53
57
  isDynamic = true;
54
58
  }
55
59
  }
56
- inputs = tslib_1.__assign(tslib_1.__assign({}, inputs), meta.inputs);
57
- outputs = tslib_1.__assign(tslib_1.__assign({}, outputs), meta.outputs);
60
+ inputs = property_mapping_1.ClassPropertyMapping.merge(inputs, meta.inputs);
61
+ outputs = property_mapping_1.ClassPropertyMapping.merge(outputs, meta.outputs);
58
62
  try {
59
63
  for (var _e = tslib_1.__values(meta.coercedInputFields), _f = _e.next(); !_f.done; _f = _e.next()) {
60
64
  var coercedInputField = _f.value;
@@ -118,4 +122,4 @@
118
122
  }
119
123
  exports.flattenInheritedDirectiveMetadata = flattenInheritedDirectiveMetadata;
120
124
  });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5oZXJpdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL21ldGFkYXRhL3NyYy9pbmhlcml0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBTUg7Ozs7Ozs7T0FPRztJQUNILFNBQWdCLGlDQUFpQyxDQUM3QyxNQUFzQixFQUFFLEdBQWdDO1FBQzFELElBQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBcUMsR0FBRyxDQUFDLFNBQVcsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsSUFBSSxNQUFNLEdBQTZDLEVBQUUsQ0FBQztRQUMxRCxJQUFJLE9BQU8sR0FBNEIsRUFBRSxDQUFDO1FBQzFDLElBQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUM3QyxJQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDaEQsSUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ2hELElBQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUNuRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBTSxXQUFXLEdBQUcsVUFBQyxJQUFtQjs7WUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRTtnQkFDaEMsU0FBUyxHQUFHLElBQUksQ0FBQzthQUNsQjtpQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO2dCQUNsQyxJQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM3RCxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7b0JBQ3JCLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDdkI7cUJBQU07b0JBQ0wsc0VBQXNFO29CQUN0RSxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjthQUNGO1lBQ0QsTUFBTSx5Q0FBTyxNQUFNLEdBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JDLE9BQU8seUNBQU8sT0FBTyxHQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzs7Z0JBRXhDLEtBQWdDLElBQUEsS0FBQSxpQkFBQSxJQUFJLENBQUMsa0JBQWtCLENBQUEsZ0JBQUEsNEJBQUU7b0JBQXBELElBQU0saUJBQWlCLFdBQUE7b0JBQzFCLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2lCQUMzQzs7Ozs7Ozs7OztnQkFDRCxLQUFtQyxJQUFBLEtBQUEsaUJBQUEsSUFBSSxDQUFDLHFCQUFxQixDQUFBLGdCQUFBLDRCQUFFO29CQUExRCxJQUFNLG9CQUFvQixXQUFBO29CQUM3QixxQkFBcUIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztpQkFDakQ7Ozs7Ozs7Ozs7Z0JBQ0QsS0FBbUMsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxxQkFBcUIsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBMUQsSUFBTSxvQkFBb0IsV0FBQTtvQkFDN0IscUJBQXFCLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7aUJBQ2pEOzs7Ozs7Ozs7O2dCQUNELEtBQW9CLElBQUEsS0FBQSxpQkFBQSxJQUFJLENBQUMsd0JBQXdCLENBQUEsZ0JBQUEsNEJBQUU7b0JBQTlDLElBQU0sS0FBSyxXQUFBO29CQUNkLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDckM7Ozs7Ozs7OztRQUNILENBQUMsQ0FBQztRQUVGLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVyQiw2Q0FDSyxPQUFPLEtBQ1YsTUFBTSxRQUFBO1lBQ04sT0FBTyxTQUFBO1lBQ1Asa0JBQWtCLG9CQUFBO1lBQ2xCLHFCQUFxQix1QkFBQTtZQUNyQixxQkFBcUIsdUJBQUE7WUFDckIsd0JBQXdCLDBCQUFBLEVBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUN2QztJQUNKLENBQUM7SUF4REQsOEVBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UmVmZXJlbmNlfSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7RGlyZWN0aXZlTWV0YSwgTWV0YWRhdGFSZWFkZXJ9IGZyb20gJy4uLy4uL21ldGFkYXRhJztcbmltcG9ydCB7Q2xhc3NEZWNsYXJhdGlvbn0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5cbi8qKlxuICogR2l2ZW4gYSByZWZlcmVuY2UgdG8gYSBkaXJlY3RpdmUsIHJldHVybiBhIGZsYXR0ZW5lZCB2ZXJzaW9uIG9mIGl0cyBgRGlyZWN0aXZlTWV0YWAgbWV0YWRhdGFcbiAqIHdoaWNoIGluY2x1ZGVzIG1ldGFkYXRhIGZyb20gaXRzIGVudGlyZSBpbmhlcml0YW5jZSBjaGFpbi5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgYERpcmVjdGl2ZU1ldGFgIHdpbGwgZWl0aGVyIGhhdmUgYGJhc2VDbGFzczogbnVsbGAgaWYgdGhlIGluaGVyaXRhbmNlIGNoYWluIGNvdWxkIGJlXG4gKiBmdWxseSByZXNvbHZlZCwgb3IgYGJhc2VDbGFzczogJ2R5bmFtaWMnYCBpZiB0aGUgaW5oZXJpdGFuY2UgY2hhaW4gY291bGQgbm90IGJlIGNvbXBsZXRlbHlcbiAqIGZvbGxvd2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbkluaGVyaXRlZERpcmVjdGl2ZU1ldGFkYXRhKFxuICAgIHJlYWRlcjogTWV0YWRhdGFSZWFkZXIsIGRpcjogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+KTogRGlyZWN0aXZlTWV0YSB7XG4gIGNvbnN0IHRvcE1ldGEgPSByZWFkZXIuZ2V0RGlyZWN0aXZlTWV0YWRhdGEoZGlyKTtcbiAgaWYgKHRvcE1ldGEgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1ldGFkYXRhIG5vdCBmb3VuZCBmb3IgZGlyZWN0aXZlOiAke2Rpci5kZWJ1Z05hbWV9YCk7XG4gIH1cblxuICBsZXQgaW5wdXRzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfFtzdHJpbmcsIHN0cmluZ119ID0ge307XG4gIGxldCBvdXRwdXRzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICBjb25zdCBjb2VyY2VkSW5wdXRGaWVsZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgdW5kZWNsYXJlZElucHV0RmllbGRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IHJlc3RyaWN0ZWRJbnB1dEZpZWxkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBzdHJpbmdMaXRlcmFsSW5wdXRGaWVsZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgbGV0IGlzRHluYW1pYyA9IGZhbHNlO1xuXG4gIGNvbnN0IGFkZE1ldGFkYXRhID0gKG1ldGE6IERpcmVjdGl2ZU1ldGEpOiB2b2lkID0+IHtcbiAgICBpZiAobWV0YS5iYXNlQ2xhc3MgPT09ICdkeW5hbWljJykge1xuICAgICAgaXNEeW5hbWljID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKG1ldGEuYmFzZUNsYXNzICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBiYXNlTWV0YSA9IHJlYWRlci5nZXREaXJlY3RpdmVNZXRhZGF0YShtZXRhLmJhc2VDbGFzcyk7XG4gICAgICBpZiAoYmFzZU1ldGEgIT09IG51bGwpIHtcbiAgICAgICAgYWRkTWV0YWRhdGEoYmFzZU1ldGEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTWlzc2luZyBtZXRhZGF0YSBmb3IgdGhlIGJhc2UgY2xhc3MgbWVhbnMgaXQncyBlZmZlY3RpdmVseSBkeW5hbWljLlxuICAgICAgICBpc0R5bmFtaWMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpbnB1dHMgPSB7Li4uaW5wdXRzLCAuLi5tZXRhLmlucHV0c307XG4gICAgb3V0cHV0cyA9IHsuLi5vdXRwdXRzLCAuLi5tZXRhLm91dHB1dHN9O1xuXG4gICAgZm9yIChjb25zdCBjb2VyY2VkSW5wdXRGaWVsZCBvZiBtZXRhLmNvZXJjZWRJbnB1dEZpZWxkcykge1xuICAgICAgY29lcmNlZElucHV0RmllbGRzLmFkZChjb2VyY2VkSW5wdXRGaWVsZCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgdW5kZWNsYXJlZElucHV0RmllbGQgb2YgbWV0YS51bmRlY2xhcmVkSW5wdXRGaWVsZHMpIHtcbiAgICAgIHVuZGVjbGFyZWRJbnB1dEZpZWxkcy5hZGQodW5kZWNsYXJlZElucHV0RmllbGQpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHJlc3RyaWN0ZWRJbnB1dEZpZWxkIG9mIG1ldGEucmVzdHJpY3RlZElucHV0RmllbGRzKSB7XG4gICAgICByZXN0cmljdGVkSW5wdXRGaWVsZHMuYWRkKHJlc3RyaWN0ZWRJbnB1dEZpZWxkKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBtZXRhLnN0cmluZ0xpdGVyYWxJbnB1dEZpZWxkcykge1xuICAgICAgc3RyaW5nTGl0ZXJhbElucHV0RmllbGRzLmFkZChmaWVsZCk7XG4gICAgfVxuICB9O1xuXG4gIGFkZE1ldGFkYXRhKHRvcE1ldGEpO1xuXG4gIHJldHVybiB7XG4gICAgLi4udG9wTWV0YSxcbiAgICBpbnB1dHMsXG4gICAgb3V0cHV0cyxcbiAgICBjb2VyY2VkSW5wdXRGaWVsZHMsXG4gICAgdW5kZWNsYXJlZElucHV0RmllbGRzLFxuICAgIHJlc3RyaWN0ZWRJbnB1dEZpZWxkcyxcbiAgICBzdHJpbmdMaXRlcmFsSW5wdXRGaWVsZHMsXG4gICAgYmFzZUNsYXNzOiBpc0R5bmFtaWMgPyAnZHluYW1pYycgOiBudWxsLFxuICB9O1xufVxuIl19
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5oZXJpdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL21ldGFkYXRhL3NyYy9pbmhlcml0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBTUgsa0dBQTJFO0lBRTNFOzs7Ozs7O09BT0c7SUFDSCxTQUFnQixpQ0FBaUMsQ0FDN0MsTUFBc0IsRUFBRSxHQUFnQztRQUMxRCxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXFDLEdBQUcsQ0FBQyxTQUFXLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDOUIsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxJQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO1FBQ3hELElBQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7UUFDM0QsSUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUMzRCxJQUFNLHdCQUF3QixHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO1FBQzlELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLE1BQU0sR0FBRyx1Q0FBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQyxJQUFJLE9BQU8sR0FBRyx1Q0FBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUUzQyxJQUFNLFdBQVcsR0FBRyxVQUFDLElBQW1COztZQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO2dCQUNoQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ2xCO2lCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xDLElBQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdELElBQUksUUFBUSxLQUFLLElBQUksRUFBRTtvQkFDckIsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDTCxzRUFBc0U7b0JBQ3RFLFNBQVMsR0FBRyxJQUFJLENBQUM7aUJBQ2xCO2FBQ0Y7WUFFRCxNQUFNLEdBQUcsdUNBQW9CLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekQsT0FBTyxHQUFHLHVDQUFvQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztnQkFFNUQsS0FBZ0MsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBcEQsSUFBTSxpQkFBaUIsV0FBQTtvQkFDMUIsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7aUJBQzNDOzs7Ozs7Ozs7O2dCQUNELEtBQW1DLElBQUEsS0FBQSxpQkFBQSxJQUFJLENBQUMscUJBQXFCLENBQUEsZ0JBQUEsNEJBQUU7b0JBQTFELElBQU0sb0JBQW9CLFdBQUE7b0JBQzdCLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2lCQUNqRDs7Ozs7Ozs7OztnQkFDRCxLQUFtQyxJQUFBLEtBQUEsaUJBQUEsSUFBSSxDQUFDLHFCQUFxQixDQUFBLGdCQUFBLDRCQUFFO29CQUExRCxJQUFNLG9CQUFvQixXQUFBO29CQUM3QixxQkFBcUIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztpQkFDakQ7Ozs7Ozs7Ozs7Z0JBQ0QsS0FBb0IsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyx3QkFBd0IsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBOUMsSUFBTSxLQUFLLFdBQUE7b0JBQ2Qsd0JBQXdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNyQzs7Ozs7Ozs7O1FBQ0gsQ0FBQyxDQUFDO1FBRUYsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXJCLDZDQUNLLE9BQU8sS0FDVixNQUFNLFFBQUE7WUFDTixPQUFPLFNBQUE7WUFDUCxrQkFBa0Isb0JBQUE7WUFDbEIscUJBQXFCLHVCQUFBO1lBQ3JCLHFCQUFxQix1QkFBQTtZQUNyQix3QkFBd0IsMEJBQUEsRUFDeEIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQ3ZDO0lBQ0osQ0FBQztJQTVERCw4RUE0REMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtSZWZlcmVuY2V9IGZyb20gJy4uLy4uL2ltcG9ydHMnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcblxuaW1wb3J0IHtEaXJlY3RpdmVNZXRhLCBNZXRhZGF0YVJlYWRlcn0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtDbGFzc1Byb3BlcnR5TWFwcGluZywgQ2xhc3NQcm9wZXJ0eU5hbWV9IGZyb20gJy4vcHJvcGVydHlfbWFwcGluZyc7XG5cbi8qKlxuICogR2l2ZW4gYSByZWZlcmVuY2UgdG8gYSBkaXJlY3RpdmUsIHJldHVybiBhIGZsYXR0ZW5lZCB2ZXJzaW9uIG9mIGl0cyBgRGlyZWN0aXZlTWV0YWAgbWV0YWRhdGFcbiAqIHdoaWNoIGluY2x1ZGVzIG1ldGFkYXRhIGZyb20gaXRzIGVudGlyZSBpbmhlcml0YW5jZSBjaGFpbi5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgYERpcmVjdGl2ZU1ldGFgIHdpbGwgZWl0aGVyIGhhdmUgYGJhc2VDbGFzczogbnVsbGAgaWYgdGhlIGluaGVyaXRhbmNlIGNoYWluIGNvdWxkIGJlXG4gKiBmdWxseSByZXNvbHZlZCwgb3IgYGJhc2VDbGFzczogJ2R5bmFtaWMnYCBpZiB0aGUgaW5oZXJpdGFuY2UgY2hhaW4gY291bGQgbm90IGJlIGNvbXBsZXRlbHlcbiAqIGZvbGxvd2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbkluaGVyaXRlZERpcmVjdGl2ZU1ldGFkYXRhKFxuICAgIHJlYWRlcjogTWV0YWRhdGFSZWFkZXIsIGRpcjogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+KTogRGlyZWN0aXZlTWV0YSB7XG4gIGNvbnN0IHRvcE1ldGEgPSByZWFkZXIuZ2V0RGlyZWN0aXZlTWV0YWRhdGEoZGlyKTtcbiAgaWYgKHRvcE1ldGEgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1ldGFkYXRhIG5vdCBmb3VuZCBmb3IgZGlyZWN0aXZlOiAke2Rpci5kZWJ1Z05hbWV9YCk7XG4gIH1cbiAgaWYgKHRvcE1ldGEuYmFzZUNsYXNzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHRvcE1ldGE7XG4gIH1cblxuICBjb25zdCBjb2VyY2VkSW5wdXRGaWVsZHMgPSBuZXcgU2V0PENsYXNzUHJvcGVydHlOYW1lPigpO1xuICBjb25zdCB1bmRlY2xhcmVkSW5wdXRGaWVsZHMgPSBuZXcgU2V0PENsYXNzUHJvcGVydHlOYW1lPigpO1xuICBjb25zdCByZXN0cmljdGVkSW5wdXRGaWVsZHMgPSBuZXcgU2V0PENsYXNzUHJvcGVydHlOYW1lPigpO1xuICBjb25zdCBzdHJpbmdMaXRlcmFsSW5wdXRGaWVsZHMgPSBuZXcgU2V0PENsYXNzUHJvcGVydHlOYW1lPigpO1xuICBsZXQgaXNEeW5hbWljID0gZmFsc2U7XG4gIGxldCBpbnB1dHMgPSBDbGFzc1Byb3BlcnR5TWFwcGluZy5lbXB0eSgpO1xuICBsZXQgb3V0cHV0cyA9IENsYXNzUHJvcGVydHlNYXBwaW5nLmVtcHR5KCk7XG5cbiAgY29uc3QgYWRkTWV0YWRhdGEgPSAobWV0YTogRGlyZWN0aXZlTWV0YSk6IHZvaWQgPT4ge1xuICAgIGlmIChtZXRhLmJhc2VDbGFzcyA9PT0gJ2R5bmFtaWMnKSB7XG4gICAgICBpc0R5bmFtaWMgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAobWV0YS5iYXNlQ2xhc3MgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGJhc2VNZXRhID0gcmVhZGVyLmdldERpcmVjdGl2ZU1ldGFkYXRhKG1ldGEuYmFzZUNsYXNzKTtcbiAgICAgIGlmIChiYXNlTWV0YSAhPT0gbnVsbCkge1xuICAgICAgICBhZGRNZXRhZGF0YShiYXNlTWV0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBNaXNzaW5nIG1ldGFkYXRhIGZvciB0aGUgYmFzZSBjbGFzcyBtZWFucyBpdCdzIGVmZmVjdGl2ZWx5IGR5bmFtaWMuXG4gICAgICAgIGlzRHluYW1pYyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRzID0gQ2xhc3NQcm9wZXJ0eU1hcHBpbmcubWVyZ2UoaW5wdXRzLCBtZXRhLmlucHV0cyk7XG4gICAgb3V0cHV0cyA9IENsYXNzUHJvcGVydHlNYXBwaW5nLm1lcmdlKG91dHB1dHMsIG1ldGEub3V0cHV0cyk7XG5cbiAgICBmb3IgKGNvbnN0IGNvZXJjZWRJbnB1dEZpZWxkIG9mIG1ldGEuY29lcmNlZElucHV0RmllbGRzKSB7XG4gICAgICBjb2VyY2VkSW5wdXRGaWVsZHMuYWRkKGNvZXJjZWRJbnB1dEZpZWxkKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB1bmRlY2xhcmVkSW5wdXRGaWVsZCBvZiBtZXRhLnVuZGVjbGFyZWRJbnB1dEZpZWxkcykge1xuICAgICAgdW5kZWNsYXJlZElucHV0RmllbGRzLmFkZCh1bmRlY2xhcmVkSW5wdXRGaWVsZCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVzdHJpY3RlZElucHV0RmllbGQgb2YgbWV0YS5yZXN0cmljdGVkSW5wdXRGaWVsZHMpIHtcbiAgICAgIHJlc3RyaWN0ZWRJbnB1dEZpZWxkcy5hZGQocmVzdHJpY3RlZElucHV0RmllbGQpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIG1ldGEuc3RyaW5nTGl0ZXJhbElucHV0RmllbGRzKSB7XG4gICAgICBzdHJpbmdMaXRlcmFsSW5wdXRGaWVsZHMuYWRkKGZpZWxkKTtcbiAgICB9XG4gIH07XG5cbiAgYWRkTWV0YWRhdGEodG9wTWV0YSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi50b3BNZXRhLFxuICAgIGlucHV0cyxcbiAgICBvdXRwdXRzLFxuICAgIGNvZXJjZWRJbnB1dEZpZWxkcyxcbiAgICB1bmRlY2xhcmVkSW5wdXRGaWVsZHMsXG4gICAgcmVzdHJpY3RlZElucHV0RmllbGRzLFxuICAgIHN0cmluZ0xpdGVyYWxJbnB1dEZpZWxkcyxcbiAgICBiYXNlQ2xhc3M6IGlzRHluYW1pYyA/ICdkeW5hbWljJyA6IG51bGwsXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,117 @@
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/metadata/src/property_mapping" />
9
+ import { InputOutputPropertySet } from '@angular/compiler';
10
+ /**
11
+ * The name of a class property that backs an input or output declared by a directive or component.
12
+ *
13
+ * This type exists for documentation only.
14
+ */
15
+ export declare type ClassPropertyName = string;
16
+ /**
17
+ * The name by which an input or output of a directive or component is bound in an Angular template.
18
+ *
19
+ * This type exists for documentation only.
20
+ */
21
+ export declare type BindingPropertyName = string;
22
+ /**
23
+ * An input or output of a directive that has both a named JavaScript class property on a component
24
+ * or directive class, as well as an Angular template property name used for binding.
25
+ */
26
+ export interface InputOrOutput {
27
+ /**
28
+ * The name of the JavaScript property on the component or directive instance for this input or
29
+ * output.
30
+ */
31
+ readonly classPropertyName: ClassPropertyName;
32
+ /**
33
+ * The property name used to bind this input or output in an Angular template.
34
+ */
35
+ readonly bindingPropertyName: BindingPropertyName;
36
+ }
37
+ /**
38
+ * A mapping of component property and template binding property names, for example containing the
39
+ * inputs of a particular directive or component.
40
+ *
41
+ * A single component property has exactly one input/output annotation (and therefore one binding
42
+ * property name) associated with it, but the same binding property name may be shared across many
43
+ * component property names.
44
+ *
45
+ * Allows bidirectional querying of the mapping - looking up all inputs/outputs with a given
46
+ * property name, or mapping from a specific class property to its binding property name.
47
+ */
48
+ export declare class ClassPropertyMapping implements InputOutputPropertySet {
49
+ /**
50
+ * Mapping from class property names to the single `InputOrOutput` for that class property.
51
+ */
52
+ private forwardMap;
53
+ /**
54
+ * Mapping from property names to one or more `InputOrOutput`s which share that name.
55
+ */
56
+ private reverseMap;
57
+ private constructor();
58
+ /**
59
+ * Construct a `ClassPropertyMapping` with no entries.
60
+ */
61
+ static empty(): ClassPropertyMapping;
62
+ /**
63
+ * Construct a `ClassPropertyMapping` from a primitive JS object which maps class property names
64
+ * to either binding property names or an array that contains both names, which is used in on-disk
65
+ * metadata formats (e.g. in .d.ts files).
66
+ */
67
+ static fromMappedObject(obj: {
68
+ [classPropertyName: string]: BindingPropertyName | [ClassPropertyName, BindingPropertyName];
69
+ }): ClassPropertyMapping;
70
+ /**
71
+ * Merge two mappings into one, with class properties from `b` taking precedence over class
72
+ * properties from `a`.
73
+ */
74
+ static merge(a: ClassPropertyMapping, b: ClassPropertyMapping): ClassPropertyMapping;
75
+ /**
76
+ * All class property names mapped in this mapping.
77
+ */
78
+ get classPropertyNames(): ClassPropertyName[];
79
+ /**
80
+ * All binding property names mapped in this mapping.
81
+ */
82
+ get propertyNames(): BindingPropertyName[];
83
+ /**
84
+ * Check whether a mapping for the given property name exists.
85
+ */
86
+ hasBindingPropertyName(propertyName: BindingPropertyName): boolean;
87
+ /**
88
+ * Lookup all `InputOrOutput`s that use this `propertyName`.
89
+ */
90
+ getByBindingPropertyName(propertyName: string): ReadonlyArray<InputOrOutput> | null;
91
+ /**
92
+ * Lookup the `InputOrOutput` associated with a `classPropertyName`.
93
+ */
94
+ getByClassPropertyName(classPropertyName: string): InputOrOutput | null;
95
+ /**
96
+ * Convert this mapping to a primitive JS object which maps each class property directly to the
97
+ * binding property name associated with it.
98
+ */
99
+ toDirectMappedObject(): {
100
+ [classPropertyName: string]: BindingPropertyName;
101
+ };
102
+ /**
103
+ * Convert this mapping to a primitive JS object which maps each class property either to itself
104
+ * (for cases where the binding property name is the same) or to an array which contains both
105
+ * names if they differ.
106
+ *
107
+ * This object format is used when mappings are serialized (for example into .d.ts files).
108
+ */
109
+ toJointMappedObject(): {
110
+ [classPropertyName: string]: BindingPropertyName | [BindingPropertyName, ClassPropertyName];
111
+ };
112
+ /**
113
+ * Implement the iterator protocol and return entry objects which contain the class and binding
114
+ * property names (and are useful for destructuring).
115
+ */
116
+ [Symbol.iterator](): IterableIterator<[ClassPropertyName, BindingPropertyName]>;
117
+ }
@@ -0,0 +1,244 @@
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/metadata/src/property_mapping", ["require", "exports", "tslib"], factory);
15
+ }
16
+ })(function (require, exports) {
17
+ "use strict";
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.ClassPropertyMapping = void 0;
20
+ var tslib_1 = require("tslib");
21
+ /**
22
+ * A mapping of component property and template binding property names, for example containing the
23
+ * inputs of a particular directive or component.
24
+ *
25
+ * A single component property has exactly one input/output annotation (and therefore one binding
26
+ * property name) associated with it, but the same binding property name may be shared across many
27
+ * component property names.
28
+ *
29
+ * Allows bidirectional querying of the mapping - looking up all inputs/outputs with a given
30
+ * property name, or mapping from a specific class property to its binding property name.
31
+ */
32
+ var ClassPropertyMapping = /** @class */ (function () {
33
+ function ClassPropertyMapping(forwardMap) {
34
+ this.forwardMap = forwardMap;
35
+ this.reverseMap = reverseMapFromForwardMap(forwardMap);
36
+ }
37
+ /**
38
+ * Construct a `ClassPropertyMapping` with no entries.
39
+ */
40
+ ClassPropertyMapping.empty = function () {
41
+ return new ClassPropertyMapping(new Map());
42
+ };
43
+ /**
44
+ * Construct a `ClassPropertyMapping` from a primitive JS object which maps class property names
45
+ * to either binding property names or an array that contains both names, which is used in on-disk
46
+ * metadata formats (e.g. in .d.ts files).
47
+ */
48
+ ClassPropertyMapping.fromMappedObject = function (obj) {
49
+ var e_1, _a;
50
+ var forwardMap = new Map();
51
+ try {
52
+ for (var _b = tslib_1.__values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {
53
+ var classPropertyName = _c.value;
54
+ var value = obj[classPropertyName];
55
+ var bindingPropertyName = Array.isArray(value) ? value[0] : value;
56
+ var inputOrOutput = { classPropertyName: classPropertyName, bindingPropertyName: bindingPropertyName };
57
+ forwardMap.set(classPropertyName, inputOrOutput);
58
+ }
59
+ }
60
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
61
+ finally {
62
+ try {
63
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
64
+ }
65
+ finally { if (e_1) throw e_1.error; }
66
+ }
67
+ return new ClassPropertyMapping(forwardMap);
68
+ };
69
+ /**
70
+ * Merge two mappings into one, with class properties from `b` taking precedence over class
71
+ * properties from `a`.
72
+ */
73
+ ClassPropertyMapping.merge = function (a, b) {
74
+ var e_2, _a;
75
+ var forwardMap = new Map(a.forwardMap.entries());
76
+ try {
77
+ for (var _b = tslib_1.__values(b.forwardMap), _c = _b.next(); !_c.done; _c = _b.next()) {
78
+ var _d = tslib_1.__read(_c.value, 2), classPropertyName = _d[0], inputOrOutput = _d[1];
79
+ forwardMap.set(classPropertyName, inputOrOutput);
80
+ }
81
+ }
82
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
83
+ finally {
84
+ try {
85
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
86
+ }
87
+ finally { if (e_2) throw e_2.error; }
88
+ }
89
+ return new ClassPropertyMapping(forwardMap);
90
+ };
91
+ Object.defineProperty(ClassPropertyMapping.prototype, "classPropertyNames", {
92
+ /**
93
+ * All class property names mapped in this mapping.
94
+ */
95
+ get: function () {
96
+ return Array.from(this.forwardMap.keys());
97
+ },
98
+ enumerable: false,
99
+ configurable: true
100
+ });
101
+ Object.defineProperty(ClassPropertyMapping.prototype, "propertyNames", {
102
+ /**
103
+ * All binding property names mapped in this mapping.
104
+ */
105
+ get: function () {
106
+ return Array.from(this.reverseMap.keys());
107
+ },
108
+ enumerable: false,
109
+ configurable: true
110
+ });
111
+ /**
112
+ * Check whether a mapping for the given property name exists.
113
+ */
114
+ ClassPropertyMapping.prototype.hasBindingPropertyName = function (propertyName) {
115
+ return this.reverseMap.has(propertyName);
116
+ };
117
+ /**
118
+ * Lookup all `InputOrOutput`s that use this `propertyName`.
119
+ */
120
+ ClassPropertyMapping.prototype.getByBindingPropertyName = function (propertyName) {
121
+ return this.reverseMap.has(propertyName) ? this.reverseMap.get(propertyName) : null;
122
+ };
123
+ /**
124
+ * Lookup the `InputOrOutput` associated with a `classPropertyName`.
125
+ */
126
+ ClassPropertyMapping.prototype.getByClassPropertyName = function (classPropertyName) {
127
+ return this.forwardMap.has(classPropertyName) ? this.forwardMap.get(classPropertyName) : null;
128
+ };
129
+ /**
130
+ * Convert this mapping to a primitive JS object which maps each class property directly to the
131
+ * binding property name associated with it.
132
+ */
133
+ ClassPropertyMapping.prototype.toDirectMappedObject = function () {
134
+ var e_3, _a;
135
+ var obj = {};
136
+ try {
137
+ for (var _b = tslib_1.__values(this.forwardMap), _c = _b.next(); !_c.done; _c = _b.next()) {
138
+ var _d = tslib_1.__read(_c.value, 2), classPropertyName = _d[0], inputOrOutput = _d[1];
139
+ obj[classPropertyName] = inputOrOutput.bindingPropertyName;
140
+ }
141
+ }
142
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
143
+ finally {
144
+ try {
145
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
146
+ }
147
+ finally { if (e_3) throw e_3.error; }
148
+ }
149
+ return obj;
150
+ };
151
+ /**
152
+ * Convert this mapping to a primitive JS object which maps each class property either to itself
153
+ * (for cases where the binding property name is the same) or to an array which contains both
154
+ * names if they differ.
155
+ *
156
+ * This object format is used when mappings are serialized (for example into .d.ts files).
157
+ */
158
+ ClassPropertyMapping.prototype.toJointMappedObject = function () {
159
+ var e_4, _a;
160
+ var obj = {};
161
+ try {
162
+ for (var _b = tslib_1.__values(this.forwardMap), _c = _b.next(); !_c.done; _c = _b.next()) {
163
+ var _d = tslib_1.__read(_c.value, 2), classPropertyName = _d[0], inputOrOutput = _d[1];
164
+ if (inputOrOutput.bindingPropertyName === classPropertyName) {
165
+ obj[classPropertyName] = inputOrOutput.bindingPropertyName;
166
+ }
167
+ else {
168
+ obj[classPropertyName] = [inputOrOutput.bindingPropertyName, classPropertyName];
169
+ }
170
+ }
171
+ }
172
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
173
+ finally {
174
+ try {
175
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
176
+ }
177
+ finally { if (e_4) throw e_4.error; }
178
+ }
179
+ return obj;
180
+ };
181
+ /**
182
+ * Implement the iterator protocol and return entry objects which contain the class and binding
183
+ * property names (and are useful for destructuring).
184
+ */
185
+ ClassPropertyMapping.prototype[Symbol.iterator] = function () {
186
+ var _a, _b, _c, classPropertyName, inputOrOutput, e_5_1;
187
+ var e_5, _d;
188
+ return tslib_1.__generator(this, function (_e) {
189
+ switch (_e.label) {
190
+ case 0:
191
+ _e.trys.push([0, 5, 6, 7]);
192
+ _a = tslib_1.__values(this.forwardMap.entries()), _b = _a.next();
193
+ _e.label = 1;
194
+ case 1:
195
+ if (!!_b.done) return [3 /*break*/, 4];
196
+ _c = tslib_1.__read(_b.value, 2), classPropertyName = _c[0], inputOrOutput = _c[1];
197
+ return [4 /*yield*/, [classPropertyName, inputOrOutput.bindingPropertyName]];
198
+ case 2:
199
+ _e.sent();
200
+ _e.label = 3;
201
+ case 3:
202
+ _b = _a.next();
203
+ return [3 /*break*/, 1];
204
+ case 4: return [3 /*break*/, 7];
205
+ case 5:
206
+ e_5_1 = _e.sent();
207
+ e_5 = { error: e_5_1 };
208
+ return [3 /*break*/, 7];
209
+ case 6:
210
+ try {
211
+ if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
212
+ }
213
+ finally { if (e_5) throw e_5.error; }
214
+ return [7 /*endfinally*/];
215
+ case 7: return [2 /*return*/];
216
+ }
217
+ });
218
+ };
219
+ return ClassPropertyMapping;
220
+ }());
221
+ exports.ClassPropertyMapping = ClassPropertyMapping;
222
+ function reverseMapFromForwardMap(forwardMap) {
223
+ var e_6, _a;
224
+ var reverseMap = new Map();
225
+ try {
226
+ for (var forwardMap_1 = tslib_1.__values(forwardMap), forwardMap_1_1 = forwardMap_1.next(); !forwardMap_1_1.done; forwardMap_1_1 = forwardMap_1.next()) {
227
+ var _b = tslib_1.__read(forwardMap_1_1.value, 2), _ = _b[0], inputOrOutput = _b[1];
228
+ if (!reverseMap.has(inputOrOutput.bindingPropertyName)) {
229
+ reverseMap.set(inputOrOutput.bindingPropertyName, []);
230
+ }
231
+ reverseMap.get(inputOrOutput.bindingPropertyName).push(inputOrOutput);
232
+ }
233
+ }
234
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
235
+ finally {
236
+ try {
237
+ if (forwardMap_1_1 && !forwardMap_1_1.done && (_a = forwardMap_1.return)) _a.call(forwardMap_1);
238
+ }
239
+ finally { if (e_6) throw e_6.error; }
240
+ }
241
+ return reverseMap;
242
+ }
243
+ });
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHlfbWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvbWV0YWRhdGEvc3JjL3Byb3BlcnR5X21hcHBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7OztJQW1DSDs7Ozs7Ozs7OztPQVVHO0lBQ0g7UUFXRSw4QkFBb0IsVUFBaUQ7WUFDbkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQ7O1dBRUc7UUFDSSwwQkFBSyxHQUFaO1lBQ0UsT0FBTyxJQUFJLG9CQUFvQixDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQ7Ozs7V0FJRztRQUNJLHFDQUFnQixHQUF2QixVQUF3QixHQUV2Qjs7WUFDQyxJQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQzs7Z0JBRS9ELEtBQWdDLElBQUEsS0FBQSxpQkFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO29CQUE3QyxJQUFNLGlCQUFpQixXQUFBO29CQUMxQixJQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDckMsSUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDcEUsSUFBTSxhQUFhLEdBQWtCLEVBQUMsaUJBQWlCLG1CQUFBLEVBQUUsbUJBQW1CLHFCQUFBLEVBQUMsQ0FBQztvQkFDOUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIs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QWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5wdXRPdXRwdXRQcm9wZXJ0eVNldH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIGEgY2xhc3MgcHJvcGVydHkgdGhhdCBiYWNrcyBhbiBpbnB1dCBvciBvdXRwdXQgZGVjbGFyZWQgYnkgYSBkaXJlY3RpdmUgb3IgY29tcG9uZW50LlxuICpcbiAqIFRoaXMgdHlwZSBleGlzdHMgZm9yIGRvY3VtZW50YXRpb24gb25seS5cbiAqL1xuZXhwb3J0IHR5cGUgQ2xhc3NQcm9wZXJ0eU5hbWUgPSBzdHJpbmc7XG5cbi8qKlxuICogVGhlIG5hbWUgYnkgd2hpY2ggYW4gaW5wdXQgb3Igb3V0cHV0IG9mIGEgZGlyZWN0aXZlIG9yIGNvbXBvbmVudCBpcyBib3VuZCBpbiBhbiBBbmd1bGFyIHRlbXBsYXRlLlxuICpcbiAqIFRoaXMgdHlwZSBleGlzdHMgZm9yIGRvY3VtZW50YXRpb24gb25seS5cbiAqL1xuZXhwb3J0IHR5cGUgQmluZGluZ1Byb3BlcnR5TmFtZSA9IHN0cmluZztcblxuLyoqXG4gKiBBbiBpbnB1dCBvciBvdXRwdXQgb2YgYSBkaXJlY3RpdmUgdGhhdCBoYXMgYm90aCBhIG5hbWVkIEphdmFTY3JpcHQgY2xhc3MgcHJvcGVydHkgb24gYSBjb21wb25lbnRcbiAqIG9yIGRpcmVjdGl2ZSBjbGFzcywgYXMgd2VsbCBhcyBhbiBBbmd1bGFyIHRlbXBsYXRlIHByb3BlcnR5IG5hbWUgdXNlZCBmb3IgYmluZGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dE9yT3V0cHV0IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBKYXZhU2NyaXB0IHByb3BlcnR5IG9uIHRoZSBjb21wb25lbnQgb3IgZGlyZWN0aXZlIGluc3RhbmNlIGZvciB0aGlzIGlucHV0IG9yXG4gICAqIG91dHB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGNsYXNzUHJvcGVydHlOYW1lOiBDbGFzc1Byb3BlcnR5TmFtZTtcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IG5hbWUgdXNlZCB0byBiaW5kIHRoaXMgaW5wdXQgb3Igb3V0cHV0IGluIGFuIEFuZ3VsYXIgdGVtcGxhdGUuXG4gICAqL1xuICByZWFkb25seSBiaW5kaW5nUHJvcGVydHlOYW1lOiBCaW5kaW5nUHJvcGVydHlOYW1lO1xufVxuXG4vKipcbiAqIEEgbWFwcGluZyBvZiBjb21wb25lbnQgcHJvcGVydHkgYW5kIHRlbXBsYXRlIGJpbmRpbmcgcHJvcGVydHkgbmFtZXMsIGZvciBleGFtcGxlIGNvbnRhaW5pbmcgdGhlXG4gKiBpbnB1dHMgb2YgYSBwYXJ0aWN1bGFyIGRpcmVjdGl2ZSBvciBjb21wb25lbnQuXG4gKlxuICogQSBzaW5nbGUgY29tcG9uZW50IHByb3BlcnR5IGhhcyBleGFjdGx5IG9uZSBpbnB1dC9vdXRwdXQgYW5ub3RhdGlvbiAoYW5kIHRoZXJlZm9yZSBvbmUgYmluZGluZ1xuICogcHJvcGVydHkgbmFtZSkgYXNzb2NpYXRlZCB3aXRoIGl0LCBidXQgdGhlIHNhbWUgYmluZGluZyBwcm9wZXJ0eSBuYW1lIG1heSBiZSBzaGFyZWQgYWNyb3NzIG1hbnlcbiAqIGNvbXBvbmVudCBwcm9wZXJ0eSBuYW1lcy5cbiAqXG4gKiBBbGxvd3MgYmlkaXJlY3Rpb25hbCBxdWVyeWluZyBvZiB0aGUgbWFwcGluZyAtIGxvb2tpbmcgdXAgYWxsIGlucHV0cy9vdXRwdXRzIHdpdGggYSBnaXZlblxuICogcHJvcGVydHkgbmFtZSwgb3IgbWFwcGluZyBmcm9tIGEgc3BlY2lmaWMgY2xhc3MgcHJvcGVydHkgdG8gaXRzIGJpbmRpbmcgcHJvcGVydHkgbmFtZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsYXNzUHJvcGVydHlNYXBwaW5nIGltcGxlbWVudHMgSW5wdXRPdXRwdXRQcm9wZXJ0eVNldCB7XG4gIC8qKlxuICAgKiBNYXBwaW5nIGZyb20gY2xhc3MgcHJvcGVydHkgbmFtZXMgdG8gdGhlIHNpbmdsZSBgSW5wdXRPck91dHB1dGAgZm9yIHRoYXQgY2xhc3MgcHJvcGVydHkuXG4gICAqL1xuICBwcml2YXRlIGZvcndhcmRNYXA6IE1hcDxDbGFzc1Byb3BlcnR5TmFtZSwgSW5wdXRPck91dHB1dD47XG5cbiAgLyoqXG4gICAqIE1hcHBpbmcgZnJvbSBwcm9wZXJ0eSBuYW1lcyB0byBvbmUgb3IgbW9yZSBgSW5wdXRPck91dHB1dGBzIHdoaWNoIHNoYXJlIHRoYXQgbmFtZS5cbiAgICovXG4gIHByaXZhdGUgcmV2ZXJzZU1hcDogTWFwPEJpbmRpbmdQcm9wZXJ0eU5hbWUsIElucHV0T3JPdXRwdXRbXT47XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihmb3J3YXJkTWFwOiBNYXA8Q2xhc3NQcm9wZXJ0eU5hbWUsIElucHV0T3JPdXRwdXQ+KSB7XG4gICAgdGhpcy5mb3J3YXJkTWFwID0gZm9yd2FyZE1hcDtcbiAgICB0aGlzLnJldmVyc2VNYXAgPSByZXZlcnNlTWFwRnJvbUZvcndhcmRNYXAoZm9yd2FyZE1hcCk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0IGEgYENsYXNzUHJvcGVydHlNYXBwaW5nYCB3aXRoIG5vIGVudHJpZXMuXG4gICAqL1xuICBzdGF0aWMgZW1wdHkoKTogQ2xhc3NQcm9wZXJ0eU1hcHBpbmcge1xuICAgIHJldHVybiBuZXcgQ2xhc3NQcm9wZXJ0eU1hcHBpbmcobmV3IE1hcCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSBgQ2xhc3NQcm9wZXJ0eU1hcHBpbmdgIGZyb20gYSBwcmltaXRpdmUgSlMgb2JqZWN0IHdoaWNoIG1hcHMgY2xhc3MgcHJvcGVydHkgbmFtZXNcbiAgICogdG8gZWl0aGVyIGJpbmRpbmcgcHJvcGVydHkgbmFtZXMgb3IgYW4gYXJyYXkgdGhhdCBjb250YWlucyBib3RoIG5hbWVzLCB3aGljaCBpcyB1c2VkIGluIG9uLWRpc2tcbiAgICogbWV0YWRhdGEgZm9ybWF0cyAoZS5nLiBpbiAuZC50cyBmaWxlcykuXG4gICAqL1xuICBzdGF0aWMgZnJvbU1hcHBlZE9iamVjdChvYmo6IHtcbiAgICBbY2xhc3NQcm9wZXJ0eU5hbWU6IHN0cmluZ106IEJpbmRpbmdQcm9wZXJ0eU5hbWV8W0NsYXNzUHJvcGVydHlOYW1lLCBCaW5kaW5nUHJvcGVydHlOYW1lXVxuICB9KTogQ2xhc3NQcm9wZXJ0eU1hcHBpbmcge1xuICAgIGNvbnN0IGZvcndhcmRNYXAgPSBuZXcgTWFwPENsYXNzUHJvcGVydHlOYW1lLCBJbnB1dE9yT3V0cHV0PigpO1xuXG4gICAgZm9yIChjb25zdCBjbGFzc1Byb3BlcnR5TmFtZSBvZiBPYmplY3Qua2V5cyhvYmopKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG9ialtjbGFzc1Byb3BlcnR5TmFtZV07XG4gICAgICBjb25zdCBiaW5kaW5nUHJvcGVydHlOYW1lID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZVswXSA6IHZhbHVlO1xuICAgICAgY29uc3QgaW5wdXRPck91dHB1dDogSW5wdXRPck91dHB1dCA9IHtjbGFzc1Byb3BlcnR5TmFtZSwgYmluZGluZ1Byb3BlcnR5TmFtZX07XG4gICAgICBmb3J3YXJkTWFwLnNldChjbGFzc1Byb3BlcnR5TmFtZSwgaW5wdXRPck91dHB1dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDbGFzc1Byb3BlcnR5TWFwcGluZyhmb3J3YXJkTWFwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSB0d28gbWFwcGluZ3MgaW50byBvbmUsIHdpdGggY2xhc3MgcHJvcGVydGllcyBmcm9tIGBiYCB0YWtpbmcgcHJlY2VkZW5jZSBvdmVyIGNsYXNzXG4gICAqIHByb3BlcnRpZXMgZnJvbSBgYWAuXG4gICAqL1xuICBzdGF0aWMgbWVyZ2UoYTogQ2xhc3NQcm9wZXJ0eU1hcHBpbmcsIGI6IENsYXNzUHJvcGVydHlNYXBwaW5nKTogQ2xhc3NQcm9wZXJ0eU1hcHBpbmcge1xuICAgIGNvbnN0IGZvcndhcmRNYXAgPSBuZXcgTWFwPENsYXNzUHJvcGVydHlOYW1lLCBJbnB1dE9yT3V0cHV0PihhLmZvcndhcmRNYXAuZW50cmllcygpKTtcbiAgICBmb3IgKGNvbnN0IFtjbGFzc1Byb3BlcnR5TmFtZSwgaW5wdXRPck91dHB1dF0gb2YgYi5mb3J3YXJkTWFwKSB7XG4gICAgICBmb3J3YXJkTWFwLnNldChjbGFzc1Byb3BlcnR5TmFtZSwgaW5wdXRPck91dHB1dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDbGFzc1Byb3BlcnR5TWFwcGluZyhmb3J3YXJkTWFwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgY2xhc3MgcHJvcGVydHkgbmFtZXMgbWFwcGVkIGluIHRoaXMgbWFwcGluZy5cbiAgICovXG4gIGdldCBjbGFzc1Byb3BlcnR5TmFtZXMoKTogQ2xhc3NQcm9wZXJ0eU5hbWVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mb3J3YXJkTWFwLmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsIGJpbmRpbmcgcHJvcGVydHkgbmFtZXMgbWFwcGVkIGluIHRoaXMgbWFwcGluZy5cbiAgICovXG4gIGdldCBwcm9wZXJ0eU5hbWVzKCk6IEJpbmRpbmdQcm9wZXJ0eU5hbWVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5yZXZlcnNlTWFwLmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciBhIG1hcHBpbmcgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eSBuYW1lIGV4aXN0cy5cbiAgICovXG4gIGhhc0JpbmRpbmdQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lOiBCaW5kaW5nUHJvcGVydHlOYW1lKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5oYXMocHJvcGVydHlOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rdXAgYWxsIGBJbnB1dE9yT3V0cHV0YHMgdGhhdCB1c2UgdGhpcyBgcHJvcGVydHlOYW1lYC5cbiAgICovXG4gIGdldEJ5QmluZGluZ1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IFJlYWRvbmx5QXJyYXk8SW5wdXRPck91dHB1dD58bnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5oYXMocHJvcGVydHlOYW1lKSA/IHRoaXMucmV2ZXJzZU1hcC5nZXQocHJvcGVydHlOYW1lKSEgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIExvb2t1cCB0aGUgYElucHV0T3JPdXRwdXRgIGFzc29jaWF0ZWQgd2l0aCBhIGBjbGFzc1Byb3BlcnR5TmFtZWAuXG4gICAqL1xuICBnZXRCeUNsYXNzUHJvcGVydHlOYW1lKGNsYXNzUHJvcGVydHlOYW1lOiBzdHJpbmcpOiBJbnB1dE9yT3V0cHV0fG51bGwge1xuICAgIHJldHVybiB0aGlzLmZvcndhcmRNYXAuaGFzKGNsYXNzUHJvcGVydHlOYW1lKSA/IHRoaXMuZm9yd2FyZE1hcC5nZXQoY2xhc3NQcm9wZXJ0eU5hbWUpISA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCB0aGlzIG1hcHBpbmcgdG8gYSBwcmltaXRpdmUgSlMgb2JqZWN0IHdoaWNoIG1hcHMgZWFjaCBjbGFzcyBwcm9wZXJ0eSBkaXJlY3RseSB0byB0aGVcbiAgICogYmluZGluZyBwcm9wZXJ0eSBuYW1lIGFzc29jaWF0ZWQgd2l0aCBpdC5cbiAgICovXG4gIHRvRGlyZWN0TWFwcGVkT2JqZWN0KCk6IHtbY2xhc3NQcm9wZXJ0eU5hbWU6IHN0cmluZ106IEJpbmRpbmdQcm9wZXJ0eU5hbWV9IHtcbiAgICBjb25zdCBvYmo6IHtbY2xhc3NQcm9wZXJ0eU5hbWU6IHN0cmluZ106IEJpbmRpbmdQcm9wZXJ0eU5hbWV9ID0ge307XG4gICAgZm9yIChjb25zdCBbY2xhc3NQcm9wZXJ0eU5hbWUsIGlucHV0T3JPdXRwdXRdIG9mIHRoaXMuZm9yd2FyZE1hcCkge1xuICAgICAgb2JqW2NsYXNzUHJvcGVydHlOYW1lXSA9IGlucHV0T3JPdXRwdXQuYmluZGluZ1Byb3BlcnR5TmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoaXMgbWFwcGluZyB0byBhIHByaW1pdGl2ZSBKUyBvYmplY3Qgd2hpY2ggbWFwcyBlYWNoIGNsYXNzIHByb3BlcnR5IGVpdGhlciB0byBpdHNlbGZcbiAgICogKGZvciBjYXNlcyB3aGVyZSB0aGUgYmluZGluZyBwcm9wZXJ0eSBuYW1lIGlzIHRoZSBzYW1lKSBvciB0byBhbiBhcnJheSB3aGljaCBjb250YWlucyBib3RoXG4gICAqIG5hbWVzIGlmIHRoZXkgZGlmZmVyLlxuICAgKlxuICAgKiBUaGlzIG9iamVjdCBmb3JtYXQgaXMgdXNlZCB3aGVuIG1hcHBpbmdzIGFyZSBzZXJpYWxpemVkIChmb3IgZXhhbXBsZSBpbnRvIC5kLnRzIGZpbGVzKS5cbiAgICovXG4gIHRvSm9pbnRNYXBwZWRPYmplY3QoKTpcbiAgICAgIHtbY2xhc3NQcm9wZXJ0eU5hbWU6IHN0cmluZ106IEJpbmRpbmdQcm9wZXJ0eU5hbWV8W0JpbmRpbmdQcm9wZXJ0eU5hbWUsIENsYXNzUHJvcGVydHlOYW1lXX0ge1xuICAgIGNvbnN0IG9iajoge1xuICAgICAgW2NsYXNzUHJvcGVydHlOYW1lOiBzdHJpbmddOiBCaW5kaW5nUHJvcGVydHlOYW1lfFtCaW5kaW5nUHJvcGVydHlOYW1lLCBDbGFzc1Byb3BlcnR5TmFtZV1cbiAgICB9ID0ge307XG4gICAgZm9yIChjb25zdCBbY2xhc3NQcm9wZXJ0eU5hbWUsIGlucHV0T3JPdXRwdXRdIG9mIHRoaXMuZm9yd2FyZE1hcCkge1xuICAgICAgaWYgKGlucHV0T3JPdXRwdXQuYmluZGluZ1Byb3BlcnR5TmFtZSBhcyBzdHJpbmcgPT09IGNsYXNzUHJvcGVydHlOYW1lIGFzIHN0cmluZykge1xuICAgICAgICBvYmpbY2xhc3NQcm9wZXJ0eU5hbWVdID0gaW5wdXRPck91dHB1dC5iaW5kaW5nUHJvcGVydHlOYW1lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JqW2NsYXNzUHJvcGVydHlOYW1lXSA9IFtpbnB1dE9yT3V0cHV0LmJpbmRpbmdQcm9wZXJ0eU5hbWUsIGNsYXNzUHJvcGVydHlOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnQgdGhlIGl0ZXJhdG9yIHByb3RvY29sIGFuZCByZXR1cm4gZW50cnkgb2JqZWN0cyB3aGljaCBjb250YWluIHRoZSBjbGFzcyBhbmQgYmluZGluZ1xuICAgKiBwcm9wZXJ0eSBuYW1lcyAoYW5kIGFyZSB1c2VmdWwgZm9yIGRlc3RydWN0dXJpbmcpLlxuICAgKi9cbiAgKiBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPFtDbGFzc1Byb3BlcnR5TmFtZSwgQmluZGluZ1Byb3BlcnR5TmFtZV0+IHtcbiAgICBmb3IgKGNvbnN0IFtjbGFzc1Byb3BlcnR5TmFtZSwgaW5wdXRPck91dHB1dF0gb2YgdGhpcy5mb3J3YXJkTWFwLmVudHJpZXMoKSkge1xuICAgICAgeWllbGQgW2NsYXNzUHJvcGVydHlOYW1lLCBpbnB1dE9yT3V0cHV0LmJpbmRpbmdQcm9wZXJ0eU5hbWVdO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXZlcnNlTWFwRnJvbUZvcndhcmRNYXAoZm9yd2FyZE1hcDogTWFwPENsYXNzUHJvcGVydHlOYW1lLCBJbnB1dE9yT3V0cHV0Pik6XG4gICAgTWFwPEJpbmRpbmdQcm9wZXJ0eU5hbWUsIElucHV0T3JPdXRwdXRbXT4ge1xuICBjb25zdCByZXZlcnNlTWFwID0gbmV3IE1hcDxCaW5kaW5nUHJvcGVydHlOYW1lLCBJbnB1dE9yT3V0cHV0W10+KCk7XG4gIGZvciAoY29uc3QgW18sIGlucHV0T3JPdXRwdXRdIG9mIGZvcndhcmRNYXApIHtcbiAgICBpZiAoIXJldmVyc2VNYXAuaGFzKGlucHV0T3JPdXRwdXQuYmluZGluZ1Byb3BlcnR5TmFtZSkpIHtcbiAgICAgIHJldmVyc2VNYXAuc2V0KGlucHV0T3JPdXRwdXQuYmluZGluZ1Byb3BlcnR5TmFtZSwgW10pO1xuICAgIH1cblxuICAgIHJldmVyc2VNYXAuZ2V0KGlucHV0T3JPdXRwdXQuYmluZGluZ1Byb3BlcnR5TmFtZSkhLnB1c2goaW5wdXRPck91dHB1dCk7XG4gIH1cbiAgcmV0dXJuIHJldmVyc2VNYXA7XG59XG4iXX0=
@@ -10,6 +10,7 @@ import * as ts from 'typescript';
10
10
  import { Reference } from '../../imports';
11
11
  import { ClassDeclaration, ReflectionHost } from '../../reflection';
12
12
  import { DirectiveMeta, DirectiveTypeCheckMeta, MetadataReader, NgModuleMeta, PipeMeta } from './api';
13
+ import { ClassPropertyMapping } from './property_mapping';
13
14
  export declare function extractReferencesFromType(checker: ts.TypeChecker, def: ts.TypeNode, ngModuleImportedFrom: string | null, resolutionContext: string): Reference<ClassDeclaration>[];
14
15
  export declare function readStringType(type: ts.TypeNode): string | null;
15
16
  export declare function readStringMapType(type: ts.TypeNode): {
@@ -21,9 +22,7 @@ export declare function readStringArrayType(type: ts.TypeNode): string[];
21
22
  * that use the directive. This metadata does not contain information from a base class, if any,
22
23
  * making this metadata invariant to changes of inherited classes.
23
24
  */
24
- export declare function extractDirectiveTypeCheckMeta(node: ClassDeclaration, inputs: {
25
- [fieldName: string]: string | [string, string];
26
- }, reflector: ReflectionHost): DirectiveTypeCheckMeta;
25
+ export declare function extractDirectiveTypeCheckMeta(node: ClassDeclaration, inputs: ClassPropertyMapping, reflector: ReflectionHost): DirectiveTypeCheckMeta;
27
26
  /**
28
27
  * A `MetadataReader` that reads from an ordered set of child readers until it obtains the requested
29
28
  * metadata.