jsii-reflect 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +189 -0
  3. package/bin/jsii-tree +2 -0
  4. package/bin/jsii-tree.d.ts +1 -0
  5. package/bin/jsii-tree.js +99 -0
  6. package/lib/assembly.d.ts +118 -0
  7. package/lib/assembly.js +285 -0
  8. package/lib/callable.d.ts +43 -0
  9. package/lib/callable.js +61 -0
  10. package/lib/class.d.ts +52 -0
  11. package/lib/class.js +110 -0
  12. package/lib/dependency.d.ts +8 -0
  13. package/lib/dependency.js +15 -0
  14. package/lib/docs.d.ts +53 -0
  15. package/lib/docs.js +107 -0
  16. package/lib/enum.d.ts +21 -0
  17. package/lib/enum.js +36 -0
  18. package/lib/index.d.ts +22 -0
  19. package/lib/index.js +35 -0
  20. package/lib/initializer.d.ts +11 -0
  21. package/lib/initializer.js +18 -0
  22. package/lib/interface.d.ts +43 -0
  23. package/lib/interface.js +85 -0
  24. package/lib/method.d.ts +42 -0
  25. package/lib/method.js +59 -0
  26. package/lib/module-like.d.ts +26 -0
  27. package/lib/module-like.js +50 -0
  28. package/lib/optional-value.d.ts +12 -0
  29. package/lib/optional-value.js +30 -0
  30. package/lib/overridable.d.ts +10 -0
  31. package/lib/overridable.js +3 -0
  32. package/lib/parameter.d.ts +22 -0
  33. package/lib/parameter.js +32 -0
  34. package/lib/property.d.ts +54 -0
  35. package/lib/property.js +82 -0
  36. package/lib/reference-type.d.ts +57 -0
  37. package/lib/reference-type.js +52 -0
  38. package/lib/source.d.ts +37 -0
  39. package/lib/source.js +43 -0
  40. package/lib/submodule.d.ts +24 -0
  41. package/lib/submodule.js +29 -0
  42. package/lib/tree.d.ts +51 -0
  43. package/lib/tree.js +281 -0
  44. package/lib/type-member.d.ts +18 -0
  45. package/lib/type-member.js +22 -0
  46. package/lib/type-ref.d.ts +17 -0
  47. package/lib/type-ref.js +78 -0
  48. package/lib/type-system.d.ts +93 -0
  49. package/lib/type-system.js +287 -0
  50. package/lib/type.d.ts +84 -0
  51. package/lib/type.js +139 -0
  52. package/lib/util.d.ts +3 -0
  53. package/lib/util.js +12 -0
  54. package/package.json +57 -0
  55. package/test/__snapshots__/jsii-tree.test.ts.snap +5625 -0
  56. package/test/__snapshots__/tree.test.ts.snap +3773 -0
  57. package/test/__snapshots__/type-system.test.ts.snap +194 -0
  58. package/test/independent.test.d.ts +1 -0
  59. package/test/independent.test.js +25 -0
  60. package/test/jsii-tree.test.d.ts +1 -0
  61. package/test/jsii-tree.test.js +28 -0
  62. package/test/tree.test.d.ts +1 -0
  63. package/test/tree.test.js +56 -0
  64. package/test/type-system.test.d.ts +1 -0
  65. package/test/type-system.test.js +344 -0
  66. package/test/util.d.ts +2 -0
  67. package/test/util.js +13 -0
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModuleLike = void 0;
4
+ const class_1 = require("./class");
5
+ const enum_1 = require("./enum");
6
+ const interface_1 = require("./interface");
7
+ class ModuleLike {
8
+ constructor(system) {
9
+ this.system = system;
10
+ }
11
+ get submodules() {
12
+ return Object.values(this.submoduleMap);
13
+ }
14
+ get types() {
15
+ return Object.values(this.typeMap);
16
+ }
17
+ get classes() {
18
+ return this.types
19
+ .filter((t) => t instanceof class_1.ClassType)
20
+ .map((t) => t);
21
+ }
22
+ get interfaces() {
23
+ return this.types
24
+ .filter((t) => t instanceof interface_1.InterfaceType)
25
+ .map((t) => t);
26
+ }
27
+ get enums() {
28
+ return this.types
29
+ .filter((t) => t instanceof enum_1.EnumType)
30
+ .map((t) => t);
31
+ }
32
+ tryFindType(fqn) {
33
+ const ownType = this.typeMap[fqn];
34
+ if (ownType != null) {
35
+ return ownType;
36
+ }
37
+ if (!fqn.startsWith(`${this.fqn}.`)) {
38
+ return undefined;
39
+ }
40
+ const myFqnLength = this.fqn.split('.').length;
41
+ const subFqn = fqn
42
+ .split('.')
43
+ .slice(0, myFqnLength + 1)
44
+ .join('.');
45
+ const sub = this.submoduleMap[subFqn];
46
+ return sub === null || sub === void 0 ? void 0 : sub.tryFindType(fqn);
47
+ }
48
+ }
49
+ exports.ModuleLike = ModuleLike;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWxpa2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtb2R1bGUtbGlrZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxtQ0FBb0M7QUFDcEMsaUNBQWtDO0FBQ2xDLDJDQUE0QztBQUs1QyxNQUFzQixVQUFVO0lBZTlCLFlBQXNDLE1BQWtCO1FBQWxCLFdBQU0sR0FBTixNQUFNLENBQVk7SUFBRyxDQUFDO0lBRTVELElBQVcsVUFBVTtRQUNuQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUFXLEtBQUs7UUFDZCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLGlCQUFTLENBQUM7YUFDckMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFjLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSx5QkFBYSxDQUFDO2FBQ3pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBa0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksZUFBUSxDQUFDO2FBQ3BDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBYSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLFdBQVcsQ0FBQyxHQUFXO1FBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ25CLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRTtZQUNuQyxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMvQyxNQUFNLE1BQU0sR0FBRyxHQUFHO2FBQ2YsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLEtBQUssQ0FBQyxDQUFDLEVBQUUsV0FBVyxHQUFHLENBQUMsQ0FBQzthQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7SUFDL0IsQ0FBQztDQUNGO0FBNURELGdDQTREQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGpzaWkgZnJvbSAnQGpzaWkvc3BlYyc7XG5cbmltcG9ydCB7IENsYXNzVHlwZSB9IGZyb20gJy4vY2xhc3MnO1xuaW1wb3J0IHsgRW51bVR5cGUgfSBmcm9tICcuL2VudW0nO1xuaW1wb3J0IHsgSW50ZXJmYWNlVHlwZSB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IFN1Ym1vZHVsZSB9IGZyb20gJy4vc3VibW9kdWxlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuL3R5cGUnO1xuaW1wb3J0IHsgVHlwZVN5c3RlbSB9IGZyb20gJy4vdHlwZS1zeXN0ZW0nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9kdWxlTGlrZSB7XG4gIHB1YmxpYyBkZWNsYXJlIGFic3RyYWN0IHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiB0YXJnZXQgbmFtZSB0byBjb25maWd1cmF0aW9uLCB3aGljaCBpcyB1c2VkIHdoZW4gZ2VuZXJhdGluZyBwYWNrYWdlcyBmb3JcbiAgICogdmFyaW91cyBsYW5ndWFnZXMuXG4gICAqL1xuICBwdWJsaWMgZGVjbGFyZSBhYnN0cmFjdCByZWFkb25seSB0YXJnZXRzPzoganNpaS5Bc3NlbWJseVRhcmdldHM7XG4gIHB1YmxpYyBkZWNsYXJlIGFic3RyYWN0IHJlYWRvbmx5IHJlYWRtZT86IGpzaWkuUmVhZE1lO1xuXG4gIHByb3RlY3RlZCBkZWNsYXJlIGFic3RyYWN0IHJlYWRvbmx5IHN1Ym1vZHVsZU1hcDogUmVhZG9ubHk8XG4gICAgUmVjb3JkPHN0cmluZywgU3VibW9kdWxlPlxuICA+O1xuICBwcm90ZWN0ZWQgZGVjbGFyZSBhYnN0cmFjdCByZWFkb25seSB0eXBlTWFwOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBUeXBlPj47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzeXN0ZW06IFR5cGVTeXN0ZW0pIHt9XG5cbiAgcHVibGljIGdldCBzdWJtb2R1bGVzKCk6IHJlYWRvbmx5IFN1Ym1vZHVsZVtdIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnN1Ym1vZHVsZU1hcCk7XG4gIH1cbiAgcHVibGljIGdldCB0eXBlcygpOiByZWFkb25seSBUeXBlW10ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMudHlwZU1hcCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsYXNzZXMoKTogcmVhZG9ubHkgQ2xhc3NUeXBlW10ge1xuICAgIHJldHVybiB0aGlzLnR5cGVzXG4gICAgICAuZmlsdGVyKCh0KSA9PiB0IGluc3RhbmNlb2YgQ2xhc3NUeXBlKVxuICAgICAgLm1hcCgodCkgPT4gdCBhcyBDbGFzc1R5cGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnRlcmZhY2VzKCk6IHJlYWRvbmx5IEludGVyZmFjZVR5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZXNcbiAgICAgIC5maWx0ZXIoKHQpID0+IHQgaW5zdGFuY2VvZiBJbnRlcmZhY2VUeXBlKVxuICAgICAgLm1hcCgodCkgPT4gdCBhcyBJbnRlcmZhY2VUeXBlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW51bXMoKTogcmVhZG9ubHkgRW51bVR5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZXNcbiAgICAgIC5maWx0ZXIoKHQpID0+IHQgaW5zdGFuY2VvZiBFbnVtVHlwZSlcbiAgICAgIC5tYXAoKHQpID0+IHQgYXMgRW51bVR5cGUpO1xuICB9XG5cbiAgcHVibGljIHRyeUZpbmRUeXBlKGZxbjogc3RyaW5nKTogVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgb3duVHlwZSA9IHRoaXMudHlwZU1hcFtmcW5dO1xuICAgIGlmIChvd25UeXBlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBvd25UeXBlO1xuICAgIH1cblxuICAgIGlmICghZnFuLnN0YXJ0c1dpdGgoYCR7dGhpcy5mcW59LmApKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IG15RnFuTGVuZ3RoID0gdGhpcy5mcW4uc3BsaXQoJy4nKS5sZW5ndGg7XG4gICAgY29uc3Qgc3ViRnFuID0gZnFuXG4gICAgICAuc3BsaXQoJy4nKVxuICAgICAgLnNsaWNlKDAsIG15RnFuTGVuZ3RoICsgMSlcbiAgICAgIC5qb2luKCcuJyk7XG4gICAgY29uc3Qgc3ViID0gdGhpcy5zdWJtb2R1bGVNYXBbc3ViRnFuXTtcbiAgICByZXR1cm4gc3ViPy50cnlGaW5kVHlwZShmcW4pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import * as jsii from '@jsii/spec';
2
+ import { TypeReference } from './type-ref';
3
+ import { TypeSystem } from './type-system';
4
+ export declare class OptionalValue {
5
+ readonly system: TypeSystem;
6
+ readonly spec?: jsii.OptionalValue | undefined;
7
+ static describe(optionalValue: OptionalValue): string;
8
+ constructor(system: TypeSystem, spec?: jsii.OptionalValue | undefined);
9
+ toString(): string;
10
+ get type(): TypeReference;
11
+ get optional(): boolean;
12
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OptionalValue = void 0;
4
+ const type_ref_1 = require("./type-ref");
5
+ class OptionalValue {
6
+ constructor(system, spec) {
7
+ this.system = system;
8
+ this.spec = spec;
9
+ }
10
+ static describe(optionalValue) {
11
+ let description = optionalValue.type.toString();
12
+ if (optionalValue.optional && !optionalValue.type.isAny) {
13
+ description = `Optional<${description}>`;
14
+ }
15
+ return description;
16
+ }
17
+ toString() {
18
+ return OptionalValue.describe(this);
19
+ }
20
+ get type() {
21
+ var _a;
22
+ return new type_ref_1.TypeReference(this.system, (_a = this.spec) === null || _a === void 0 ? void 0 : _a.type);
23
+ }
24
+ get optional() {
25
+ var _a;
26
+ return !!((_a = this.spec) === null || _a === void 0 ? void 0 : _a.optional);
27
+ }
28
+ }
29
+ exports.OptionalValue = OptionalValue;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uYWwtdmFsdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvcHRpb25hbC12YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx5Q0FBMkM7QUFHM0MsTUFBYSxhQUFhO0lBV3hCLFlBQ2tCLE1BQWtCLEVBQ2xCLElBQXlCO1FBRHpCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBcUI7SUFDeEMsQ0FBQztJQWJHLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBNEI7UUFDakQsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVoRCxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN2RCxXQUFXLEdBQUcsWUFBWSxXQUFXLEdBQUcsQ0FBQztTQUMxQztRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFPTSxRQUFRO1FBQ2IsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLElBQUk7O1FBQ2IsT0FBTyxJQUFJLHdCQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sUUFBRSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBVyxRQUFROztRQUNqQixPQUFPLENBQUMsUUFBQyxJQUFJLENBQUMsSUFBSSwwQ0FBRSxRQUFRLENBQUEsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUEzQkQsc0NBMkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMganNpaSBmcm9tICdAanNpaS9zcGVjJztcblxuaW1wb3J0IHsgVHlwZVJlZmVyZW5jZSB9IGZyb20gJy4vdHlwZS1yZWYnO1xuaW1wb3J0IHsgVHlwZVN5c3RlbSB9IGZyb20gJy4vdHlwZS1zeXN0ZW0nO1xuXG5leHBvcnQgY2xhc3MgT3B0aW9uYWxWYWx1ZSB7XG4gIHB1YmxpYyBzdGF0aWMgZGVzY3JpYmUob3B0aW9uYWxWYWx1ZTogT3B0aW9uYWxWYWx1ZSk6IHN0cmluZyB7XG4gICAgbGV0IGRlc2NyaXB0aW9uID0gb3B0aW9uYWxWYWx1ZS50eXBlLnRvU3RyaW5nKCk7XG5cbiAgICBpZiAob3B0aW9uYWxWYWx1ZS5vcHRpb25hbCAmJiAhb3B0aW9uYWxWYWx1ZS50eXBlLmlzQW55KSB7XG4gICAgICBkZXNjcmlwdGlvbiA9IGBPcHRpb25hbDwke2Rlc2NyaXB0aW9ufT5gO1xuICAgIH1cblxuICAgIHJldHVybiBkZXNjcmlwdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3lzdGVtOiBUeXBlU3lzdGVtLFxuICAgIHB1YmxpYyByZWFkb25seSBzcGVjPzoganNpaS5PcHRpb25hbFZhbHVlLFxuICApIHt9XG5cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE9wdGlvbmFsVmFsdWUuZGVzY3JpYmUodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHR5cGUoKTogVHlwZVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIG5ldyBUeXBlUmVmZXJlbmNlKHRoaXMuc3lzdGVtLCB0aGlzLnNwZWM/LnR5cGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBvcHRpb25hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnNwZWM/Lm9wdGlvbmFsO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { Type } from './type';
2
+ export interface Overridable {
3
+ /**
4
+ * The name of the parent type (class or interface) that this entity overrides or implements. If undefined, then
5
+ * this entity is the first in it's hierarchy to declare this entity.
6
+ *
7
+ * @default undefined
8
+ */
9
+ overrides?: Type;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvdmVycmlkYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJy4vdHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcnJpZGFibGUge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhcmVudCB0eXBlIChjbGFzcyBvciBpbnRlcmZhY2UpIHRoYXQgdGhpcyBlbnRpdHkgb3ZlcnJpZGVzIG9yIGltcGxlbWVudHMuIElmIHVuZGVmaW5lZCwgdGhlblxuICAgKiB0aGlzIGVudGl0eSBpcyB0aGUgZmlyc3QgaW4gaXQncyBoaWVyYXJjaHkgdG8gZGVjbGFyZSB0aGlzIGVudGl0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBvdmVycmlkZXM/OiBUeXBlO1xufVxuIl19
@@ -0,0 +1,22 @@
1
+ import * as jsii from '@jsii/spec';
2
+ import { Callable } from './callable';
3
+ import { Docs, Documentable } from './docs';
4
+ import { OptionalValue } from './optional-value';
5
+ import { Type } from './type';
6
+ import { TypeSystem } from './type-system';
7
+ export declare class Parameter extends OptionalValue implements Documentable {
8
+ readonly parentType: Type;
9
+ readonly method: Callable;
10
+ readonly spec: jsii.Parameter;
11
+ constructor(system: TypeSystem, parentType: Type, method: Callable, spec: jsii.Parameter);
12
+ /**
13
+ * The name of the parameter.
14
+ */
15
+ get name(): string;
16
+ /**
17
+ * Whether this argument is the "rest" of a variadic signature.
18
+ * The ``#type`` is that of every individual argument of the variadic list.
19
+ */
20
+ get variadic(): boolean;
21
+ get docs(): Docs;
22
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Parameter = void 0;
4
+ const docs_1 = require("./docs");
5
+ const optional_value_1 = require("./optional-value");
6
+ class Parameter extends optional_value_1.OptionalValue {
7
+ constructor(system, parentType, method, spec) {
8
+ super(system, spec);
9
+ this.parentType = parentType;
10
+ this.method = method;
11
+ this.spec = spec;
12
+ }
13
+ /**
14
+ * The name of the parameter.
15
+ */
16
+ get name() {
17
+ return this.spec.name;
18
+ }
19
+ /**
20
+ * Whether this argument is the "rest" of a variadic signature.
21
+ * The ``#type`` is that of every individual argument of the variadic list.
22
+ */
23
+ get variadic() {
24
+ return !!this.spec.variadic;
25
+ }
26
+ get docs() {
27
+ var _a;
28
+ return new docs_1.Docs(this.system, this, (_a = this.spec.docs) !== null && _a !== void 0 ? _a : {});
29
+ }
30
+ }
31
+ exports.Parameter = Parameter;
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGFyYW1ldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLGlDQUE0QztBQUM1QyxxREFBaUQ7QUFJakQsTUFBYSxTQUFVLFNBQVEsOEJBQWE7SUFDMUMsWUFDRSxNQUFrQixFQUNGLFVBQWdCLEVBQ2hCLE1BQWdCLEVBQ2hCLElBQW9CO1FBRXBDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFKSixlQUFVLEdBQVYsVUFBVSxDQUFNO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7SUFHdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLElBQUk7O1FBQ2IsT0FBTyxJQUFJLFdBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksUUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNGO0FBNUJELDhCQTRCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGpzaWkgZnJvbSAnQGpzaWkvc3BlYyc7XG5cbmltcG9ydCB7IENhbGxhYmxlIH0gZnJvbSAnLi9jYWxsYWJsZSc7XG5pbXBvcnQgeyBEb2NzLCBEb2N1bWVudGFibGUgfSBmcm9tICcuL2RvY3MnO1xuaW1wb3J0IHsgT3B0aW9uYWxWYWx1ZSB9IGZyb20gJy4vb3B0aW9uYWwtdmFsdWUnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJy4vdHlwZSc7XG5pbXBvcnQgeyBUeXBlU3lzdGVtIH0gZnJvbSAnLi90eXBlLXN5c3RlbSc7XG5cbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXIgZXh0ZW5kcyBPcHRpb25hbFZhbHVlIGltcGxlbWVudHMgRG9jdW1lbnRhYmxlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHN5c3RlbTogVHlwZVN5c3RlbSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFyZW50VHlwZTogVHlwZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbWV0aG9kOiBDYWxsYWJsZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3BlYzoganNpaS5QYXJhbWV0ZXIsXG4gICkge1xuICAgIHN1cGVyKHN5c3RlbSwgc3BlYyk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlci5cbiAgICovXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNwZWMubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgYXJndW1lbnQgaXMgdGhlIFwicmVzdFwiIG9mIGEgdmFyaWFkaWMgc2lnbmF0dXJlLlxuICAgKiBUaGUgYGAjdHlwZWBgIGlzIHRoYXQgb2YgZXZlcnkgaW5kaXZpZHVhbCBhcmd1bWVudCBvZiB0aGUgdmFyaWFkaWMgbGlzdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFyaWFkaWMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zcGVjLnZhcmlhZGljO1xuICB9XG5cbiAgcHVibGljIGdldCBkb2NzKCk6IERvY3Mge1xuICAgIHJldHVybiBuZXcgRG9jcyh0aGlzLnN5c3RlbSwgdGhpcywgdGhpcy5zcGVjLmRvY3MgPz8ge30pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,54 @@
1
+ import * as jsii from '@jsii/spec';
2
+ import { Assembly } from './assembly';
3
+ import { Docs, Documentable } from './docs';
4
+ import { OptionalValue } from './optional-value';
5
+ import { Overridable } from './overridable';
6
+ import { SourceLocatable, SourceLocation } from './source';
7
+ import { Type } from './type';
8
+ import { MemberKind, TypeMember } from './type-member';
9
+ import { TypeSystem } from './type-system';
10
+ export declare class Property extends OptionalValue implements Documentable, Overridable, TypeMember, SourceLocatable {
11
+ readonly assembly: Assembly;
12
+ readonly parentType: Type;
13
+ readonly definingType: Type;
14
+ readonly spec: jsii.Property;
15
+ readonly kind = MemberKind.Property;
16
+ constructor(system: TypeSystem, assembly: Assembly, parentType: Type, definingType: Type, spec: jsii.Property);
17
+ toString(): string;
18
+ /**
19
+ * The name of the property.
20
+ */
21
+ get name(): string;
22
+ /**
23
+ * Indicates if this property only has a getter (immutable).
24
+ */
25
+ get immutable(): boolean;
26
+ /**
27
+ * Indicates if this property is protected (otherwise it is public)
28
+ */
29
+ get protected(): boolean;
30
+ /**
31
+ * Indicates if this property is abstract
32
+ */
33
+ get abstract(): boolean;
34
+ /**
35
+ * Indicates if this is a static property.
36
+ */
37
+ get static(): boolean;
38
+ /**
39
+ * A hint that indicates that this static, immutable property is initialized
40
+ * during startup. This allows emitting "const" idioms in different target languages.
41
+ * Implies `static` and `immutable`.
42
+ */
43
+ get const(): boolean;
44
+ get overrides(): Type | undefined;
45
+ get docs(): Docs;
46
+ /**
47
+ * Return the location in the module
48
+ */
49
+ get locationInModule(): SourceLocation | undefined;
50
+ /**
51
+ * Return the location in the repository
52
+ */
53
+ get locationInRepository(): SourceLocation | undefined;
54
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Property = void 0;
4
+ const docs_1 = require("./docs");
5
+ const optional_value_1 = require("./optional-value");
6
+ const source_1 = require("./source");
7
+ const type_member_1 = require("./type-member");
8
+ class Property extends optional_value_1.OptionalValue {
9
+ constructor(system, assembly, parentType, definingType, spec) {
10
+ super(system, spec);
11
+ this.assembly = assembly;
12
+ this.parentType = parentType;
13
+ this.definingType = definingType;
14
+ this.spec = spec;
15
+ this.kind = type_member_1.MemberKind.Property;
16
+ }
17
+ toString() {
18
+ return `property:${this.parentType.fqn}.${this.name}`;
19
+ }
20
+ /**
21
+ * The name of the property.
22
+ */
23
+ get name() {
24
+ return this.spec.name;
25
+ }
26
+ /**
27
+ * Indicates if this property only has a getter (immutable).
28
+ */
29
+ get immutable() {
30
+ return !!this.spec.immutable;
31
+ }
32
+ /**
33
+ * Indicates if this property is protected (otherwise it is public)
34
+ */
35
+ get protected() {
36
+ return !!this.spec.protected;
37
+ }
38
+ /**
39
+ * Indicates if this property is abstract
40
+ */
41
+ get abstract() {
42
+ return !!this.spec.abstract;
43
+ }
44
+ /**
45
+ * Indicates if this is a static property.
46
+ */
47
+ get static() {
48
+ return !!this.spec.static;
49
+ }
50
+ /**
51
+ * A hint that indicates that this static, immutable property is initialized
52
+ * during startup. This allows emitting "const" idioms in different target languages.
53
+ * Implies `static` and `immutable`.
54
+ */
55
+ get const() {
56
+ return !!this.spec.const;
57
+ }
58
+ get overrides() {
59
+ if (!this.spec.overrides) {
60
+ return undefined;
61
+ }
62
+ return this.system.findFqn(this.spec.overrides);
63
+ }
64
+ get docs() {
65
+ var _a;
66
+ return new docs_1.Docs(this.system, this, (_a = this.spec.docs) !== null && _a !== void 0 ? _a : {}, this.parentType.docs);
67
+ }
68
+ /**
69
+ * Return the location in the module
70
+ */
71
+ get locationInModule() {
72
+ return this.spec.locationInModule;
73
+ }
74
+ /**
75
+ * Return the location in the repository
76
+ */
77
+ get locationInRepository() {
78
+ return source_1.locationInRepository(this);
79
+ }
80
+ }
81
+ exports.Property = Property;
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxpQ0FBNEM7QUFDNUMscURBQWlEO0FBRWpELHFDQUlrQjtBQUVsQiwrQ0FBdUQ7QUFHdkQsTUFBYSxRQUNYLFNBQVEsOEJBQWE7SUFLckIsWUFDRSxNQUFrQixFQUNGLFFBQWtCLEVBQ2xCLFVBQWdCLEVBQ2hCLFlBQWtCLEVBQ2xCLElBQW1CO1FBRW5DLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFMSixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGVBQVUsR0FBVixVQUFVLENBQU07UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQU07UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBZTtRQVByQixTQUFJLEdBQUcsd0JBQVUsQ0FBQyxRQUFRLENBQUM7SUFVM0MsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLFlBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxNQUFNO1FBQ2YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLEtBQUs7UUFDZCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN4QixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBVyxJQUFJOztRQUNiLE9BQU8sSUFBSSxXQUFJLENBQ2IsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLFFBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLG1DQUFJLEVBQUUsRUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyw2QkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUE5RkQsNEJBOEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMganNpaSBmcm9tICdAanNpaS9zcGVjJztcblxuaW1wb3J0IHsgQXNzZW1ibHkgfSBmcm9tICcuL2Fzc2VtYmx5JztcbmltcG9ydCB7IERvY3MsIERvY3VtZW50YWJsZSB9IGZyb20gJy4vZG9jcyc7XG5pbXBvcnQgeyBPcHRpb25hbFZhbHVlIH0gZnJvbSAnLi9vcHRpb25hbC12YWx1ZSc7XG5pbXBvcnQgeyBPdmVycmlkYWJsZSB9IGZyb20gJy4vb3ZlcnJpZGFibGUnO1xuaW1wb3J0IHtcbiAgbG9jYXRpb25JblJlcG9zaXRvcnksXG4gIFNvdXJjZUxvY2F0YWJsZSxcbiAgU291cmNlTG9jYXRpb24sXG59IGZyb20gJy4vc291cmNlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuL3R5cGUnO1xuaW1wb3J0IHsgTWVtYmVyS2luZCwgVHlwZU1lbWJlciB9IGZyb20gJy4vdHlwZS1tZW1iZXInO1xuaW1wb3J0IHsgVHlwZVN5c3RlbSB9IGZyb20gJy4vdHlwZS1zeXN0ZW0nO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlcbiAgZXh0ZW5kcyBPcHRpb25hbFZhbHVlXG4gIGltcGxlbWVudHMgRG9jdW1lbnRhYmxlLCBPdmVycmlkYWJsZSwgVHlwZU1lbWJlciwgU291cmNlTG9jYXRhYmxlXG57XG4gIHB1YmxpYyByZWFkb25seSBraW5kID0gTWVtYmVyS2luZC5Qcm9wZXJ0eTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgc3lzdGVtOiBUeXBlU3lzdGVtLFxuICAgIHB1YmxpYyByZWFkb25seSBhc3NlbWJseTogQXNzZW1ibHksXG4gICAgcHVibGljIHJlYWRvbmx5IHBhcmVudFR5cGU6IFR5cGUsXG4gICAgcHVibGljIHJlYWRvbmx5IGRlZmluaW5nVHlwZTogVHlwZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3BlYzoganNpaS5Qcm9wZXJ0eSxcbiAgKSB7XG4gICAgc3VwZXIoc3lzdGVtLCBzcGVjKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gYHByb3BlcnR5OiR7dGhpcy5wYXJlbnRUeXBlLmZxbn0uJHt0aGlzLm5hbWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zcGVjLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoaXMgcHJvcGVydHkgb25seSBoYXMgYSBnZXR0ZXIgKGltbXV0YWJsZSkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGltbXV0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnNwZWMuaW1tdXRhYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGlzIHByb3BlcnR5IGlzIHByb3RlY3RlZCAob3RoZXJ3aXNlIGl0IGlzIHB1YmxpYylcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvdGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc3BlYy5wcm90ZWN0ZWQ7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoaXMgcHJvcGVydHkgaXMgYWJzdHJhY3RcbiAgICovXG4gIHB1YmxpYyBnZXQgYWJzdHJhY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zcGVjLmFic3RyYWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGlzIGlzIGEgc3RhdGljIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIGdldCBzdGF0aWMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zcGVjLnN0YXRpYztcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGhpbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCB0aGlzIHN0YXRpYywgaW1tdXRhYmxlIHByb3BlcnR5IGlzIGluaXRpYWxpemVkXG4gICAqIGR1cmluZyBzdGFydHVwLiBUaGlzIGFsbG93cyBlbWl0dGluZyBcImNvbnN0XCIgaWRpb21zIGluIGRpZmZlcmVudCB0YXJnZXQgbGFuZ3VhZ2VzLlxuICAgKiBJbXBsaWVzIGBzdGF0aWNgIGFuZCBgaW1tdXRhYmxlYC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29uc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zcGVjLmNvbnN0O1xuICB9XG5cbiAgcHVibGljIGdldCBvdmVycmlkZXMoKTogVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLnNwZWMub3ZlcnJpZGVzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN5c3RlbS5maW5kRnFuKHRoaXMuc3BlYy5vdmVycmlkZXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBkb2NzKCk6IERvY3Mge1xuICAgIHJldHVybiBuZXcgRG9jcyhcbiAgICAgIHRoaXMuc3lzdGVtLFxuICAgICAgdGhpcyxcbiAgICAgIHRoaXMuc3BlYy5kb2NzID8/IHt9LFxuICAgICAgdGhpcy5wYXJlbnRUeXBlLmRvY3MsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGxvY2F0aW9uIGluIHRoZSBtb2R1bGVcbiAgICovXG4gIHB1YmxpYyBnZXQgbG9jYXRpb25Jbk1vZHVsZSgpOiBTb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3BlYy5sb2NhdGlvbkluTW9kdWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbG9jYXRpb24gaW4gdGhlIHJlcG9zaXRvcnlcbiAgICovXG4gIHB1YmxpYyBnZXQgbG9jYXRpb25JblJlcG9zaXRvcnkoKTogU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBsb2NhdGlvbkluUmVwb3NpdG9yeSh0aGlzKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,57 @@
1
+ import * as jsii from '@jsii/spec';
2
+ import { Assembly } from './assembly';
3
+ import { InterfaceType } from './interface';
4
+ import { Method } from './method';
5
+ import { Property } from './property';
6
+ import { Type } from './type';
7
+ import { TypeMember } from './type-member';
8
+ import { TypeSystem } from './type-system';
9
+ export declare abstract class ReferenceType extends Type {
10
+ system: TypeSystem;
11
+ assembly: Assembly;
12
+ constructor(system: TypeSystem, assembly: Assembly, spec: jsii.Type);
13
+ /**
14
+ * All the base interfaces that this interface extends.
15
+ */
16
+ get interfaces(): InterfaceType[];
17
+ /**
18
+ * List of methods (without inherited methods).
19
+ */
20
+ get ownMethods(): Method[];
21
+ /**
22
+ * List of own and inherited methods
23
+ */
24
+ get allMethods(): Method[];
25
+ /**
26
+ * List of properties.
27
+ */
28
+ get ownProperties(): Property[];
29
+ /**
30
+ * List of own and inherited methods
31
+ */
32
+ get allProperties(): Property[];
33
+ get ownMembers(): TypeMember[];
34
+ get allMembers(): TypeMember[];
35
+ getMembers(inherited?: boolean): {
36
+ [name: string]: TypeMember;
37
+ };
38
+ /**
39
+ * Lists all interfaces this interface extends.
40
+ * @param inherited include all interfaces implemented by all super interfaces (default: false)
41
+ */
42
+ abstract getInterfaces(inherited?: boolean): InterfaceType[];
43
+ /**
44
+ * Lists all properties in this class.
45
+ * @param inherited include all properties inherited from base classes (default: false)
46
+ */
47
+ abstract getProperties(inherited?: boolean): {
48
+ [name: string]: Property;
49
+ };
50
+ /**
51
+ * List all methods in this class.
52
+ * @param inherited include all methods inherited from base classes (default: false)
53
+ */
54
+ abstract getMethods(inherited?: boolean): {
55
+ [name: string]: Method;
56
+ };
57
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReferenceType = void 0;
4
+ const type_1 = require("./type");
5
+ class ReferenceType extends type_1.Type {
6
+ constructor(system, assembly, spec) {
7
+ super(system, assembly, spec);
8
+ this.system = system;
9
+ this.assembly = assembly;
10
+ }
11
+ /**
12
+ * All the base interfaces that this interface extends.
13
+ */
14
+ get interfaces() {
15
+ return this.getInterfaces();
16
+ }
17
+ /**
18
+ * List of methods (without inherited methods).
19
+ */
20
+ get ownMethods() {
21
+ return Object.values(this.getMethods(false));
22
+ }
23
+ /**
24
+ * List of own and inherited methods
25
+ */
26
+ get allMethods() {
27
+ return Object.values(this.getMethods(true));
28
+ }
29
+ /**
30
+ * List of properties.
31
+ */
32
+ get ownProperties() {
33
+ return Object.values(this.getProperties());
34
+ }
35
+ /**
36
+ * List of own and inherited methods
37
+ */
38
+ get allProperties() {
39
+ return Object.values(this.getProperties(true));
40
+ }
41
+ get ownMembers() {
42
+ return Object.values(this.getMembers(false));
43
+ }
44
+ get allMembers() {
45
+ return Object.values(this.getMembers(true));
46
+ }
47
+ getMembers(inherited = false) {
48
+ return Object.assign(this.getMethods(inherited), this.getProperties(inherited));
49
+ }
50
+ }
51
+ exports.ReferenceType = ReferenceType;
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWZlcmVuY2UtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxpQ0FBOEI7QUFJOUIsTUFBc0IsYUFBYyxTQUFRLFdBQUk7SUFDOUMsWUFDUyxNQUFrQixFQUNsQixRQUFrQixFQUN6QixJQUFlO1FBRWYsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFKdkIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBSTNCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsYUFBYTtRQUN0QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxTQUFTLEdBQUcsS0FBSztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQzlCLENBQUM7SUFDSixDQUFDO0NBcUJGO0FBOUVELHNDQThFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGpzaWkgZnJvbSAnQGpzaWkvc3BlYyc7XG5cbmltcG9ydCB7IEFzc2VtYmx5IH0gZnJvbSAnLi9hc3NlbWJseSc7XG5pbXBvcnQgeyBJbnRlcmZhY2VUeXBlIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSAnLi9tZXRob2QnO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuL3Byb3BlcnR5JztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuL3R5cGUnO1xuaW1wb3J0IHsgVHlwZU1lbWJlciB9IGZyb20gJy4vdHlwZS1tZW1iZXInO1xuaW1wb3J0IHsgVHlwZVN5c3RlbSB9IGZyb20gJy4vdHlwZS1zeXN0ZW0nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVmZXJlbmNlVHlwZSBleHRlbmRzIFR5cGUge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN5c3RlbTogVHlwZVN5c3RlbSxcbiAgICBwdWJsaWMgYXNzZW1ibHk6IEFzc2VtYmx5LFxuICAgIHNwZWM6IGpzaWkuVHlwZSxcbiAgKSB7XG4gICAgc3VwZXIoc3lzdGVtLCBhc3NlbWJseSwgc3BlYyk7XG4gIH1cblxuICAvKipcbiAgICogQWxsIHRoZSBiYXNlIGludGVyZmFjZXMgdGhhdCB0aGlzIGludGVyZmFjZSBleHRlbmRzLlxuICAgKi9cbiAgcHVibGljIGdldCBpbnRlcmZhY2VzKCk6IEludGVyZmFjZVR5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW50ZXJmYWNlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgbWV0aG9kcyAod2l0aG91dCBpbmhlcml0ZWQgbWV0aG9kcykuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG93bk1ldGhvZHMoKTogTWV0aG9kW10ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuZ2V0TWV0aG9kcyhmYWxzZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3Qgb2Ygb3duIGFuZCBpbmhlcml0ZWQgbWV0aG9kc1xuICAgKi9cbiAgcHVibGljIGdldCBhbGxNZXRob2RzKCk6IE1ldGhvZFtdIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmdldE1ldGhvZHModHJ1ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgcHJvcGVydGllcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgb3duUHJvcGVydGllcygpOiBQcm9wZXJ0eVtdIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmdldFByb3BlcnRpZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBvZiBvd24gYW5kIGluaGVyaXRlZCBtZXRob2RzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFsbFByb3BlcnRpZXMoKTogUHJvcGVydHlbXSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5nZXRQcm9wZXJ0aWVzKHRydWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3duTWVtYmVycygpOiBUeXBlTWVtYmVyW10ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuZ2V0TWVtYmVycyhmYWxzZSkpO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGxNZW1iZXJzKCk6IFR5cGVNZW1iZXJbXSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5nZXRNZW1iZXJzKHRydWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZW1iZXJzKGluaGVyaXRlZCA9IGZhbHNlKTogeyBbbmFtZTogc3RyaW5nXTogVHlwZU1lbWJlciB9IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHRoaXMuZ2V0TWV0aG9kcyhpbmhlcml0ZWQpLFxuICAgICAgdGhpcy5nZXRQcm9wZXJ0aWVzKGluaGVyaXRlZCksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0cyBhbGwgaW50ZXJmYWNlcyB0aGlzIGludGVyZmFjZSBleHRlbmRzLlxuICAgKiBAcGFyYW0gaW5oZXJpdGVkIGluY2x1ZGUgYWxsIGludGVyZmFjZXMgaW1wbGVtZW50ZWQgYnkgYWxsIHN1cGVyIGludGVyZmFjZXMgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEludGVyZmFjZXMoaW5oZXJpdGVkPzogYm9vbGVhbik6IEludGVyZmFjZVR5cGVbXTtcblxuICAvKipcbiAgICogTGlzdHMgYWxsIHByb3BlcnRpZXMgaW4gdGhpcyBjbGFzcy5cbiAgICogQHBhcmFtIGluaGVyaXRlZCBpbmNsdWRlIGFsbCBwcm9wZXJ0aWVzIGluaGVyaXRlZCBmcm9tIGJhc2UgY2xhc3NlcyAoZGVmYXVsdDogZmFsc2UpXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0UHJvcGVydGllcyhpbmhlcml0ZWQ/OiBib29sZWFuKToge1xuICAgIFtuYW1lOiBzdHJpbmddOiBQcm9wZXJ0eTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBhbGwgbWV0aG9kcyBpbiB0aGlzIGNsYXNzLlxuICAgKiBAcGFyYW0gaW5oZXJpdGVkIGluY2x1ZGUgYWxsIG1ldGhvZHMgaW5oZXJpdGVkIGZyb20gYmFzZSBjbGFzc2VzIChkZWZhdWx0OiBmYWxzZSlcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNZXRob2RzKGluaGVyaXRlZD86IGJvb2xlYW4pOiB7IFtuYW1lOiBzdHJpbmddOiBNZXRob2QgfTtcbn1cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { Assembly } from './assembly';
2
+ /**
3
+ * Describes a source location in a file
4
+ */
5
+ export interface SourceLocation {
6
+ /**
7
+ * The file name
8
+ */
9
+ filename: string;
10
+ /**
11
+ * The 1-based line inside the file
12
+ */
13
+ line: number;
14
+ }
15
+ /**
16
+ * Interface for API items that can be queried for a source location
17
+ */
18
+ export interface SourceLocatable {
19
+ /**
20
+ * The assembly the API item is defined in
21
+ */
22
+ readonly assembly: Assembly;
23
+ /**
24
+ * Source location relative to the assembly root
25
+ */
26
+ readonly locationInModule?: SourceLocation;
27
+ }
28
+ /**
29
+ * Return the repository location for the given API item
30
+ */
31
+ export declare function locationInRepository(item: SourceLocatable): SourceLocation | undefined;
32
+ /**
33
+ * Return a URL for this item into the source repository, if available
34
+ *
35
+ * (Currently only supports GitHub URLs)
36
+ */
37
+ export declare function repositoryUrl(item: SourceLocatable, ref?: string): string | undefined;
package/lib/source.js ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.repositoryUrl = exports.locationInRepository = void 0;
4
+ /**
5
+ * Return the repository location for the given API item
6
+ */
7
+ function locationInRepository(item) {
8
+ const moduleLoc = item.locationInModule;
9
+ if (!moduleLoc) {
10
+ return undefined;
11
+ }
12
+ const moduleDir = item.assembly.repository.directory;
13
+ if (!moduleDir) {
14
+ return moduleLoc;
15
+ }
16
+ return {
17
+ filename: `${moduleDir}/${moduleLoc.filename}`,
18
+ line: moduleLoc.line,
19
+ };
20
+ }
21
+ exports.locationInRepository = locationInRepository;
22
+ /**
23
+ * Return a URL for this item into the source repository, if available
24
+ *
25
+ * (Currently only supports GitHub URLs)
26
+ */
27
+ function repositoryUrl(item, ref = 'master') {
28
+ const loc = locationInRepository(item);
29
+ if (!loc) {
30
+ return undefined;
31
+ }
32
+ const repo = item.assembly.repository;
33
+ if (!repo.url.startsWith('https://') ||
34
+ !repo.url.includes('github.com') ||
35
+ !repo.url.endsWith('.git')) {
36
+ return undefined;
37
+ }
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);
40
+ return `${prefix}/blob/${ref}/${loc.filename}#L${loc.line}`;
41
+ }
42
+ exports.repositoryUrl = repositoryUrl;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdDQTs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxJQUFxQjtJQUVyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDeEMsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQ3JELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE9BQU87UUFDTCxRQUFRLEVBQUUsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtRQUM5QyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7S0FDckIsQ0FBQztBQUNKLENBQUM7QUFqQkQsb0RBaUJDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FDM0IsSUFBcUIsRUFDckIsR0FBRyxHQUFHLFFBQVE7SUFFZCxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUN0QyxJQUNFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQ2hDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ2hDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzFCO1FBQ0EsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxpSEFBaUg7SUFFakgsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXZELE9BQU8sR0FBRyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzlELENBQUM7QUF2QkQsc0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZW1ibHkgfSBmcm9tICcuL2Fzc2VtYmx5JztcblxuLyoqXG4gKiBEZXNjcmliZXMgYSBzb3VyY2UgbG9jYXRpb24gaW4gYSBmaWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTG9jYXRpb24ge1xuICAvKipcbiAgICogVGhlIGZpbGUgbmFtZVxuICAgKi9cbiAgZmlsZW5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIDEtYmFzZWQgbGluZSBpbnNpZGUgdGhlIGZpbGVcbiAgICovXG4gIGxpbmU6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIEFQSSBpdGVtcyB0aGF0IGNhbiBiZSBxdWVyaWVkIGZvciBhIHNvdXJjZSBsb2NhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZUxvY2F0YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgYXNzZW1ibHkgdGhlIEFQSSBpdGVtIGlzIGRlZmluZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2VtYmx5OiBBc3NlbWJseTtcblxuICAvKipcbiAgICogU291cmNlIGxvY2F0aW9uIHJlbGF0aXZlIHRvIHRoZSBhc3NlbWJseSByb290XG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbkluTW9kdWxlPzogU291cmNlTG9jYXRpb247XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSByZXBvc2l0b3J5IGxvY2F0aW9uIGZvciB0aGUgZ2l2ZW4gQVBJIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2F0aW9uSW5SZXBvc2l0b3J5KFxuICBpdGVtOiBTb3VyY2VMb2NhdGFibGUsXG4pOiBTb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG1vZHVsZUxvYyA9IGl0ZW0ubG9jYXRpb25Jbk1vZHVsZTtcbiAgaWYgKCFtb2R1bGVMb2MpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgbW9kdWxlRGlyID0gaXRlbS5hc3NlbWJseS5yZXBvc2l0b3J5LmRpcmVjdG9yeTtcbiAgaWYgKCFtb2R1bGVEaXIpIHtcbiAgICByZXR1cm4gbW9kdWxlTG9jO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmaWxlbmFtZTogYCR7bW9kdWxlRGlyfS8ke21vZHVsZUxvYy5maWxlbmFtZX1gLFxuICAgIGxpbmU6IG1vZHVsZUxvYy5saW5lLFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybiBhIFVSTCBmb3IgdGhpcyBpdGVtIGludG8gdGhlIHNvdXJjZSByZXBvc2l0b3J5LCBpZiBhdmFpbGFibGVcbiAqXG4gKiAoQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgR2l0SHViIFVSTHMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBvc2l0b3J5VXJsKFxuICBpdGVtOiBTb3VyY2VMb2NhdGFibGUsXG4gIHJlZiA9ICdtYXN0ZXInLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbG9jID0gbG9jYXRpb25JblJlcG9zaXRvcnkoaXRlbSk7XG4gIGlmICghbG9jKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHJlcG8gPSBpdGVtLmFzc2VtYmx5LnJlcG9zaXRvcnk7XG4gIGlmIChcbiAgICAhcmVwby51cmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fFxuICAgICFyZXBvLnVybC5pbmNsdWRlcygnZ2l0aHViLmNvbScpIHx8XG4gICAgIXJlcG8udXJsLmVuZHNXaXRoKCcuZ2l0JylcbiAgKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFR1cm4gaHR0cHM6Ly9naXRodWIuY29tL2F3c2xhYnMvYXdzLWNkay5naXQgLT4gIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3NsYWJzL2F3cy1jZGsvYmxvYi9SRUYvZmlsZW5hbWUjTDxudW1iZXI+XG5cbiAgY29uc3QgcHJlZml4ID0gcmVwby51cmwuc3Vic3RyKDAsIHJlcG8udXJsLmxlbmd0aCAtIDQpO1xuXG4gIHJldHVybiBgJHtwcmVmaXh9L2Jsb2IvJHtyZWZ9LyR7bG9jLmZpbGVuYW1lfSNMJHtsb2MubGluZX1gO1xufVxuIl19
@@ -0,0 +1,24 @@
1
+ import * as jsii from '@jsii/spec';
2
+ import { ModuleLike } from './module-like';
3
+ import { Type } from './type';
4
+ import { TypeSystem } from './type-system';
5
+ export declare class Submodule extends ModuleLike {
6
+ readonly spec: jsii.Submodule;
7
+ readonly fqn: string;
8
+ protected readonly submoduleMap: Readonly<Record<string, Submodule>>;
9
+ protected readonly typeMap: Readonly<Record<string, Type>>;
10
+ /**
11
+ * The simple name of the submodule (the last segment of the `fullName`).
12
+ */
13
+ readonly name: string;
14
+ constructor(system: TypeSystem, spec: jsii.Submodule, fqn: string, submoduleMap: Readonly<Record<string, Submodule>>, typeMap: Readonly<Record<string, Type>>);
15
+ /**
16
+ * A map of target name to configuration, which is used when generating packages for
17
+ * various languages.
18
+ */
19
+ get targets(): jsii.AssemblyTargets | undefined;
20
+ /**
21
+ * The top-level readme document for this assembly (if any).
22
+ */
23
+ get readme(): jsii.ReadMe | undefined;
24
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Submodule = void 0;
4
+ const module_like_1 = require("./module-like");
5
+ class Submodule extends module_like_1.ModuleLike {
6
+ constructor(system, spec, fqn, submoduleMap, typeMap) {
7
+ super(system);
8
+ this.spec = spec;
9
+ this.fqn = fqn;
10
+ this.submoduleMap = submoduleMap;
11
+ this.typeMap = typeMap;
12
+ this.name = fqn.split('.').pop();
13
+ }
14
+ /**
15
+ * A map of target name to configuration, which is used when generating packages for
16
+ * various languages.
17
+ */
18
+ get targets() {
19
+ return this.spec.targets;
20
+ }
21
+ /**
22
+ * The top-level readme document for this assembly (if any).
23
+ */
24
+ get readme() {
25
+ return this.spec.readme;
26
+ }
27
+ }
28
+ exports.Submodule = Submodule;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3VibW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLCtDQUEyQztBQUkzQyxNQUFhLFNBQVUsU0FBUSx3QkFBVTtJQU12QyxZQUNFLE1BQWtCLEVBQ0YsSUFBb0IsRUFDcEIsR0FBVyxFQUNSLFlBQWlELEVBQ2pELE9BQXVDO1FBRTFELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUxFLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDUixpQkFBWSxHQUFaLFlBQVksQ0FBcUM7UUFDakQsWUFBTyxHQUFQLE9BQU8sQ0FBZ0M7UUFJMUQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQWhDRCw4QkFnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBqc2lpIGZyb20gJ0Bqc2lpL3NwZWMnO1xuXG5pbXBvcnQgeyBNb2R1bGVMaWtlIH0gZnJvbSAnLi9tb2R1bGUtbGlrZSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnLi90eXBlJztcbmltcG9ydCB7IFR5cGVTeXN0ZW0gfSBmcm9tICcuL3R5cGUtc3lzdGVtJztcblxuZXhwb3J0IGNsYXNzIFN1Ym1vZHVsZSBleHRlbmRzIE1vZHVsZUxpa2Uge1xuICAvKipcbiAgICogVGhlIHNpbXBsZSBuYW1lIG9mIHRoZSBzdWJtb2R1bGUgKHRoZSBsYXN0IHNlZ21lbnQgb2YgdGhlIGBmdWxsTmFtZWApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgc3lzdGVtOiBUeXBlU3lzdGVtLFxuICAgIHB1YmxpYyByZWFkb25seSBzcGVjOiBqc2lpLlN1Ym1vZHVsZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1Ym1vZHVsZU1hcDogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgU3VibW9kdWxlPj4sXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHR5cGVNYXA6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIFR5cGU+PixcbiAgKSB7XG4gICAgc3VwZXIoc3lzdGVtKTtcblxuICAgIHRoaXMubmFtZSA9IGZxbi5zcGxpdCgnLicpLnBvcCgpITtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiB0YXJnZXQgbmFtZSB0byBjb25maWd1cmF0aW9uLCB3aGljaCBpcyB1c2VkIHdoZW4gZ2VuZXJhdGluZyBwYWNrYWdlcyBmb3JcbiAgICogdmFyaW91cyBsYW5ndWFnZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRhcmdldHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3BlYy50YXJnZXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0b3AtbGV2ZWwgcmVhZG1lIGRvY3VtZW50IGZvciB0aGlzIGFzc2VtYmx5IChpZiBhbnkpLlxuICAgKi9cbiAgcHVibGljIGdldCByZWFkbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3BlYy5yZWFkbWU7XG4gIH1cbn1cbiJdfQ==
package/lib/tree.d.ts ADDED
@@ -0,0 +1,51 @@
1
+ import { AsciiTree } from 'oo-ascii-tree';
2
+ import { TypeSystem } from './type-system';
3
+ export interface TypeSystemTreeOptions {
4
+ /**
5
+ * Show all entity types (supersedes other options)
6
+ * @default false
7
+ */
8
+ showAll?: boolean;
9
+ /**
10
+ * Show type members (methods, properties)
11
+ * @default false
12
+ */
13
+ members?: boolean;
14
+ /**
15
+ * Show dependencies
16
+ * @default false
17
+ */
18
+ dependencies?: boolean;
19
+ /**
20
+ * Show inheritance information (base classes, interfaces)
21
+ * @default false
22
+ */
23
+ inheritance?: boolean;
24
+ /**
25
+ * Show types
26
+ * @default false
27
+ */
28
+ types?: boolean;
29
+ /**
30
+ * Show method signatures.
31
+ * @default false
32
+ */
33
+ signatures?: boolean;
34
+ /**
35
+ * Output with ANSI colors
36
+ * @default true
37
+ */
38
+ colors?: boolean;
39
+ /**
40
+ * Show stabilities
41
+ *
42
+ * @default false
43
+ */
44
+ stabilities?: boolean;
45
+ }
46
+ /**
47
+ * Visualizes a `TypeSystem` as an ASCII tree.
48
+ */
49
+ export declare class TypeSystemTree extends AsciiTree {
50
+ constructor(typesys: TypeSystem, options?: TypeSystemTreeOptions);
51
+ }