@angular/platform-server 13.0.0-next.5 → 13.0.0-next.9

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.
@@ -64,6 +64,7 @@ class DefaultServerRenderer2 {
64
64
  this.ngZone = ngZone;
65
65
  this.schema = schema;
66
66
  this.data = Object.create(null);
67
+ this.destroyNode = null;
67
68
  }
68
69
  destroy() { }
69
70
  createElement(name, namespace, debugInfo) {
@@ -214,7 +215,9 @@ class DefaultServerRenderer2 {
214
215
  const AT_CHARCODE = '@'.charCodeAt(0);
215
216
  function checkNoSyntheticProp(name, nameKind) {
216
217
  if (name.charCodeAt(0) === AT_CHARCODE) {
217
- throw new Error(`Found the synthetic ${nameKind} ${name}. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.`);
218
+ throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:
219
+ - Either \`BrowserAnimationsModule\` or \`NoopAnimationsModule\` are imported in your application.
220
+ - There is corresponding configuration for the animation named \`${name}\` defined in the \`animations\` field of the \`@Component\` decorator (see https://angular.io/api/core/Component#animations).`);
218
221
  }
219
222
  }
220
223
  class EmulatedEncapsulationServerRenderer2 extends DefaultServerRenderer2 {
@@ -266,4 +269,4 @@ function _writeStyleAttribute(element, styleMap) {
266
269
  }
267
270
  element.setAttribute('style', styleAttrValue);
268
271
  }
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3JlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0tc2VydmVyL3NyYy9zZXJ2ZXJfcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBRSxPQUFPLElBQUksTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUErQixtQkFBbUIsRUFBaUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLElBQUksYUFBYSxFQUFFLGVBQWUsSUFBSSxjQUFjLEVBQUUsaUJBQWlCLElBQUksZ0JBQWdCLEVBQUUscUJBQXFCLElBQUksb0JBQW9CLEVBQUUsa0JBQWtCLElBQUksaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUUxUCxNQUFNLFdBQVcsR0FBVSxFQUFFLENBQUM7QUFFOUIsTUFBTSxjQUFjLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO0FBR3RELE1BQU0sT0FBTyxzQkFBc0I7SUFLakMsWUFDWSxZQUEwQixFQUFVLE1BQWMsRUFDaEMsUUFBYSxFQUFVLGdCQUFrQztRQUQzRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDaEMsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFOL0UscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7UUFFaEQsV0FBTSxHQUFHLGNBQWMsQ0FBQztRQUs5QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksc0JBQXNCLENBQUMsWUFBWSxFQUFFLFFB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QUFFO2dCQUNwQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsS0FBSyxFQUFFLENBQUMsQ0FBQztpQkFDaEQ7Z0JBQ0QsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hELFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN0RDtTQUNGO0tBQ0Y7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxPQUFZLEVBQUUsUUFBa0M7SUFDNUUsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLEtBQUssTUFBTSxHQUFHLElBQUksUUFBUSxFQUFFO1FBQzFCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUU7WUFDcEIsY0FBYyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNuRDtLQUNGO0lBQ0QsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0RPQ1VNRU5ULCDJtWdldERPTSBhcyBnZXRET019IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0RvbUVsZW1lbnRTY2hlbWFSZWdpc3RyeX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyLCBSZW5kZXJlclN0eWxlRmxhZ3MyLCBSZW5kZXJlclR5cGUyLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0V2ZW50TWFuYWdlciwgybVmbGF0dGVuU3R5bGVzIGFzIGZsYXR0ZW5TdHlsZXMsIMm1TkFNRVNQQUNFX1VSSVMgYXMgTkFNRVNQQUNFX1VSSVMsIMm1U2hhcmVkU3R5bGVzSG9zdCBhcyBTaGFyZWRTdHlsZXNIb3N0LCDJtXNoaW1Db250ZW50QXR0cmlidXRlIGFzIHNoaW1Db250ZW50QXR0cmlidXRlLCDJtXNoaW1Ib3N0QXR0cmlidXRlIGFzIHNoaW1Ib3N0QXR0cmlidXRlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuY29uc3QgRU1QVFlfQVJSQVk6IGFueVtdID0gW107XG5cbmNvbnN0IERFRkFVTFRfU0NIRU1BID0gbmV3IERvbUVsZW1lbnRTY2hlbWFSZWdpc3RyeSgpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2VydmVyUmVuZGVyZXJGYWN0b3J5MiBpbXBsZW1lbnRzIFJlbmRlcmVyRmFjdG9yeTIge1xuICBwcml2YXRlIHJlbmRlcmVyQnlDb21wSWQgPSBuZXcgTWFwPHN0cmluZywgUmVuZGVyZXIyPigpO1xuICBwcml2YXRlIGRlZmF1bHRSZW5kZXJlcjogUmVuZGVyZXIyO1xuICBwcml2YXRlIHNjaGVtYSA9IERFRkFVTFRfU0NIRU1BO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBldmVudE1hbmFnZXI6IEV2ZW50TWFuYWdlciwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSwgcHJpdmF0ZSBzaGFyZWRTdHlsZXNIb3N0OiBTaGFyZWRTdHlsZXNIb3N0KSB7XG4gICAgdGhpcy5kZWZhdWx0UmVuZGVyZXIgPSBuZXcgRGVmYXVsdFNlcnZlclJlbmRlcmVyMihldmVudE1hbmFnZXIsIGRvY3VtZW50LCBuZ1pvbmUsIHRoaXMuc2NoZW1hKTtcbiAgfVxuXG4gIGNyZWF0ZVJlbmRlcmVyKGVsZW1lbnQ6IGFueSwgdHlwZTogUmVuZGVyZXJUeXBlMnxudWxsKTogUmVuZGVyZXIyIHtcbiAgICBpZiAoIWVsZW1lbnQgfHwgIXR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcjtcbiAgICB9XG4gICAgc3dpdGNoICh0eXBlLmVuY2Fwc3VsYXRpb24pIHtcbiAgICAgIGNhc2UgVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQ6IHtcbiAgICAgICAgbGV0IHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckJ5Q29tcElkLmdldCh0eXBlLmlkKTtcbiAgICAgICAgaWYgKCFyZW5kZXJlcikge1xuICAgICAgICAgIHJlbmRlcmVyID0gbmV3IEVtdWxhdGVkRW5jYXBzdWxhdGlvblNlcnZlclJlbmRlcmVyMihcbiAgICAgICAgICAgICAgdGhpcy5ldmVudE1hbmFnZXIsIHRoaXMuZG9jdW1lbnQsIHRoaXMubmdab25lLCB0aGlzLnNoYXJlZFN0eWxlc0hvc3QsIHRoaXMuc2NoZW1hLFxuICAgICAgICAgICAgICB0eXBlKTtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyQnlDb21wSWQuc2V0KHR5cGUuaWQsIHJlbmRlcmVyKTtcbiAgICAgICAgfVxuICAgICAgICAoPEVtdWxhdGVkRW5jYXBzdWxhdGlvblNlcnZlclJlbmRlcmVyMj5yZW5kZXJlcikuYXBwbHlUb0hvc3QoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiByZW5kZXJlcjtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgaWYgKCF0aGlzLnJlbmRlcmVyQnlDb21wSWQuaGFzKHR5cGUuaWQpKSB7XG4gICAgICAgICAgY29uc3Qgc3R5bGVzID0gZmxhdHRlblN0eWxlcyh0eXBlLmlkLCB0eXBlLnN0eWxlcywgW10pO1xuICAgICAgICAgIHRoaXMuc2hhcmVkU3R5bGVzSG9zdC5hZGRTdHlsZXMoc3R5bGVzKTtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyQnlDb21wSWQuc2V0KHR5cGUuaWQsIHRoaXMuZGVmYXVsdFJlbmRlcmVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UmVuZGVyZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYmVnaW4oKSB7fVxuICBlbmQoKSB7fVxufVxuXG5jbGFzcyBEZWZhdWx0U2VydmVyUmVuZGVyZXIyIGltcGxlbWVudHMgUmVuZGVyZXIyIHtcbiAgZGF0YToge1trZXk6IHN0cmluZ106IGFueX0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBldmVudE1hbmFnZXI6IEV2ZW50TWFuYWdlciwgcHJvdGVjdGVkIGRvY3VtZW50OiBhbnksIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICBwcml2YXRlIHNjaGVtYTogRG9tRWxlbWVudFNjaGVtYVJlZ2lzdHJ5KSB7fVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7fVxuXG4gIGRlc3Ryb3lOb2RlOiBudWxsO1xuXG4gIGNyZWF0ZUVsZW1lbnQobmFtZTogc3RyaW5nLCBuYW1lc3BhY2U/OiBzdHJpbmcsIGRlYnVnSW5mbz86IGFueSk6IGFueSB7XG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgY29uc3QgZG9jID0gdGhpcy5kb2N1bWVudCB8fCBnZXRET00oKS5nZXREZWZhdWx0RG9jdW1lbnQoKTtcbiAgICAgIC8vIFRPRE8oRlctODExKTogSXZ5IG1heSBjYXVzZSBpc3N1ZXMgaGVyZSBiZWNhdXNlIGl0J3MgcGFzc2luZyBhcm91bmRcbiAgICAgIC8vIGZ1bGwgVVJJcyBmb3IgbmFtZXNwYWNlcywgdGhlcmVmb3JlIHRoaXMgbG9va3VwIHdpbGwgZmFpbC5cbiAgICAgIHJldHVybiBkb2MuY3JlYXRlRWxlbWVudE5TKE5BTUVTUEFDRV9VUklTW25hbWVzcGFjZV0sIG5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRET00oKS5jcmVhdGVFbGVtZW50KG5hbWUsIHRoaXMuZG9jdW1lbnQpO1xuICB9XG5cbiAgY3JlYXRlQ29tbWVudCh2YWx1ZTogc3RyaW5nLCBkZWJ1Z0luZm8/OiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBnZXRET00oKS5nZXREZWZhdWx0RG9jdW1lbnQoKS5jcmVhdGVDb21tZW50KHZhbHVlKTtcbiAgfVxuXG4gIGNyZWF0ZVRleHQodmFsdWU6IHN0cmluZywgZGVidWdJbmZvPzogYW55KTogYW55IHtcbiAgICBjb25zdCBkb2MgPSBnZXRET00oKS5nZXREZWZhdWx0RG9jdW1lbnQoKTtcbiAgICByZXR1cm4gZG9jLmNyZWF0ZVRleHROb2RlKHZhbHVlKTtcbiAgfVxuXG4gIGFwcGVuZENoaWxkKHBhcmVudDogYW55LCBuZXdDaGlsZDogYW55KTogdm9pZCB7XG4gICAgcGFyZW50LmFwcGVuZENoaWxkKG5ld0NoaWxkKTtcbiAgfVxuXG4gIGluc2VydEJlZm9yZShwYXJlbnQ6IGFueSwgbmV3Q2hpbGQ6IGFueSwgcmVmQ2hpbGQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVDaGlsZChwYXJlbnQ6IGFueSwgb2xkQ2hpbGQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChvbGRDaGlsZCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Um9vdEVsZW1lbnQoc2VsZWN0b3JPck5vZGU6IHN0cmluZ3xhbnksIGRlYnVnSW5mbz86IGFueSk6IGFueSB7XG4gICAgbGV0IGVsOiBhbnk7XG4gICAgaWYgKHR5cGVvZiBzZWxlY3Rvck9yTm9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVsID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yT3JOb2RlKTtcbiAgICAgIGlmICghZWwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgc2VsZWN0b3IgXCIke3NlbGVjdG9yT3JOb2RlfVwiIGRpZCBub3QgbWF0Y2ggYW55IGVsZW1lbnRzYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsID0gc2VsZWN0b3JPck5vZGU7XG4gICAgfVxuICAgIHdoaWxlIChlbC5maXJzdENoaWxkKSB7XG4gICAgICBlbC5yZW1vdmVDaGlsZChlbC5maXJzdENoaWxkKTtcbiAgICB9XG4gICAgcmV0dXJuIGVsO1xuICB9XG5cbiAgcGFyZW50Tm9kZShub2RlOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBub2RlLnBhcmVudE5vZGU7XG4gIH1cblxuICBuZXh0U2libGluZyhub2RlOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBub2RlLm5leHRTaWJsaW5nO1xuICB9XG5cbiAgc2V0QXR0cmlidXRlKGVsOiBhbnksIG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgLy8gVE9ETyhGVy04MTEpOiBJdnkgbWF5IGNhdXNlIGlzc3VlcyBoZXJlIGJlY2F1c2UgaXQncyBwYXNzaW5nIGFyb3VuZFxuICAgICAgLy8gZnVsbCBVUklzIGZvciBuYW1lc3BhY2VzLCB0aGVyZWZvcmUgdGhpcyBsb29rdXAgd2lsbCBmYWlsLlxuICAgICAgZWwuc2V0QXR0cmlidXRlTlMoTkFNRVNQQUNFX1VSSVNbbmFtZXNwYWNlXSwgbmFtZXNwYWNlICsgJzonICsgbmFtZSwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUF0dHJpYnV0ZShlbDogYW55LCBuYW1lOiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgIC8vIFRPRE8oRlctODExKTogSXZ5IG1heSBjYXVzZSBpc3N1ZXMgaGVyZSBiZWNhdXNlIGl0J3MgcGFzc2luZyBhcm91bmRcbiAgICAgIC8vIGZ1bGwgVVJJcyBmb3IgbmFtZXNwYWNlcywgdGhlcmVmb3JlIHRoaXMgbG9va3VwIHdpbGwgZmFpbC5cbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZU5TKE5BTUVTUEFDRV9VUklTW25hbWVzcGFjZV0sIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgfVxuICB9XG5cbiAgYWRkQ2xhc3MoZWw6IGFueSwgbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgZWwuY2xhc3NMaXN0LmFkZChuYW1lKTtcbiAgfVxuXG4gIHJlbW92ZUNsYXNzKGVsOiBhbnksIG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUobmFtZSk7XG4gIH1cblxuICBzZXRTdHlsZShlbDogYW55LCBzdHlsZTogc3RyaW5nLCB2YWx1ZTogYW55LCBmbGFnczogUmVuZGVyZXJTdHlsZUZsYWdzMik6IHZvaWQge1xuICAgIHN0eWxlID0gc3R5bGUucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxLSQyJykudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzdHlsZU1hcCA9IF9yZWFkU3R5bGVBdHRyaWJ1dGUoZWwpO1xuICAgIGlmIChmbGFncyAmIFJlbmRlcmVyU3R5bGVGbGFnczIuSW1wb3J0YW50KSB7XG4gICAgICB2YWx1ZSArPSAnICFpbXBvcnRhbnQnO1xuICAgIH1cbiAgICBzdHlsZU1hcFtzdHlsZV0gPSB2YWx1ZSA9PSBudWxsID8gJycgOiB2YWx1ZTtcbiAgICBfd3JpdGVTdHlsZUF0dHJpYnV0ZShlbCwgc3R5bGVNYXApO1xuICB9XG5cbiAgcmVtb3ZlU3R5bGUoZWw6IGFueSwgc3R5bGU6IHN0cmluZywgZmxhZ3M6IFJlbmRlcmVyU3R5bGVGbGFnczIpOiB2b2lkIHtcbiAgICAvLyBJRSByZXF1aXJlcyAnJyBpbnN0ZWFkIG9mIG51bGxcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNzkxNlxuICAgIHRoaXMuc2V0U3R5bGUoZWwsIHN0eWxlLCAnJywgZmxhZ3MpO1xuICB9XG5cbiAgLy8gVGhlIHZhbHVlIHdhcyB2YWxpZGF0ZWQgYWxyZWFkeSBhcyBhIHByb3BlcnR5IGJpbmRpbmcsIGFnYWluc3QgdGhlIHByb3BlcnR5IG5hbWUuXG4gIC8vIFRvIGtub3cgdGhpcyB2YWx1ZSBpcyBzYWZlIHRvIHVzZSBhcyBhbiBhdHRyaWJ1dGUsIHRoZSBzZWN1cml0eSBjb250ZXh0IG9mIHRoZVxuICAvLyBhdHRyaWJ1dGUgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBpcyBjaGVja2VkIGFnYWluc3QgdGhhdCBzZWN1cml0eSBjb250ZXh0IG9mIHRoZVxuICAvLyBwcm9wZXJ0eS5cbiAgcHJpdmF0ZSBfaXNTYWZlVG9SZWZsZWN0UHJvcGVydHkodGFnTmFtZTogc3RyaW5nLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYS5zZWN1cml0eUNvbnRleHQodGFnTmFtZSwgcHJvcGVydHlOYW1lLCB0cnVlKSA9PT1cbiAgICAgICAgdGhpcy5zY2hlbWEuc2VjdXJpdHlDb250ZXh0KHRhZ05hbWUsIHByb3BlcnR5TmFtZSwgZmFsc2UpO1xuICB9XG5cbiAgc2V0UHJvcGVydHkoZWw6IGFueSwgbmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY2hlY2tOb1N5bnRoZXRpY1Byb3AobmFtZSwgJ3Byb3BlcnR5Jyk7XG4gICAgaWYgKG5hbWUgPT09ICdpbm5lclRleHQnKSB7XG4gICAgICAvLyBEb21pbm8gZG9lcyBub3Qgc3VwcG9ydCBpbm5lclRleHQuIEp1c3QgbWFwIGl0IHRvIHRleHRDb250ZW50LlxuICAgICAgZWwudGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgICB9XG4gICAgKDxhbnk+ZWwpW25hbWVdID0gdmFsdWU7XG4gICAgLy8gTWlycm9yIHByb3BlcnR5IHZhbHVlcyBmb3Iga25vd24gSFRNTCBlbGVtZW50IHByb3BlcnRpZXMgaW4gdGhlIGF0dHJpYnV0ZXMuXG4gICAgLy8gU2tpcCBgaW5uZXJodG1sYCB3aGljaCBpcyBjb25zZXJ2YXRpdmVseSBtYXJrZWQgYXMgYW4gYXR0cmlidXRlIGZvciBzZWN1cml0eVxuICAgIC8vIHB1cnBvc2VzIGJ1dCBpcyBub3QgYWN0dWFsbHkgYW4gYXR0cmlidXRlLlxuICAgIGNvbnN0IHRhZ05hbWUgPSAoZWwudGFnTmFtZSBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHZhbHVlICE9IG51bGwgJiYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSAmJlxuICAgICAgICBuYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdpbm5lcmh0bWwnICYmIHRoaXMuc2NoZW1hLmhhc0VsZW1lbnQodGFnTmFtZSwgRU1QVFlfQVJSQVkpICYmXG4gICAgICAgIHRoaXMuc2NoZW1hLmhhc1Byb3BlcnR5KHRhZ05hbWUsIG5hbWUsIEVNUFRZX0FSUkFZKSAmJlxuICAgICAgICB0aGlzLl9pc1NhZmVUb1JlZmxlY3RQcm9wZXJ0eSh0YWdOYW1lLCBuYW1lKSkge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoZWwsIG5hbWUsIHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgfVxuXG4gIHNldFZhbHVlKG5vZGU6IGFueSwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIG5vZGUudGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgfVxuXG4gIGxpc3RlbihcbiAgICAgIHRhcmdldDogJ2RvY3VtZW50J3wnd2luZG93J3wnYm9keSd8YW55LCBldmVudE5hbWU6IHN0cmluZyxcbiAgICAgIGNhbGxiYWNrOiAoZXZlbnQ6IGFueSkgPT4gYm9vbGVhbik6ICgpID0+IHZvaWQge1xuICAgIGNoZWNrTm9TeW50aGV0aWNQcm9wKGV2ZW50TmFtZSwgJ2xpc3RlbmVyJyk7XG4gICAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gPCgpID0+IHZvaWQ+dGhpcy5ldmVudE1hbmFnZXIuYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICB0YXJnZXQsIGV2ZW50TmFtZSwgdGhpcy5kZWNvcmF0ZVByZXZlbnREZWZhdWx0KGNhbGxiYWNrKSk7XG4gICAgfVxuICAgIHJldHVybiA8KCkgPT4gdm9pZD50aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgICAgdGFyZ2V0LCBldmVudE5hbWUsIHRoaXMuZGVjb3JhdGVQcmV2ZW50RGVmYXVsdChjYWxsYmFjaykpIGFzICgpID0+IHZvaWQ7XG4gIH1cblxuICBwcml2YXRlIGRlY29yYXRlUHJldmVudERlZmF1bHQoZXZlbnRIYW5kbGVyOiBGdW5jdGlvbik6IEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgIC8vIEl2eSB1c2VzIGBGdW5jdGlvbmAgYXMgYSBzcGVjaWFsIHRva2VuIHRoYXQgYWxsb3dzIHVzIHRvIHVud3JhcCB0aGUgZnVuY3Rpb25cbiAgICAgIC8vIHNvIHRoYXQgaXQgY2FuIGJlIGludm9rZWQgcHJvZ3JhbW1hdGljYWxseSBieSBgRGVidWdOb2RlLnRyaWdnZXJFdmVudEhhbmRsZXJgLlxuICAgICAgaWYgKGV2ZW50ID09PSBGdW5jdGlvbikge1xuICAgICAgICByZXR1cm4gZXZlbnRIYW5kbGVyO1xuICAgICAgfVxuXG4gICAgICAvLyBSdW4gdGhlIGV2ZW50IGhhbmRsZXIgaW5zaWRlIHRoZSBuZ1pvbmUgYmVjYXVzZSBldmVudCBoYW5kbGVycyBhcmUgbm90IHBhdGNoZWRcbiAgICAgIC8vIGJ5IFpvbmUgb24gdGhlIHNlcnZlci4gVGhpcyBpcyByZXF1aXJlZCBvbmx5IGZvciB0ZXN0cy5cbiAgICAgIGNvbnN0IGFsbG93RGVmYXVsdEJlaGF2aW9yID0gdGhpcy5uZ1pvbmUucnVuR3VhcmRlZCgoKSA9PiBldmVudEhhbmRsZXIoZXZlbnQpKTtcbiAgICAgIGlmIChhbGxvd0RlZmF1bHRCZWhhdmlvciA9PT0gZmFsc2UpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9O1xuICB9XG59XG5cbmNvbnN0IEFUX0NIQVJDT0RFID0gJ0AnLmNoYXJDb2RlQXQoMCk7XG5mdW5jdGlvbiBjaGVja05vU3ludGhldGljUHJvcChuYW1lOiBzdHJpbmcsIG5hbWVLaW5kOiBzdHJpbmcpIHtcbiAgaWYgKG5hbWUuY2hhckNvZGVBdCgwKSA9PT0gQVRfQ0hBUkNPREUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZvdW5kIHRoZSBzeW50aGV0aWMgJHtuYW1lS2luZH0gJHtcbiAgICAgICAgbmFtZX0uIFBsZWFzZSBpbmNsdWRlIGVpdGhlciBcIkJyb3dzZXJBbmltYXRpb25zTW9kdWxlXCIgb3IgXCJOb29wQW5pbWF0aW9uc01vZHVsZVwiIGluIHlvdXIgYXBwbGljYXRpb24uYCk7XG4gIH1cbn1cblxuY2xhc3MgRW11bGF0ZWRFbmNhcHN1bGF0aW9uU2VydmVyUmVuZGVyZXIyIGV4dGVuZHMgRGVmYXVsdFNlcnZlclJlbmRlcmVyMiB7XG4gIHByaXZhdGUgY29udGVudEF0dHI6IHN0cmluZztcbiAgcHJpdmF0ZSBob3N0QXR0cjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgZXZlbnRNYW5hZ2VyOiBFdmVudE1hbmFnZXIsIGRvY3VtZW50OiBhbnksIG5nWm9uZTogTmdab25lLCBzaGFyZWRTdHlsZXNIb3N0OiBTaGFyZWRTdHlsZXNIb3N0LFxuICAgICAgc2NoZW1hOiBEb21FbGVtZW50U2NoZW1hUmVnaXN0cnksIHByaXZhdGUgY29tcG9uZW50OiBSZW5kZXJlclR5cGUyKSB7XG4gICAgc3VwZXIoZXZlbnRNYW5hZ2VyLCBkb2N1bWVudCwgbmdab25lLCBzY2hlbWEpO1xuICAgIC8vIEFkZCBhICdzJyBwcmVmaXggdG8gc3R5bGUgYXR0cmlidXRlcyB0byBpbmRpY2F0ZSBzZXJ2ZXIuXG4gICAgY29uc3QgY29tcG9uZW50SWQgPSAncycgKyBjb21wb25lbnQuaWQ7XG4gICAgY29uc3Qgc3R5bGVzID0gZmxhdHRlblN0eWxlcyhjb21wb25lbnRJZCwgY29tcG9uZW50LnN0eWxlcywgW10pO1xuICAgIHNoYXJlZFN0eWxlc0hvc3QuYWRkU3R5bGVzKHN0eWxlcyk7XG5cbiAgICB0aGlzLmNvbnRlbnRBdHRyID0gc2hpbUNvbnRlbnRBdHRyaWJ1dGUoY29tcG9uZW50SWQpO1xuICAgIHRoaXMuaG9zdEF0dHIgPSBzaGltSG9zdEF0dHJpYnV0ZShjb21wb25lbnRJZCk7XG4gIH1cblxuICBhcHBseVRvSG9zdChlbGVtZW50OiBhbnkpIHtcbiAgICBzdXBlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgdGhpcy5ob3N0QXR0ciwgJycpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY3JlYXRlRWxlbWVudChwYXJlbnQ6IGFueSwgbmFtZTogc3RyaW5nKTogRWxlbWVudCB7XG4gICAgY29uc3QgZWwgPSBzdXBlci5jcmVhdGVFbGVtZW50KHBhcmVudCwgbmFtZSwgdGhpcy5kb2N1bWVudCk7XG4gICAgc3VwZXIuc2V0QXR0cmlidXRlKGVsLCB0aGlzLmNvbnRlbnRBdHRyLCAnJyk7XG4gICAgcmV0dXJuIGVsO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9yZWFkU3R5bGVBdHRyaWJ1dGUoZWxlbWVudDogYW55KToge1tuYW1lOiBzdHJpbmddOiBzdHJpbmd9IHtcbiAgY29uc3Qgc3R5bGVNYXA6IHtbbmFtZTogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICBjb25zdCBzdHlsZUF0dHJpYnV0ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzdHlsZScpO1xuICBpZiAoc3R5bGVBdHRyaWJ1dGUpIHtcbiAgICBjb25zdCBzdHlsZUxpc3QgPSBzdHlsZUF0dHJpYnV0ZS5zcGxpdCgvOysvZyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHlsZUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHN0eWxlID0gc3R5bGVMaXN0W2ldLnRyaW0oKTtcbiAgICAgIGlmIChzdHlsZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGNvbG9uSW5kZXggPSBzdHlsZS5pbmRleE9mKCc6Jyk7XG4gICAgICAgIGlmIChjb2xvbkluZGV4ID09PSAtMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBDU1Mgc3R5bGU6ICR7c3R5bGV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmFtZSA9IHN0eWxlLnN1YnN0cigwLCBjb2xvbkluZGV4KS50cmltKCk7XG4gICAgICAgIHN0eWxlTWFwW25hbWVdID0gc3R5bGUuc3Vic3RyKGNvbG9uSW5kZXggKyAxKS50cmltKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzdHlsZU1hcDtcbn1cblxuZnVuY3Rpb24gX3dyaXRlU3R5bGVBdHRyaWJ1dGUoZWxlbWVudDogYW55LCBzdHlsZU1hcDoge1tuYW1lOiBzdHJpbmddOiBzdHJpbmd9KSB7XG4gIGxldCBzdHlsZUF0dHJWYWx1ZSA9ICcnO1xuICBmb3IgKGNvbnN0IGtleSBpbiBzdHlsZU1hcCkge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gc3R5bGVNYXBba2V5XTtcbiAgICBpZiAobmV3VmFsdWUgIT0gbnVsbCkge1xuICAgICAgc3R5bGVBdHRyVmFsdWUgKz0ga2V5ICsgJzonICsgc3R5bGVNYXBba2V5XSArICc7JztcbiAgICB9XG4gIH1cbiAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgc3R5bGVBdHRyVmFsdWUpO1xufVxuIl19
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3JlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0tc2VydmVyL3NyYy9zZXJ2ZXJfcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBRSxPQUFPLElBQUksTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUErQixtQkFBbUIsRUFBaUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLElBQUksYUFBYSxFQUFFLGVBQWUsSUFBSSxjQUFjLEVBQUUsaUJBQWlCLElBQUksZ0JBQWdCLEVBQUUscUJBQXFCLElBQUksb0JBQW9CLEVBQUUsa0JBQWtCLElBQUksaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUUxUCxNQUFNLFdBQVcsR0FBVSxFQUFFLENBQUM7QUFFOUIsTUFBTSxjQUFjLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO0FBR3RELE1BQU0sT0FBTyxzQkFBc0I7SUFLakMsWUFDWSxZQUEwQixFQUFVLE1BQWMsRUFDaEMsUUFBYSxFQUFVLGdCQUFrQztRQUQzRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDaEMsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFOL0UscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7UUFFaEQsV0FBTSxHQUFHLGNBQWMsQ0FBQztRQUs5QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksc0JBQXNCLENBQUMsWUFBWSxFQUFFLFFB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QUM7WUFDbEMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDcEIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLEtBQUssRUFBRSxDQUFDLENBQUM7aUJBQ2hEO2dCQUNELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoRCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDdEQ7U0FDRjtLQUNGO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsT0FBWSxFQUFFLFFBQWtDO0lBQzVFLElBQUksY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUN4QixLQUFLLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRTtRQUMxQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFO1lBQ3BCLGNBQWMsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDbkQ7S0FDRjtJQUNELE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtET0NVTUVOVCwgybVnZXRET00gYXMgZ2V0RE9NfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtEb21FbGVtZW50U2NoZW1hUmVnaXN0cnl9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBOZ1pvbmUsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiwgUmVuZGVyZXJTdHlsZUZsYWdzMiwgUmVuZGVyZXJUeXBlMiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFdmVudE1hbmFnZXIsIMm1ZmxhdHRlblN0eWxlcyBhcyBmbGF0dGVuU3R5bGVzLCDJtU5BTUVTUEFDRV9VUklTIGFzIE5BTUVTUEFDRV9VUklTLCDJtVNoYXJlZFN0eWxlc0hvc3QgYXMgU2hhcmVkU3R5bGVzSG9zdCwgybVzaGltQ29udGVudEF0dHJpYnV0ZSBhcyBzaGltQ29udGVudEF0dHJpYnV0ZSwgybVzaGltSG9zdEF0dHJpYnV0ZSBhcyBzaGltSG9zdEF0dHJpYnV0ZX0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmNvbnN0IEVNUFRZX0FSUkFZOiBhbnlbXSA9IFtdO1xuXG5jb25zdCBERUZBVUxUX1NDSEVNQSA9IG5ldyBEb21FbGVtZW50U2NoZW1hUmVnaXN0cnkoKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlcnZlclJlbmRlcmVyRmFjdG9yeTIgaW1wbGVtZW50cyBSZW5kZXJlckZhY3RvcnkyIHtcbiAgcHJpdmF0ZSByZW5kZXJlckJ5Q29tcElkID0gbmV3IE1hcDxzdHJpbmcsIFJlbmRlcmVyMj4oKTtcbiAgcHJpdmF0ZSBkZWZhdWx0UmVuZGVyZXI6IFJlbmRlcmVyMjtcbiAgcHJpdmF0ZSBzY2hlbWEgPSBERUZBVUxUX1NDSEVNQTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZXZlbnRNYW5hZ2VyOiBFdmVudE1hbmFnZXIsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksIHByaXZhdGUgc2hhcmVkU3R5bGVzSG9zdDogU2hhcmVkU3R5bGVzSG9zdCkge1xuICAgIHRoaXMuZGVmYXVsdFJlbmRlcmVyID0gbmV3IERlZmF1bHRTZXJ2ZXJSZW5kZXJlcjIoZXZlbnRNYW5hZ2VyLCBkb2N1bWVudCwgbmdab25lLCB0aGlzLnNjaGVtYSk7XG4gIH1cblxuICBjcmVhdGVSZW5kZXJlcihlbGVtZW50OiBhbnksIHR5cGU6IFJlbmRlcmVyVHlwZTJ8bnVsbCk6IFJlbmRlcmVyMiB7XG4gICAgaWYgKCFlbGVtZW50IHx8ICF0eXBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UmVuZGVyZXI7XG4gICAgfVxuICAgIHN3aXRjaCAodHlwZS5lbmNhcHN1bGF0aW9uKSB7XG4gICAgICBjYXNlIFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkOiB7XG4gICAgICAgIGxldCByZW5kZXJlciA9IHRoaXMucmVuZGVyZXJCeUNvbXBJZC5nZXQodHlwZS5pZCk7XG4gICAgICAgIGlmICghcmVuZGVyZXIpIHtcbiAgICAgICAgICByZW5kZXJlciA9IG5ldyBFbXVsYXRlZEVuY2Fwc3VsYXRpb25TZXJ2ZXJSZW5kZXJlcjIoXG4gICAgICAgICAgICAgIHRoaXMuZXZlbnRNYW5hZ2VyLCB0aGlzLmRvY3VtZW50LCB0aGlzLm5nWm9uZSwgdGhpcy5zaGFyZWRTdHlsZXNIb3N0LCB0aGlzLnNjaGVtYSxcbiAgICAgICAgICAgICAgdHlwZSk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlckJ5Q29tcElkLnNldCh0eXBlLmlkLCByZW5kZXJlcik7XG4gICAgICAgIH1cbiAgICAgICAgKDxFbXVsYXRlZEVuY2Fwc3VsYXRpb25TZXJ2ZXJSZW5kZXJlcjI+cmVuZGVyZXIpLmFwcGx5VG9Ib3N0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gcmVuZGVyZXI7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGlmICghdGhpcy5yZW5kZXJlckJ5Q29tcElkLmhhcyh0eXBlLmlkKSkge1xuICAgICAgICAgIGNvbnN0IHN0eWxlcyA9IGZsYXR0ZW5TdHlsZXModHlwZS5pZCwgdHlwZS5zdHlsZXMsIFtdKTtcbiAgICAgICAgICB0aGlzLnNoYXJlZFN0eWxlc0hvc3QuYWRkU3R5bGVzKHN0eWxlcyk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlckJ5Q29tcElkLnNldCh0eXBlLmlkLCB0aGlzLmRlZmF1bHRSZW5kZXJlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFJlbmRlcmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJlZ2luKCkge31cbiAgZW5kKCkge31cbn1cblxuY2xhc3MgRGVmYXVsdFNlcnZlclJlbmRlcmVyMiBpbXBsZW1lbnRzIFJlbmRlcmVyMiB7XG4gIGRhdGE6IHtba2V5OiBzdHJpbmddOiBhbnl9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZXZlbnRNYW5hZ2VyOiBFdmVudE1hbmFnZXIsIHByb3RlY3RlZCBkb2N1bWVudDogYW55LCBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgcHJpdmF0ZSBzY2hlbWE6IERvbUVsZW1lbnRTY2hlbWFSZWdpc3RyeSkge31cblxuICBkZXN0cm95KCk6IHZvaWQge31cblxuICBkZXN0cm95Tm9kZSA9IG51bGw7XG5cbiAgY3JlYXRlRWxlbWVudChuYW1lOiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZywgZGVidWdJbmZvPzogYW55KTogYW55IHtcbiAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICBjb25zdCBkb2MgPSB0aGlzLmRvY3VtZW50IHx8IGdldERPTSgpLmdldERlZmF1bHREb2N1bWVudCgpO1xuICAgICAgLy8gVE9ETyhGVy04MTEpOiBJdnkgbWF5IGNhdXNlIGlzc3VlcyBoZXJlIGJlY2F1c2UgaXQncyBwYXNzaW5nIGFyb3VuZFxuICAgICAgLy8gZnVsbCBVUklzIGZvciBuYW1lc3BhY2VzLCB0aGVyZWZvcmUgdGhpcyBsb29rdXAgd2lsbCBmYWlsLlxuICAgICAgcmV0dXJuIGRvYy5jcmVhdGVFbGVtZW50TlMoTkFNRVNQQUNFX1VSSVNbbmFtZXNwYWNlXSwgbmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdldERPTSgpLmNyZWF0ZUVsZW1lbnQobmFtZSwgdGhpcy5kb2N1bWVudCk7XG4gIH1cblxuICBjcmVhdGVDb21tZW50KHZhbHVlOiBzdHJpbmcsIGRlYnVnSW5mbz86IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGdldERPTSgpLmdldERlZmF1bHREb2N1bWVudCgpLmNyZWF0ZUNvbW1lbnQodmFsdWUpO1xuICB9XG5cbiAgY3JlYXRlVGV4dCh2YWx1ZTogc3RyaW5nLCBkZWJ1Z0luZm8/OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IGRvYyA9IGdldERPTSgpLmdldERlZmF1bHREb2N1bWVudCgpO1xuICAgIHJldHVybiBkb2MuY3JlYXRlVGV4dE5vZGUodmFsdWUpO1xuICB9XG5cbiAgYXBwZW5kQ2hpbGQocGFyZW50OiBhbnksIG5ld0NoaWxkOiBhbnkpOiB2b2lkIHtcbiAgICBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3Q2hpbGQpO1xuICB9XG5cbiAgaW5zZXJ0QmVmb3JlKHBhcmVudDogYW55LCBuZXdDaGlsZDogYW55LCByZWZDaGlsZDogYW55KTogdm9pZCB7XG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUNoaWxkKHBhcmVudDogYW55LCBvbGRDaGlsZDogYW55KTogdm9pZCB7XG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKG9sZENoaWxkKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RSb290RWxlbWVudChzZWxlY3Rvck9yTm9kZTogc3RyaW5nfGFueSwgZGVidWdJbmZvPzogYW55KTogYW55IHtcbiAgICBsZXQgZWw6IGFueTtcbiAgICBpZiAodHlwZW9mIHNlbGVjdG9yT3JOb2RlID09PSAnc3RyaW5nJykge1xuICAgICAgZWwgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3JPck5vZGUpO1xuICAgICAgaWYgKCFlbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBzZWxlY3RvciBcIiR7c2VsZWN0b3JPck5vZGV9XCIgZGlkIG5vdCBtYXRjaCBhbnkgZWxlbWVudHNgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZWwgPSBzZWxlY3Rvck9yTm9kZTtcbiAgICB9XG4gICAgd2hpbGUgKGVsLmZpcnN0Q2hpbGQpIHtcbiAgICAgIGVsLnJlbW92ZUNoaWxkKGVsLmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICByZXR1cm4gZWw7XG4gIH1cblxuICBwYXJlbnROb2RlKG5vZGU6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZTtcbiAgfVxuXG4gIG5leHRTaWJsaW5nKG5vZGU6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIG5vZGUubmV4dFNpYmxpbmc7XG4gIH1cblxuICBzZXRBdHRyaWJ1dGUoZWw6IGFueSwgbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBuYW1lc3BhY2U/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICAvLyBUT0RPKEZXLTgxMSk6IEl2eSBtYXkgY2F1c2UgaXNzdWVzIGhlcmUgYmVjYXVzZSBpdCdzIHBhc3NpbmcgYXJvdW5kXG4gICAgICAvLyBmdWxsIFVSSXMgZm9yIG5hbWVzcGFjZXMsIHRoZXJlZm9yZSB0aGlzIGxvb2t1cCB3aWxsIGZhaWwuXG4gICAgICBlbC5zZXRBdHRyaWJ1dGVOUyhOQU1FU1BBQ0VfVVJJU1tuYW1lc3BhY2VdLCBuYW1lc3BhY2UgKyAnOicgKyBuYW1lLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlQXR0cmlidXRlKGVsOiBhbnksIG5hbWU6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgLy8gVE9ETyhGVy04MTEpOiBJdnkgbWF5IGNhdXNlIGlzc3VlcyBoZXJlIGJlY2F1c2UgaXQncyBwYXNzaW5nIGFyb3VuZFxuICAgICAgLy8gZnVsbCBVUklzIGZvciBuYW1lc3BhY2VzLCB0aGVyZWZvcmUgdGhpcyBsb29rdXAgd2lsbCBmYWlsLlxuICAgICAgZWwucmVtb3ZlQXR0cmlidXRlTlMoTkFNRVNQQUNFX1VSSVNbbmFtZXNwYWNlXSwgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICB9XG4gIH1cblxuICBhZGRDbGFzcyhlbDogYW55LCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBlbC5jbGFzc0xpc3QuYWRkKG5hbWUpO1xuICB9XG5cbiAgcmVtb3ZlQ2xhc3MoZWw6IGFueSwgbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgZWwuY2xhc3NMaXN0LnJlbW92ZShuYW1lKTtcbiAgfVxuXG4gIHNldFN0eWxlKGVsOiBhbnksIHN0eWxlOiBzdHJpbmcsIHZhbHVlOiBhbnksIGZsYWdzOiBSZW5kZXJlclN0eWxlRmxhZ3MyKTogdm9pZCB7XG4gICAgc3R5bGUgPSBzdHlsZS5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHN0eWxlTWFwID0gX3JlYWRTdHlsZUF0dHJpYnV0ZShlbCk7XG4gICAgaWYgKGZsYWdzICYgUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQpIHtcbiAgICAgIHZhbHVlICs9ICcgIWltcG9ydGFudCc7XG4gICAgfVxuICAgIHN0eWxlTWFwW3N0eWxlXSA9IHZhbHVlID09IG51bGwgPyAnJyA6IHZhbHVlO1xuICAgIF93cml0ZVN0eWxlQXR0cmlidXRlKGVsLCBzdHlsZU1hcCk7XG4gIH1cblxuICByZW1vdmVTdHlsZShlbDogYW55LCBzdHlsZTogc3RyaW5nLCBmbGFnczogUmVuZGVyZXJTdHlsZUZsYWdzMik6IHZvaWQge1xuICAgIC8vIElFIHJlcXVpcmVzICcnIGluc3RlYWQgb2YgbnVsbFxuICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy83OTE2XG4gICAgdGhpcy5zZXRTdHlsZShlbCwgc3R5bGUsICcnLCBmbGFncyk7XG4gIH1cblxuICAvLyBUaGUgdmFsdWUgd2FzIHZhbGlkYXRlZCBhbHJlYWR5IGFzIGEgcHJvcGVydHkgYmluZGluZywgYWdhaW5zdCB0aGUgcHJvcGVydHkgbmFtZS5cbiAgLy8gVG8ga25vdyB0aGlzIHZhbHVlIGlzIHNhZmUgdG8gdXNlIGFzIGFuIGF0dHJpYnV0ZSwgdGhlIHNlY3VyaXR5IGNvbnRleHQgb2YgdGhlXG4gIC8vIGF0dHJpYnV0ZSB3aXRoIHRoZSBnaXZlbiBuYW1lIGlzIGNoZWNrZWQgYWdhaW5zdCB0aGF0IHNlY3VyaXR5IGNvbnRleHQgb2YgdGhlXG4gIC8vIHByb3BlcnR5LlxuICBwcml2YXRlIF9pc1NhZmVUb1JlZmxlY3RQcm9wZXJ0eSh0YWdOYW1lOiBzdHJpbmcsIHByb3BlcnR5TmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2NoZW1hLnNlY3VyaXR5Q29udGV4dCh0YWdOYW1lLCBwcm9wZXJ0eU5hbWUsIHRydWUpID09PVxuICAgICAgICB0aGlzLnNjaGVtYS5zZWN1cml0eUNvbnRleHQodGFnTmFtZSwgcHJvcGVydHlOYW1lLCBmYWxzZSk7XG4gIH1cblxuICBzZXRQcm9wZXJ0eShlbDogYW55LCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBjaGVja05vU3ludGhldGljUHJvcChuYW1lLCAncHJvcGVydHknKTtcbiAgICBpZiAobmFtZSA9PT0gJ2lubmVyVGV4dCcpIHtcbiAgICAgIC8vIERvbWlubyBkb2VzIG5vdCBzdXBwb3J0IGlubmVyVGV4dC4gSnVzdCBtYXAgaXQgdG8gdGV4dENvbnRlbnQuXG4gICAgICBlbC50ZXh0Q29udGVudCA9IHZhbHVlO1xuICAgIH1cbiAgICAoPGFueT5lbClbbmFtZV0gPSB2YWx1ZTtcbiAgICAvLyBNaXJyb3IgcHJvcGVydHkgdmFsdWVzIGZvciBrbm93biBIVE1MIGVsZW1lbnQgcHJvcGVydGllcyBpbiB0aGUgYXR0cmlidXRlcy5cbiAgICAvLyBTa2lwIGBpbm5lcmh0bWxgIHdoaWNoIGlzIGNvbnNlcnZhdGl2ZWx5IG1hcmtlZCBhcyBhbiBhdHRyaWJ1dGUgZm9yIHNlY3VyaXR5XG4gICAgLy8gcHVycG9zZXMgYnV0IGlzIG5vdCBhY3R1YWxseSBhbiBhdHRyaWJ1dGUuXG4gICAgY29uc3QgdGFnTmFtZSA9IChlbC50YWdOYW1lIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpICYmXG4gICAgICAgIG5hbWUudG9Mb3dlckNhc2UoKSAhPT0gJ2lubmVyaHRtbCcgJiYgdGhpcy5zY2hlbWEuaGFzRWxlbWVudCh0YWdOYW1lLCBFTVBUWV9BUlJBWSkgJiZcbiAgICAgICAgdGhpcy5zY2hlbWEuaGFzUHJvcGVydHkodGFnTmFtZSwgbmFtZSwgRU1QVFlfQVJSQVkpICYmXG4gICAgICAgIHRoaXMuX2lzU2FmZVRvUmVmbGVjdFByb3BlcnR5KHRhZ05hbWUsIG5hbWUpKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZShlbCwgbmFtZSwgdmFsdWUudG9TdHJpbmcoKSk7XG4gICAgfVxuICB9XG5cbiAgc2V0VmFsdWUobm9kZTogYW55LCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgbm9kZS50ZXh0Q29udGVudCA9IHZhbHVlO1xuICB9XG5cbiAgbGlzdGVuKFxuICAgICAgdGFyZ2V0OiAnZG9jdW1lbnQnfCd3aW5kb3cnfCdib2R5J3xhbnksIGV2ZW50TmFtZTogc3RyaW5nLFxuICAgICAgY2FsbGJhY2s6IChldmVudDogYW55KSA9PiBib29sZWFuKTogKCkgPT4gdm9pZCB7XG4gICAgY2hlY2tOb1N5bnRoZXRpY1Byb3AoZXZlbnROYW1lLCAnbGlzdGVuZXInKTtcbiAgICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiA8KCkgPT4gdm9pZD50aGlzLmV2ZW50TWFuYWdlci5hZGRHbG9iYWxFdmVudExpc3RlbmVyKFxuICAgICAgICAgIHRhcmdldCwgZXZlbnROYW1lLCB0aGlzLmRlY29yYXRlUHJldmVudERlZmF1bHQoY2FsbGJhY2spKTtcbiAgICB9XG4gICAgcmV0dXJuIDwoKSA9PiB2b2lkPnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAgICB0YXJnZXQsIGV2ZW50TmFtZSwgdGhpcy5kZWNvcmF0ZVByZXZlbnREZWZhdWx0KGNhbGxiYWNrKSkgYXMgKCkgPT4gdm9pZDtcbiAgfVxuXG4gIHByaXZhdGUgZGVjb3JhdGVQcmV2ZW50RGVmYXVsdChldmVudEhhbmRsZXI6IEZ1bmN0aW9uKTogRnVuY3Rpb24ge1xuICAgIHJldHVybiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgLy8gSXZ5IHVzZXMgYEZ1bmN0aW9uYCBhcyBhIHNwZWNpYWwgdG9rZW4gdGhhdCBhbGxvd3MgdXMgdG8gdW53cmFwIHRoZSBmdW5jdGlvblxuICAgICAgLy8gc28gdGhhdCBpdCBjYW4gYmUgaW52b2tlZCBwcm9ncmFtbWF0aWNhbGx5IGJ5IGBEZWJ1Z05vZGUudHJpZ2dlckV2ZW50SGFuZGxlcmAuXG4gICAgICBpZiAoZXZlbnQgPT09IEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBldmVudEhhbmRsZXI7XG4gICAgICB9XG5cbiAgICAgIC8vIFJ1biB0aGUgZXZlbnQgaGFuZGxlciBpbnNpZGUgdGhlIG5nWm9uZSBiZWNhdXNlIGV2ZW50IGhhbmRsZXJzIGFyZSBub3QgcGF0Y2hlZFxuICAgICAgLy8gYnkgWm9uZSBvbiB0aGUgc2VydmVyLiBUaGlzIGlzIHJlcXVpcmVkIG9ubHkgZm9yIHRlc3RzLlxuICAgICAgY29uc3QgYWxsb3dEZWZhdWx0QmVoYXZpb3IgPSB0aGlzLm5nWm9uZS5ydW5HdWFyZGVkKCgpID0+IGV2ZW50SGFuZGxlcihldmVudCkpO1xuICAgICAgaWYgKGFsbG93RGVmYXVsdEJlaGF2aW9yID09PSBmYWxzZSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG4gIH1cbn1cblxuY29uc3QgQVRfQ0hBUkNPREUgPSAnQCcuY2hhckNvZGVBdCgwKTtcbmZ1bmN0aW9uIGNoZWNrTm9TeW50aGV0aWNQcm9wKG5hbWU6IHN0cmluZywgbmFtZUtpbmQ6IHN0cmluZykge1xuICBpZiAobmFtZS5jaGFyQ29kZUF0KDApID09PSBBVF9DSEFSQ09ERSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBzeW50aGV0aWMgJHtuYW1lS2luZH0gJHtuYW1lfSBmb3VuZC4gUGxlYXNlIG1ha2Ugc3VyZSB0aGF0OlxuICAtIEVpdGhlciBcXGBCcm93c2VyQW5pbWF0aW9uc01vZHVsZVxcYCBvciBcXGBOb29wQW5pbWF0aW9uc01vZHVsZVxcYCBhcmUgaW1wb3J0ZWQgaW4geW91ciBhcHBsaWNhdGlvbi5cbiAgLSBUaGVyZSBpcyBjb3JyZXNwb25kaW5nIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBhbmltYXRpb24gbmFtZWQgXFxgJHtcbiAgICAgICAgbmFtZX1cXGAgZGVmaW5lZCBpbiB0aGUgXFxgYW5pbWF0aW9uc1xcYCBmaWVsZCBvZiB0aGUgXFxgQENvbXBvbmVudFxcYCBkZWNvcmF0b3IgKHNlZSBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvQ29tcG9uZW50I2FuaW1hdGlvbnMpLmApO1xuICB9XG59XG5cbmNsYXNzIEVtdWxhdGVkRW5jYXBzdWxhdGlvblNlcnZlclJlbmRlcmVyMiBleHRlbmRzIERlZmF1bHRTZXJ2ZXJSZW5kZXJlcjIge1xuICBwcml2YXRlIGNvbnRlbnRBdHRyOiBzdHJpbmc7XG4gIHByaXZhdGUgaG9zdEF0dHI6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIGV2ZW50TWFuYWdlcjogRXZlbnRNYW5hZ2VyLCBkb2N1bWVudDogYW55LCBuZ1pvbmU6IE5nWm9uZSwgc2hhcmVkU3R5bGVzSG9zdDogU2hhcmVkU3R5bGVzSG9zdCxcbiAgICAgIHNjaGVtYTogRG9tRWxlbWVudFNjaGVtYVJlZ2lzdHJ5LCBwcml2YXRlIGNvbXBvbmVudDogUmVuZGVyZXJUeXBlMikge1xuICAgIHN1cGVyKGV2ZW50TWFuYWdlciwgZG9jdW1lbnQsIG5nWm9uZSwgc2NoZW1hKTtcbiAgICAvLyBBZGQgYSAncycgcHJlZml4IHRvIHN0eWxlIGF0dHJpYnV0ZXMgdG8gaW5kaWNhdGUgc2VydmVyLlxuICAgIGNvbnN0IGNvbXBvbmVudElkID0gJ3MnICsgY29tcG9uZW50LmlkO1xuICAgIGNvbnN0IHN0eWxlcyA9IGZsYXR0ZW5TdHlsZXMoY29tcG9uZW50SWQsIGNvbXBvbmVudC5zdHlsZXMsIFtdKTtcbiAgICBzaGFyZWRTdHlsZXNIb3N0LmFkZFN0eWxlcyhzdHlsZXMpO1xuXG4gICAgdGhpcy5jb250ZW50QXR0ciA9IHNoaW1Db250ZW50QXR0cmlidXRlKGNvbXBvbmVudElkKTtcbiAgICB0aGlzLmhvc3RBdHRyID0gc2hpbUhvc3RBdHRyaWJ1dGUoY29tcG9uZW50SWQpO1xuICB9XG5cbiAgYXBwbHlUb0hvc3QoZWxlbWVudDogYW55KSB7XG4gICAgc3VwZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsIHRoaXMuaG9zdEF0dHIsICcnKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNyZWF0ZUVsZW1lbnQocGFyZW50OiBhbnksIG5hbWU6IHN0cmluZyk6IEVsZW1lbnQge1xuICAgIGNvbnN0IGVsID0gc3VwZXIuY3JlYXRlRWxlbWVudChwYXJlbnQsIG5hbWUsIHRoaXMuZG9jdW1lbnQpO1xuICAgIHN1cGVyLnNldEF0dHJpYnV0ZShlbCwgdGhpcy5jb250ZW50QXR0ciwgJycpO1xuICAgIHJldHVybiBlbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBfcmVhZFN0eWxlQXR0cmlidXRlKGVsZW1lbnQ6IGFueSk6IHtbbmFtZTogc3RyaW5nXTogc3RyaW5nfSB7XG4gIGNvbnN0IHN0eWxlTWFwOiB7W25hbWU6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbiAgY29uc3Qgc3R5bGVBdHRyaWJ1dGUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnc3R5bGUnKTtcbiAgaWYgKHN0eWxlQXR0cmlidXRlKSB7XG4gICAgY29uc3Qgc3R5bGVMaXN0ID0gc3R5bGVBdHRyaWJ1dGUuc3BsaXQoLzsrL2cpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3R5bGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBzdHlsZSA9IHN0eWxlTGlzdFtpXS50cmltKCk7XG4gICAgICBpZiAoc3R5bGUubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBjb2xvbkluZGV4ID0gc3R5bGUuaW5kZXhPZignOicpO1xuICAgICAgICBpZiAoY29sb25JbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQ1NTIHN0eWxlOiAke3N0eWxlfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5hbWUgPSBzdHlsZS5zdWJzdHIoMCwgY29sb25JbmRleCkudHJpbSgpO1xuICAgICAgICBzdHlsZU1hcFtuYW1lXSA9IHN0eWxlLnN1YnN0cihjb2xvbkluZGV4ICsgMSkudHJpbSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3R5bGVNYXA7XG59XG5cbmZ1bmN0aW9uIF93cml0ZVN0eWxlQXR0cmlidXRlKGVsZW1lbnQ6IGFueSwgc3R5bGVNYXA6IHtbbmFtZTogc3RyaW5nXTogc3RyaW5nfSkge1xuICBsZXQgc3R5bGVBdHRyVmFsdWUgPSAnJztcbiAgZm9yIChjb25zdCBrZXkgaW4gc3R5bGVNYXApIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHN0eWxlTWFwW2tleV07XG4gICAgaWYgKG5ld1ZhbHVlICE9IG51bGwpIHtcbiAgICAgIHN0eWxlQXR0clZhbHVlICs9IGtleSArICc6JyArIHN0eWxlTWFwW2tleV0gKyAnOyc7XG4gICAgfVxuICB9XG4gIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsIHN0eWxlQXR0clZhbHVlKTtcbn1cbiJdfQ==
@@ -14,5 +14,5 @@ import { Version } from '@angular/core';
14
14
  /**
15
15
  * @publicApi
16
16
  */
17
- export const VERSION = new Version('13.0.0-next.5');
17
+ export const VERSION = new Version('13.0.0-next.9');
18
18
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtLXNlcnZlci9zcmMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSDs7OztHQUlHO0FBRUgsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQG1vZHVsZVxuICogQGRlc2NyaXB0aW9uXG4gKiBFbnRyeSBwb2ludCBmb3IgYWxsIHB1YmxpYyBBUElzIG9mIHRoZSBwbGF0Zm9ybS1zZXJ2ZXIgcGFja2FnZS5cbiAqL1xuXG5pbXBvcnQge1ZlcnNpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBuZXcgVmVyc2lvbignMC4wLjAtUExBQ0VIT0xERVInKTtcbiJdfQ==
package/fesm2015/init.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v13.0.0-next.5
2
+ * @license Angular v13.0.0-next.9
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v13.0.0-next.5
2
+ * @license Angular v13.0.0-next.9
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -488,6 +488,7 @@ class DefaultServerRenderer2 {
488
488
  this.ngZone = ngZone;
489
489
  this.schema = schema;
490
490
  this.data = Object.create(null);
491
+ this.destroyNode = null;
491
492
  }
492
493
  destroy() { }
493
494
  createElement(name, namespace, debugInfo) {
@@ -638,7 +639,9 @@ class DefaultServerRenderer2 {
638
639
  const AT_CHARCODE = '@'.charCodeAt(0);
639
640
  function checkNoSyntheticProp(name, nameKind) {
640
641
  if (name.charCodeAt(0) === AT_CHARCODE) {
641
- throw new Error(`Found the synthetic ${nameKind} ${name}. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.`);
642
+ throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:
643
+ - Either \`BrowserAnimationsModule\` or \`NoopAnimationsModule\` are imported in your application.
644
+ - There is corresponding configuration for the animation named \`${name}\` defined in the \`animations\` field of the \`@Component\` decorator (see https://angular.io/api/core/Component#animations).`);
642
645
  }
643
646
  }
644
647
  class EmulatedEncapsulationServerRenderer2 extends DefaultServerRenderer2 {
@@ -960,7 +963,7 @@ function renderModuleFactory(moduleFactory, options) {
960
963
  /**
961
964
  * @publicApi
962
965
  */
963
- const VERSION = new Version('13.0.0-next.5');
966
+ const VERSION = new Version('13.0.0-next.9');
964
967
 
965
968
  /**
966
969
  * @license
@@ -1 +1 @@
1
- {"version":3,"file":"platform-server.js","sources":["../../../../../../packages/platform-server/src/domino_adapter.ts","../../../../../../packages/platform-server/src/platform_state.ts","../../../../../../packages/platform-server/src/tokens.ts","../../../../../../packages/platform-server/src/http.ts","../../../../../../packages/platform-server/src/location.ts","../../../../../../packages/platform-server/src/server_events.ts","../../../../../../packages/platform-server/src/server_renderer.ts","../../../../../../packages/platform-server/src/styles_host.ts","../../../../../../packages/platform-server/src/server.ts","../../../../../../packages/platform-server/src/transfer_state.ts","../../../../../../packages/platform-server/src/utils.ts","../../../../../../packages/platform-server/src/private_export.ts","../../../../../../packages/platform-server/src/version.ts","../../../../../../packages/platform-server/src/platform-server.ts","../../../../../../packages/platform-server/public_api.ts","../../../../../../packages/platform-server/index.ts","../../../../../../packages/platform-server/platform-server.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst domino = require('domino');\n\nimport {ɵBrowserDomAdapter as BrowserDomAdapter} from '@angular/platform-browser';\nimport {ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\n\nexport function setDomTypes() {\n // Make all Domino types available in the global env.\n Object.assign(global, domino.impl);\n (global as any)['KeyboardEvent'] = domino.impl.Event;\n}\n\n/**\n * Parses a document string to a Document object.\n */\nexport function parseDocument(html: string, url = '/') {\n let window = domino.createWindow(html, url);\n let doc = window.document;\n return doc;\n}\n\n/**\n * Serializes a document to string.\n */\nexport function serializeDocument(doc: Document): string {\n return (doc as any).serialize();\n}\n\n/**\n * DOM Adapter for the server platform based on https://github.com/fgnass/domino.\n */\nexport class DominoAdapter extends BrowserDomAdapter {\n static override makeCurrent() {\n setDomTypes();\n setRootDomAdapter(new DominoAdapter());\n }\n\n override readonly supportsDOMEvents = false;\n private static defaultDoc: Document;\n\n override createHtmlDocument(): HTMLDocument {\n return parseDocument('<html><head><title>fakeTitle</title></head><body></body></html>');\n }\n\n override getDefaultDocument(): Document {\n if (!DominoAdapter.defaultDoc) {\n DominoAdapter.defaultDoc = domino.createDocument();\n }\n return DominoAdapter.defaultDoc;\n }\n\n override isElementNode(node: any): boolean {\n return node ? node.nodeType === DominoAdapter.defaultDoc.ELEMENT_NODE : false;\n }\n override isShadowRoot(node: any): boolean {\n return node.shadowRoot == node;\n }\n\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n override getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n if (target === 'window') {\n return doc.defaultView;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n\n override getBaseHref(doc: Document): string {\n // TODO(alxhub): Need relative path logic from BrowserDomAdapter here?\n return doc.documentElement!.querySelector('base')?.getAttribute('href') || '';\n }\n\n override dispatchEvent(el: Node, evt: any) {\n el.dispatchEvent(evt);\n\n // Dispatch the event to the window also.\n const doc = el.ownerDocument || el;\n const win = (doc as any).defaultView;\n if (win) {\n win.dispatchEvent(evt);\n }\n }\n\n override getUserAgent(): string {\n return 'Fake user agent';\n }\n\n override getCookie(name: string): string {\n throw new Error('getCookie has not been implemented');\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {serializeDocument} from './domino_adapter';\n\n/**\n * Representation of the current platform state.\n *\n * @publicApi\n */\n@Injectable()\nexport class PlatformState {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n\n /**\n * Renders the current state of the platform to string.\n */\n renderToString(): string {\n return serializeDocument(this._doc);\n }\n\n /**\n * Returns the current DOM state.\n */\n getDocument(): any {\n return this._doc;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {InjectionToken} from '@angular/core';\n\n/**\n * Config object passed to initialize the platform.\n *\n * @publicApi\n */\nexport interface PlatformConfig {\n /**\n * The initial DOM to use to bootstrap the server application.\n * @default create a new DOM using Domino\n */\n document?: string;\n /**\n * The URL for the current application state. This is used for initializing\n * the platform's location. `protocol`, `hostname`, and `port` will be\n * overridden if `baseUrl` is set.\n * @default none\n */\n url?: string;\n /**\n * Whether to append the absolute URL to any relative HTTP requests. If set to\n * true, this logic executes prior to any HTTP interceptors that may run later\n * on in the request. `baseUrl` must be supplied if this flag is enabled.\n * @default false\n */\n useAbsoluteUrl?: boolean;\n /**\n * The base URL for resolving absolute URL for HTTP requests. It must be set\n * if `useAbsoluteUrl` is true, and must consist of protocol, hostname,\n * and optional port. This option has no effect if `useAbsoluteUrl` is not\n * enabled.\n */\n baseUrl?: string;\n}\n\n/**\n * The DI token for setting the initial config for the platform.\n *\n * @publicApi\n */\nexport const INITIAL_CONFIG = new InjectionToken<PlatformConfig>('Server.INITIAL_CONFIG');\n\n/**\n * A function that will be executed when calling `renderModuleFactory` or `renderModule` just\n * before current platform state is rendered to string.\n *\n * @publicApi\n */\nexport const BEFORE_APP_SERIALIZED =\n new InjectionToken<Array<() => void | Promise<void>>>('Server.RENDER_MODULE_HOOK');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\n\n\nconst xhr2: any = require('xhr2');\n\nimport {Injectable, Injector, Provider} from '@angular/core';\nimport {PlatformLocation, XhrFactory} from '@angular/common';\nimport {HttpEvent, HttpRequest, HttpHandler, HttpBackend, ɵHttpInterceptingHandler as HttpInterceptingHandler} from '@angular/common/http';\nimport {Observable, Observer, Subscription} from 'rxjs';\n\n// @see https://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-01#URI-syntax\nconst isAbsoluteUrl = /^[a-zA-Z\\-\\+.]+:\\/\\//;\n\n@Injectable()\nexport class ServerXhr implements XhrFactory {\n build(): XMLHttpRequest {\n return new xhr2.XMLHttpRequest();\n }\n}\n\nexport abstract class ZoneMacroTaskWrapper<S, R> {\n wrap(request: S): Observable<R> {\n return new Observable((observer: Observer<R>) => {\n let task: Task = null!;\n let scheduled: boolean = false;\n let sub: Subscription|null = null;\n let savedResult: any = null;\n let savedError: any = null;\n\n const scheduleTask = (_task: Task) => {\n task = _task;\n scheduled = true;\n\n const delegate = this.delegate(request);\n sub = delegate.subscribe(\n res => savedResult = res,\n err => {\n if (!scheduled) {\n throw new Error(\n 'An http observable was completed twice. This shouldn\\'t happen, please file a bug.');\n }\n savedError = err;\n scheduled = false;\n task.invoke();\n },\n () => {\n if (!scheduled) {\n throw new Error(\n 'An http observable was completed twice. This shouldn\\'t happen, please file a bug.');\n }\n scheduled = false;\n task.invoke();\n });\n };\n\n const cancelTask = (_task: Task) => {\n if (!scheduled) {\n return;\n }\n scheduled = false;\n if (sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n\n const onComplete = () => {\n if (savedError !== null) {\n observer.error(savedError);\n } else {\n observer.next(savedResult);\n observer.complete();\n }\n };\n\n // MockBackend for Http is synchronous, which means that if scheduleTask is by\n // scheduleMacroTask, the request will hit MockBackend and the response will be\n // sent, causing task.invoke() to be called.\n const _task = Zone.current.scheduleMacroTask(\n 'ZoneMacroTaskWrapper.subscribe', onComplete, {}, () => null, cancelTask);\n scheduleTask(_task);\n\n return () => {\n if (scheduled && task) {\n task.zone.cancelTask(task);\n scheduled = false;\n }\n if (sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n });\n }\n\n protected abstract delegate(request: S): Observable<R>;\n}\n\nexport class ZoneClientBackend extends\n ZoneMacroTaskWrapper<HttpRequest<any>, HttpEvent<any>> implements HttpBackend {\n constructor(\n private backend: HttpBackend, private platformLocation: PlatformLocation,\n private config: PlatformConfig) {\n super();\n }\n\n handle(request: HttpRequest<any>): Observable<HttpEvent<any>> {\n const {href, protocol, hostname, port} = this.platformLocation;\n if (this.config.useAbsoluteUrl && !isAbsoluteUrl.test(request.url) &&\n isAbsoluteUrl.test(href)) {\n const baseHref = this.platformLocation.getBaseHrefFromDOM() || href;\n const urlPrefix = `${protocol}//${hostname}` + (port ? `:${port}` : '');\n const baseUrl = new URL(baseHref, urlPrefix);\n const url = new URL(request.url, baseUrl);\n return this.wrap(request.clone({url: url.toString()}));\n }\n return this.wrap(request);\n }\n\n protected override delegate(request: HttpRequest<any>): Observable<HttpEvent<any>> {\n return this.backend.handle(request);\n }\n}\n\nexport function zoneWrappedInterceptingHandler(\n backend: HttpBackend, injector: Injector, platformLocation: PlatformLocation,\n config: PlatformConfig) {\n const realBackend: HttpBackend = new HttpInterceptingHandler(backend, injector);\n return new ZoneClientBackend(realBackend, platformLocation, config);\n}\n\nexport const SERVER_HTTP_PROVIDERS: Provider[] = [\n {provide: XhrFactory, useClass: ServerXhr}, {\n provide: HttpHandler,\n useFactory: zoneWrappedInterceptingHandler,\n deps: [HttpBackend, Injector, PlatformLocation, INITIAL_CONFIG]\n }\n];\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, LocationChangeEvent, LocationChangeListener, PlatformLocation, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport * as url from 'url';\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\n\nfunction parseUrl(urlStr: string) {\n const parsedUrl = url.parse(urlStr);\n return {\n hostname: parsedUrl.hostname || '',\n protocol: parsedUrl.protocol || '',\n port: parsedUrl.port || '',\n pathname: parsedUrl.pathname || '',\n search: parsedUrl.search || '',\n hash: parsedUrl.hash || '',\n };\n}\n\n/**\n * Server-side implementation of URL state. Implements `pathname`, `search`, and `hash`\n * but not the state stack.\n */\n@Injectable()\nexport class ServerPlatformLocation implements PlatformLocation {\n public readonly href: string = '/';\n public readonly hostname: string = '/';\n public readonly protocol: string = '/';\n public readonly port: string = '/';\n public readonly pathname: string = '/';\n public readonly search: string = '';\n public readonly hash: string = '';\n private _hashUpdate = new Subject<LocationChangeEvent>();\n\n constructor(\n @Inject(DOCUMENT) private _doc: any, @Optional() @Inject(INITIAL_CONFIG) _config: any) {\n const config = _config as PlatformConfig | null;\n if (!config) {\n return;\n }\n if (config.url) {\n const url = parseUrl(config.url);\n this.protocol = url.protocol;\n this.hostname = url.hostname;\n this.port = url.port;\n this.pathname = url.pathname;\n this.search = url.search;\n this.hash = url.hash;\n this.href = _doc.location.href;\n }\n if (config.useAbsoluteUrl) {\n if (!config.baseUrl) {\n throw new Error(`\"PlatformConfig.baseUrl\" must be set if \"useAbsoluteUrl\" is true`);\n }\n const url = parseUrl(config.baseUrl);\n this.protocol = url.protocol;\n this.hostname = url.hostname;\n this.port = url.port;\n }\n }\n\n getBaseHrefFromDOM(): string {\n return getDOM().getBaseHref(this._doc)!;\n }\n\n onPopState(fn: LocationChangeListener): VoidFunction {\n // No-op: a state stack is not implemented, so\n // no events will ever come.\n return () => {};\n }\n\n onHashChange(fn: LocationChangeListener): VoidFunction {\n const subscription = this._hashUpdate.subscribe(fn);\n return () => subscription.unsubscribe();\n }\n\n get url(): string {\n return `${this.pathname}${this.search}${this.hash}`;\n }\n\n private setHash(value: string, oldUrl: string) {\n if (this.hash === value) {\n // Don't fire events if the hash has not changed.\n return;\n }\n (this as {hash: string}).hash = value;\n const newUrl = this.url;\n scheduleMicroTask(\n () => this._hashUpdate.next(\n {type: 'hashchange', state: null, oldUrl, newUrl} as LocationChangeEvent));\n }\n\n replaceState(state: any, title: string, newUrl: string): void {\n const oldUrl = this.url;\n const parsedUrl = parseUrl(newUrl);\n (this as {pathname: string}).pathname = parsedUrl.pathname;\n (this as {search: string}).search = parsedUrl.search;\n this.setHash(parsedUrl.hash, oldUrl);\n }\n\n pushState(state: any, title: string, newUrl: string): void {\n this.replaceState(state, title, newUrl);\n }\n\n forward(): void {\n throw new Error('Not implemented');\n }\n\n back(): void {\n throw new Error('Not implemented');\n }\n\n // History API isn't available on server, therefore return undefined\n getState(): unknown {\n return undefined;\n }\n}\n\nexport function scheduleMicroTask(fn: Function) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\n@Injectable()\nexport class ServerEventManagerPlugin /* extends EventManagerPlugin which is private */ {\n constructor(@Inject(DOCUMENT) private doc: any) {}\n\n // Handle all events on the server.\n supports(eventName: string) {\n return true;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n return getDOM().onAndCancel(element, eventName, handler);\n }\n\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n const target: HTMLElement = getDOM().getGlobalEventTarget(this.doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {DomElementSchemaRegistry} from '@angular/compiler';\nimport {Inject, Injectable, NgZone, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\nimport {EventManager, ɵflattenStyles as flattenStyles, ɵNAMESPACE_URIS as NAMESPACE_URIS, ɵSharedStylesHost as SharedStylesHost, ɵshimContentAttribute as shimContentAttribute, ɵshimHostAttribute as shimHostAttribute} from '@angular/platform-browser';\n\nconst EMPTY_ARRAY: any[] = [];\n\nconst DEFAULT_SCHEMA = new DomElementSchemaRegistry();\n\n@Injectable()\nexport class ServerRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n private schema = DEFAULT_SCHEMA;\n\n constructor(\n private eventManager: EventManager, private ngZone: NgZone,\n @Inject(DOCUMENT) private document: any, private sharedStylesHost: SharedStylesHost) {\n this.defaultRenderer = new DefaultServerRenderer2(eventManager, document, ngZone, this.schema);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer = new EmulatedEncapsulationServerRenderer2(\n this.eventManager, this.document, this.ngZone, this.sharedStylesHost, this.schema,\n type);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationServerRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass DefaultServerRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\n constructor(\n private eventManager: EventManager, protected document: any, private ngZone: NgZone,\n private schema: DomElementSchemaRegistry) {}\n\n destroy(): void {}\n\n destroyNode: null;\n\n createElement(name: string, namespace?: string, debugInfo?: any): any {\n if (namespace) {\n const doc = this.document || getDOM().getDefaultDocument();\n // TODO(FW-811): Ivy may cause issues here because it's passing around\n // full URIs for namespaces, therefore this lookup will fail.\n return doc.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n\n return getDOM().createElement(name, this.document);\n }\n\n createComment(value: string, debugInfo?: any): any {\n return getDOM().getDefaultDocument().createComment(value);\n }\n\n createText(value: string, debugInfo?: any): any {\n const doc = getDOM().getDefaultDocument();\n return doc.createTextNode(value);\n }\n\n appendChild(parent: any, newChild: any): void {\n parent.appendChild(newChild);\n }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, debugInfo?: any): any {\n let el: any;\n if (typeof selectorOrNode === 'string') {\n el = this.document.querySelector(selectorOrNode);\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n } else {\n el = selectorOrNode;\n }\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n return el;\n }\n\n parentNode(node: any): any {\n return node.parentNode;\n }\n\n nextSibling(node: any): any {\n return node.nextSibling;\n }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n // TODO(FW-811): Ivy may cause issues here because it's passing around\n // full URIs for namespaces, therefore this lookup will fail.\n el.setAttributeNS(NAMESPACE_URIS[namespace], namespace + ':' + name, value);\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n // TODO(FW-811): Ivy may cause issues here because it's passing around\n // full URIs for namespaces, therefore this lookup will fail.\n el.removeAttributeNS(NAMESPACE_URIS[namespace], name);\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void {\n el.classList.add(name);\n }\n\n removeClass(el: any, name: string): void {\n el.classList.remove(name);\n }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n style = style.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n const styleMap = _readStyleAttribute(el);\n if (flags & RendererStyleFlags2.Important) {\n value += ' !important';\n }\n styleMap[style] = value == null ? '' : value;\n _writeStyleAttribute(el, styleMap);\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n this.setStyle(el, style, '', flags);\n }\n\n // The value was validated already as a property binding, against the property name.\n // To know this value is safe to use as an attribute, the security context of the\n // attribute with the given name is checked against that security context of the\n // property.\n private _isSafeToReflectProperty(tagName: string, propertyName: string): boolean {\n return this.schema.securityContext(tagName, propertyName, true) ===\n this.schema.securityContext(tagName, propertyName, false);\n }\n\n setProperty(el: any, name: string, value: any): void {\n checkNoSyntheticProp(name, 'property');\n if (name === 'innerText') {\n // Domino does not support innerText. Just map it to textContent.\n el.textContent = value;\n }\n (<any>el)[name] = value;\n // Mirror property values for known HTML element properties in the attributes.\n // Skip `innerhtml` which is conservatively marked as an attribute for security\n // purposes but is not actually an attribute.\n const tagName = (el.tagName as string).toLowerCase();\n if (value != null && (typeof value === 'number' || typeof value == 'string') &&\n name.toLowerCase() !== 'innerhtml' && this.schema.hasElement(tagName, EMPTY_ARRAY) &&\n this.schema.hasProperty(tagName, name, EMPTY_ARRAY) &&\n this._isSafeToReflectProperty(tagName, name)) {\n this.setAttribute(el, name, value.toString());\n }\n }\n\n setValue(node: any, value: string): void {\n node.textContent = value;\n }\n\n listen(\n target: 'document'|'window'|'body'|any, eventName: string,\n callback: (event: any) => boolean): () => void {\n checkNoSyntheticProp(eventName, 'listener');\n if (typeof target === 'string') {\n return <() => void>this.eventManager.addGlobalEventListener(\n target, eventName, this.decoratePreventDefault(callback));\n }\n return <() => void>this.eventManager.addEventListener(\n target, eventName, this.decoratePreventDefault(callback)) as () => void;\n }\n\n private decoratePreventDefault(eventHandler: Function): Function {\n return (event: any) => {\n // Ivy uses `Function` as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`.\n if (event === Function) {\n return eventHandler;\n }\n\n // Run the event handler inside the ngZone because event handlers are not patched\n // by Zone on the server. This is required only for tests.\n const allowDefaultBehavior = this.ngZone.runGuarded(() => eventHandler(event));\n if (allowDefaultBehavior === false) {\n event.preventDefault();\n event.returnValue = false;\n }\n\n return undefined;\n };\n }\n}\n\nconst AT_CHARCODE = '@'.charCodeAt(0);\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(`Found the synthetic ${nameKind} ${\n name}. Please include either \"BrowserAnimationsModule\" or \"NoopAnimationsModule\" in your application.`);\n }\n}\n\nclass EmulatedEncapsulationServerRenderer2 extends DefaultServerRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, document: any, ngZone: NgZone, sharedStylesHost: SharedStylesHost,\n schema: DomElementSchemaRegistry, private component: RendererType2) {\n super(eventManager, document, ngZone, schema);\n // Add a 's' prefix to style attributes to indicate server.\n const componentId = 's' + component.id;\n const styles = flattenStyles(componentId, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(componentId);\n this.hostAttr = shimHostAttribute(componentId);\n }\n\n applyToHost(element: any) {\n super.setAttribute(element, this.hostAttr, '');\n }\n\n override createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name, this.document);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nfunction _readStyleAttribute(element: any): {[name: string]: string} {\n const styleMap: {[name: string]: string} = {};\n const styleAttribute = element.getAttribute('style');\n if (styleAttribute) {\n const styleList = styleAttribute.split(/;+/g);\n for (let i = 0; i < styleList.length; i++) {\n const style = styleList[i].trim();\n if (style.length > 0) {\n const colonIndex = style.indexOf(':');\n if (colonIndex === -1) {\n throw new Error(`Invalid CSS style: ${style}`);\n }\n const name = style.substr(0, colonIndex).trim();\n styleMap[name] = style.substr(colonIndex + 1).trim();\n }\n }\n }\n return styleMap;\n}\n\nfunction _writeStyleAttribute(element: any, styleMap: {[name: string]: string}) {\n let styleAttrValue = '';\n for (const key in styleMap) {\n const newValue = styleMap[key];\n if (newValue != null) {\n styleAttrValue += key + ':' + styleMap[key] + ';';\n }\n }\n element.setAttribute('style', styleAttrValue);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, Optional} from '@angular/core';\nimport {ɵSharedStylesHost as SharedStylesHost, ɵTRANSITION_ID} from '@angular/platform-browser';\n\n@Injectable()\nexport class ServerStylesHost extends SharedStylesHost {\n private head: any = null;\n private _styleNodes = new Set<HTMLElement>();\n\n constructor(\n @Inject(DOCUMENT) private doc: any,\n @Optional() @Inject(ɵTRANSITION_ID) private transitionId: string) {\n super();\n this.head = doc.getElementsByTagName('head')[0];\n }\n\n private _addStyle(style: string): void {\n let adapter = getDOM();\n const el = adapter.createElement('style');\n el.textContent = style;\n if (!!this.transitionId) {\n el.setAttribute('ng-transition', this.transitionId);\n }\n this.head.appendChild(el);\n this._styleNodes.add(el);\n }\n\n override onStylesAdded(additions: Set<string>) {\n additions.forEach(style => this._addStyle(style));\n }\n\n ngOnDestroy() {\n this._styleNodes.forEach(styleNode => styleNode.remove());\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵAnimationEngine} from '@angular/animations/browser';\nimport {DOCUMENT, PlatformLocation, ViewportScroller, ɵgetDOM as getDOM, ɵNullViewportScroller as NullViewportScroller, ɵPLATFORM_SERVER_ID as PLATFORM_SERVER_ID} from '@angular/common';\nimport {HttpClientModule} from '@angular/common/http';\nimport {createPlatformFactory, Injector, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, Provider, RendererFactory2, StaticProvider, Testability, ɵALLOW_MULTIPLE_PLATFORMS as ALLOW_MULTIPLE_PLATFORMS, ɵsetDocument} from '@angular/core';\nimport {BrowserModule, EVENT_MANAGER_PLUGINS, ɵSharedStylesHost as SharedStylesHost} from '@angular/platform-browser';\nimport {ɵplatformCoreDynamic as platformCoreDynamic} from '@angular/platform-browser-dynamic';\nimport {NoopAnimationsModule, ɵAnimationRendererFactory} from '@angular/platform-browser/animations';\n\nimport {DominoAdapter, parseDocument} from './domino_adapter';\nimport {SERVER_HTTP_PROVIDERS} from './http';\nimport {ServerPlatformLocation} from './location';\nimport {PlatformState} from './platform_state';\nimport {ServerEventManagerPlugin} from './server_events';\nimport {ServerRendererFactory2} from './server_renderer';\nimport {ServerStylesHost} from './styles_host';\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\n\nfunction notSupported(feature: string): Error {\n throw new Error(`platform-server does not support '${feature}'.`);\n}\n\nexport const INTERNAL_SERVER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: DOCUMENT, useFactory: _document, deps: [Injector]},\n {provide: PLATFORM_ID, useValue: PLATFORM_SERVER_ID},\n {provide: PLATFORM_INITIALIZER, useFactory: initDominoAdapter, multi: true, deps: [Injector]}, {\n provide: PlatformLocation,\n useClass: ServerPlatformLocation,\n deps: [DOCUMENT, [Optional, INITIAL_CONFIG]]\n },\n {provide: PlatformState, deps: [DOCUMENT]},\n // Add special provider that allows multiple instances of platformServer* to be created.\n {provide: ALLOW_MULTIPLE_PLATFORMS, useValue: true}\n];\n\nfunction initDominoAdapter(injector: Injector) {\n return () => {\n DominoAdapter.makeCurrent();\n };\n}\n\nexport function instantiateServerRendererFactory(\n renderer: RendererFactory2, engine: ɵAnimationEngine, zone: NgZone) {\n return new ɵAnimationRendererFactory(renderer, engine, zone);\n}\n\nexport const SERVER_RENDER_PROVIDERS: Provider[] = [\n ServerRendererFactory2,\n {\n provide: RendererFactory2,\n useFactory: instantiateServerRendererFactory,\n deps: [ServerRendererFactory2, ɵAnimationEngine, NgZone]\n },\n ServerStylesHost,\n {provide: SharedStylesHost, useExisting: ServerStylesHost},\n {provide: EVENT_MANAGER_PLUGINS, multi: true, useClass: ServerEventManagerPlugin},\n];\n\n/**\n * The ng module for the server.\n *\n * @publicApi\n */\n@NgModule({\n exports: [BrowserModule],\n imports: [HttpClientModule, NoopAnimationsModule],\n providers: [\n SERVER_RENDER_PROVIDERS,\n SERVER_HTTP_PROVIDERS,\n {provide: Testability, useValue: null},\n {provide: ViewportScroller, useClass: NullViewportScroller},\n ],\n})\nexport class ServerModule {\n}\n\nfunction _document(injector: Injector) {\n let config: PlatformConfig|null = injector.get(INITIAL_CONFIG, null);\n const document = config && config.document ? parseDocument(config.document, config.url) :\n getDOM().createHtmlDocument();\n // Tell ivy about the global document\n ɵsetDocument(document);\n return document;\n}\n\n/**\n * @publicApi\n */\nexport const platformServer: (extraProviders?: StaticProvider[]|undefined) => PlatformRef =\n createPlatformFactory(platformCore, 'server', INTERNAL_SERVER_PLATFORM_PROVIDERS);\n\n/**\n * The server platform that supports the runtime compiler.\n *\n * @publicApi\n */\nexport const platformDynamicServer =\n createPlatformFactory(platformCoreDynamic, 'serverDynamic', INTERNAL_SERVER_PLATFORM_PROVIDERS);\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, NgModule} from '@angular/core';\nimport {TransferState, ɵescapeHtml as escapeHtml} from '@angular/platform-browser';\n\nimport {BEFORE_APP_SERIALIZED} from './tokens';\n\nexport function serializeTransferStateFactory(\n doc: Document, appId: string, transferStore: TransferState) {\n return () => {\n const script = doc.createElement('script');\n script.id = appId + '-state';\n script.setAttribute('type', 'application/json');\n script.textContent = escapeHtml(transferStore.toJson());\n doc.body.appendChild(script);\n };\n}\n\n/**\n * NgModule to install on the server side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n providers: [\n TransferState, {\n provide: BEFORE_APP_SERIALIZED,\n useFactory: serializeTransferStateFactory,\n deps: [DOCUMENT, APP_ID, TransferState],\n multi: true,\n }\n ]\n})\nexport class ServerTransferStateModule {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, NgModuleFactory, NgModuleRef, PlatformRef, StaticProvider, Type, ɵisPromise} from '@angular/core';\nimport {ɵTRANSITION_ID} from '@angular/platform-browser';\nimport {first} from 'rxjs/operators';\n\nimport {PlatformState} from './platform_state';\nimport {platformDynamicServer, platformServer} from './server';\nimport {BEFORE_APP_SERIALIZED, INITIAL_CONFIG} from './tokens';\n\ninterface PlatformOptions {\n document?: string;\n url?: string;\n extraProviders?: StaticProvider[];\n}\n\nfunction _getPlatform(\n platformFactory: (extraProviders: StaticProvider[]) => PlatformRef,\n options: PlatformOptions): PlatformRef {\n const extraProviders = options.extraProviders ? options.extraProviders : [];\n return platformFactory([\n {provide: INITIAL_CONFIG, useValue: {document: options.document, url: options.url}},\n extraProviders\n ]);\n}\n\nfunction _render<T>(\n platform: PlatformRef, moduleRefPromise: Promise<NgModuleRef<T>>): Promise<string> {\n return moduleRefPromise.then((moduleRef) => {\n const transitionId = moduleRef.injector.get(ɵTRANSITION_ID, null);\n if (!transitionId) {\n throw new Error(\n `renderModule[Factory]() requires the use of BrowserModule.withServerTransition() to ensure\nthe server-rendered app can be properly bootstrapped into a client app.`);\n }\n const applicationRef: ApplicationRef = moduleRef.injector.get(ApplicationRef);\n return applicationRef.isStable.pipe((first((isStable: boolean) => isStable)))\n .toPromise()\n .then(() => {\n const platformState = platform.injector.get(PlatformState);\n\n const asyncPromises: Promise<any>[] = [];\n\n // Run any BEFORE_APP_SERIALIZED callbacks just before rendering to string.\n const callbacks = moduleRef.injector.get(BEFORE_APP_SERIALIZED, null);\n if (callbacks) {\n for (const callback of callbacks) {\n try {\n const callbackResult = callback();\n if (ɵisPromise(callbackResult)) {\n // TODO: in TS3.7, callbackResult is void.\n asyncPromises.push(callbackResult as any);\n }\n\n } catch (e) {\n // Ignore exceptions.\n console.warn('Ignoring BEFORE_APP_SERIALIZED Exception: ', e);\n }\n }\n }\n\n const complete = () => {\n const output = platformState.renderToString();\n platform.destroy();\n return output;\n };\n\n if (asyncPromises.length === 0) {\n return complete();\n }\n\n return Promise\n .all(asyncPromises.map(asyncPromise => {\n return asyncPromise.catch(e => {\n console.warn('Ignoring BEFORE_APP_SERIALIZED Exception: ', e);\n });\n }))\n .then(complete);\n });\n });\n}\n\n/**\n * Renders a Module to string.\n *\n * `document` is the full document HTML of the page to render, as a string.\n * `url` is the URL for the current render request.\n * `extraProviders` are the platform level providers for the current render request.\n *\n * If compiling with the ViewEngine renderer, do not use this in a production server environment.\n * Use pre-compiled {@link NgModuleFactory} with {@link renderModuleFactory} instead. If\n * compiling with the Ivy renderer, this method is the recommended rendering method for\n * platform-server.\n *\n * @publicApi\n */\nexport function renderModule<T>(\n module: Type<T>, options: {document?: string, url?: string, extraProviders?: StaticProvider[]}):\n Promise<string> {\n const platform = _getPlatform(platformDynamicServer, options);\n return _render(platform, platform.bootstrapModule(module));\n}\n\n/**\n * Renders a {@link NgModuleFactory} to string.\n *\n * `document` is the full document HTML of the page to render, as a string.\n * `url` is the URL for the current render request.\n * `extraProviders` are the platform level providers for the current render request.\n *\n * @publicApi\n */\nexport function renderModuleFactory<T>(\n moduleFactory: NgModuleFactory<T>,\n options: {document?: string, url?: string, extraProviders?: StaticProvider[]}):\n Promise<string> {\n const platform = _getPlatform(platformServer, options);\n return _render(platform, platform.bootstrapModuleFactory(moduleFactory));\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nexport {INTERNAL_SERVER_PLATFORM_PROVIDERS as ɵINTERNAL_SERVER_PLATFORM_PROVIDERS, SERVER_RENDER_PROVIDERS as ɵSERVER_RENDER_PROVIDERS} from './server';\nexport {ServerRendererFactory2 as ɵServerRendererFactory2} from './server_renderer';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-server package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('13.0.0-next.5');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {PlatformState} from './platform_state';\nexport {platformDynamicServer, platformServer, ServerModule} from './server';\nexport {BEFORE_APP_SERIALIZED, INITIAL_CONFIG, PlatformConfig} from './tokens';\nexport {ServerTransferStateModule} from './transfer_state';\nexport {renderModule, renderModuleFactory} from './utils';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/// <reference types=\"node\" />\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-server';\n\n// This file only reexports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SERVER_HTTP_PROVIDERS as ɵangular_packages_platform_server_platform_server_g,ServerXhr as ɵangular_packages_platform_server_platform_server_e,zoneWrappedInterceptingHandler as ɵangular_packages_platform_server_platform_server_f} from './src/http';\nexport {instantiateServerRendererFactory as ɵangular_packages_platform_server_platform_server_a} from './src/server';\nexport {ServerEventManagerPlugin as ɵangular_packages_platform_server_platform_server_d} from './src/server_events';\nexport {ServerStylesHost as ɵangular_packages_platform_server_platform_server_c} from './src/styles_host';\nexport {serializeTransferStateFactory as ɵangular_packages_platform_server_platform_server_b} from './src/transfer_state';"],"names":["BrowserDomAdapter","setRootDomAdapter","HttpInterceptingHandler","url.parse","getDOM","flattenStyles","SharedStylesHost","NAMESPACE_URIS","shimContentAttribute","shimHostAttribute","PLATFORM_SERVER_ID","ALLOW_MULTIPLE_PLATFORMS","NullViewportScroller","platformCoreDynamic","escapeHtml"],"mappings":"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"}
1
+ {"version":3,"file":"platform-server.js","sources":["../../../../../../packages/platform-server/src/domino_adapter.ts","../../../../../../packages/platform-server/src/platform_state.ts","../../../../../../packages/platform-server/src/tokens.ts","../../../../../../packages/platform-server/src/http.ts","../../../../../../packages/platform-server/src/location.ts","../../../../../../packages/platform-server/src/server_events.ts","../../../../../../packages/platform-server/src/server_renderer.ts","../../../../../../packages/platform-server/src/styles_host.ts","../../../../../../packages/platform-server/src/server.ts","../../../../../../packages/platform-server/src/transfer_state.ts","../../../../../../packages/platform-server/src/utils.ts","../../../../../../packages/platform-server/src/private_export.ts","../../../../../../packages/platform-server/src/version.ts","../../../../../../packages/platform-server/src/platform-server.ts","../../../../../../packages/platform-server/public_api.ts","../../../../../../packages/platform-server/index.ts","../../../../../../packages/platform-server/platform-server.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst domino = require('domino');\n\nimport {ɵBrowserDomAdapter as BrowserDomAdapter} from '@angular/platform-browser';\nimport {ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\n\nexport function setDomTypes() {\n // Make all Domino types available in the global env.\n Object.assign(global, domino.impl);\n (global as any)['KeyboardEvent'] = domino.impl.Event;\n}\n\n/**\n * Parses a document string to a Document object.\n */\nexport function parseDocument(html: string, url = '/') {\n let window = domino.createWindow(html, url);\n let doc = window.document;\n return doc;\n}\n\n/**\n * Serializes a document to string.\n */\nexport function serializeDocument(doc: Document): string {\n return (doc as any).serialize();\n}\n\n/**\n * DOM Adapter for the server platform based on https://github.com/fgnass/domino.\n */\nexport class DominoAdapter extends BrowserDomAdapter {\n static override makeCurrent() {\n setDomTypes();\n setRootDomAdapter(new DominoAdapter());\n }\n\n override readonly supportsDOMEvents = false;\n private static defaultDoc: Document;\n\n override createHtmlDocument(): HTMLDocument {\n return parseDocument('<html><head><title>fakeTitle</title></head><body></body></html>');\n }\n\n override getDefaultDocument(): Document {\n if (!DominoAdapter.defaultDoc) {\n DominoAdapter.defaultDoc = domino.createDocument();\n }\n return DominoAdapter.defaultDoc;\n }\n\n override isElementNode(node: any): boolean {\n return node ? node.nodeType === DominoAdapter.defaultDoc.ELEMENT_NODE : false;\n }\n override isShadowRoot(node: any): boolean {\n return node.shadowRoot == node;\n }\n\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n override getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n if (target === 'window') {\n return doc.defaultView;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n\n override getBaseHref(doc: Document): string {\n // TODO(alxhub): Need relative path logic from BrowserDomAdapter here?\n return doc.documentElement!.querySelector('base')?.getAttribute('href') || '';\n }\n\n override dispatchEvent(el: Node, evt: any) {\n el.dispatchEvent(evt);\n\n // Dispatch the event to the window also.\n const doc = el.ownerDocument || el;\n const win = (doc as any).defaultView;\n if (win) {\n win.dispatchEvent(evt);\n }\n }\n\n override getUserAgent(): string {\n return 'Fake user agent';\n }\n\n override getCookie(name: string): string {\n throw new Error('getCookie has not been implemented');\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {serializeDocument} from './domino_adapter';\n\n/**\n * Representation of the current platform state.\n *\n * @publicApi\n */\n@Injectable()\nexport class PlatformState {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n\n /**\n * Renders the current state of the platform to string.\n */\n renderToString(): string {\n return serializeDocument(this._doc);\n }\n\n /**\n * Returns the current DOM state.\n */\n getDocument(): any {\n return this._doc;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {InjectionToken} from '@angular/core';\n\n/**\n * Config object passed to initialize the platform.\n *\n * @publicApi\n */\nexport interface PlatformConfig {\n /**\n * The initial DOM to use to bootstrap the server application.\n * @default create a new DOM using Domino\n */\n document?: string;\n /**\n * The URL for the current application state. This is used for initializing\n * the platform's location. `protocol`, `hostname`, and `port` will be\n * overridden if `baseUrl` is set.\n * @default none\n */\n url?: string;\n /**\n * Whether to append the absolute URL to any relative HTTP requests. If set to\n * true, this logic executes prior to any HTTP interceptors that may run later\n * on in the request. `baseUrl` must be supplied if this flag is enabled.\n * @default false\n */\n useAbsoluteUrl?: boolean;\n /**\n * The base URL for resolving absolute URL for HTTP requests. It must be set\n * if `useAbsoluteUrl` is true, and must consist of protocol, hostname,\n * and optional port. This option has no effect if `useAbsoluteUrl` is not\n * enabled.\n */\n baseUrl?: string;\n}\n\n/**\n * The DI token for setting the initial config for the platform.\n *\n * @publicApi\n */\nexport const INITIAL_CONFIG = new InjectionToken<PlatformConfig>('Server.INITIAL_CONFIG');\n\n/**\n * A function that will be executed when calling `renderModuleFactory` or `renderModule` just\n * before current platform state is rendered to string.\n *\n * @publicApi\n */\nexport const BEFORE_APP_SERIALIZED =\n new InjectionToken<Array<() => void | Promise<void>>>('Server.RENDER_MODULE_HOOK');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\n\n\nconst xhr2: any = require('xhr2');\n\nimport {Injectable, Injector, Provider} from '@angular/core';\nimport {PlatformLocation, XhrFactory} from '@angular/common';\nimport {HttpEvent, HttpRequest, HttpHandler, HttpBackend, ɵHttpInterceptingHandler as HttpInterceptingHandler} from '@angular/common/http';\nimport {Observable, Observer, Subscription} from 'rxjs';\n\n// @see https://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-01#URI-syntax\nconst isAbsoluteUrl = /^[a-zA-Z\\-\\+.]+:\\/\\//;\n\n@Injectable()\nexport class ServerXhr implements XhrFactory {\n build(): XMLHttpRequest {\n return new xhr2.XMLHttpRequest();\n }\n}\n\nexport abstract class ZoneMacroTaskWrapper<S, R> {\n wrap(request: S): Observable<R> {\n return new Observable((observer: Observer<R>) => {\n let task: Task = null!;\n let scheduled: boolean = false;\n let sub: Subscription|null = null;\n let savedResult: any = null;\n let savedError: any = null;\n\n const scheduleTask = (_task: Task) => {\n task = _task;\n scheduled = true;\n\n const delegate = this.delegate(request);\n sub = delegate.subscribe(\n res => savedResult = res,\n err => {\n if (!scheduled) {\n throw new Error(\n 'An http observable was completed twice. This shouldn\\'t happen, please file a bug.');\n }\n savedError = err;\n scheduled = false;\n task.invoke();\n },\n () => {\n if (!scheduled) {\n throw new Error(\n 'An http observable was completed twice. This shouldn\\'t happen, please file a bug.');\n }\n scheduled = false;\n task.invoke();\n });\n };\n\n const cancelTask = (_task: Task) => {\n if (!scheduled) {\n return;\n }\n scheduled = false;\n if (sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n\n const onComplete = () => {\n if (savedError !== null) {\n observer.error(savedError);\n } else {\n observer.next(savedResult);\n observer.complete();\n }\n };\n\n // MockBackend for Http is synchronous, which means that if scheduleTask is by\n // scheduleMacroTask, the request will hit MockBackend and the response will be\n // sent, causing task.invoke() to be called.\n const _task = Zone.current.scheduleMacroTask(\n 'ZoneMacroTaskWrapper.subscribe', onComplete, {}, () => null, cancelTask);\n scheduleTask(_task);\n\n return () => {\n if (scheduled && task) {\n task.zone.cancelTask(task);\n scheduled = false;\n }\n if (sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n });\n }\n\n protected abstract delegate(request: S): Observable<R>;\n}\n\nexport class ZoneClientBackend extends\n ZoneMacroTaskWrapper<HttpRequest<any>, HttpEvent<any>> implements HttpBackend {\n constructor(\n private backend: HttpBackend, private platformLocation: PlatformLocation,\n private config: PlatformConfig) {\n super();\n }\n\n handle(request: HttpRequest<any>): Observable<HttpEvent<any>> {\n const {href, protocol, hostname, port} = this.platformLocation;\n if (this.config.useAbsoluteUrl && !isAbsoluteUrl.test(request.url) &&\n isAbsoluteUrl.test(href)) {\n const baseHref = this.platformLocation.getBaseHrefFromDOM() || href;\n const urlPrefix = `${protocol}//${hostname}` + (port ? `:${port}` : '');\n const baseUrl = new URL(baseHref, urlPrefix);\n const url = new URL(request.url, baseUrl);\n return this.wrap(request.clone({url: url.toString()}));\n }\n return this.wrap(request);\n }\n\n protected override delegate(request: HttpRequest<any>): Observable<HttpEvent<any>> {\n return this.backend.handle(request);\n }\n}\n\nexport function zoneWrappedInterceptingHandler(\n backend: HttpBackend, injector: Injector, platformLocation: PlatformLocation,\n config: PlatformConfig) {\n const realBackend: HttpBackend = new HttpInterceptingHandler(backend, injector);\n return new ZoneClientBackend(realBackend, platformLocation, config);\n}\n\nexport const SERVER_HTTP_PROVIDERS: Provider[] = [\n {provide: XhrFactory, useClass: ServerXhr}, {\n provide: HttpHandler,\n useFactory: zoneWrappedInterceptingHandler,\n deps: [HttpBackend, Injector, PlatformLocation, INITIAL_CONFIG]\n }\n];\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, LocationChangeEvent, LocationChangeListener, PlatformLocation, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport * as url from 'url';\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\n\nfunction parseUrl(urlStr: string) {\n const parsedUrl = url.parse(urlStr);\n return {\n hostname: parsedUrl.hostname || '',\n protocol: parsedUrl.protocol || '',\n port: parsedUrl.port || '',\n pathname: parsedUrl.pathname || '',\n search: parsedUrl.search || '',\n hash: parsedUrl.hash || '',\n };\n}\n\n/**\n * Server-side implementation of URL state. Implements `pathname`, `search`, and `hash`\n * but not the state stack.\n */\n@Injectable()\nexport class ServerPlatformLocation implements PlatformLocation {\n public readonly href: string = '/';\n public readonly hostname: string = '/';\n public readonly protocol: string = '/';\n public readonly port: string = '/';\n public readonly pathname: string = '/';\n public readonly search: string = '';\n public readonly hash: string = '';\n private _hashUpdate = new Subject<LocationChangeEvent>();\n\n constructor(\n @Inject(DOCUMENT) private _doc: any, @Optional() @Inject(INITIAL_CONFIG) _config: any) {\n const config = _config as PlatformConfig | null;\n if (!config) {\n return;\n }\n if (config.url) {\n const url = parseUrl(config.url);\n this.protocol = url.protocol;\n this.hostname = url.hostname;\n this.port = url.port;\n this.pathname = url.pathname;\n this.search = url.search;\n this.hash = url.hash;\n this.href = _doc.location.href;\n }\n if (config.useAbsoluteUrl) {\n if (!config.baseUrl) {\n throw new Error(`\"PlatformConfig.baseUrl\" must be set if \"useAbsoluteUrl\" is true`);\n }\n const url = parseUrl(config.baseUrl);\n this.protocol = url.protocol;\n this.hostname = url.hostname;\n this.port = url.port;\n }\n }\n\n getBaseHrefFromDOM(): string {\n return getDOM().getBaseHref(this._doc)!;\n }\n\n onPopState(fn: LocationChangeListener): VoidFunction {\n // No-op: a state stack is not implemented, so\n // no events will ever come.\n return () => {};\n }\n\n onHashChange(fn: LocationChangeListener): VoidFunction {\n const subscription = this._hashUpdate.subscribe(fn);\n return () => subscription.unsubscribe();\n }\n\n get url(): string {\n return `${this.pathname}${this.search}${this.hash}`;\n }\n\n private setHash(value: string, oldUrl: string) {\n if (this.hash === value) {\n // Don't fire events if the hash has not changed.\n return;\n }\n (this as {hash: string}).hash = value;\n const newUrl = this.url;\n scheduleMicroTask(\n () => this._hashUpdate.next(\n {type: 'hashchange', state: null, oldUrl, newUrl} as LocationChangeEvent));\n }\n\n replaceState(state: any, title: string, newUrl: string): void {\n const oldUrl = this.url;\n const parsedUrl = parseUrl(newUrl);\n (this as {pathname: string}).pathname = parsedUrl.pathname;\n (this as {search: string}).search = parsedUrl.search;\n this.setHash(parsedUrl.hash, oldUrl);\n }\n\n pushState(state: any, title: string, newUrl: string): void {\n this.replaceState(state, title, newUrl);\n }\n\n forward(): void {\n throw new Error('Not implemented');\n }\n\n back(): void {\n throw new Error('Not implemented');\n }\n\n // History API isn't available on server, therefore return undefined\n getState(): unknown {\n return undefined;\n }\n}\n\nexport function scheduleMicroTask(fn: Function) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\n@Injectable()\nexport class ServerEventManagerPlugin /* extends EventManagerPlugin which is private */ {\n constructor(@Inject(DOCUMENT) private doc: any) {}\n\n // Handle all events on the server.\n supports(eventName: string) {\n return true;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n return getDOM().onAndCancel(element, eventName, handler);\n }\n\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n const target: HTMLElement = getDOM().getGlobalEventTarget(this.doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {DomElementSchemaRegistry} from '@angular/compiler';\nimport {Inject, Injectable, NgZone, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\nimport {EventManager, ɵflattenStyles as flattenStyles, ɵNAMESPACE_URIS as NAMESPACE_URIS, ɵSharedStylesHost as SharedStylesHost, ɵshimContentAttribute as shimContentAttribute, ɵshimHostAttribute as shimHostAttribute} from '@angular/platform-browser';\n\nconst EMPTY_ARRAY: any[] = [];\n\nconst DEFAULT_SCHEMA = new DomElementSchemaRegistry();\n\n@Injectable()\nexport class ServerRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n private schema = DEFAULT_SCHEMA;\n\n constructor(\n private eventManager: EventManager, private ngZone: NgZone,\n @Inject(DOCUMENT) private document: any, private sharedStylesHost: SharedStylesHost) {\n this.defaultRenderer = new DefaultServerRenderer2(eventManager, document, ngZone, this.schema);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer = new EmulatedEncapsulationServerRenderer2(\n this.eventManager, this.document, this.ngZone, this.sharedStylesHost, this.schema,\n type);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationServerRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass DefaultServerRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\n constructor(\n private eventManager: EventManager, protected document: any, private ngZone: NgZone,\n private schema: DomElementSchemaRegistry) {}\n\n destroy(): void {}\n\n destroyNode = null;\n\n createElement(name: string, namespace?: string, debugInfo?: any): any {\n if (namespace) {\n const doc = this.document || getDOM().getDefaultDocument();\n // TODO(FW-811): Ivy may cause issues here because it's passing around\n // full URIs for namespaces, therefore this lookup will fail.\n return doc.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n\n return getDOM().createElement(name, this.document);\n }\n\n createComment(value: string, debugInfo?: any): any {\n return getDOM().getDefaultDocument().createComment(value);\n }\n\n createText(value: string, debugInfo?: any): any {\n const doc = getDOM().getDefaultDocument();\n return doc.createTextNode(value);\n }\n\n appendChild(parent: any, newChild: any): void {\n parent.appendChild(newChild);\n }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, debugInfo?: any): any {\n let el: any;\n if (typeof selectorOrNode === 'string') {\n el = this.document.querySelector(selectorOrNode);\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n } else {\n el = selectorOrNode;\n }\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n return el;\n }\n\n parentNode(node: any): any {\n return node.parentNode;\n }\n\n nextSibling(node: any): any {\n return node.nextSibling;\n }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n // TODO(FW-811): Ivy may cause issues here because it's passing around\n // full URIs for namespaces, therefore this lookup will fail.\n el.setAttributeNS(NAMESPACE_URIS[namespace], namespace + ':' + name, value);\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n // TODO(FW-811): Ivy may cause issues here because it's passing around\n // full URIs for namespaces, therefore this lookup will fail.\n el.removeAttributeNS(NAMESPACE_URIS[namespace], name);\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void {\n el.classList.add(name);\n }\n\n removeClass(el: any, name: string): void {\n el.classList.remove(name);\n }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n style = style.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n const styleMap = _readStyleAttribute(el);\n if (flags & RendererStyleFlags2.Important) {\n value += ' !important';\n }\n styleMap[style] = value == null ? '' : value;\n _writeStyleAttribute(el, styleMap);\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n this.setStyle(el, style, '', flags);\n }\n\n // The value was validated already as a property binding, against the property name.\n // To know this value is safe to use as an attribute, the security context of the\n // attribute with the given name is checked against that security context of the\n // property.\n private _isSafeToReflectProperty(tagName: string, propertyName: string): boolean {\n return this.schema.securityContext(tagName, propertyName, true) ===\n this.schema.securityContext(tagName, propertyName, false);\n }\n\n setProperty(el: any, name: string, value: any): void {\n checkNoSyntheticProp(name, 'property');\n if (name === 'innerText') {\n // Domino does not support innerText. Just map it to textContent.\n el.textContent = value;\n }\n (<any>el)[name] = value;\n // Mirror property values for known HTML element properties in the attributes.\n // Skip `innerhtml` which is conservatively marked as an attribute for security\n // purposes but is not actually an attribute.\n const tagName = (el.tagName as string).toLowerCase();\n if (value != null && (typeof value === 'number' || typeof value == 'string') &&\n name.toLowerCase() !== 'innerhtml' && this.schema.hasElement(tagName, EMPTY_ARRAY) &&\n this.schema.hasProperty(tagName, name, EMPTY_ARRAY) &&\n this._isSafeToReflectProperty(tagName, name)) {\n this.setAttribute(el, name, value.toString());\n }\n }\n\n setValue(node: any, value: string): void {\n node.textContent = value;\n }\n\n listen(\n target: 'document'|'window'|'body'|any, eventName: string,\n callback: (event: any) => boolean): () => void {\n checkNoSyntheticProp(eventName, 'listener');\n if (typeof target === 'string') {\n return <() => void>this.eventManager.addGlobalEventListener(\n target, eventName, this.decoratePreventDefault(callback));\n }\n return <() => void>this.eventManager.addEventListener(\n target, eventName, this.decoratePreventDefault(callback)) as () => void;\n }\n\n private decoratePreventDefault(eventHandler: Function): Function {\n return (event: any) => {\n // Ivy uses `Function` as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`.\n if (event === Function) {\n return eventHandler;\n }\n\n // Run the event handler inside the ngZone because event handlers are not patched\n // by Zone on the server. This is required only for tests.\n const allowDefaultBehavior = this.ngZone.runGuarded(() => eventHandler(event));\n if (allowDefaultBehavior === false) {\n event.preventDefault();\n event.returnValue = false;\n }\n\n return undefined;\n };\n }\n}\n\nconst AT_CHARCODE = '@'.charCodeAt(0);\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n - There is corresponding configuration for the animation named \\`${\n name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n }\n}\n\nclass EmulatedEncapsulationServerRenderer2 extends DefaultServerRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, document: any, ngZone: NgZone, sharedStylesHost: SharedStylesHost,\n schema: DomElementSchemaRegistry, private component: RendererType2) {\n super(eventManager, document, ngZone, schema);\n // Add a 's' prefix to style attributes to indicate server.\n const componentId = 's' + component.id;\n const styles = flattenStyles(componentId, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(componentId);\n this.hostAttr = shimHostAttribute(componentId);\n }\n\n applyToHost(element: any) {\n super.setAttribute(element, this.hostAttr, '');\n }\n\n override createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name, this.document);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nfunction _readStyleAttribute(element: any): {[name: string]: string} {\n const styleMap: {[name: string]: string} = {};\n const styleAttribute = element.getAttribute('style');\n if (styleAttribute) {\n const styleList = styleAttribute.split(/;+/g);\n for (let i = 0; i < styleList.length; i++) {\n const style = styleList[i].trim();\n if (style.length > 0) {\n const colonIndex = style.indexOf(':');\n if (colonIndex === -1) {\n throw new Error(`Invalid CSS style: ${style}`);\n }\n const name = style.substr(0, colonIndex).trim();\n styleMap[name] = style.substr(colonIndex + 1).trim();\n }\n }\n }\n return styleMap;\n}\n\nfunction _writeStyleAttribute(element: any, styleMap: {[name: string]: string}) {\n let styleAttrValue = '';\n for (const key in styleMap) {\n const newValue = styleMap[key];\n if (newValue != null) {\n styleAttrValue += key + ':' + styleMap[key] + ';';\n }\n }\n element.setAttribute('style', styleAttrValue);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, Optional} from '@angular/core';\nimport {ɵSharedStylesHost as SharedStylesHost, ɵTRANSITION_ID} from '@angular/platform-browser';\n\n@Injectable()\nexport class ServerStylesHost extends SharedStylesHost {\n private head: any = null;\n private _styleNodes = new Set<HTMLElement>();\n\n constructor(\n @Inject(DOCUMENT) private doc: any,\n @Optional() @Inject(ɵTRANSITION_ID) private transitionId: string) {\n super();\n this.head = doc.getElementsByTagName('head')[0];\n }\n\n private _addStyle(style: string): void {\n let adapter = getDOM();\n const el = adapter.createElement('style');\n el.textContent = style;\n if (!!this.transitionId) {\n el.setAttribute('ng-transition', this.transitionId);\n }\n this.head.appendChild(el);\n this._styleNodes.add(el);\n }\n\n override onStylesAdded(additions: Set<string>) {\n additions.forEach(style => this._addStyle(style));\n }\n\n ngOnDestroy() {\n this._styleNodes.forEach(styleNode => styleNode.remove());\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵAnimationEngine} from '@angular/animations/browser';\nimport {DOCUMENT, PlatformLocation, ViewportScroller, ɵgetDOM as getDOM, ɵNullViewportScroller as NullViewportScroller, ɵPLATFORM_SERVER_ID as PLATFORM_SERVER_ID} from '@angular/common';\nimport {HttpClientModule} from '@angular/common/http';\nimport {createPlatformFactory, Injector, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, Provider, RendererFactory2, StaticProvider, Testability, ɵALLOW_MULTIPLE_PLATFORMS as ALLOW_MULTIPLE_PLATFORMS, ɵsetDocument} from '@angular/core';\nimport {BrowserModule, EVENT_MANAGER_PLUGINS, ɵSharedStylesHost as SharedStylesHost} from '@angular/platform-browser';\nimport {ɵplatformCoreDynamic as platformCoreDynamic} from '@angular/platform-browser-dynamic';\nimport {NoopAnimationsModule, ɵAnimationRendererFactory} from '@angular/platform-browser/animations';\n\nimport {DominoAdapter, parseDocument} from './domino_adapter';\nimport {SERVER_HTTP_PROVIDERS} from './http';\nimport {ServerPlatformLocation} from './location';\nimport {PlatformState} from './platform_state';\nimport {ServerEventManagerPlugin} from './server_events';\nimport {ServerRendererFactory2} from './server_renderer';\nimport {ServerStylesHost} from './styles_host';\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\n\nfunction notSupported(feature: string): Error {\n throw new Error(`platform-server does not support '${feature}'.`);\n}\n\nexport const INTERNAL_SERVER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: DOCUMENT, useFactory: _document, deps: [Injector]},\n {provide: PLATFORM_ID, useValue: PLATFORM_SERVER_ID},\n {provide: PLATFORM_INITIALIZER, useFactory: initDominoAdapter, multi: true, deps: [Injector]}, {\n provide: PlatformLocation,\n useClass: ServerPlatformLocation,\n deps: [DOCUMENT, [Optional, INITIAL_CONFIG]]\n },\n {provide: PlatformState, deps: [DOCUMENT]},\n // Add special provider that allows multiple instances of platformServer* to be created.\n {provide: ALLOW_MULTIPLE_PLATFORMS, useValue: true}\n];\n\nfunction initDominoAdapter(injector: Injector) {\n return () => {\n DominoAdapter.makeCurrent();\n };\n}\n\nexport function instantiateServerRendererFactory(\n renderer: RendererFactory2, engine: ɵAnimationEngine, zone: NgZone) {\n return new ɵAnimationRendererFactory(renderer, engine, zone);\n}\n\nexport const SERVER_RENDER_PROVIDERS: Provider[] = [\n ServerRendererFactory2,\n {\n provide: RendererFactory2,\n useFactory: instantiateServerRendererFactory,\n deps: [ServerRendererFactory2, ɵAnimationEngine, NgZone]\n },\n ServerStylesHost,\n {provide: SharedStylesHost, useExisting: ServerStylesHost},\n {provide: EVENT_MANAGER_PLUGINS, multi: true, useClass: ServerEventManagerPlugin},\n];\n\n/**\n * The ng module for the server.\n *\n * @publicApi\n */\n@NgModule({\n exports: [BrowserModule],\n imports: [HttpClientModule, NoopAnimationsModule],\n providers: [\n SERVER_RENDER_PROVIDERS,\n SERVER_HTTP_PROVIDERS,\n {provide: Testability, useValue: null},\n {provide: ViewportScroller, useClass: NullViewportScroller},\n ],\n})\nexport class ServerModule {\n}\n\nfunction _document(injector: Injector) {\n let config: PlatformConfig|null = injector.get(INITIAL_CONFIG, null);\n const document = config && config.document ? parseDocument(config.document, config.url) :\n getDOM().createHtmlDocument();\n // Tell ivy about the global document\n ɵsetDocument(document);\n return document;\n}\n\n/**\n * @publicApi\n */\nexport const platformServer: (extraProviders?: StaticProvider[]|undefined) => PlatformRef =\n createPlatformFactory(platformCore, 'server', INTERNAL_SERVER_PLATFORM_PROVIDERS);\n\n/**\n * The server platform that supports the runtime compiler.\n *\n * @publicApi\n */\nexport const platformDynamicServer =\n createPlatformFactory(platformCoreDynamic, 'serverDynamic', INTERNAL_SERVER_PLATFORM_PROVIDERS);\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, NgModule} from '@angular/core';\nimport {TransferState, ɵescapeHtml as escapeHtml} from '@angular/platform-browser';\n\nimport {BEFORE_APP_SERIALIZED} from './tokens';\n\nexport function serializeTransferStateFactory(\n doc: Document, appId: string, transferStore: TransferState) {\n return () => {\n const script = doc.createElement('script');\n script.id = appId + '-state';\n script.setAttribute('type', 'application/json');\n script.textContent = escapeHtml(transferStore.toJson());\n doc.body.appendChild(script);\n };\n}\n\n/**\n * NgModule to install on the server side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n providers: [\n TransferState, {\n provide: BEFORE_APP_SERIALIZED,\n useFactory: serializeTransferStateFactory,\n deps: [DOCUMENT, APP_ID, TransferState],\n multi: true,\n }\n ]\n})\nexport class ServerTransferStateModule {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, NgModuleFactory, NgModuleRef, PlatformRef, StaticProvider, Type, ɵisPromise} from '@angular/core';\nimport {ɵTRANSITION_ID} from '@angular/platform-browser';\nimport {first} from 'rxjs/operators';\n\nimport {PlatformState} from './platform_state';\nimport {platformDynamicServer, platformServer} from './server';\nimport {BEFORE_APP_SERIALIZED, INITIAL_CONFIG} from './tokens';\n\ninterface PlatformOptions {\n document?: string;\n url?: string;\n extraProviders?: StaticProvider[];\n}\n\nfunction _getPlatform(\n platformFactory: (extraProviders: StaticProvider[]) => PlatformRef,\n options: PlatformOptions): PlatformRef {\n const extraProviders = options.extraProviders ? options.extraProviders : [];\n return platformFactory([\n {provide: INITIAL_CONFIG, useValue: {document: options.document, url: options.url}},\n extraProviders\n ]);\n}\n\nfunction _render<T>(\n platform: PlatformRef, moduleRefPromise: Promise<NgModuleRef<T>>): Promise<string> {\n return moduleRefPromise.then((moduleRef) => {\n const transitionId = moduleRef.injector.get(ɵTRANSITION_ID, null);\n if (!transitionId) {\n throw new Error(\n `renderModule[Factory]() requires the use of BrowserModule.withServerTransition() to ensure\nthe server-rendered app can be properly bootstrapped into a client app.`);\n }\n const applicationRef: ApplicationRef = moduleRef.injector.get(ApplicationRef);\n return applicationRef.isStable.pipe((first((isStable: boolean) => isStable)))\n .toPromise()\n .then(() => {\n const platformState = platform.injector.get(PlatformState);\n\n const asyncPromises: Promise<any>[] = [];\n\n // Run any BEFORE_APP_SERIALIZED callbacks just before rendering to string.\n const callbacks = moduleRef.injector.get(BEFORE_APP_SERIALIZED, null);\n if (callbacks) {\n for (const callback of callbacks) {\n try {\n const callbackResult = callback();\n if (ɵisPromise(callbackResult)) {\n // TODO: in TS3.7, callbackResult is void.\n asyncPromises.push(callbackResult as any);\n }\n\n } catch (e) {\n // Ignore exceptions.\n console.warn('Ignoring BEFORE_APP_SERIALIZED Exception: ', e);\n }\n }\n }\n\n const complete = () => {\n const output = platformState.renderToString();\n platform.destroy();\n return output;\n };\n\n if (asyncPromises.length === 0) {\n return complete();\n }\n\n return Promise\n .all(asyncPromises.map(asyncPromise => {\n return asyncPromise.catch(e => {\n console.warn('Ignoring BEFORE_APP_SERIALIZED Exception: ', e);\n });\n }))\n .then(complete);\n });\n });\n}\n\n/**\n * Renders a Module to string.\n *\n * `document` is the full document HTML of the page to render, as a string.\n * `url` is the URL for the current render request.\n * `extraProviders` are the platform level providers for the current render request.\n *\n * If compiling with the ViewEngine renderer, do not use this in a production server environment.\n * Use pre-compiled {@link NgModuleFactory} with {@link renderModuleFactory} instead. If\n * compiling with the Ivy renderer, this method is the recommended rendering method for\n * platform-server.\n *\n * @publicApi\n */\nexport function renderModule<T>(\n module: Type<T>, options: {document?: string, url?: string, extraProviders?: StaticProvider[]}):\n Promise<string> {\n const platform = _getPlatform(platformDynamicServer, options);\n return _render(platform, platform.bootstrapModule(module));\n}\n\n/**\n * Renders a {@link NgModuleFactory} to string.\n *\n * `document` is the full document HTML of the page to render, as a string.\n * `url` is the URL for the current render request.\n * `extraProviders` are the platform level providers for the current render request.\n *\n * @publicApi\n */\nexport function renderModuleFactory<T>(\n moduleFactory: NgModuleFactory<T>,\n options: {document?: string, url?: string, extraProviders?: StaticProvider[]}):\n Promise<string> {\n const platform = _getPlatform(platformServer, options);\n return _render(platform, platform.bootstrapModuleFactory(moduleFactory));\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nexport {INTERNAL_SERVER_PLATFORM_PROVIDERS as ɵINTERNAL_SERVER_PLATFORM_PROVIDERS, SERVER_RENDER_PROVIDERS as ɵSERVER_RENDER_PROVIDERS} from './server';\nexport {ServerRendererFactory2 as ɵServerRendererFactory2} from './server_renderer';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-server package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('13.0.0-next.9');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {PlatformState} from './platform_state';\nexport {platformDynamicServer, platformServer, ServerModule} from './server';\nexport {BEFORE_APP_SERIALIZED, INITIAL_CONFIG, PlatformConfig} from './tokens';\nexport {ServerTransferStateModule} from './transfer_state';\nexport {renderModule, renderModuleFactory} from './utils';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/// <reference types=\"node\" />\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-server';\n\n// This file only reexports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SERVER_HTTP_PROVIDERS as ɵangular_packages_platform_server_platform_server_g,ServerXhr as ɵangular_packages_platform_server_platform_server_e,zoneWrappedInterceptingHandler as ɵangular_packages_platform_server_platform_server_f} from './src/http';\nexport {instantiateServerRendererFactory as ɵangular_packages_platform_server_platform_server_a} from './src/server';\nexport {ServerEventManagerPlugin as ɵangular_packages_platform_server_platform_server_d} from './src/server_events';\nexport {ServerStylesHost as ɵangular_packages_platform_server_platform_server_c} from './src/styles_host';\nexport {serializeTransferStateFactory as ɵangular_packages_platform_server_platform_server_b} from './src/transfer_state';"],"names":["BrowserDomAdapter","setRootDomAdapter","HttpInterceptingHandler","url.parse","getDOM","flattenStyles","SharedStylesHost","NAMESPACE_URIS","shimContentAttribute","shimHostAttribute","PLATFORM_SERVER_ID","ALLOW_MULTIPLE_PLATFORMS","NullViewportScroller","platformCoreDynamic","escapeHtml"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v13.0.0-next.5
2
+ * @license Angular v13.0.0-next.9
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
package/init/init.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v13.0.0-next.5
2
+ * @license Angular v13.0.0-next.9
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
package/init.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v13.0.0-next.5
2
+ * @license Angular v13.0.0-next.9
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/platform-server",
3
- "version": "13.0.0-next.5",
3
+ "version": "13.0.0-next.9",
4
4
  "description": "Angular - library for using Angular in Node.js",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -8,16 +8,16 @@
8
8
  "node": "^12.14.1 || >=14.0.0"
9
9
  },
10
10
  "peerDependencies": {
11
- "@angular/animations": "13.0.0-next.5",
12
- "@angular/common": "13.0.0-next.5",
13
- "@angular/compiler": "13.0.0-next.5",
14
- "@angular/core": "13.0.0-next.5",
15
- "@angular/platform-browser": "13.0.0-next.5",
16
- "@angular/platform-browser-dynamic": "13.0.0-next.5"
11
+ "@angular/animations": "13.0.0-next.9",
12
+ "@angular/common": "13.0.0-next.9",
13
+ "@angular/compiler": "13.0.0-next.9",
14
+ "@angular/core": "13.0.0-next.9",
15
+ "@angular/platform-browser": "13.0.0-next.9",
16
+ "@angular/platform-browser-dynamic": "13.0.0-next.9"
17
17
  },
18
18
  "dependencies": {
19
19
  "domino": "^2.1.2",
20
- "tslib": "^2.2.0",
20
+ "tslib": "^2.3.0",
21
21
  "xhr2": "^0.2.0"
22
22
  },
23
23
  "repository": {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v13.0.0-next.5
2
+ * @license Angular v13.0.0-next.9
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */