jsii-reflect 1.54.0 → 1.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/source.js CHANGED
@@ -36,8 +36,8 @@ function repositoryUrl(item, ref = 'master') {
36
36
  return undefined;
37
37
  }
38
38
  // Turn https://github.com/awslabs/aws-cdk.git -> https://github.com/awslabs/aws-cdk/blob/REF/filename#L<number>
39
- const prefix = repo.url.substr(0, repo.url.length - 4);
39
+ const prefix = repo.url.slice(0, -4);
40
40
  return `${prefix}/blob/${ref}/${loc.filename}#L${loc.line}`;
41
41
  }
42
42
  exports.repositoryUrl = repositoryUrl;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdDQTs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxJQUFxQjtJQUVyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDeEMsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQ3JELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE9BQU87UUFDTCxRQUFRLEVBQUUsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtRQUM5QyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7S0FDckIsQ0FBQztBQUNKLENBQUM7QUFqQkQsb0RBaUJDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FDM0IsSUFBcUIsRUFDckIsR0FBRyxHQUFHLFFBQVE7SUFFZCxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUN0QyxJQUNFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQ2hDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ2hDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzFCO1FBQ0EsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxpSEFBaUg7SUFFakgsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXZELE9BQU8sR0FBRyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzlELENBQUM7QUF2QkQsc0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZW1ibHkgfSBmcm9tICcuL2Fzc2VtYmx5JztcblxuLyoqXG4gKiBEZXNjcmliZXMgYSBzb3VyY2UgbG9jYXRpb24gaW4gYSBmaWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTG9jYXRpb24ge1xuICAvKipcbiAgICogVGhlIGZpbGUgbmFtZVxuICAgKi9cbiAgZmlsZW5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIDEtYmFzZWQgbGluZSBpbnNpZGUgdGhlIGZpbGVcbiAgICovXG4gIGxpbmU6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIEFQSSBpdGVtcyB0aGF0IGNhbiBiZSBxdWVyaWVkIGZvciBhIHNvdXJjZSBsb2NhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZUxvY2F0YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgYXNzZW1ibHkgdGhlIEFQSSBpdGVtIGlzIGRlZmluZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2VtYmx5OiBBc3NlbWJseTtcblxuICAvKipcbiAgICogU291cmNlIGxvY2F0aW9uIHJlbGF0aXZlIHRvIHRoZSBhc3NlbWJseSByb290XG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbkluTW9kdWxlPzogU291cmNlTG9jYXRpb247XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSByZXBvc2l0b3J5IGxvY2F0aW9uIGZvciB0aGUgZ2l2ZW4gQVBJIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2F0aW9uSW5SZXBvc2l0b3J5KFxuICBpdGVtOiBTb3VyY2VMb2NhdGFibGUsXG4pOiBTb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG1vZHVsZUxvYyA9IGl0ZW0ubG9jYXRpb25Jbk1vZHVsZTtcbiAgaWYgKCFtb2R1bGVMb2MpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgbW9kdWxlRGlyID0gaXRlbS5hc3NlbWJseS5yZXBvc2l0b3J5LmRpcmVjdG9yeTtcbiAgaWYgKCFtb2R1bGVEaXIpIHtcbiAgICByZXR1cm4gbW9kdWxlTG9jO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmaWxlbmFtZTogYCR7bW9kdWxlRGlyfS8ke21vZHVsZUxvYy5maWxlbmFtZX1gLFxuICAgIGxpbmU6IG1vZHVsZUxvYy5saW5lLFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybiBhIFVSTCBmb3IgdGhpcyBpdGVtIGludG8gdGhlIHNvdXJjZSByZXBvc2l0b3J5LCBpZiBhdmFpbGFibGVcbiAqXG4gKiAoQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgR2l0SHViIFVSTHMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBvc2l0b3J5VXJsKFxuICBpdGVtOiBTb3VyY2VMb2NhdGFibGUsXG4gIHJlZiA9ICdtYXN0ZXInLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbG9jID0gbG9jYXRpb25JblJlcG9zaXRvcnkoaXRlbSk7XG4gIGlmICghbG9jKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHJlcG8gPSBpdGVtLmFzc2VtYmx5LnJlcG9zaXRvcnk7XG4gIGlmIChcbiAgICAhcmVwby51cmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fFxuICAgICFyZXBvLnVybC5pbmNsdWRlcygnZ2l0aHViLmNvbScpIHx8XG4gICAgIXJlcG8udXJsLmVuZHNXaXRoKCcuZ2l0JylcbiAgKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFR1cm4gaHR0cHM6Ly9naXRodWIuY29tL2F3c2xhYnMvYXdzLWNkay5naXQgLT4gIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3NsYWJzL2F3cy1jZGsvYmxvYi9SRUYvZmlsZW5hbWUjTDxudW1iZXI+XG5cbiAgY29uc3QgcHJlZml4ID0gcmVwby51cmwuc3Vic3RyKDAsIHJlcG8udXJsLmxlbmd0aCAtIDQpO1xuXG4gIHJldHVybiBgJHtwcmVmaXh9L2Jsb2IvJHtyZWZ9LyR7bG9jLmZpbGVuYW1lfSNMJHtsb2MubGluZX1gO1xufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdDQTs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxJQUFxQjtJQUVyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDeEMsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQ3JELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE9BQU87UUFDTCxRQUFRLEVBQUUsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtRQUM5QyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7S0FDckIsQ0FBQztBQUNKLENBQUM7QUFqQkQsb0RBaUJDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FDM0IsSUFBcUIsRUFDckIsR0FBRyxHQUFHLFFBQVE7SUFFZCxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUN0QyxJQUNFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQ2hDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ2hDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzFCO1FBQ0EsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxpSEFBaUg7SUFFakgsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckMsT0FBTyxHQUFHLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDOUQsQ0FBQztBQXZCRCxzQ0F1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NlbWJseSB9IGZyb20gJy4vYXNzZW1ibHknO1xuXG4vKipcbiAqIERlc2NyaWJlcyBhIHNvdXJjZSBsb2NhdGlvbiBpbiBhIGZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VMb2NhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSBuYW1lXG4gICAqL1xuICBmaWxlbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgMS1iYXNlZCBsaW5lIGluc2lkZSB0aGUgZmlsZVxuICAgKi9cbiAgbGluZTogbnVtYmVyO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgQVBJIGl0ZW1zIHRoYXQgY2FuIGJlIHF1ZXJpZWQgZm9yIGEgc291cmNlIGxvY2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTG9jYXRhYmxlIHtcbiAgLyoqXG4gICAqIFRoZSBhc3NlbWJseSB0aGUgQVBJIGl0ZW0gaXMgZGVmaW5lZCBpblxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZW1ibHk6IEFzc2VtYmx5O1xuXG4gIC8qKlxuICAgKiBTb3VyY2UgbG9jYXRpb24gcmVsYXRpdmUgdG8gdGhlIGFzc2VtYmx5IHJvb3RcbiAgICovXG4gIHJlYWRvbmx5IGxvY2F0aW9uSW5Nb2R1bGU/OiBTb3VyY2VMb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHJlcG9zaXRvcnkgbG9jYXRpb24gZm9yIHRoZSBnaXZlbiBBUEkgaXRlbVxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9jYXRpb25JblJlcG9zaXRvcnkoXG4gIGl0ZW06IFNvdXJjZUxvY2F0YWJsZSxcbik6IFNvdXJjZUxvY2F0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbW9kdWxlTG9jID0gaXRlbS5sb2NhdGlvbkluTW9kdWxlO1xuICBpZiAoIW1vZHVsZUxvYykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBtb2R1bGVEaXIgPSBpdGVtLmFzc2VtYmx5LnJlcG9zaXRvcnkuZGlyZWN0b3J5O1xuICBpZiAoIW1vZHVsZURpcikge1xuICAgIHJldHVybiBtb2R1bGVMb2M7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpbGVuYW1lOiBgJHttb2R1bGVEaXJ9LyR7bW9kdWxlTG9jLmZpbGVuYW1lfWAsXG4gICAgbGluZTogbW9kdWxlTG9jLmxpbmUsXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJuIGEgVVJMIGZvciB0aGlzIGl0ZW0gaW50byB0aGUgc291cmNlIHJlcG9zaXRvcnksIGlmIGF2YWlsYWJsZVxuICpcbiAqIChDdXJyZW50bHkgb25seSBzdXBwb3J0cyBHaXRIdWIgVVJMcylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcG9zaXRvcnlVcmwoXG4gIGl0ZW06IFNvdXJjZUxvY2F0YWJsZSxcbiAgcmVmID0gJ21hc3RlcicsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBsb2MgPSBsb2NhdGlvbkluUmVwb3NpdG9yeShpdGVtKTtcbiAgaWYgKCFsb2MpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcmVwbyA9IGl0ZW0uYXNzZW1ibHkucmVwb3NpdG9yeTtcbiAgaWYgKFxuICAgICFyZXBvLnVybC5zdGFydHNXaXRoKCdodHRwczovLycpIHx8XG4gICAgIXJlcG8udXJsLmluY2x1ZGVzKCdnaXRodWIuY29tJykgfHxcbiAgICAhcmVwby51cmwuZW5kc1dpdGgoJy5naXQnKVxuICApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gVHVybiBodHRwczovL2dpdGh1Yi5jb20vYXdzbGFicy9hd3MtY2RrLmdpdCAtPiAgaHR0cHM6Ly9naXRodWIuY29tL2F3c2xhYnMvYXdzLWNkay9ibG9iL1JFRi9maWxlbmFtZSNMPG51bWJlcj5cblxuICBjb25zdCBwcmVmaXggPSByZXBvLnVybC5zbGljZSgwLCAtNCk7XG5cbiAgcmV0dXJuIGAke3ByZWZpeH0vYmxvYi8ke3JlZn0vJHtsb2MuZmlsZW5hbWV9I0wke2xvYy5saW5lfWA7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsii-reflect",
3
- "version": "1.54.0",
3
+ "version": "1.56.0",
4
4
  "description": "strongly-typed reflection library and tools for jsii",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
@@ -34,24 +34,24 @@
34
34
  "package": "package-js"
35
35
  },
36
36
  "dependencies": {
37
- "@jsii/check-node": "1.54.0",
38
- "@jsii/spec": "^1.54.0",
37
+ "@jsii/check-node": "1.56.0",
38
+ "@jsii/spec": "^1.56.0",
39
39
  "chalk": "^4",
40
40
  "fs-extra": "^9.1.0",
41
- "oo-ascii-tree": "^1.54.0",
41
+ "oo-ascii-tree": "^1.56.0",
42
42
  "yargs": "^16.2.0"
43
43
  },
44
44
  "devDependencies": {
45
- "@scope/jsii-calc-lib": "^1.54.0",
45
+ "@scope/jsii-calc-lib": "^1.56.0",
46
46
  "@types/fs-extra": "^9.0.13",
47
- "@types/jest": "^27.4.0",
48
- "@types/node": "^12.20.43",
49
- "eslint": "^8.8.0",
47
+ "@types/jest": "^27.4.1",
48
+ "@types/node": "^12.20.47",
49
+ "eslint": "^8.12.0",
50
50
  "jest": "^27.5.1",
51
- "jsii": "^1.54.0",
52
- "jsii-build-tools": "^1.54.0",
51
+ "jsii": "^1.56.0",
52
+ "jsii-build-tools": "^1.56.0",
53
53
  "jsii-calc": "^3.20.120",
54
- "prettier": "^2.5.1",
54
+ "prettier": "^2.6.2",
55
55
  "typescript": "~3.9.10"
56
56
  }
57
57
  }
@@ -631,7 +631,7 @@ exports[`jsii-tree --all 1`] = `
631
631
  │ │ ├─┬ unionMapProperty property (stable)
632
632
  │ │ │ └── type: Map<string => string | number | @scope/jsii-calc-lib.Number>
633
633
  │ │ ├─┬ unionProperty property (stable)
634
- │ │ │ └── type: string | number | jsii-calc.Multiply | @scope/jsii-calc-lib.Number
634
+ │ │ │ └── type: string | number | @scope/jsii-calc-lib.Number | jsii-calc.Multiply
635
635
  │ │ ├─┬ unknownArrayProperty property (stable)
636
636
  │ │ │ └── type: Array<any>
637
637
  │ │ ├─┬ unknownMapProperty property (stable)
@@ -781,7 +781,7 @@ exports[`showAll 1`] = `
781
781
  │ │ ├─┬ unionMapProperty property
782
782
  │ │ │ └── type: Map<string => string | number | @scope/jsii-calc-lib.Number>
783
783
  │ │ ├─┬ unionProperty property
784
- │ │ │ └── type: string | number | jsii-calc.Multiply | @scope/jsii-calc-lib.Number
784
+ │ │ │ └── type: string | number | @scope/jsii-calc-lib.Number | jsii-calc.Multiply
785
785
  │ │ ├─┬ unknownArrayProperty property
786
786
  │ │ │ └── type: Array<any>
787
787
  │ │ ├─┬ unknownMapProperty property
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const reflect = require("../lib");
4
4
  const util_1 = require("./util");
5
- test('get full github source location for a class or method', async () => {
5
+ test('get full github source location for a class or method', () => {
6
6
  // WHEN
7
- const assembly = await util_1.assemblyFromSource(`
7
+ const assembly = util_1.assemblyFromSource(`
8
8
  export class Foo {
9
9
  public bar() {
10
10
  // Nothing to do
@@ -21,4 +21,4 @@ test('get full github source location for a class or method', async () => {
21
21
  expect(reflect.repositoryUrl(klass, 'main')).toBe('https://github.com/aws/jsii/blob/main/some/sub/dir/index.ts#L1');
22
22
  expect(reflect.repositoryUrl(klass)).toBe('https://github.com/aws/jsii/blob/master/some/sub/dir/index.ts#L1');
23
23
  });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXBlbmRlbnQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImluZGVwZW5kZW50LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQ0FBa0M7QUFDbEMsaUNBQTRDO0FBRTVDLElBQUksQ0FBQyx1REFBdUQsRUFBRSxLQUFLLElBQUksRUFBRTtJQUN2RSxPQUFPO0lBQ1AsTUFBTSxRQUFRLEdBQUcsTUFBTSx5QkFBa0IsQ0FDdkM7Ozs7OztHQU1ELENBQUMsSUFBSSxFQUFFLEVBQ04sQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNOLElBQUksT0FBTyxHQUFHLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUN0QyxHQUFHLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUM7U0FDM0M7SUFDSCxDQUFDLENBQ0YsQ0FBQztJQUVGLE9BQU87SUFDUCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFdkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMvQyxnRUFBZ0UsQ0FDakUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN2QyxrRUFBa0UsQ0FDbkUsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcmVmbGVjdCBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgYXNzZW1ibHlGcm9tU291cmNlIH0gZnJvbSAnLi91dGlsJztcblxudGVzdCgnZ2V0IGZ1bGwgZ2l0aHViIHNvdXJjZSBsb2NhdGlvbiBmb3IgYSBjbGFzcyBvciBtZXRob2QnLCBhc3luYyAoKSA9PiB7XG4gIC8vIFdIRU5cbiAgY29uc3QgYXNzZW1ibHkgPSBhd2FpdCBhc3NlbWJseUZyb21Tb3VyY2UoXG4gICAgYFxuICAgIGV4cG9ydCBjbGFzcyBGb28ge1xuICAgICAgcHVibGljIGJhcigpIHtcbiAgICAgICAgLy8gTm90aGluZyB0byBkb1xuICAgICAgfVxuICAgIH1cbiAgYC50cmltKCksXG4gICAgKG9iaikgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBvYmoucmVwb3NpdG9yeSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgb2JqLnJlcG9zaXRvcnkuZGlyZWN0b3J5ID0gJ3NvbWUvc3ViL2Rpcic7XG4gICAgICB9XG4gICAgfSxcbiAgKTtcblxuICAvLyBUSEVOXG4gIGNvbnN0IGtsYXNzID0gYXNzZW1ibHkuZmluZFR5cGUoJ3Rlc3Rwa2cuRm9vJyk7XG4gIGV4cGVjdChrbGFzcy5pc0NsYXNzVHlwZSkudG9CZVRydXRoeSgpO1xuXG4gIGV4cGVjdChyZWZsZWN0LnJlcG9zaXRvcnlVcmwoa2xhc3MsICdtYWluJykpLnRvQmUoXG4gICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS9hd3MvanNpaS9ibG9iL21haW4vc29tZS9zdWIvZGlyL2luZGV4LnRzI0wxJyxcbiAgKTtcblxuICBleHBlY3QocmVmbGVjdC5yZXBvc2l0b3J5VXJsKGtsYXNzKSkudG9CZShcbiAgICAnaHR0cHM6Ly9naXRodWIuY29tL2F3cy9qc2lpL2Jsb2IvbWFzdGVyL3NvbWUvc3ViL2Rpci9pbmRleC50cyNMMScsXG4gICk7XG59KTtcbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXBlbmRlbnQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImluZGVwZW5kZW50LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQ0FBa0M7QUFDbEMsaUNBQTRDO0FBRTVDLElBQUksQ0FBQyx1REFBdUQsRUFBRSxHQUFHLEVBQUU7SUFDakUsT0FBTztJQUNQLE1BQU0sUUFBUSxHQUFHLHlCQUFrQixDQUNqQzs7Ozs7O0dBTUQsQ0FBQyxJQUFJLEVBQUUsRUFDTixDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ04sSUFBSSxPQUFPLEdBQUcsQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ3RDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztTQUMzQztJQUNILENBQUMsQ0FDRixDQUFDO0lBRUYsT0FBTztJQUNQLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUV2QyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9DLGdFQUFnRSxDQUNqRSxDQUFDO0lBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3ZDLGtFQUFrRSxDQUNuRSxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJy4uL2xpYic7XG5pbXBvcnQgeyBhc3NlbWJseUZyb21Tb3VyY2UgfSBmcm9tICcuL3V0aWwnO1xuXG50ZXN0KCdnZXQgZnVsbCBnaXRodWIgc291cmNlIGxvY2F0aW9uIGZvciBhIGNsYXNzIG9yIG1ldGhvZCcsICgpID0+IHtcbiAgLy8gV0hFTlxuICBjb25zdCBhc3NlbWJseSA9IGFzc2VtYmx5RnJvbVNvdXJjZShcbiAgICBgXG4gICAgZXhwb3J0IGNsYXNzIEZvbyB7XG4gICAgICBwdWJsaWMgYmFyKCkge1xuICAgICAgICAvLyBOb3RoaW5nIHRvIGRvXG4gICAgICB9XG4gICAgfVxuICBgLnRyaW0oKSxcbiAgICAob2JqKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9iai5yZXBvc2l0b3J5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBvYmoucmVwb3NpdG9yeS5kaXJlY3RvcnkgPSAnc29tZS9zdWIvZGlyJztcbiAgICAgIH1cbiAgICB9LFxuICApO1xuXG4gIC8vIFRIRU5cbiAgY29uc3Qga2xhc3MgPSBhc3NlbWJseS5maW5kVHlwZSgndGVzdHBrZy5Gb28nKTtcbiAgZXhwZWN0KGtsYXNzLmlzQ2xhc3NUeXBlKS50b0JlVHJ1dGh5KCk7XG5cbiAgZXhwZWN0KHJlZmxlY3QucmVwb3NpdG9yeVVybChrbGFzcywgJ21haW4nKSkudG9CZShcbiAgICAnaHR0cHM6Ly9naXRodWIuY29tL2F3cy9qc2lpL2Jsb2IvbWFpbi9zb21lL3N1Yi9kaXIvaW5kZXgudHMjTDEnLFxuICApO1xuXG4gIGV4cGVjdChyZWZsZWN0LnJlcG9zaXRvcnlVcmwoa2xhc3MpKS50b0JlKFxuICAgICdodHRwczovL2dpdGh1Yi5jb20vYXdzL2pzaWkvYmxvYi9tYXN0ZXIvc29tZS9zdWIvZGlyL2luZGV4LnRzI0wxJyxcbiAgKTtcbn0pO1xuIl19
@@ -151,8 +151,8 @@ test('Submodules can have a README', () => {
151
151
  expect((_a = submodule === null || submodule === void 0 ? void 0 : submodule.readme) === null || _a === void 0 ? void 0 : _a.markdown).toMatch(/This is the readme.*jsii-calc.submodule/);
152
152
  expect((_b = isolated === null || isolated === void 0 ? void 0 : isolated.readme) === null || _b === void 0 ? void 0 : _b.markdown).toMatch(/This is the readme.*jsii-calc.submodule.isolated/);
153
153
  });
154
- test('overridden member knows about both parent types', async () => {
155
- const ts = await util_1.typeSystemFromSource(`
154
+ test('overridden member knows about both parent types', () => {
155
+ const ts = util_1.typeSystemFromSource(`
156
156
  export class Foo {
157
157
  public bar() {
158
158
  Array.isArray(3);
@@ -196,8 +196,8 @@ describe('Stability', () => {
196
196
  });
197
197
  // ----------------------------------------------------------------------
198
198
  describe('lowest stability guarantee is advertised', () => {
199
- test('when subclass is experimental', async () => {
200
- const ts = await util_1.typeSystemFromSource(`
199
+ test('when subclass is experimental', () => {
200
+ const ts = util_1.typeSystemFromSource(`
201
201
  /**
202
202
  * @stable
203
203
  */
@@ -223,8 +223,8 @@ describe('Stability', () => {
223
223
  expect(initializer.docs.stability).toEqual(spec_1.Stability.Experimental);
224
224
  expect(method.docs.stability).toEqual(spec_1.Stability.Experimental);
225
225
  });
226
- test('when method is experimental', async () => {
227
- const ts = await util_1.typeSystemFromSource(`
226
+ test('when method is experimental', () => {
227
+ const ts = util_1.typeSystemFromSource(`
228
228
  /**
229
229
  * @stable
230
230
  */
@@ -256,8 +256,8 @@ describe('Stability', () => {
256
256
  expect(initializer.docs.stability).toEqual(spec_1.Stability.Experimental);
257
257
  expect(method.docs.stability).toEqual(spec_1.Stability.Experimental);
258
258
  });
259
- test('when method is explicitly marked stable', async () => {
260
- const ts = await util_1.typeSystemFromSource(`
259
+ test('when method is explicitly marked stable', () => {
260
+ const ts = util_1.typeSystemFromSource(`
261
261
  /**
262
262
  * @stable
263
263
  */
@@ -289,8 +289,8 @@ describe('Stability', () => {
289
289
  expect(initializer.docs.stability).toEqual(spec_1.Stability.Experimental);
290
290
  expect(method.docs.stability).toEqual(spec_1.Stability.Experimental);
291
291
  });
292
- test('external stability', async () => {
293
- const ts = await util_1.typeSystemFromSource(`
292
+ test('external stability', () => {
293
+ const ts = util_1.typeSystemFromSource(`
294
294
  /**
295
295
  * @stability external
296
296
  */
@@ -312,8 +312,8 @@ describe('Stability', () => {
312
312
  });
313
313
  });
314
314
  });
315
- test('TypeSystem.properties', async () => {
316
- const ts = await util_1.typeSystemFromSource(`
315
+ test('TypeSystem.properties', () => {
316
+ const ts = util_1.typeSystemFromSource(`
317
317
  export namespace submodule {
318
318
  export class Foo {
319
319
  public readonly test = 'TEST';
@@ -325,8 +325,8 @@ test('TypeSystem.properties', async () => {
325
325
  `);
326
326
  expect(ts.properties).toHaveLength(2);
327
327
  });
328
- test('TypeSystem.methods', async () => {
329
- const ts = await util_1.typeSystemFromSource(`
328
+ test('TypeSystem.methods', () => {
329
+ const ts = util_1.typeSystemFromSource(`
330
330
  export namespace submodule {
331
331
  export class Foo {
332
332
  public method(): void {}
@@ -338,8 +338,8 @@ test('TypeSystem.methods', async () => {
338
338
  `);
339
339
  expect(ts.methods).toHaveLength(2);
340
340
  });
341
- test('Assembly allTypes includes submodule types', async () => {
342
- const asm = await util_1.assemblyFromSource({
341
+ test('Assembly allTypes includes submodule types', () => {
342
+ const asm = util_1.assemblyFromSource({
343
343
  'index.ts': 'export * as submod from "./submod";',
344
344
  'submod.ts': `export class Foo {}`,
345
345
  });
@@ -348,4 +348,4 @@ test('Assembly allTypes includes submodule types', async () => {
348
348
  function resolveModuleDir(name) {
349
349
  return path.dirname(require.resolve(`${name}/package.json`));
350
350
  }
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1zeXN0ZW0udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGUtc3lzdGVtLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBbUM7QUFDbkMscUNBQXVDO0FBQ3ZDLDZCQUE2QjtBQUU3QixnQ0FBb0M7QUFDcEMsaUNBQWtFO0FBRWxFLElBQUksT0FBbUIsQ0FBQztBQUV4QixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7SUFDbkIsT0FBTyxHQUFHLElBQUksZ0JBQVUsRUFBRSxDQUFDO0lBQzNCLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNELE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3hFLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsRUFBRSxDQUNqRSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFFMUUsSUFBSSxDQUFDLDREQUE0RCxFQUFFLEdBQUcsRUFBRSxDQUN0RSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFD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QUN4QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUNwQyxNQUFNLEVBQUUsR0FBRyxNQUFNLDJCQUFvQixDQUFDOzs7Ozs7Ozs7R0FTckMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsNENBQTRDLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDNUQsTUFBTSxHQUFHLEdBQUcsTUFBTSx5QkFBa0IsQ0FBQztRQUNuQyxVQUFVLEVBQUUscUNBQXFDO1FBQ2pELFdBQVcsRUFBRSxxQkFBcUI7S0FDbkMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7QUFDekUsQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFTLGdCQUFnQixDQUFDLElBQVk7SUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUM7QUFDL0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNwZWMgZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgeyBTdGFiaWxpdHkgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IFR5cGVTeXN0ZW0gfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgdHlwZVN5c3RlbUZyb21Tb3VyY2UsIGFzc2VtYmx5RnJvbVNvdXJjZSB9IGZyb20gJy4vdXRpbCc7XG5cbmxldCB0eXBlc3lzOiBUeXBlU3lzdGVtO1xuXG5iZWZvcmVBbGwoYXN5bmMgKCkgPT4ge1xuICB0eXBlc3lzID0gbmV3IFR5cGVTeXN0ZW0oKTtcbiAgYXdhaXQgdHlwZXN5cy5sb2FkTW9kdWxlKHJlc29sdmVNb2R1bGVEaXIoJ2pzaWktY2FsYycpKTtcbn0pO1xuXG50ZXN0KCdUeXBlU3lzdGVtLmhhc0Fzc2VtYmx5JywgKCkgPT4ge1xuICBleHBlY3QodHlwZXN5cy5pbmNsdWRlc0Fzc2VtYmx5KCdAZm9vL2JhcicpKS50b0JlRmFsc3koKTtcbiAgZXhwZWN0KHR5cGVzeXMuaW5jbHVkZXNBc3NlbWJseSgnanNpaS1jYWxjJykpLnRvQmVUcnV0aHkoKTtcbiAgZXhwZWN0KHR5cGVzeXMuaW5jbHVkZXNBc3NlbWJseSgnQHNjb3BlL2pzaWktY2FsYy1saWInKSkudG9CZVRydXRoeSgpO1xufSk7XG5cbnRlc3QoJ1R5cGVTeXN0ZW0uYXNzZW1ibGllcyBsaXN0cyBhbGwgdGhlIGxvYWRlZCBhc3NlbWJsaWVzJywgKCkgPT5cbiAgZXhwZWN0KHR5cGVzeXMuYXNzZW1ibGllcy5tYXAoKGEpID0+IGEubmFtZSkuc29ydCgpKS50b01hdGNoU25hcHNob3QoKSk7XG5cbnRlc3QoJ1R5cGVTeXN0ZW0uY2xhc3NlcyBsaXN0cyBhbGwgdGhlIGNsYXNzZXMgaW4gdGhlIHR5cGVzeXN0ZW0nLCAoKSA9PlxuICBleHBlY3QodHlwZXN5cy5jbGFzc2VzLm1hcCgoYykgPT4gYy5mcW4pLnNvcnQoKSkudG9NYXRjaFNuYXBzaG90KCkpO1xuXG50ZXN0KCdmaW5kQ2xhc3MnLCAoKSA9PiB7XG4gIGNvbnN0IGNhbGMgPSB0eXBlc3lzLmZpbmRDbGFzcygnanNpaS1jYWxjLkNhbGN1bGF0b3InKTtcbiAgY29uc3QgYWN0dWFsID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgT2JqZWN0LnZhbHVlcyhjYWxjLmdldE1ldGhvZHMoLyogaW5oZXJpdGVkICovIHRydWUpKS5mb3JFYWNoKChtZXRob2QpID0+IHtcbiAgICBhY3R1YWwucHVzaChgJHttZXRob2QubmFtZX0gZnJvbSAke21ldGhvZC5wYXJlbnRUeXBlLm5hbWV9YCk7XG4gIH0pO1xuXG4gIGV4cGVjdChhY3R1YWwuam9pbignXFxuJykpLnRvTWF0Y2hTbmFwc2hvdCgpO1xufSk7XG5cbnRlc3QoJ1wicm9vdHNcIiBpcyBhIGxpc3Qgb2YgdGhlIGRpcmVjdGx5IGxvYWRlZCBhc3NlbWJsaWVzJywgYXN5bmMgKCkgPT4ge1xuICBleHBlY3QodHlwZXN5cy5yb290cy5sZW5ndGgpLnRvQmUoMSk7XG4gIGV4cGVjdCh0eXBlc3lzLnJvb3RzWzBdKS50b0JlKHR5cGVzeXMuZmluZEFzc2VtYmx5KCdqc2lpLWNhbGMnKSk7XG5cbiAgLy8gbm93IGxvYWQgYW5vdGhlciBhc3NlbWJsaXkgZGlyZWN0bHlcbiAgYXdhaXQgdHlwZXN5cy5sb2FkKHJlc29sdmVNb2R1bGVEaXIoJ0BzY29wZS9qc2lpLWNhbGMtbGliJykpO1xuICByZXR1cm4gZXhwZWN0KHR5cGVzeXMucm9vdHMubGVuZ3RoKS50b0JlKDIpO1xufSk7XG5cbmRlc2NyaWJlKCdUeXBlJywgKCkgPT4ge1xuICB0ZXN0KCcuaXNDbGFzc1R5cGUnLCAoKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBjbGF6eiA9IHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLkFsbFR5cGVzJyk7XG4gICAgY29uc3QgaWZhY2UgPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5JUHVibGljSW50ZXJmYWNlJyk7XG4gICAgY29uc3QgZW51bXQgPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BbGxUeXBlc0VudW0nKTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3QoY2xhenouaXNDbGFzc1R5cGUoKSkudG9CZVRydXRoeSgpO1xuICAgIGV4cGVjdChpZmFjZS5pc0NsYXNzVHlwZSgpKS50b0JlRmFsc3koKTtcbiAgICBleHBlY3QoZW51bXQuaXNDbGFzc1R5cGUoKSkudG9CZUZhbHN5KCk7XG4gIH0pO1xuXG4gIHRlc3QoJy5pc0RhdGFUeXBlJywgKCkgPT4ge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3QgY2xhenogPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BbGxUeXBlcycpO1xuICAgIGNvbnN0IGlmYWNlID0gdHlwZXN5cy5maW5kRnFuKFxuICAgICAgJ2pzaWktY2FsYy5JSW50ZXJmYWNlVGhhdFNob3VsZE5vdEJlQURhdGFUeXBlJyxcbiAgICApO1xuICAgIGNvbnN0IGRhdGF0ID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuQ2FsY3VsYXRvclByb3BzJyk7XG4gICAgY29uc3QgZW51bXQgPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BbGxUeXBlc0VudW0nKTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3QoY2xhenouaXNEYXRhVHlwZSgpKS50b0JlRmFsc3koKTtcbiAgICBleHBlY3QoaWZhY2UuaXNEYXRhVHlwZSgpKS50b0JlRmFsc3koKTtcbiAgICBleHBlY3QoZGF0YXQuaXNEYXRhVHlwZSgpKS50b0JlVHJ1dGh5KCk7XG4gICAgZXhwZWN0KGVudW10LmlzRGF0YVR5cGUoKSkudG9CZUZhbHN5KCk7XG4gIH0pO1xuXG4gIHRlc3QoJy5pc0ludGVyZmFjZVR5cGUnLCAoKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBjbGF6eiA9IHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLkFsbFR5cGVzJyk7XG4gICAgY29uc3QgaWZhY2UgPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5JUHVibGljSW50ZXJmYWNlJyk7XG4gICAgY29uc3QgZW51bXQgPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BbGxUeXBlc0VudW0nKTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3QoY2xhenouaXNJbnRlcmZhY2VUeXBlKCkpLnRvQmVGYWxzeSgpO1xuICAgIGV4cGVjdChpZmFjZS5pc0ludGVyZmFjZVR5cGUoKSkudG9CZVRydXRoeSgpO1xuICAgIGV4cGVjdChlbnVtdC5pc0ludGVyZmFjZVR5cGUoKSkudG9CZUZhbHN5KCk7XG4gIH0pO1xuXG4gIHRlc3QoJy5pc0VudW1UeXBlJywgKCkgPT4ge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3QgY2xhenogPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BbGxUeXBlcycpO1xuICAgIGNvbnN0IGlmYWNlID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuSVB1YmxpY0ludGVyZmFjZScpO1xuICAgIGNvbnN0IGVudW10ID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuQWxsVHlwZXNFbnVtJyk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KGNsYXp6LmlzRW51bVR5cGUoKSkudG9CZUZhbHN5KCk7XG4gICAgZXhwZWN0KGlmYWNlLmlzRW51bVR5cGUoKSkudG9CZUZhbHN5KCk7XG4gICAgZXhwZWN0KGVudW10LmlzRW51bVR5cGUoKSkudG9CZVRydXRoeSgpO1xuICB9KTtcblxuICBkZXNjcmliZSgnLmV4dGVuZHMoYmFzZSknLCAoKSA9PiB7XG4gICAgdGVzdCgnd2l0aCBpbnRlcmZhY2VzJywgKCkgPT4ge1xuICAgICAgLy8gR0lWRU5cbiAgICAgIGNvbnN0IGJhc2UgPSB0eXBlc3lzLmZpbmRGcW4oXG4gICAgICAgICdAc2NvcGUvanNpaS1jYWxjLWJhc2Utb2YtYmFzZS5WZXJ5QmFzZVByb3BzJyxcbiAgICAgICk7XG4gICAgICBjb25zdCBjbGF6eiA9IHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLkltcGxpY3RCYXNlT2ZCYXNlJyk7XG4gICAgICBjb25zdCBlbnVtdCA9IHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLkFsbFR5cGVzRW51bScpO1xuXG4gICAgICAvLyBUSEVOXG4gICAgICBleHBlY3QoYmFzZS5leHRlbmRzKGJhc2UpKS50b0JlVHJ1dGh5KCk7XG4gICAgICBleHBlY3QoY2xhenouZXh0ZW5kcyhjbGF6eikpLnRvQmVUcnV0aHkoKTtcbiAgICAgIGV4cGVjdChjbGF6ei5leHRlbmRzKGJhc2UpKS50b0JlVHJ1dGh5KCk7XG4gICAgICBleHBlY3QoZW51bXQuZXh0ZW5kcyhiYXNlKSkudG9CZUZhbHN5KCk7XG4gICAgICBleHBlY3QoYmFzZS5leHRlbmRzKGVudW10KSkudG9CZUZhbHN5KCk7XG4gICAgICBleHBlY3QoYmFzZS5leHRlbmRzKGNsYXp6KSkudG9CZUZhbHN5KCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCd3aXRoIGEgY2xhc3MgYW5kIGFuIGludGVyZmFjZScsICgpID0+IHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBpZmFjZSA9IHR5cGVzeXMuZmluZEZxbihcbiAgICAgICAgJ2pzaWktY2FsYy5JSW50ZXJmYWNlSW1wbGVtZW50ZWRCeUFic3RyYWN0Q2xhc3MnLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNsYXp6ID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuQWJzdHJhY3RDbGFzcycpO1xuXG4gICAgICAvLyBUSEVOXG4gICAgICBleHBlY3QoY2xhenouZXh0ZW5kcyhpZmFjZSkpLnRvQmVUcnV0aHkoKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ3dpdGggdHdvIGNsYXNzZXMnLCAoKSA9PiB7XG4gICAgICAvLyBHSVZFTlxuICAgICAgY29uc3QgYmFzZSA9IHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLkFic3RyYWN0Q2xhc3NCYXNlJyk7XG4gICAgICBjb25zdCBjbGF6eiA9IHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLkFic3RyYWN0Q2xhc3MnKTtcblxuICAgICAgLy8gVEhFTlxuICAgICAgZXhwZWN0KGNsYXp6LmV4dGVuZHMoYmFzZSkpLnRvQmVUcnV0aHkoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJy5hbGxJbXBsZW1lbnRhdGlvbnMnLCAoKSA9PiB7XG4gICAgdGVzdCgnd2l0aCBhbiBpbnRlcmZhY2UnLCAoKSA9PiB7XG4gICAgICAvLyBHSVZFTlxuICAgICAgY29uc3QgYmFzZSA9IHR5cGVzeXMuZmluZEZxbihcbiAgICAgICAgJ2pzaWktY2FsYy5JSW50ZXJmYWNlSW1wbGVtZW50ZWRCeUFic3RyYWN0Q2xhc3MnLFxuICAgICAgKTtcblxuICAgICAgLy8gVEhFTlxuICAgICAgZXhwZWN0KGJhc2UuYWxsSW1wbGVtZW50YXRpb25zKS50b0VxdWFsKFtcbiAgICAgICAgdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuQWJzdHJhY3RDbGFzcycpLFxuICAgICAgICBiYXNlLFxuICAgICAgXSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCd3aXRoIGFuIGVudW0nLCAoKSA9PiB7XG4gICAgICAvLyBHSVZFTlxuICAgICAgY29uc3QgZW51bXQgPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BbGxUeXBlc0VudW0nKTtcblxuICAgICAgLy8gVEhFTlxuICAgICAgZXhwZWN0KGVudW10LmFsbEltcGxlbWVudGF0aW9ucykudG9FcXVhbChbXSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbnRlc3QoJ1RocmVlIEluaGVyaXRhbmNlIExldmVscycsICgpID0+IHtcbiAgY29uc3QgaWZhY2UgPSB0eXBlc3lzLmZpbmRJbnRlcmZhY2UoXG4gICAgJ0BzY29wZS9qc2lpLWNhbGMtbGliLklUaHJlZUxldmVsc0ludGVyZmFjZScsXG4gICk7XG4gIGNvbnN0IG1ldGhvZG5hbWVzID0gaWZhY2UuYWxsTWV0aG9kcy5tYXAoKG0pID0+IG0ubmFtZSk7XG4gIG1ldGhvZG5hbWVzLnNvcnQoKTtcbiAgZXhwZWN0KG1ldGhvZG5hbWVzKS50b0VxdWFsKFsnYmFyJywgJ2JheicsICdmb28nXSk7XG59KTtcblxuZGVzY3JpYmUoJ0BkZXByZWNhdGVkJywgKCkgPT4ge1xuICB0ZXN0KCdjYW4gYmUgcmVhZCBvbiBhbiBpdGVtJywgKCkgPT4ge1xuICAgIGNvbnN0IGtsYXNzID0gdHlwZXN5cy5maW5kQ2xhc3MoJ2pzaWktY2FsYy5PbGQnKTtcbiAgICBleHBlY3Qoa2xhc3MuZG9jcy5kZXByZWNhdGVkKS50b0JlVHJ1dGh5KCk7XG4gICAgZXhwZWN0KGtsYXNzLmRvY3Muc3RhYmlsaXR5KS50b0JlKHNwZWMuU3RhYmlsaXR5LkRlcHJlY2F0ZWQpO1xuICB9KTtcblxuICB0ZXN0KCdpcyBpbmhlcml0ZWQgZnJvbSBjbGFzcycsICgpID0+IHtcbiAgICBjb25zdCBrbGFzcyA9IHR5cGVzeXMuZmluZENsYXNzKCdqc2lpLWNhbGMuT2xkJyk7XG4gICAgY29uc3QgbWV0aG9kID0ga2xhc3MuZ2V0TWV0aG9kcygpLmRvQVRoaW5nO1xuICAgIGV4cGVjdChtZXRob2QuZG9jcy5kZXByZWNhdGVkKS50b0JlVHJ1dGh5KCk7XG4gIH0pO1xufSk7XG5cbi8qKlxuICogVGhpcyB0ZXN0IGlzIGFjdHVhbGx5IHRlc3RpbmcgdGhlIGNvbWJpbmF0aW9uIG9mIGBqc2lpYCwgYGpzaWktY2FsY2AgYW5kIGBqc2lpLXJlZmxlY3RgLlxuICovXG50ZXN0KCdTdWJtb2R1bGVzIGNhbiBoYXZlIGEgUkVBRE1FJywgKCkgPT4ge1xuICBjb25zdCBqc2lpQ2FsYyA9IHR5cGVzeXMuZmluZEFzc2VtYmx5KCdqc2lpLWNhbGMnKTtcblxuICBjb25zdCBzdWJtb2R1bGUgPSBqc2lpQ2FsYy5zdWJtb2R1bGVzLmZpbmQoXG4gICAgKG0pID0+IG0uZnFuID09PSAnanNpaS1jYWxjLnN1Ym1vZHVsZScsXG4gICk7XG4gIGNvbnN0IGlzb2xhdGVkID0gc3VibW9kdWxlPy5zdWJtb2R1bGVzLmZpbmQoXG4gICAgKG0pID0+IG0uZnFuID09PSAnanNpaS1jYWxjLnN1Ym1vZHVsZS5pc29sYXRlZCcsXG4gICk7XG5cbiAgZXhwZWN0KHN1Ym1vZHVsZT8ucmVhZG1lPy5tYXJrZG93bikudG9NYXRjaChcbiAgICAvVGhpcyBpcyB0aGUgcmVhZG1lLipqc2lpLWNhbGMuc3VibW9kdWxlLyxcbiAgKTtcbiAgZXhwZWN0KGlzb2xhdGVkPy5yZWFkbWU/Lm1hcmtkb3duKS50b01hdGNoKFxuICAgIC9UaGlzIGlzIHRoZSByZWFkbWUuKmpzaWktY2FsYy5zdWJtb2R1bGUuaXNvbGF0ZWQvLFxuICApO1xufSk7XG5cbnRlc3QoJ292ZXJyaWRkZW4gbWVtYmVyIGtub3dzIGFib3V0IGJvdGggcGFyZW50IHR5cGVzJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCB0cyA9IGF3YWl0IHR5cGVTeXN0ZW1Gcm9tU291cmNlKGBcbiAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgIHB1YmxpYyBiYXIoKSB7XG4gICAgICAgIEFycmF5LmlzQXJyYXkoMyk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyBib28oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBjbGFzcyBTdWJGb28gZXh0ZW5kcyBGb28ge1xuICAgICAgcHVibGljIGJvbygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgYCk7XG5cbiAgY29uc3Qgc3VwZXJUeXBlID0gdHMuZmluZENsYXNzKCd0ZXN0cGtnLkZvbycpO1xuICBjb25zdCBzdWJUeXBlID0gdHMuZmluZENsYXNzKCd0ZXN0cGtnLlN1YkZvbycpO1xuICBjb25zdCBmb29NZXRob2QgPSBzdWJUeXBlLmFsbE1ldGhvZHMuZmluZCgobSkgPT4gbS5uYW1lID09PSAnYmFyJykhO1xuICBjb25zdCBib29NZXRob2QgPSBzdWJUeXBlLmFsbE1ldGhvZHMuZmluZCgobSkgPT4gbS5uYW1lID09PSAnYm9vJykhO1xuXG4gIGV4cGVjdChmb29NZXRob2QucGFyZW50VHlwZSkudG9CZShzdWJUeXBlKTtcbiAgZXhwZWN0KGZvb01ldGhvZC5kZWZpbmluZ1R5cGUpLnRvQmUoc3VwZXJUeXBlKTtcblxuICBleHBlY3QoYm9vTWV0aG9kLnBhcmVudFR5cGUpLnRvQmUoc3ViVHlwZSk7XG4gIGV4cGVjdChib29NZXRob2QuZGVmaW5pbmdUeXBlKS50b0JlKHN1YlR5cGUpO1xuICBleHBlY3QoYm9vTWV0aG9kLm92ZXJyaWRlcykudG9CZShzdXBlclR5cGUpO1xufSk7XG5cbmRlc2NyaWJlKCdTdGFiaWxpdHknLCAoKSA9PiB7XG4gIHRlc3QoJ2NhbiBiZSByZWFkIG9uIGFuIGl0ZW0nLCAoKSA9PiB7XG4gICAgY29uc3Qga2xhc3MgPSB0eXBlc3lzLmZpbmRDbGFzcygnanNpaS1jYWxjLkRvY3VtZW50ZWRDbGFzcycpO1xuICAgIGV4cGVjdChrbGFzcy5kb2NzLnN0YWJpbGl0eSkudG9CZShzcGVjLlN0YWJpbGl0eS5TdGFibGUpO1xuICB9KTtcblxuICB0ZXN0KCdpcyBpbmhlcml0ZWQgZnJvbSBjbGFzcycsICgpID0+IHtcbiAgICBjb25zdCBrbGFzcyA9IHR5cGVzeXMuZmluZENsYXNzKCdqc2lpLWNhbGMuRG9jdW1lbnRlZENsYXNzJyk7XG4gICAgY29uc3QgbWV0aG9kID0ga2xhc3MuZ2V0TWV0aG9kcygpLmdyZWV0O1xuICAgIGV4cGVjdChtZXRob2QuZG9jcy5zdGFiaWxpdHkpLnRvQmUoc3BlYy5TdGFiaWxpdHkuU3RhYmxlKTtcbiAgfSk7XG5cbiAgdGVzdCgnY2FuIGJlIG92ZXJyaWRkZW4gZnJvbSBjbGFzcycsICgpID0+IHtcbiAgICBjb25zdCBrbGFzcyA9IHR5cGVzeXMuZmluZENsYXNzKCdqc2lpLWNhbGMuRG9jdW1lbnRlZENsYXNzJyk7XG4gICAgY29uc3QgbWV0aG9kID0ga2xhc3MuZ2V0TWV0aG9kcygpLmhvbGE7XG4gICAgZXhwZWN0KG1ldGhvZC5kb2NzLnN0YWJpbGl0eSkudG9CZShzcGVjLlN0YWJpbGl0eS5FeHBlcmltZW50YWwpO1xuICB9KTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgZGVzY3JpYmUoJ2xvd2VzdCBzdGFiaWxpdHkgZ3VhcmFudGVlIGlzIGFkdmVydGlzZWQnLCAoKSA9PiB7XG4gICAgdGVzdCgnd2hlbiBzdWJjbGFzcyBpcyBleHBlcmltZW50YWwnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0cyA9IGF3YWl0IHR5cGVTeXN0ZW1Gcm9tU291cmNlKGBcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBzdGFibGVcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBjbGFzcyBGb28ge1xuICAgICAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSgzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwdWJsaWMgYmFyKCkge1xuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSgzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQGV4cGVyaW1lbnRhbFxuICAgICAgICAgKi9cbiAgICAgICAgZXhwb3J0IGNsYXNzIFN1YkZvbyBleHRlbmRzIEZvbyB7XG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgICAgY29uc3QgY2xhc3NUeXBlID0gdHMuZmluZENsYXNzKCd0ZXN0cGtnLlN1YkZvbycpO1xuICAgICAgY29uc3QgaW5pdGlhbGl6ZXIgPSBjbGFzc1R5cGUuaW5pdGlhbGl6ZXIhO1xuICAgICAgY29uc3QgbWV0aG9kID0gY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmluZCgobSkgPT4gbS5uYW1lID09PSAnYmFyJykhO1xuXG4gICAgICBleHBlY3QoaW5pdGlhbGl6ZXIuZG9jcy5zdGFiaWxpdHkpLnRvRXF1YWwoU3RhYmlsaXR5LkV4cGVyaW1lbnRhbCk7XG4gICAgICBleHBlY3QobWV0aG9kLmRvY3Muc3RhYmlsaXR5KS50b0VxdWFsKFN0YWJpbGl0eS5FeHBlcmltZW50YWwpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnd2hlbiBtZXRob2QgaXMgZXhwZXJpbWVudGFsJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHMgPSBhd2FpdCB0eXBlU3lzdGVtRnJvbVNvdXJjZShgXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAc3RhYmxlXG4gICAgICAgICAqL1xuICAgICAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICAgICAgICovXG4gICAgICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KDMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBleHBlcmltZW50YWxcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwdWJsaWMgYmFyKCkge1xuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSgzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQHN0YWJsZVxuICAgICAgICAgKi9cbiAgICAgICAgZXhwb3J0IGNsYXNzIFN1YkZvbyBleHRlbmRzIEZvbyB7XG4gICAgICAgIH1cbiAgICAgIGApO1xuXG4gICAgICBjb25zdCBjbGFzc1R5cGUgPSB0cy5maW5kQ2xhc3MoJ3Rlc3Rwa2cuU3ViRm9vJyk7XG4gICAgICBjb25zdCBpbml0aWFsaXplciA9IGNsYXNzVHlwZS5pbml0aWFsaXplciE7XG4gICAgICBjb25zdCBtZXRob2QgPSBjbGFzc1R5cGUuYWxsTWV0aG9kcy5maW5kKChtKSA9PiBtLm5hbWUgPT09ICdiYXInKSE7XG5cbiAgICAgIGV4cGVjdChpbml0aWFsaXplci5kb2NzLnN0YWJpbGl0eSkudG9FcXVhbChTdGFiaWxpdHkuRXhwZXJpbWVudGFsKTtcbiAgICAgIGV4cGVjdChtZXRob2QuZG9jcy5zdGFiaWxpdHkpLnRvRXF1YWwoU3RhYmlsaXR5LkV4cGVyaW1lbnRhbCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCd3aGVuIG1ldGhvZCBpcyBleHBsaWNpdGx5IG1hcmtlZCBzdGFibGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0cyA9IGF3YWl0IHR5cGVTeXN0ZW1Gcm9tU291cmNlKGBcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBzdGFibGVcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBjbGFzcyBGb28ge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBzdGFibGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoMyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQHN0YWJsZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHB1YmxpYyBiYXIoKSB7XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KDMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICAgICAqL1xuICAgICAgICBleHBvcnQgY2xhc3MgU3ViRm9vIGV4dGVuZHMgRm9vIHtcbiAgICAgICAgfVxuICAgICAgYCk7XG5cbiAgICAgIGNvbnN0IGNsYXNzVHlwZSA9IHRzLmZpbmRDbGFzcygndGVzdHBrZy5TdWJGb28nKTtcbiAgICAgIGNvbnN0IGluaXRpYWxpemVyID0gY2xhc3NUeXBlLmluaXRpYWxpemVyITtcbiAgICAgIGNvbnN0IG1ldGhvZCA9IGNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbmQoKG0pID0+IG0ubmFtZSA9PT0gJ2JhcicpITtcblxuICAgICAgZXhwZWN0KGluaXRpYWxpemVyLmRvY3Muc3RhYmlsaXR5KS50b0VxdWFsKFN0YWJpbGl0eS5FeHBlcmltZW50YWwpO1xuICAgICAgZXhwZWN0KG1ldGhvZC5kb2NzLnN0YWJpbGl0eSkudG9FcXVhbChTdGFiaWxpdHkuRXhwZXJpbWVudGFsKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2V4dGVybmFsIHN0YWJpbGl0eScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRzID0gYXdhaXQgdHlwZVN5c3RlbUZyb21Tb3VyY2UoYFxuICAgICAgICAvKipcbiAgICAgICAgICogQHN0YWJpbGl0eSBleHRlcm5hbFxuICAgICAgICAgKi9cbiAgICAgICAgZXhwb3J0IGNsYXNzIEZvbyB7XG4gICAgICAgICAgcHVibGljIGJhcigpIHtcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoMyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBzdGFibGVcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBjbGFzcyBTdWJGb28gZXh0ZW5kcyBGb28ge1xuICAgICAgICB9XG4gICAgICBgKTtcblxuICAgICAgY29uc3QgY2xhc3NUeXBlID0gdHMuZmluZENsYXNzKCd0ZXN0cGtnLlN1YkZvbycpO1xuICAgICAgY29uc3QgbWV0aG9kID0gY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmluZCgobSkgPT4gbS5uYW1lID09PSAnYmFyJykhO1xuXG4gICAgICBleHBlY3QobWV0aG9kLmRvY3Muc3RhYmlsaXR5KS50b0VxdWFsKFN0YWJpbGl0eS5FeHRlcm5hbCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbnRlc3QoJ1R5cGVTeXN0ZW0ucHJvcGVydGllcycsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgdHMgPSBhd2FpdCB0eXBlU3lzdGVtRnJvbVNvdXJjZShgXG4gIGV4cG9ydCBuYW1lc3BhY2Ugc3VibW9kdWxlIHtcbiAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0ZXN0ID0gJ1RFU1QnO1xuICAgIH1cbiAgICBleHBvcnQgaW50ZXJmYWNlIEJhciB7XG4gICAgICByZWFkb25seSBiYXo6IG51bWJlcjtcbiAgICB9XG4gIH1cbiAgYCk7XG4gIGV4cGVjdCh0cy5wcm9wZXJ0aWVzKS50b0hhdmVMZW5ndGgoMik7XG59KTtcblxudGVzdCgnVHlwZVN5c3RlbS5tZXRob2RzJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCB0cyA9IGF3YWl0IHR5cGVTeXN0ZW1Gcm9tU291cmNlKGBcbiAgZXhwb3J0IG5hbWVzcGFjZSBzdWJtb2R1bGUge1xuICAgIGV4cG9ydCBjbGFzcyBGb28ge1xuICAgICAgcHVibGljIG1ldGhvZCgpOiB2b2lkIHt9XG4gICAgfVxuICAgIGV4cG9ydCBpbnRlcmZhY2UgSUJhciB7XG4gICAgICBiYXooKTogbnVtYmVyO1xuICAgIH1cbiAgfVxuICBgKTtcbiAgZXhwZWN0KHRzLm1ldGhvZHMpLnRvSGF2ZUxlbmd0aCgyKTtcbn0pO1xuXG50ZXN0KCdBc3NlbWJseSBhbGxUeXBlcyBpbmNsdWRlcyBzdWJtb2R1bGUgdHlwZXMnLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGFzbSA9IGF3YWl0IGFzc2VtYmx5RnJvbVNvdXJjZSh7XG4gICAgJ2luZGV4LnRzJzogJ2V4cG9ydCAqIGFzIHN1Ym1vZCBmcm9tIFwiLi9zdWJtb2RcIjsnLFxuICAgICdzdWJtb2QudHMnOiBgZXhwb3J0IGNsYXNzIEZvbyB7fWAsXG4gIH0pO1xuXG4gIGV4cGVjdChhc20uYWxsVHlwZXMubWFwKCh0KSA9PiB0LmZxbikpLnRvRXF1YWwoWyd0ZXN0cGtnLnN1Ym1vZC5Gb28nXSk7XG59KTtcblxuZnVuY3Rpb24gcmVzb2x2ZU1vZHVsZURpcihuYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHBhdGguZGlybmFtZShyZXF1aXJlLnJlc29sdmUoYCR7bmFtZX0vcGFja2FnZS5qc29uYCkpO1xufVxuIl19
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1zeXN0ZW0udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGUtc3lzdGVtLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBbUM7QUFDbkMscUNBQXVDO0FBQ3ZDLDZCQUE2QjtBQUU3QixnQ0FBb0M7QUFDcEMsaUNBQWtFO0FBRWxFLElBQUksT0FBbUIsQ0FBQztBQUV4QixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7SUFDbkIsT0FBTyxHQUFHLElBQUksZ0JBQVUsRUFBRSxDQUFDO0lBQzNCLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNELE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3hFLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsRUFBRSxDQUNqRSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFFMUUsSUFBSSxDQUFDLDREQUE0RCxFQUFFLEdBQUcsRUFBRSxDQUN0RSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFD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OUIsTUFBTSxFQUFFLEdBQUcsMkJBQW9CLENBQUM7Ozs7Ozs7OztHQVMvQixDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7SUFDdEQsTUFBTSxHQUFHLEdBQUcseUJBQWtCLENBQUM7UUFDN0IsVUFBVSxFQUFFLHFDQUFxQztRQUNqRCxXQUFXLEVBQUUscUJBQXFCO0tBQ25DLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUMsQ0FBQyxDQUFDO0FBRUgsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFZO0lBQ3BDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBQy9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzcGVjIGZyb20gJ0Bqc2lpL3NwZWMnO1xuaW1wb3J0IHsgU3RhYmlsaXR5IH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgeyBUeXBlU3lzdGVtIH0gZnJvbSAnLi4vbGliJztcbmltcG9ydCB7IHR5cGVTeXN0ZW1Gcm9tU291cmNlLCBhc3NlbWJseUZyb21Tb3VyY2UgfSBmcm9tICcuL3V0aWwnO1xuXG5sZXQgdHlwZXN5czogVHlwZVN5c3RlbTtcblxuYmVmb3JlQWxsKGFzeW5jICgpID0+IHtcbiAgdHlwZXN5cyA9IG5ldyBUeXBlU3lzdGVtKCk7XG4gIGF3YWl0IHR5cGVzeXMubG9hZE1vZHVsZShyZXNvbHZlTW9kdWxlRGlyKCdqc2lpLWNhbGMnKSk7XG59KTtcblxudGVzdCgnVHlwZVN5c3RlbS5oYXNBc3NlbWJseScsICgpID0+IHtcbiAgZXhwZWN0KHR5cGVzeXMuaW5jbHVkZXNBc3NlbWJseSgnQGZvby9iYXInKSkudG9CZUZhbHN5KCk7XG4gIGV4cGVjdCh0eXBlc3lzLmluY2x1ZGVzQXNzZW1ibHkoJ2pzaWktY2FsYycpKS50b0JlVHJ1dGh5KCk7XG4gIGV4cGVjdCh0eXBlc3lzLmluY2x1ZGVzQXNzZW1ibHkoJ0BzY29wZS9qc2lpLWNhbGMtbGliJykpLnRvQmVUcnV0aHkoKTtcbn0pO1xuXG50ZXN0KCdUeXBlU3lzdGVtLmFzc2VtYmxpZXMgbGlzdHMgYWxsIHRoZSBsb2FkZWQgYXNzZW1ibGllcycsICgpID0+XG4gIGV4cGVjdCh0eXBlc3lzLmFzc2VtYmxpZXMubWFwKChhKSA9PiBhLm5hbWUpLnNvcnQoKSkudG9NYXRjaFNuYXBzaG90KCkpO1xuXG50ZXN0KCdUeXBlU3lzdGVtLmNsYXNzZXMgbGlzdHMgYWxsIHRoZSBjbGFzc2VzIGluIHRoZSB0eXBlc3lzdGVtJywgKCkgPT5cbiAgZXhwZWN0KHR5cGVzeXMuY2xhc3Nlcy5tYXAoKGMpID0+IGMuZnFuKS5zb3J0KCkpLnRvTWF0Y2hTbmFwc2hvdCgpKTtcblxudGVzdCgnZmluZENsYXNzJywgKCkgPT4ge1xuICBjb25zdCBjYWxjID0gdHlwZXN5cy5maW5kQ2xhc3MoJ2pzaWktY2FsYy5DYWxjdWxhdG9yJyk7XG4gIGNvbnN0IGFjdHVhbCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIE9iamVjdC52YWx1ZXMoY2FsYy5nZXRNZXRob2RzKC8qIGluaGVyaXRlZCAqLyB0cnVlKSkuZm9yRWFjaCgobWV0aG9kKSA9PiB7XG4gICAgYWN0dWFsLnB1c2goYCR7bWV0aG9kLm5hbWV9IGZyb20gJHttZXRob2QucGFyZW50VHlwZS5uYW1lfWApO1xuICB9KTtcblxuICBleHBlY3QoYWN0dWFsLmpvaW4oJ1xcbicpKS50b01hdGNoU25hcHNob3QoKTtcbn0pO1xuXG50ZXN0KCdcInJvb3RzXCIgaXMgYSBsaXN0IG9mIHRoZSBkaXJlY3RseSBsb2FkZWQgYXNzZW1ibGllcycsIGFzeW5jICgpID0+IHtcbiAgZXhwZWN0KHR5cGVzeXMucm9vdHMubGVuZ3RoKS50b0JlKDEpO1xuICBleHBlY3QodHlwZXN5cy5yb290c1swXSkudG9CZSh0eXBlc3lzLmZpbmRBc3NlbWJseSgnanNpaS1jYWxjJykpO1xuXG4gIC8vIG5vdyBsb2FkIGFub3RoZXIgYXNzZW1ibGl5IGRpcmVjdGx5XG4gIGF3YWl0IHR5cGVzeXMubG9hZChyZXNvbHZlTW9kdWxlRGlyKCdAc2NvcGUvanNpaS1jYWxjLWxpYicpKTtcbiAgcmV0dXJuIGV4cGVjdCh0eXBlc3lzLnJvb3RzLmxlbmd0aCkudG9CZSgyKTtcbn0pO1xuXG5kZXNjcmliZSgnVHlwZScsICgpID0+IHtcbiAgdGVzdCgnLmlzQ2xhc3NUeXBlJywgKCkgPT4ge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3QgY2xhenogPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BbGxUeXBlcycpO1xuICAgIGNvbnN0IGlmYWNlID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuSVB1YmxpY0ludGVyZmFjZScpO1xuICAgIGNvbnN0IGVudW10ID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuQWxsVHlwZXNFbnVtJyk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KGNsYXp6LmlzQ2xhc3NUeXBlKCkpLnRvQmVUcnV0aHkoKTtcbiAgICBleHBlY3QoaWZhY2UuaXNDbGFzc1R5cGUoKSkudG9CZUZhbHN5KCk7XG4gICAgZXhwZWN0KGVudW10LmlzQ2xhc3NUeXBlKCkpLnRvQmVGYWxzeSgpO1xuICB9KTtcblxuICB0ZXN0KCcuaXNEYXRhVHlwZScsICgpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IGNsYXp6ID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuQWxsVHlwZXMnKTtcbiAgICBjb25zdCBpZmFjZSA9IHR5cGVzeXMuZmluZEZxbihcbiAgICAgICdqc2lpLWNhbGMuSUludGVyZmFjZVRoYXRTaG91bGROb3RCZUFEYXRhVHlwZScsXG4gICAgKTtcbiAgICBjb25zdCBkYXRhdCA9IHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLkNhbGN1bGF0b3JQcm9wcycpO1xuICAgIGNvbnN0IGVudW10ID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuQWxsVHlwZXNFbnVtJyk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KGNsYXp6LmlzRGF0YVR5cGUoKSkudG9CZUZhbHN5KCk7XG4gICAgZXhwZWN0KGlmYWNlLmlzRGF0YVR5cGUoKSkudG9CZUZhbHN5KCk7XG4gICAgZXhwZWN0KGRhdGF0LmlzRGF0YVR5cGUoKSkudG9CZVRydXRoeSgpO1xuICAgIGV4cGVjdChlbnVtdC5pc0RhdGFUeXBlKCkpLnRvQmVGYWxzeSgpO1xuICB9KTtcblxuICB0ZXN0KCcuaXNJbnRlcmZhY2VUeXBlJywgKCkgPT4ge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3QgY2xhenogPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BbGxUeXBlcycpO1xuICAgIGNvbnN0IGlmYWNlID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuSVB1YmxpY0ludGVyZmFjZScpO1xuICAgIGNvbnN0IGVudW10ID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuQWxsVHlwZXNFbnVtJyk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KGNsYXp6LmlzSW50ZXJmYWNlVHlwZSgpKS50b0JlRmFsc3koKTtcbiAgICBleHBlY3QoaWZhY2UuaXNJbnRlcmZhY2VUeXBlKCkpLnRvQmVUcnV0aHkoKTtcbiAgICBleHBlY3QoZW51bXQuaXNJbnRlcmZhY2VUeXBlKCkpLnRvQmVGYWxzeSgpO1xuICB9KTtcblxuICB0ZXN0KCcuaXNFbnVtVHlwZScsICgpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IGNsYXp6ID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuQWxsVHlwZXMnKTtcbiAgICBjb25zdCBpZmFjZSA9IHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLklQdWJsaWNJbnRlcmZhY2UnKTtcbiAgICBjb25zdCBlbnVtdCA9IHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLkFsbFR5cGVzRW51bScpO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdChjbGF6ei5pc0VudW1UeXBlKCkpLnRvQmVGYWxzeSgpO1xuICAgIGV4cGVjdChpZmFjZS5pc0VudW1UeXBlKCkpLnRvQmVGYWxzeSgpO1xuICAgIGV4cGVjdChlbnVtdC5pc0VudW1UeXBlKCkpLnRvQmVUcnV0aHkoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJy5leHRlbmRzKGJhc2UpJywgKCkgPT4ge1xuICAgIHRlc3QoJ3dpdGggaW50ZXJmYWNlcycsICgpID0+IHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBiYXNlID0gdHlwZXN5cy5maW5kRnFuKFxuICAgICAgICAnQHNjb3BlL2pzaWktY2FsYy1iYXNlLW9mLWJhc2UuVmVyeUJhc2VQcm9wcycsXG4gICAgICApO1xuICAgICAgY29uc3QgY2xhenogPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5JbXBsaWN0QmFzZU9mQmFzZScpO1xuICAgICAgY29uc3QgZW51bXQgPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BbGxUeXBlc0VudW0nKTtcblxuICAgICAgLy8gVEhFTlxuICAgICAgZXhwZWN0KGJhc2UuZXh0ZW5kcyhiYXNlKSkudG9CZVRydXRoeSgpO1xuICAgICAgZXhwZWN0KGNsYXp6LmV4dGVuZHMoY2xhenopKS50b0JlVHJ1dGh5KCk7XG4gICAgICBleHBlY3QoY2xhenouZXh0ZW5kcyhiYXNlKSkudG9CZVRydXRoeSgpO1xuICAgICAgZXhwZWN0KGVudW10LmV4dGVuZHMoYmFzZSkpLnRvQmVGYWxzeSgpO1xuICAgICAgZXhwZWN0KGJhc2UuZXh0ZW5kcyhlbnVtdCkpLnRvQmVGYWxzeSgpO1xuICAgICAgZXhwZWN0KGJhc2UuZXh0ZW5kcyhjbGF6eikpLnRvQmVGYWxzeSgpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnd2l0aCBhIGNsYXNzIGFuZCBhbiBpbnRlcmZhY2UnLCAoKSA9PiB7XG4gICAgICAvLyBHSVZFTlxuICAgICAgY29uc3QgaWZhY2UgPSB0eXBlc3lzLmZpbmRGcW4oXG4gICAgICAgICdqc2lpLWNhbGMuSUludGVyZmFjZUltcGxlbWVudGVkQnlBYnN0cmFjdENsYXNzJyxcbiAgICAgICk7XG4gICAgICBjb25zdCBjbGF6eiA9IHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLkFic3RyYWN0Q2xhc3MnKTtcblxuICAgICAgLy8gVEhFTlxuICAgICAgZXhwZWN0KGNsYXp6LmV4dGVuZHMoaWZhY2UpKS50b0JlVHJ1dGh5KCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCd3aXRoIHR3byBjbGFzc2VzJywgKCkgPT4ge1xuICAgICAgLy8gR0lWRU5cbiAgICAgIGNvbnN0IGJhc2UgPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BYnN0cmFjdENsYXNzQmFzZScpO1xuICAgICAgY29uc3QgY2xhenogPSB0eXBlc3lzLmZpbmRGcW4oJ2pzaWktY2FsYy5BYnN0cmFjdENsYXNzJyk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGV4cGVjdChjbGF6ei5leHRlbmRzKGJhc2UpKS50b0JlVHJ1dGh5KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCcuYWxsSW1wbGVtZW50YXRpb25zJywgKCkgPT4ge1xuICAgIHRlc3QoJ3dpdGggYW4gaW50ZXJmYWNlJywgKCkgPT4ge1xuICAgICAgLy8gR0lWRU5cbiAgICAgIGNvbnN0IGJhc2UgPSB0eXBlc3lzLmZpbmRGcW4oXG4gICAgICAgICdqc2lpLWNhbGMuSUludGVyZmFjZUltcGxlbWVudGVkQnlBYnN0cmFjdENsYXNzJyxcbiAgICAgICk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGV4cGVjdChiYXNlLmFsbEltcGxlbWVudGF0aW9ucykudG9FcXVhbChbXG4gICAgICAgIHR5cGVzeXMuZmluZEZxbignanNpaS1jYWxjLkFic3RyYWN0Q2xhc3MnKSxcbiAgICAgICAgYmFzZSxcbiAgICAgIF0pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnd2l0aCBhbiBlbnVtJywgKCkgPT4ge1xuICAgICAgLy8gR0lWRU5cbiAgICAgIGNvbnN0IGVudW10ID0gdHlwZXN5cy5maW5kRnFuKCdqc2lpLWNhbGMuQWxsVHlwZXNFbnVtJyk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGV4cGVjdChlbnVtdC5hbGxJbXBsZW1lbnRhdGlvbnMpLnRvRXF1YWwoW10pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG50ZXN0KCdUaHJlZSBJbmhlcml0YW5jZSBMZXZlbHMnLCAoKSA9PiB7XG4gIGNvbnN0IGlmYWNlID0gdHlwZXN5cy5maW5kSW50ZXJmYWNlKFxuICAgICdAc2NvcGUvanNpaS1jYWxjLWxpYi5JVGhyZWVMZXZlbHNJbnRlcmZhY2UnLFxuICApO1xuICBjb25zdCBtZXRob2RuYW1lcyA9IGlmYWNlLmFsbE1ldGhvZHMubWFwKChtKSA9PiBtLm5hbWUpO1xuICBtZXRob2RuYW1lcy5zb3J0KCk7XG4gIGV4cGVjdChtZXRob2RuYW1lcykudG9FcXVhbChbJ2JhcicsICdiYXonLCAnZm9vJ10pO1xufSk7XG5cbmRlc2NyaWJlKCdAZGVwcmVjYXRlZCcsICgpID0+IHtcbiAgdGVzdCgnY2FuIGJlIHJlYWQgb24gYW4gaXRlbScsICgpID0+IHtcbiAgICBjb25zdCBrbGFzcyA9IHR5cGVzeXMuZmluZENsYXNzKCdqc2lpLWNhbGMuT2xkJyk7XG4gICAgZXhwZWN0KGtsYXNzLmRvY3MuZGVwcmVjYXRlZCkudG9CZVRydXRoeSgpO1xuICAgIGV4cGVjdChrbGFzcy5kb2NzLnN0YWJpbGl0eSkudG9CZShzcGVjLlN0YWJpbGl0eS5EZXByZWNhdGVkKTtcbiAgfSk7XG5cbiAgdGVzdCgnaXMgaW5oZXJpdGVkIGZyb20gY2xhc3MnLCAoKSA9PiB7XG4gICAgY29uc3Qga2xhc3MgPSB0eXBlc3lzLmZpbmRDbGFzcygnanNpaS1jYWxjLk9sZCcpO1xuICAgIGNvbnN0IG1ldGhvZCA9IGtsYXNzLmdldE1ldGhvZHMoKS5kb0FUaGluZztcbiAgICBleHBlY3QobWV0aG9kLmRvY3MuZGVwcmVjYXRlZCkudG9CZVRydXRoeSgpO1xuICB9KTtcbn0pO1xuXG4vKipcbiAqIFRoaXMgdGVzdCBpcyBhY3R1YWxseSB0ZXN0aW5nIHRoZSBjb21iaW5hdGlvbiBvZiBganNpaWAsIGBqc2lpLWNhbGNgIGFuZCBganNpaS1yZWZsZWN0YC5cbiAqL1xudGVzdCgnU3VibW9kdWxlcyBjYW4gaGF2ZSBhIFJFQURNRScsICgpID0+IHtcbiAgY29uc3QganNpaUNhbGMgPSB0eXBlc3lzLmZpbmRBc3NlbWJseSgnanNpaS1jYWxjJyk7XG5cbiAgY29uc3Qgc3VibW9kdWxlID0ganNpaUNhbGMuc3VibW9kdWxlcy5maW5kKFxuICAgIChtKSA9PiBtLmZxbiA9PT0gJ2pzaWktY2FsYy5zdWJtb2R1bGUnLFxuICApO1xuICBjb25zdCBpc29sYXRlZCA9IHN1Ym1vZHVsZT8uc3VibW9kdWxlcy5maW5kKFxuICAgIChtKSA9PiBtLmZxbiA9PT0gJ2pzaWktY2FsYy5zdWJtb2R1bGUuaXNvbGF0ZWQnLFxuICApO1xuXG4gIGV4cGVjdChzdWJtb2R1bGU/LnJlYWRtZT8ubWFya2Rvd24pLnRvTWF0Y2goXG4gICAgL1RoaXMgaXMgdGhlIHJlYWRtZS4qanNpaS1jYWxjLnN1Ym1vZHVsZS8sXG4gICk7XG4gIGV4cGVjdChpc29sYXRlZD8ucmVhZG1lPy5tYXJrZG93bikudG9NYXRjaChcbiAgICAvVGhpcyBpcyB0aGUgcmVhZG1lLipqc2lpLWNhbGMuc3VibW9kdWxlLmlzb2xhdGVkLyxcbiAgKTtcbn0pO1xuXG50ZXN0KCdvdmVycmlkZGVuIG1lbWJlciBrbm93cyBhYm91dCBib3RoIHBhcmVudCB0eXBlcycsICgpID0+IHtcbiAgY29uc3QgdHMgPSB0eXBlU3lzdGVtRnJvbVNvdXJjZShgXG4gICAgZXhwb3J0IGNsYXNzIEZvbyB7XG4gICAgICBwdWJsaWMgYmFyKCkge1xuICAgICAgICBBcnJheS5pc0FycmF5KDMpO1xuICAgICAgfVxuXG4gICAgICBwdWJsaWMgYm9vKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgY2xhc3MgU3ViRm9vIGV4dGVuZHMgRm9vIHtcbiAgICAgIHB1YmxpYyBib28oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIGApO1xuXG4gIGNvbnN0IHN1cGVyVHlwZSA9IHRzLmZpbmRDbGFzcygndGVzdHBrZy5Gb28nKTtcbiAgY29uc3Qgc3ViVHlwZSA9IHRzLmZpbmRDbGFzcygndGVzdHBrZy5TdWJGb28nKTtcbiAgY29uc3QgZm9vTWV0aG9kID0gc3ViVHlwZS5hbGxNZXRob2RzLmZpbmQoKG0pID0+IG0ubmFtZSA9PT0gJ2JhcicpITtcbiAgY29uc3QgYm9vTWV0aG9kID0gc3ViVHlwZS5hbGxNZXRob2RzLmZpbmQoKG0pID0+IG0ubmFtZSA9PT0gJ2JvbycpITtcblxuICBleHBlY3QoZm9vTWV0aG9kLnBhcmVudFR5cGUpLnRvQmUoc3ViVHlwZSk7XG4gIGV4cGVjdChmb29NZXRob2QuZGVmaW5pbmdUeXBlKS50b0JlKHN1cGVyVHlwZSk7XG5cbiAgZXhwZWN0KGJvb01ldGhvZC5wYXJlbnRUeXBlKS50b0JlKHN1YlR5cGUpO1xuICBleHBlY3QoYm9vTWV0aG9kLmRlZmluaW5nVHlwZSkudG9CZShzdWJUeXBlKTtcbiAgZXhwZWN0KGJvb01ldGhvZC5vdmVycmlkZXMpLnRvQmUoc3VwZXJUeXBlKTtcbn0pO1xuXG5kZXNjcmliZSgnU3RhYmlsaXR5JywgKCkgPT4ge1xuICB0ZXN0KCdjYW4gYmUgcmVhZCBvbiBhbiBpdGVtJywgKCkgPT4ge1xuICAgIGNvbnN0IGtsYXNzID0gdHlwZXN5cy5maW5kQ2xhc3MoJ2pzaWktY2FsYy5Eb2N1bWVudGVkQ2xhc3MnKTtcbiAgICBleHBlY3Qoa2xhc3MuZG9jcy5zdGFiaWxpdHkpLnRvQmUoc3BlYy5TdGFiaWxpdHkuU3RhYmxlKTtcbiAgfSk7XG5cbiAgdGVzdCgnaXMgaW5oZXJpdGVkIGZyb20gY2xhc3MnLCAoKSA9PiB7XG4gICAgY29uc3Qga2xhc3MgPSB0eXBlc3lzLmZpbmRDbGFzcygnanNpaS1jYWxjLkRvY3VtZW50ZWRDbGFzcycpO1xuICAgIGNvbnN0IG1ldGhvZCA9IGtsYXNzLmdldE1ldGhvZHMoKS5ncmVldDtcbiAgICBleHBlY3QobWV0aG9kLmRvY3Muc3RhYmlsaXR5KS50b0JlKHNwZWMuU3RhYmlsaXR5LlN0YWJsZSk7XG4gIH0pO1xuXG4gIHRlc3QoJ2NhbiBiZSBvdmVycmlkZGVuIGZyb20gY2xhc3MnLCAoKSA9PiB7XG4gICAgY29uc3Qga2xhc3MgPSB0eXBlc3lzLmZpbmRDbGFzcygnanNpaS1jYWxjLkRvY3VtZW50ZWRDbGFzcycpO1xuICAgIGNvbnN0IG1ldGhvZCA9IGtsYXNzLmdldE1ldGhvZHMoKS5ob2xhO1xuICAgIGV4cGVjdChtZXRob2QuZG9jcy5zdGFiaWxpdHkpLnRvQmUoc3BlYy5TdGFiaWxpdHkuRXhwZXJpbWVudGFsKTtcbiAgfSk7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGRlc2NyaWJlKCdsb3dlc3Qgc3RhYmlsaXR5IGd1YXJhbnRlZSBpcyBhZHZlcnRpc2VkJywgKCkgPT4ge1xuICAgIHRlc3QoJ3doZW4gc3ViY2xhc3MgaXMgZXhwZXJpbWVudGFsJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHMgPSB0eXBlU3lzdGVtRnJvbVNvdXJjZShgXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAc3RhYmxlXG4gICAgICAgICAqL1xuICAgICAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoMyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcHVibGljIGJhcigpIHtcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoMyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBleHBlcmltZW50YWxcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBjbGFzcyBTdWJGb28gZXh0ZW5kcyBGb28ge1xuICAgICAgICB9XG4gICAgICBgKTtcbiAgICAgIGNvbnN0IGNsYXNzVHlwZSA9IHRzLmZpbmRDbGFzcygndGVzdHBrZy5TdWJGb28nKTtcbiAgICAgIGNvbnN0IGluaXRpYWxpemVyID0gY2xhc3NUeXBlLmluaXRpYWxpemVyITtcbiAgICAgIGNvbnN0IG1ldGhvZCA9IGNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbmQoKG0pID0+IG0ubmFtZSA9PT0gJ2JhcicpITtcblxuICAgICAgZXhwZWN0KGluaXRpYWxpemVyLmRvY3Muc3RhYmlsaXR5KS50b0VxdWFsKFN0YWJpbGl0eS5FeHBlcmltZW50YWwpO1xuICAgICAgZXhwZWN0KG1ldGhvZC5kb2NzLnN0YWJpbGl0eSkudG9FcXVhbChTdGFiaWxpdHkuRXhwZXJpbWVudGFsKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ3doZW4gbWV0aG9kIGlzIGV4cGVyaW1lbnRhbCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHRzID0gdHlwZVN5c3RlbUZyb21Tb3VyY2UoYFxuICAgICAgICAvKipcbiAgICAgICAgICogQHN0YWJsZVxuICAgICAgICAgKi9cbiAgICAgICAgZXhwb3J0IGNsYXNzIEZvbyB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGV4cGVyaW1lbnRhbFxuICAgICAgICAgICAqL1xuICAgICAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSgzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHVibGljIGJhcigpIHtcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoMyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBzdGFibGVcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBjbGFzcyBTdWJGb28gZXh0ZW5kcyBGb28ge1xuICAgICAgICB9XG4gICAgICBgKTtcblxuICAgICAgY29uc3QgY2xhc3NUeXBlID0gdHMuZmluZENsYXNzKCd0ZXN0cGtnLlN1YkZvbycpO1xuICAgICAgY29uc3QgaW5pdGlhbGl6ZXIgPSBjbGFzc1R5cGUuaW5pdGlhbGl6ZXIhO1xuICAgICAgY29uc3QgbWV0aG9kID0gY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmluZCgobSkgPT4gbS5uYW1lID09PSAnYmFyJykhO1xuXG4gICAgICBleHBlY3QoaW5pdGlhbGl6ZXIuZG9jcy5zdGFiaWxpdHkpLnRvRXF1YWwoU3RhYmlsaXR5LkV4cGVyaW1lbnRhbCk7XG4gICAgICBleHBlY3QobWV0aG9kLmRvY3Muc3RhYmlsaXR5KS50b0VxdWFsKFN0YWJpbGl0eS5FeHBlcmltZW50YWwpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnd2hlbiBtZXRob2QgaXMgZXhwbGljaXRseSBtYXJrZWQgc3RhYmxlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHMgPSB0eXBlU3lzdGVtRnJvbVNvdXJjZShgXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAc3RhYmxlXG4gICAgICAgICAqL1xuICAgICAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAc3RhYmxlXG4gICAgICAgICAgICovXG4gICAgICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KDMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBzdGFibGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwdWJsaWMgYmFyKCkge1xuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSgzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQGV4cGVyaW1lbnRhbFxuICAgICAgICAgKi9cbiAgICAgICAgZXhwb3J0IGNsYXNzIFN1YkZvbyBleHRlbmRzIEZvbyB7XG4gICAgICAgIH1cbiAgICAgIGApO1xuXG4gICAgICBjb25zdCBjbGFzc1R5cGUgPSB0cy5maW5kQ2xhc3MoJ3Rlc3Rwa2cuU3ViRm9vJyk7XG4gICAgICBjb25zdCBpbml0aWFsaXplciA9IGNsYXNzVHlwZS5pbml0aWFsaXplciE7XG4gICAgICBjb25zdCBtZXRob2QgPSBjbGFzc1R5cGUuYWxsTWV0aG9kcy5maW5kKChtKSA9PiBtLm5hbWUgPT09ICdiYXInKSE7XG5cbiAgICAgIGV4cGVjdChpbml0aWFsaXplci5kb2NzLnN0YWJpbGl0eSkudG9FcXVhbChTdGFiaWxpdHkuRXhwZXJpbWVudGFsKTtcbiAgICAgIGV4cGVjdChtZXRob2QuZG9jcy5zdGFiaWxpdHkpLnRvRXF1YWwoU3RhYmlsaXR5LkV4cGVyaW1lbnRhbCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdleHRlcm5hbCBzdGFiaWxpdHknLCAoKSA9PiB7XG4gICAgICBjb25zdCB0cyA9IHR5cGVTeXN0ZW1Gcm9tU291cmNlKGBcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBzdGFiaWxpdHkgZXh0ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBjbGFzcyBGb28ge1xuICAgICAgICAgIHB1YmxpYyBiYXIoKSB7XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KDMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAc3RhYmxlXG4gICAgICAgICAqL1xuICAgICAgICBleHBvcnQgY2xhc3MgU3ViRm9vIGV4dGVuZHMgRm9vIHtcbiAgICAgICAgfVxuICAgICAgYCk7XG5cbiAgICAgIGNvbnN0IGNsYXNzVHlwZSA9IHRzLmZpbmRDbGFzcygndGVzdHBrZy5TdWJGb28nKTtcbiAgICAgIGNvbnN0IG1ldGhvZCA9IGNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbmQoKG0pID0+IG0ubmFtZSA9PT0gJ2JhcicpITtcblxuICAgICAgZXhwZWN0KG1ldGhvZC5kb2NzLnN0YWJpbGl0eSkudG9FcXVhbChTdGFiaWxpdHkuRXh0ZXJuYWwpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG50ZXN0KCdUeXBlU3lzdGVtLnByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHRzID0gdHlwZVN5c3RlbUZyb21Tb3VyY2UoYFxuICBleHBvcnQgbmFtZXNwYWNlIHN1Ym1vZHVsZSB7XG4gICAgZXhwb3J0IGNsYXNzIEZvbyB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGVzdCA9ICdURVNUJztcbiAgICB9XG4gICAgZXhwb3J0IGludGVyZmFjZSBCYXIge1xuICAgICAgcmVhZG9ubHkgYmF6OiBudW1iZXI7XG4gICAgfVxuICB9XG4gIGApO1xuICBleHBlY3QodHMucHJvcGVydGllcykudG9IYXZlTGVuZ3RoKDIpO1xufSk7XG5cbnRlc3QoJ1R5cGVTeXN0ZW0ubWV0aG9kcycsICgpID0+IHtcbiAgY29uc3QgdHMgPSB0eXBlU3lzdGVtRnJvbVNvdXJjZShgXG4gIGV4cG9ydCBuYW1lc3BhY2Ugc3VibW9kdWxlIHtcbiAgICBleHBvcnQgY2xhc3MgRm9vIHtcbiAgICAgIHB1YmxpYyBtZXRob2QoKTogdm9pZCB7fVxuICAgIH1cbiAgICBleHBvcnQgaW50ZXJmYWNlIElCYXIge1xuICAgICAgYmF6KCk6IG51bWJlcjtcbiAgICB9XG4gIH1cbiAgYCk7XG4gIGV4cGVjdCh0cy5tZXRob2RzKS50b0hhdmVMZW5ndGgoMik7XG59KTtcblxudGVzdCgnQXNzZW1ibHkgYWxsVHlwZXMgaW5jbHVkZXMgc3VibW9kdWxlIHR5cGVzJywgKCkgPT4ge1xuICBjb25zdCBhc20gPSBhc3NlbWJseUZyb21Tb3VyY2Uoe1xuICAgICdpbmRleC50cyc6ICdleHBvcnQgKiBhcyBzdWJtb2QgZnJvbSBcIi4vc3VibW9kXCI7JyxcbiAgICAnc3VibW9kLnRzJzogYGV4cG9ydCBjbGFzcyBGb28ge31gLFxuICB9KTtcblxuICBleHBlY3QoYXNtLmFsbFR5cGVzLm1hcCgodCkgPT4gdC5mcW4pKS50b0VxdWFsKFsndGVzdHBrZy5zdWJtb2QuRm9vJ10pO1xufSk7XG5cbmZ1bmN0aW9uIHJlc29sdmVNb2R1bGVEaXIobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLmRpcm5hbWUocmVxdWlyZS5yZXNvbHZlKGAke25hbWV9L3BhY2thZ2UuanNvbmApKTtcbn1cbiJdfQ==
package/test/util.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import { MultipleSourceFiles, PackageInfo } from 'jsii';
2
2
  import { Assembly, TypeSystem } from '../lib';
3
- export declare function typeSystemFromSource(source: string | MultipleSourceFiles, cb?: (obj: PackageInfo) => void): Promise<TypeSystem>;
4
- export declare function assemblyFromSource(source: string | MultipleSourceFiles, cb?: (obj: PackageInfo) => void): Promise<Assembly>;
3
+ export declare function typeSystemFromSource(source: string | MultipleSourceFiles, cb?: (obj: PackageInfo) => void): TypeSystem;
4
+ export declare function assemblyFromSource(source: string | MultipleSourceFiles, cb?: (obj: PackageInfo) => void): Assembly;
package/test/util.js CHANGED
@@ -3,15 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assemblyFromSource = exports.typeSystemFromSource = void 0;
4
4
  const jsii_1 = require("jsii");
5
5
  const lib_1 = require("../lib");
6
- async function typeSystemFromSource(source, cb) {
7
- const asm = await assemblyFromSource(source, cb);
6
+ function typeSystemFromSource(source, cb) {
7
+ const asm = assemblyFromSource(source, cb);
8
8
  return asm.system;
9
9
  }
10
10
  exports.typeSystemFromSource = typeSystemFromSource;
11
- async function assemblyFromSource(source, cb) {
12
- const ass = await jsii_1.sourceToAssemblyHelper(source, cb);
11
+ function assemblyFromSource(source, cb) {
12
+ const ass = jsii_1.sourceToAssemblyHelper(source, cb);
13
13
  const ts = new lib_1.TypeSystem();
14
14
  return ts.addAssembly(new lib_1.Assembly(ts, ass));
15
15
  }
16
16
  exports.assemblyFromSource = assemblyFromSource;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQWdGO0FBRWhGLGdDQUE4QztBQUV2QyxLQUFLLFVBQVUsb0JBQW9CLENBQ3hDLE1BQW9DLEVBQ3BDLEVBQStCO0lBRS9CLE1BQU0sR0FBRyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQztBQUNwQixDQUFDO0FBTkQsb0RBTUM7QUFFTSxLQUFLLFVBQVUsa0JBQWtCLENBQ3RDLE1BQW9DLEVBQ3BDLEVBQStCO0lBRS9CLE1BQU0sR0FBRyxHQUFHLE1BQU0sNkJBQXNCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sRUFBRSxHQUFHLElBQUksZ0JBQVUsRUFBRSxDQUFDO0lBQzVCLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGNBQVEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBUEQsZ0RBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzb3VyY2VUb0Fzc2VtYmx5SGVscGVyLCBNdWx0aXBsZVNvdXJjZUZpbGVzLCBQYWNrYWdlSW5mbyB9IGZyb20gJ2pzaWknO1xuXG5pbXBvcnQgeyBBc3NlbWJseSwgVHlwZVN5c3RlbSB9IGZyb20gJy4uL2xpYic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0eXBlU3lzdGVtRnJvbVNvdXJjZShcbiAgc291cmNlOiBzdHJpbmcgfCBNdWx0aXBsZVNvdXJjZUZpbGVzLFxuICBjYj86IChvYmo6IFBhY2thZ2VJbmZvKSA9PiB2b2lkLFxuKSB7XG4gIGNvbnN0IGFzbSA9IGF3YWl0IGFzc2VtYmx5RnJvbVNvdXJjZShzb3VyY2UsIGNiKTtcbiAgcmV0dXJuIGFzbS5zeXN0ZW07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3NlbWJseUZyb21Tb3VyY2UoXG4gIHNvdXJjZTogc3RyaW5nIHwgTXVsdGlwbGVTb3VyY2VGaWxlcyxcbiAgY2I/OiAob2JqOiBQYWNrYWdlSW5mbykgPT4gdm9pZCxcbik6IFByb21pc2U8QXNzZW1ibHk+IHtcbiAgY29uc3QgYXNzID0gYXdhaXQgc291cmNlVG9Bc3NlbWJseUhlbHBlcihzb3VyY2UsIGNiKTtcbiAgY29uc3QgdHMgPSBuZXcgVHlwZVN5c3RlbSgpO1xuICByZXR1cm4gdHMuYWRkQXNzZW1ibHkobmV3IEFzc2VtYmx5KHRzLCBhc3MpKTtcbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQWdGO0FBRWhGLGdDQUE4QztBQUU5QyxTQUFnQixvQkFBb0IsQ0FDbEMsTUFBb0MsRUFDcEMsRUFBK0I7SUFFL0IsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQztBQUNwQixDQUFDO0FBTkQsb0RBTUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FDaEMsTUFBb0MsRUFDcEMsRUFBK0I7SUFFL0IsTUFBTSxHQUFHLEdBQUcsNkJBQXNCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sRUFBRSxHQUFHLElBQUksZ0JBQVUsRUFBRSxDQUFDO0lBQzVCLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGNBQVEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBUEQsZ0RBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzb3VyY2VUb0Fzc2VtYmx5SGVscGVyLCBNdWx0aXBsZVNvdXJjZUZpbGVzLCBQYWNrYWdlSW5mbyB9IGZyb20gJ2pzaWknO1xuXG5pbXBvcnQgeyBBc3NlbWJseSwgVHlwZVN5c3RlbSB9IGZyb20gJy4uL2xpYic7XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlU3lzdGVtRnJvbVNvdXJjZShcbiAgc291cmNlOiBzdHJpbmcgfCBNdWx0aXBsZVNvdXJjZUZpbGVzLFxuICBjYj86IChvYmo6IFBhY2thZ2VJbmZvKSA9PiB2b2lkLFxuKSB7XG4gIGNvbnN0IGFzbSA9IGFzc2VtYmx5RnJvbVNvdXJjZShzb3VyY2UsIGNiKTtcbiAgcmV0dXJuIGFzbS5zeXN0ZW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlbWJseUZyb21Tb3VyY2UoXG4gIHNvdXJjZTogc3RyaW5nIHwgTXVsdGlwbGVTb3VyY2VGaWxlcyxcbiAgY2I/OiAob2JqOiBQYWNrYWdlSW5mbykgPT4gdm9pZCxcbik6IEFzc2VtYmx5IHtcbiAgY29uc3QgYXNzID0gc291cmNlVG9Bc3NlbWJseUhlbHBlcihzb3VyY2UsIGNiKTtcbiAgY29uc3QgdHMgPSBuZXcgVHlwZVN5c3RlbSgpO1xuICByZXR1cm4gdHMuYWRkQXNzZW1ibHkobmV3IEFzc2VtYmx5KHRzLCBhc3MpKTtcbn1cbiJdfQ==