From e232cb5c9feda67dfd809b036662112eb1fbf499 Mon Sep 17 00:00:00 2001 From: Elad Ben-Israel Date: Tue, 19 Mar 2019 15:03:33 +0200 Subject: [PATCH] feat: internal accessibility (#390) Respect the `@internal` jsdoc tag on types and members. Any type of member marked internal will not be exposed in the API of the module and in .d.ts. files (through `--strip-internal`). Members (properties/methods) that are marked as `@internal` must also have an underscore prefix (i.e. `_myMethod`) and vice versa in order to ensure that implementers or subclasses won't modify accessibility. If a class implements (or an interface extends) an internal or private interface, that interface is erased from the implementer's API. So it is possible to use internal interfaces as bases, while still maintaining API integrity (related to #287). Fixes #388 BREAKING CHANGE: member names that begin with underscore now must be marked as "@internal" in their jsdocs, which will cause them to disappear from type declaration files and jsii APIs. --- packages/jsii-calc/lib/compliance.ts | 89 ++++++ packages/jsii-calc/test/assembly.jsii | 136 ++++++++- .../.jsii | 136 ++++++++- .../ExtendsInternalInterface.cs | 14 + .../ExtendsInternalInterfaceProxy.cs | 19 ++ .../ExtendsPrivateInterface.cs | 14 + .../ExtendsPrivateInterfaceProxy.cs | 19 ++ .../IExtendsInternalInterface.cs | 15 + .../IExtendsPrivateInterface.cs | 15 + .../IIInterfaceWithInternal.cs | 11 + .../IInterfaceWithInternalProxy.cs | 18 ++ .../ImplementInternalInterface.cs | 27 ++ .../ImplementsInterfaceWithInternal.cs | 26 ++ ...ImplementsInterfaceWithInternalSubclass.cs | 20 ++ .../ImplementsPrivateInterface.cs | 27 ++ .../CalculatorNamespace/StripInternal.cs | 27 ++ .../jsii-calc-0.7.15.tgz | Bin 72770 -> 116 bytes .../amazon/jsii/tests/calculator/$Module.java | 8 + .../calculator/ExtendsInternalInterface.java | 72 +++++ .../calculator/ExtendsPrivateInterface.java | 72 +++++ .../calculator/IInterfaceWithInternal.java | 20 ++ .../ImplementInternalInterface.java | 21 ++ .../ImplementsInterfaceWithInternal.java | 18 ++ ...plementsInterfaceWithInternalSubclass.java | 13 + .../ImplementsPrivateInterface.java | 21 ++ .../jsii/tests/calculator/StripInternal.java | 21 ++ .../calculator/jsii-calc@0.7.15.jsii.tgz | Bin 72770 -> 116 bytes .../js/jsii-calc@0.7.15.jsii.tgz | Bin 72770 -> 116 bytes .../expected.jsii-calc/sphinx/jsii-calc.rst | 271 ++++++++++++++++++ .../jsii-reflect/test/classes.expected.txt | 5 + .../test/jsii-tree.test.all.expected.txt | 45 +++ .../jsii-tree.test.inheritance.expected.txt | 10 + .../test/jsii-tree.test.members.expected.txt | 28 ++ .../test/jsii-tree.test.types.expected.txt | 8 + packages/jsii/lib/assembler.ts | 142 +++++++-- packages/jsii/lib/compiler.ts | 1 + .../neg.internal-underscore-class.5.ts | 6 + .../neg.internal-underscore-class.6.ts | 5 + .../neg.internal-underscore-class.7.ts | 6 + .../neg.internal-underscore-class.8.ts | 5 + .../neg.internal-underscore-interface.1.ts | 6 + .../neg.internal-underscore-interface.2.ts | 5 + .../neg.internal-underscore-interface.3.ts | 6 + .../neg.internal-underscore-interface.4.ts | 7 + 44 files changed, 1409 insertions(+), 26 deletions(-) create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterfaceProxy.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterfaceProxy.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsInternalInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsPrivateInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IIInterfaceWithInternal.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IInterfaceWithInternalProxy.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementInternalInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternal.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternalSubclass.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsPrivateInterface.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/StripInternal.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsInternalInterface.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsPrivateInterface.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithInternal.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementInternalInterface.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternal.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternalSubclass.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsPrivateInterface.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/StripInternal.java create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-class.5.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-class.6.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-class.7.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-class.8.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-interface.1.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-interface.2.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-interface.3.ts create mode 100644 packages/jsii/test/negatives/neg.internal-underscore-interface.4.ts diff --git a/packages/jsii-calc/lib/compliance.ts b/packages/jsii-calc/lib/compliance.ts index 65aad2efd9..4bac3db39f 100644 --- a/packages/jsii-calc/lib/compliance.ts +++ b/packages/jsii-calc/lib/compliance.ts @@ -1335,3 +1335,92 @@ export class Constructors { return new PrivateClass(); } } + +// internal can be used to represent members that can only be accessed from the current module +export class StripInternal { + public youSeeMe = 'hello'; + + /** + * This is an internal thing + * @internal + */ + public _youDontSeeMeAlthoughIamPublic = 'world' +} + +/** + * @internal + */ +export class InternalClass { + public iAmNotHere = 'yes'; +} + +/** + * @internal + */ +export interface IInternalInterface { + prop: string; +} + +/** + * @internal + */ +export enum InternalEnum { + Member1 = 12, + Member2 = 23 +} + +export interface IInterfaceWithInternal { + visible(): void; + + /** @internal */ + _hidden(): void; +} + +export class ImplementsInterfaceWithInternal implements IInterfaceWithInternal { + visible() { } + + /** @internal */ + _hidden() { } + + /** @internal */ + _alsoHidden() { } + + /** @internal */ + _propertiesToo?: string; +} + +export class ImplementsInterfaceWithInternalSubclass extends ImplementsInterfaceWithInternal { + /** @internal */ + _alsoHidden() { } + + /** + * @internal + */ + public _propertiesToo?: string; +} + +// +// hidden interface erasure +// if a class/interface uses a hidden (private/internal) interface as base, the base will +// be erased from the API +// + +interface IPrivateInterface { + private: string; +} + +export interface ExtendsInternalInterface extends IInternalInterface { + boom: boolean +} + +export class ImplementInternalInterface implements IInternalInterface { + prop = 'implement me' +} + +export class ImplementsPrivateInterface implements IPrivateInterface { + public private = 'i came from private into the light' +} + +export interface ExtendsPrivateInterface extends IPrivateInterface { + moreThings: string[]; +} diff --git a/packages/jsii-calc/test/assembly.jsii b/packages/jsii-calc/test/assembly.jsii index 1911171cc8..f8fb036c02 100644 --- a/packages/jsii-calc/test/assembly.jsii +++ b/packages/jsii-calc/test/assembly.jsii @@ -1478,6 +1478,43 @@ } ] }, + "jsii-calc.ExtendsInternalInterface": { + "assembly": "jsii-calc", + "datatype": true, + "fqn": "jsii-calc.ExtendsInternalInterface", + "kind": "interface", + "name": "ExtendsInternalInterface", + "properties": [ + { + "abstract": true, + "name": "boom", + "type": { + "primitive": "boolean" + } + } + ] + }, + "jsii-calc.ExtendsPrivateInterface": { + "assembly": "jsii-calc", + "datatype": true, + "fqn": "jsii-calc.ExtendsPrivateInterface", + "kind": "interface", + "name": "ExtendsPrivateInterface", + "properties": [ + { + "abstract": true, + "name": "moreThings", + "type": { + "collection": { + "elementtype": { + "primitive": "string" + }, + "kind": "array" + } + } + } + ] + }, "jsii-calc.GiveMeStructs": { "assembly": "jsii-calc", "fqn": "jsii-calc.GiveMeStructs", @@ -1649,6 +1686,18 @@ } ] }, + "jsii-calc.IInterfaceWithInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.IInterfaceWithInternal", + "kind": "interface", + "methods": [ + { + "abstract": true, + "name": "visible" + } + ], + "name": "IInterfaceWithInternal" + }, "jsii-calc.IInterfaceWithMethods": { "assembly": "jsii-calc", "fqn": "jsii-calc.IInterfaceWithMethods", @@ -1776,6 +1825,74 @@ } ] }, + "jsii-calc.ImplementInternalInterface": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementInternalInterface", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementInternalInterface", + "properties": [ + { + "name": "prop", + "type": { + "primitive": "string" + } + } + ] + }, + "jsii-calc.ImplementsInterfaceWithInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementsInterfaceWithInternal", + "initializer": { + "initializer": true + }, + "interfaces": [ + { + "fqn": "jsii-calc.IInterfaceWithInternal" + } + ], + "kind": "class", + "methods": [ + { + "name": "visible", + "overrides": { + "fqn": "jsii-calc.IInterfaceWithInternal" + } + } + ], + "name": "ImplementsInterfaceWithInternal" + }, + "jsii-calc.ImplementsInterfaceWithInternalSubclass": { + "assembly": "jsii-calc", + "base": { + "fqn": "jsii-calc.ImplementsInterfaceWithInternal" + }, + "fqn": "jsii-calc.ImplementsInterfaceWithInternalSubclass", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementsInterfaceWithInternalSubclass" + }, + "jsii-calc.ImplementsPrivateInterface": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementsPrivateInterface", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementsPrivateInterface", + "properties": [ + { + "name": "private", + "type": { + "primitive": "string" + } + } + ] + }, "jsii-calc.ImplictBaseOfBase": { "assembly": "jsii-calc", "datatype": true, @@ -3318,6 +3435,23 @@ ], "name": "StringEnum" }, + "jsii-calc.StripInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.StripInternal", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "StripInternal", + "properties": [ + { + "name": "youSeeMe", + "type": { + "primitive": "string" + } + } + ] + }, "jsii-calc.Sum": { "assembly": "jsii-calc", "base": { @@ -3949,5 +4083,5 @@ } }, "version": "0.7.15", - "fingerprint": "IWSOEhdZzuvrss5K2WBjZCawXayV13yCAKTj/kJ9+mo=" + "fingerprint": "iMxRj3lsHKNzSiBrjCyBH6Pp7Uvo+1Sxh/jN3hW+3nA=" } diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii index 1911171cc8..f8fb036c02 100644 --- a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii @@ -1478,6 +1478,43 @@ } ] }, + "jsii-calc.ExtendsInternalInterface": { + "assembly": "jsii-calc", + "datatype": true, + "fqn": "jsii-calc.ExtendsInternalInterface", + "kind": "interface", + "name": "ExtendsInternalInterface", + "properties": [ + { + "abstract": true, + "name": "boom", + "type": { + "primitive": "boolean" + } + } + ] + }, + "jsii-calc.ExtendsPrivateInterface": { + "assembly": "jsii-calc", + "datatype": true, + "fqn": "jsii-calc.ExtendsPrivateInterface", + "kind": "interface", + "name": "ExtendsPrivateInterface", + "properties": [ + { + "abstract": true, + "name": "moreThings", + "type": { + "collection": { + "elementtype": { + "primitive": "string" + }, + "kind": "array" + } + } + } + ] + }, "jsii-calc.GiveMeStructs": { "assembly": "jsii-calc", "fqn": "jsii-calc.GiveMeStructs", @@ -1649,6 +1686,18 @@ } ] }, + "jsii-calc.IInterfaceWithInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.IInterfaceWithInternal", + "kind": "interface", + "methods": [ + { + "abstract": true, + "name": "visible" + } + ], + "name": "IInterfaceWithInternal" + }, "jsii-calc.IInterfaceWithMethods": { "assembly": "jsii-calc", "fqn": "jsii-calc.IInterfaceWithMethods", @@ -1776,6 +1825,74 @@ } ] }, + "jsii-calc.ImplementInternalInterface": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementInternalInterface", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementInternalInterface", + "properties": [ + { + "name": "prop", + "type": { + "primitive": "string" + } + } + ] + }, + "jsii-calc.ImplementsInterfaceWithInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementsInterfaceWithInternal", + "initializer": { + "initializer": true + }, + "interfaces": [ + { + "fqn": "jsii-calc.IInterfaceWithInternal" + } + ], + "kind": "class", + "methods": [ + { + "name": "visible", + "overrides": { + "fqn": "jsii-calc.IInterfaceWithInternal" + } + } + ], + "name": "ImplementsInterfaceWithInternal" + }, + "jsii-calc.ImplementsInterfaceWithInternalSubclass": { + "assembly": "jsii-calc", + "base": { + "fqn": "jsii-calc.ImplementsInterfaceWithInternal" + }, + "fqn": "jsii-calc.ImplementsInterfaceWithInternalSubclass", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementsInterfaceWithInternalSubclass" + }, + "jsii-calc.ImplementsPrivateInterface": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.ImplementsPrivateInterface", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "ImplementsPrivateInterface", + "properties": [ + { + "name": "private", + "type": { + "primitive": "string" + } + } + ] + }, "jsii-calc.ImplictBaseOfBase": { "assembly": "jsii-calc", "datatype": true, @@ -3318,6 +3435,23 @@ ], "name": "StringEnum" }, + "jsii-calc.StripInternal": { + "assembly": "jsii-calc", + "fqn": "jsii-calc.StripInternal", + "initializer": { + "initializer": true + }, + "kind": "class", + "name": "StripInternal", + "properties": [ + { + "name": "youSeeMe", + "type": { + "primitive": "string" + } + } + ] + }, "jsii-calc.Sum": { "assembly": "jsii-calc", "base": { @@ -3949,5 +4083,5 @@ } }, "version": "0.7.15", - "fingerprint": "IWSOEhdZzuvrss5K2WBjZCawXayV13yCAKTj/kJ9+mo=" + "fingerprint": "iMxRj3lsHKNzSiBrjCyBH6Pp7Uvo+1Sxh/jN3hW+3nA=" } diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterface.cs new file mode 100644 index 0000000000..74f3685952 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterface.cs @@ -0,0 +1,14 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + public class ExtendsInternalInterface : DeputyBase, IExtendsInternalInterface + { + [JsiiProperty("boom", "{\"primitive\":\"boolean\"}", true)] + public bool Boom + { + get; + set; + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterfaceProxy.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterfaceProxy.cs new file mode 100644 index 0000000000..6d71d9c080 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsInternalInterfaceProxy.cs @@ -0,0 +1,19 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiTypeProxy(typeof(IExtendsInternalInterface), "jsii-calc.ExtendsInternalInterface")] + internal sealed class ExtendsInternalInterfaceProxy : DeputyBase, IExtendsInternalInterface + { + private ExtendsInternalInterfaceProxy(ByRefValue reference): base(reference) + { + } + + [JsiiProperty("boom", "{\"primitive\":\"boolean\"}")] + public bool Boom + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterface.cs new file mode 100644 index 0000000000..c8d579d155 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterface.cs @@ -0,0 +1,14 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + public class ExtendsPrivateInterface : DeputyBase, IExtendsPrivateInterface + { + [JsiiProperty("moreThings", "{\"collection\":{\"kind\":\"array\",\"elementtype\":{\"primitive\":\"string\"}}}", true)] + public string[] MoreThings + { + get; + set; + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterfaceProxy.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterfaceProxy.cs new file mode 100644 index 0000000000..880c3d032f --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ExtendsPrivateInterfaceProxy.cs @@ -0,0 +1,19 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiTypeProxy(typeof(IExtendsPrivateInterface), "jsii-calc.ExtendsPrivateInterface")] + internal sealed class ExtendsPrivateInterfaceProxy : DeputyBase, IExtendsPrivateInterface + { + private ExtendsPrivateInterfaceProxy(ByRefValue reference): base(reference) + { + } + + [JsiiProperty("moreThings", "{\"collection\":{\"kind\":\"array\",\"elementtype\":{\"primitive\":\"string\"}}}")] + public string[] MoreThings + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsInternalInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsInternalInterface.cs new file mode 100644 index 0000000000..bb0f93d2e7 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsInternalInterface.cs @@ -0,0 +1,15 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiInterface(typeof(IExtendsInternalInterface), "jsii-calc.ExtendsInternalInterface")] + public interface IExtendsInternalInterface + { + [JsiiProperty("boom", "{\"primitive\":\"boolean\"}")] + bool Boom + { + get; + set; + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsPrivateInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsPrivateInterface.cs new file mode 100644 index 0000000000..1916e235ab --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IExtendsPrivateInterface.cs @@ -0,0 +1,15 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiInterface(typeof(IExtendsPrivateInterface), "jsii-calc.ExtendsPrivateInterface")] + public interface IExtendsPrivateInterface + { + [JsiiProperty("moreThings", "{\"collection\":{\"kind\":\"array\",\"elementtype\":{\"primitive\":\"string\"}}}")] + string[] MoreThings + { + get; + set; + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IIInterfaceWithInternal.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IIInterfaceWithInternal.cs new file mode 100644 index 0000000000..88502b3fa0 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IIInterfaceWithInternal.cs @@ -0,0 +1,11 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiInterface(typeof(IIInterfaceWithInternal), "jsii-calc.IInterfaceWithInternal")] + public interface IIInterfaceWithInternal + { + [JsiiMethod("visible", null, "[]")] + void Visible(); + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IInterfaceWithInternalProxy.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IInterfaceWithInternalProxy.cs new file mode 100644 index 0000000000..4284951359 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/IInterfaceWithInternalProxy.cs @@ -0,0 +1,18 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiTypeProxy(typeof(IIInterfaceWithInternal), "jsii-calc.IInterfaceWithInternal")] + internal sealed class IInterfaceWithInternalProxy : DeputyBase, IIInterfaceWithInternal + { + private IInterfaceWithInternalProxy(ByRefValue reference): base(reference) + { + } + + [JsiiMethod("visible", null, "[]")] + public void Visible() + { + InvokeInstanceVoidMethod(new object[]{}); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementInternalInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementInternalInterface.cs new file mode 100644 index 0000000000..342e6c4f9a --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementInternalInterface.cs @@ -0,0 +1,27 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiClass(typeof(ImplementInternalInterface), "jsii-calc.ImplementInternalInterface", "[]")] + public class ImplementInternalInterface : DeputyBase + { + public ImplementInternalInterface(): base(new DeputyProps(new object[]{})) + { + } + + protected ImplementInternalInterface(ByRefValue reference): base(reference) + { + } + + protected ImplementInternalInterface(DeputyProps props): base(props) + { + } + + [JsiiProperty("prop", "{\"primitive\":\"string\"}")] + public virtual string Prop + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternal.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternal.cs new file mode 100644 index 0000000000..1b783a8748 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternal.cs @@ -0,0 +1,26 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiClass(typeof(ImplementsInterfaceWithInternal), "jsii-calc.ImplementsInterfaceWithInternal", "[]")] + public class ImplementsInterfaceWithInternal : DeputyBase, IIInterfaceWithInternal + { + public ImplementsInterfaceWithInternal(): base(new DeputyProps(new object[]{})) + { + } + + protected ImplementsInterfaceWithInternal(ByRefValue reference): base(reference) + { + } + + protected ImplementsInterfaceWithInternal(DeputyProps props): base(props) + { + } + + [JsiiMethod("visible", null, "[]")] + public virtual void Visible() + { + InvokeInstanceVoidMethod(new object[]{}); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternalSubclass.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternalSubclass.cs new file mode 100644 index 0000000000..9a86613908 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsInterfaceWithInternalSubclass.cs @@ -0,0 +1,20 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiClass(typeof(ImplementsInterfaceWithInternalSubclass), "jsii-calc.ImplementsInterfaceWithInternalSubclass", "[]")] + public class ImplementsInterfaceWithInternalSubclass : ImplementsInterfaceWithInternal + { + public ImplementsInterfaceWithInternalSubclass(): base(new DeputyProps(new object[]{})) + { + } + + protected ImplementsInterfaceWithInternalSubclass(ByRefValue reference): base(reference) + { + } + + protected ImplementsInterfaceWithInternalSubclass(DeputyProps props): base(props) + { + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsPrivateInterface.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsPrivateInterface.cs new file mode 100644 index 0000000000..892ffa7339 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/ImplementsPrivateInterface.cs @@ -0,0 +1,27 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiClass(typeof(ImplementsPrivateInterface), "jsii-calc.ImplementsPrivateInterface", "[]")] + public class ImplementsPrivateInterface : DeputyBase + { + public ImplementsPrivateInterface(): base(new DeputyProps(new object[]{})) + { + } + + protected ImplementsPrivateInterface(ByRefValue reference): base(reference) + { + } + + protected ImplementsPrivateInterface(DeputyProps props): base(props) + { + } + + [JsiiProperty("private", "{\"primitive\":\"string\"}")] + public virtual string Private + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/StripInternal.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/StripInternal.cs new file mode 100644 index 0000000000..3344d1dbb4 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/StripInternal.cs @@ -0,0 +1,27 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiClass(typeof(StripInternal), "jsii-calc.StripInternal", "[]")] + public class StripInternal : DeputyBase + { + public StripInternal(): base(new DeputyProps(new object[]{})) + { + } + + protected StripInternal(ByRefValue reference): base(reference) + { + } + + protected StripInternal(DeputyProps props): base(props) + { + } + + [JsiiProperty("youSeeMe", "{\"primitive\":\"string\"}")] + public virtual string YouSeeMe + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/jsii-calc-0.7.15.tgz b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/jsii-calc-0.7.15.tgz index ed86b811e526056a84c870825fa150c655b7fcf4..eef7587bf20015975a43efa48f8cd0487c889042 100644 GIT binary patch literal 116 zcmYMs%?X7-3`OC+Ron)&78f=UojYV8?~P<4TE0IZE)NI3(PW`kOLXMw2qk!|T!IO| qnl>Xsd=|5Ax?Ugf#tzj=_aIUw75?6;ll2h#CUgreKfGUIl literal 72770 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 AcmMzZ diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/$Module.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/$Module.java index 09aa4177c1..9ce60725e4 100644 --- a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/$Module.java +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/$Module.java @@ -42,17 +42,24 @@ protected Class resolveClass(final String fqn) throws ClassNotFoundException case "jsii-calc.DontComplainAboutVariadicAfterOptional": return software.amazon.jsii.tests.calculator.DontComplainAboutVariadicAfterOptional.class; case "jsii-calc.DoubleTrouble": return software.amazon.jsii.tests.calculator.DoubleTrouble.class; case "jsii-calc.ExportedBaseClass": return software.amazon.jsii.tests.calculator.ExportedBaseClass.class; + case "jsii-calc.ExtendsInternalInterface": return software.amazon.jsii.tests.calculator.ExtendsInternalInterface.class; + case "jsii-calc.ExtendsPrivateInterface": return software.amazon.jsii.tests.calculator.ExtendsPrivateInterface.class; case "jsii-calc.GiveMeStructs": return software.amazon.jsii.tests.calculator.GiveMeStructs.class; case "jsii-calc.GreetingAugmenter": return software.amazon.jsii.tests.calculator.GreetingAugmenter.class; case "jsii-calc.IFriendlier": return software.amazon.jsii.tests.calculator.IFriendlier.class; case "jsii-calc.IFriendlyRandomGenerator": return software.amazon.jsii.tests.calculator.IFriendlyRandomGenerator.class; case "jsii-calc.IInterfaceThatShouldNotBeADataType": return software.amazon.jsii.tests.calculator.IInterfaceThatShouldNotBeADataType.class; + case "jsii-calc.IInterfaceWithInternal": return software.amazon.jsii.tests.calculator.IInterfaceWithInternal.class; case "jsii-calc.IInterfaceWithMethods": return software.amazon.jsii.tests.calculator.IInterfaceWithMethods.class; case "jsii-calc.IInterfaceWithOptionalMethodArguments": return software.amazon.jsii.tests.calculator.IInterfaceWithOptionalMethodArguments.class; case "jsii-calc.IPrivatelyImplemented": return software.amazon.jsii.tests.calculator.IPrivatelyImplemented.class; case "jsii-calc.IPublicInterface": return software.amazon.jsii.tests.calculator.IPublicInterface.class; case "jsii-calc.IRandomNumberGenerator": return software.amazon.jsii.tests.calculator.IRandomNumberGenerator.class; case "jsii-calc.IReturnsNumber": return software.amazon.jsii.tests.calculator.IReturnsNumber.class; + case "jsii-calc.ImplementInternalInterface": return software.amazon.jsii.tests.calculator.ImplementInternalInterface.class; + case "jsii-calc.ImplementsInterfaceWithInternal": return software.amazon.jsii.tests.calculator.ImplementsInterfaceWithInternal.class; + case "jsii-calc.ImplementsInterfaceWithInternalSubclass": return software.amazon.jsii.tests.calculator.ImplementsInterfaceWithInternalSubclass.class; + case "jsii-calc.ImplementsPrivateInterface": return software.amazon.jsii.tests.calculator.ImplementsPrivateInterface.class; case "jsii-calc.ImplictBaseOfBase": return software.amazon.jsii.tests.calculator.ImplictBaseOfBase.class; case "jsii-calc.InbetweenClass": return software.amazon.jsii.tests.calculator.InbetweenClass.class; case "jsii-calc.InterfaceImplementedByAbstractClass": return software.amazon.jsii.tests.calculator.InterfaceImplementedByAbstractClass.class; @@ -86,6 +93,7 @@ protected Class resolveClass(final String fqn) throws ClassNotFoundException case "jsii-calc.RuntimeTypeChecking": return software.amazon.jsii.tests.calculator.RuntimeTypeChecking.class; case "jsii-calc.Statics": return software.amazon.jsii.tests.calculator.Statics.class; case "jsii-calc.StringEnum": return software.amazon.jsii.tests.calculator.StringEnum.class; + case "jsii-calc.StripInternal": return software.amazon.jsii.tests.calculator.StripInternal.class; case "jsii-calc.Sum": return software.amazon.jsii.tests.calculator.Sum.class; case "jsii-calc.SyncVirtualMethods": return software.amazon.jsii.tests.calculator.SyncVirtualMethods.class; case "jsii-calc.Thrower": return software.amazon.jsii.tests.calculator.Thrower.class; diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsInternalInterface.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsInternalInterface.java new file mode 100644 index 0000000000..d93a72c5cd --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsInternalInterface.java @@ -0,0 +1,72 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +public interface ExtendsInternalInterface extends software.amazon.jsii.JsiiSerializable { + java.lang.Boolean getBoom(); + void setBoom(final java.lang.Boolean value); + + /** + * @return a {@link Builder} of {@link ExtendsInternalInterface} + */ + static Builder builder() { + return new Builder(); + } + + /** + * A builder for {@link ExtendsInternalInterface} + */ + final class Builder { + private java.lang.Boolean _boom; + + /** + * Sets the value of Boom + * @param value the value to be set + * @return {@code this} + */ + public Builder withBoom(final java.lang.Boolean value) { + this._boom = java.util.Objects.requireNonNull(value, "boom is required"); + return this; + } + + /** + * Builds the configured instance. + * @return a new instance of {@link ExtendsInternalInterface} + * @throws NullPointerException if any required attribute was not provided + */ + public ExtendsInternalInterface build() { + return new ExtendsInternalInterface() { + private java.lang.Boolean $boom = java.util.Objects.requireNonNull(_boom, "boom is required"); + + @Override + public java.lang.Boolean getBoom() { + return this.$boom; + } + + @Override + public void setBoom(final java.lang.Boolean value) { + this.$boom = java.util.Objects.requireNonNull(value, "boom is required"); + } + + }; + } + } + + /** + * A proxy class which represents a concrete javascript instance of this type. + */ + final static class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.ExtendsInternalInterface { + protected Jsii$Proxy(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + + @Override + public java.lang.Boolean getBoom() { + return this.jsiiGet("boom", java.lang.Boolean.class); + } + + @Override + public void setBoom(final java.lang.Boolean value) { + this.jsiiSet("boom", java.util.Objects.requireNonNull(value, "boom is required")); + } + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsPrivateInterface.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsPrivateInterface.java new file mode 100644 index 0000000000..2da0756139 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ExtendsPrivateInterface.java @@ -0,0 +1,72 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +public interface ExtendsPrivateInterface extends software.amazon.jsii.JsiiSerializable { + java.util.List getMoreThings(); + void setMoreThings(final java.util.List value); + + /** + * @return a {@link Builder} of {@link ExtendsPrivateInterface} + */ + static Builder builder() { + return new Builder(); + } + + /** + * A builder for {@link ExtendsPrivateInterface} + */ + final class Builder { + private java.util.List _moreThings; + + /** + * Sets the value of MoreThings + * @param value the value to be set + * @return {@code this} + */ + public Builder withMoreThings(final java.util.List value) { + this._moreThings = java.util.Objects.requireNonNull(value, "moreThings is required"); + return this; + } + + /** + * Builds the configured instance. + * @return a new instance of {@link ExtendsPrivateInterface} + * @throws NullPointerException if any required attribute was not provided + */ + public ExtendsPrivateInterface build() { + return new ExtendsPrivateInterface() { + private java.util.List $moreThings = java.util.Objects.requireNonNull(_moreThings, "moreThings is required"); + + @Override + public java.util.List getMoreThings() { + return this.$moreThings; + } + + @Override + public void setMoreThings(final java.util.List value) { + this.$moreThings = java.util.Objects.requireNonNull(value, "moreThings is required"); + } + + }; + } + } + + /** + * A proxy class which represents a concrete javascript instance of this type. + */ + final static class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.ExtendsPrivateInterface { + protected Jsii$Proxy(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + + @Override + public java.util.List getMoreThings() { + return this.jsiiGet("moreThings", java.util.List.class); + } + + @Override + public void setMoreThings(final java.util.List value) { + this.jsiiSet("moreThings", java.util.Objects.requireNonNull(value, "moreThings is required")); + } + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithInternal.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithInternal.java new file mode 100644 index 0000000000..dff686d28a --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithInternal.java @@ -0,0 +1,20 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +public interface IInterfaceWithInternal extends software.amazon.jsii.JsiiSerializable { + void visible(); + + /** + * A proxy class which represents a concrete javascript instance of this type. + */ + final static class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.IInterfaceWithInternal { + protected Jsii$Proxy(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + + @Override + public void visible() { + this.jsiiCall("visible", Void.class); + } + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementInternalInterface.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementInternalInterface.java new file mode 100644 index 0000000000..fe714d34c3 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementInternalInterface.java @@ -0,0 +1,21 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.ImplementInternalInterface") +public class ImplementInternalInterface extends software.amazon.jsii.JsiiObject { + protected ImplementInternalInterface(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public ImplementInternalInterface() { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this); + } + + public java.lang.String getProp() { + return this.jsiiGet("prop", java.lang.String.class); + } + + public void setProp(final java.lang.String value) { + this.jsiiSet("prop", java.util.Objects.requireNonNull(value, "prop is required")); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternal.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternal.java new file mode 100644 index 0000000000..118c2d2a28 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternal.java @@ -0,0 +1,18 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.ImplementsInterfaceWithInternal") +public class ImplementsInterfaceWithInternal extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.IInterfaceWithInternal { + protected ImplementsInterfaceWithInternal(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public ImplementsInterfaceWithInternal() { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this); + } + + @Override + public void visible() { + this.jsiiCall("visible", Void.class); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternalSubclass.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternalSubclass.java new file mode 100644 index 0000000000..692993f251 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsInterfaceWithInternalSubclass.java @@ -0,0 +1,13 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.ImplementsInterfaceWithInternalSubclass") +public class ImplementsInterfaceWithInternalSubclass extends software.amazon.jsii.tests.calculator.ImplementsInterfaceWithInternal { + protected ImplementsInterfaceWithInternalSubclass(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public ImplementsInterfaceWithInternalSubclass() { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsPrivateInterface.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsPrivateInterface.java new file mode 100644 index 0000000000..c8f13c3480 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/ImplementsPrivateInterface.java @@ -0,0 +1,21 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.ImplementsPrivateInterface") +public class ImplementsPrivateInterface extends software.amazon.jsii.JsiiObject { + protected ImplementsPrivateInterface(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public ImplementsPrivateInterface() { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this); + } + + public java.lang.String getPrivate() { + return this.jsiiGet("private", java.lang.String.class); + } + + public void setPrivate(final java.lang.String value) { + this.jsiiSet("private", java.util.Objects.requireNonNull(value, "private is required")); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/StripInternal.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/StripInternal.java new file mode 100644 index 0000000000..c58cffea3b --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/StripInternal.java @@ -0,0 +1,21 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.StripInternal") +public class StripInternal extends software.amazon.jsii.JsiiObject { + protected StripInternal(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public StripInternal() { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this); + } + + public java.lang.String getYouSeeMe() { + return this.jsiiGet("youSeeMe", java.lang.String.class); + } + + public void setYouSeeMe(final java.lang.String value) { + this.jsiiSet("youSeeMe", java.util.Objects.requireNonNull(value, "youSeeMe is required")); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/resources/software/amazon/jsii/tests/calculator/jsii-calc@0.7.15.jsii.tgz b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/resources/software/amazon/jsii/tests/calculator/jsii-calc@0.7.15.jsii.tgz index ed86b811e526056a84c870825fa150c655b7fcf4..eef7587bf20015975a43efa48f8cd0487c889042 100644 GIT binary patch literal 116 zcmYMs%?X7-3`OC+Ron)&78f=UojYV8?~P<4TE0IZE)NI3(PW`kOLXMw2qk!|T!IO| qnl>Xsd=|5Ax?Ugf#tzj=_aIUw75?6;ll2h#CUgreKfGUIl literal 72770 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 AcmMzZ diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/js/jsii-calc@0.7.15.jsii.tgz b/packages/jsii-pacmak/test/expected.jsii-calc/js/jsii-calc@0.7.15.jsii.tgz index ed86b811e526056a84c870825fa150c655b7fcf4..eef7587bf20015975a43efa48f8cd0487c889042 100644 GIT binary patch literal 116 zcmYMs%?X7-3`OC+Ron)&78f=UojYV8?~P<4TE0IZE)NI3(PW`kOLXMw2qk!|T!IO| qnl>Xsd=|5Ax?Ugf#tzj=_aIUw75?6;ll2h#CUgreKfGUIl literal 72770 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 AcmMzZ diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst b/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst index 79ad16e900..966a35d5cf 100644 --- a/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst +++ b/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst @@ -1615,6 +1615,74 @@ ExportedBaseClass :type: boolean *(readonly)* +ExtendsInternalInterface (interface) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ExtendsInternalInterface + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ExtendsInternalInterface; + + .. code-tab:: javascript + + // ExtendsInternalInterface is an interface + + .. code-tab:: typescript + + import { ExtendsInternalInterface } from 'jsii-calc'; + + + + + + .. py:attribute:: boom + + :type: boolean + + +ExtendsPrivateInterface (interface) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ExtendsPrivateInterface + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ExtendsPrivateInterface; + + .. code-tab:: javascript + + // ExtendsPrivateInterface is an interface + + .. code-tab:: typescript + + import { ExtendsPrivateInterface } from 'jsii-calc'; + + + + + + .. py:attribute:: moreThings + + :type: string[] + + GiveMeStructs ^^^^^^^^^^^^^ @@ -1894,6 +1962,40 @@ IInterfaceThatShouldNotBeADataType (interface) :type: string *(readonly)* +IInterfaceWithInternal (interface) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: IInterfaceWithInternal + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.IInterfaceWithInternal; + + .. code-tab:: javascript + + // IInterfaceWithInternal is an interface + + .. code-tab:: typescript + + import { IInterfaceWithInternal } from 'jsii-calc'; + + + + + + .. py:method:: visible() + + :abstract: Yes + + IInterfaceWithMethods (interface) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -2129,6 +2231,142 @@ IReturnsNumber (interface) :abstract: Yes +ImplementInternalInterface +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ImplementInternalInterface() + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ImplementInternalInterface; + + .. code-tab:: javascript + + const { ImplementInternalInterface } = require('jsii-calc'); + + .. code-tab:: typescript + + import { ImplementInternalInterface } from 'jsii-calc'; + + + + + .. py:attribute:: prop + + :type: string + + +ImplementsInterfaceWithInternal +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ImplementsInterfaceWithInternal() + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ImplementsInterfaceWithInternal; + + .. code-tab:: javascript + + const { ImplementsInterfaceWithInternal } = require('jsii-calc'); + + .. code-tab:: typescript + + import { ImplementsInterfaceWithInternal } from 'jsii-calc'; + + + + :implements: :py:class:`~jsii-calc.IInterfaceWithInternal`\ + + .. py:method:: visible() + + *Implements* :py:meth:`jsii-calc.IInterfaceWithInternal.visible` + + + +ImplementsInterfaceWithInternalSubclass +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ImplementsInterfaceWithInternalSubclass() + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ImplementsInterfaceWithInternalSubclass; + + .. code-tab:: javascript + + const { ImplementsInterfaceWithInternalSubclass } = require('jsii-calc'); + + .. code-tab:: typescript + + import { ImplementsInterfaceWithInternalSubclass } from 'jsii-calc'; + + + + :extends: :py:class:`~jsii-calc.ImplementsInterfaceWithInternal`\ + + .. py:method:: visible() + + *Inherited from* :py:meth:`jsii-calc.ImplementsInterfaceWithInternal ` + + + +ImplementsPrivateInterface +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: ImplementsPrivateInterface() + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.ImplementsPrivateInterface; + + .. code-tab:: javascript + + const { ImplementsPrivateInterface } = require('jsii-calc'); + + .. code-tab:: typescript + + import { ImplementsPrivateInterface } from 'jsii-calc'; + + + + + .. py:attribute:: private + + :type: string + + ImplictBaseOfBase (interface) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -4243,6 +4481,39 @@ StringEnum (enum) .. py:data:: C +StripInternal +^^^^^^^^^^^^^ + +.. py:class:: StripInternal() + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.StripInternal; + + .. code-tab:: javascript + + const { StripInternal } = require('jsii-calc'); + + .. code-tab:: typescript + + import { StripInternal } from 'jsii-calc'; + + + + + .. py:attribute:: youSeeMe + + :type: string + + Sum ^^^ diff --git a/packages/jsii-reflect/test/classes.expected.txt b/packages/jsii-reflect/test/classes.expected.txt index 4723146f5c..d6388b6515 100644 --- a/packages/jsii-reflect/test/classes.expected.txt +++ b/packages/jsii-reflect/test/classes.expected.txt @@ -24,6 +24,10 @@ ExportedBaseClass Foo GiveMeStructs GreetingAugmenter +ImplementInternalInterface +ImplementsInterfaceWithInternal +ImplementsInterfaceWithInternalSubclass +ImplementsPrivateInterface InbetweenClass JSObjectLiteralForInterface JSObjectLiteralToNative @@ -48,6 +52,7 @@ ReferenceEnumFromScopedPackage ReturnsPrivateImplementationOfInterface RuntimeTypeChecking Statics +StripInternal Sum SyncVirtualMethods Thrower diff --git a/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt index 51c230e60e..493633803f 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.all.expected.txt @@ -375,6 +375,30 @@ assemblies │ │ │ └─┬ friendly │ │ │ └── type: interface:@scope/jsii-calc-lib.IFriendly │ │ └── returns: primitive:string + │ ├─┬ class ImplementInternalInterface + │ │ └─┬ members + │ │ ├─┬ () method + │ │ │ └── returns: void + │ │ └─┬ prop property + │ │ └── type: primitive:string + │ ├─┬ class ImplementsInterfaceWithInternal + │ │ ├── interfaces: IInterfaceWithInternal + │ │ └─┬ members + │ │ ├─┬ () method + │ │ │ └── returns: void + │ │ └─┬ visible() method + │ │ └── returns: void + │ ├─┬ class ImplementsInterfaceWithInternalSubclass + │ │ ├── base: ImplementsInterfaceWithInternal + │ │ └─┬ members + │ │ └─┬ () method + │ │ └── returns: void + │ ├─┬ class ImplementsPrivateInterface + │ │ └─┬ members + │ │ ├─┬ () method + │ │ │ └── returns: void + │ │ └─┬ private property + │ │ └── type: primitive:string │ ├─┬ class InbetweenClass │ │ ├── base: PublicClass │ │ └─┬ members @@ -856,6 +880,12 @@ assemblies │ │ └─┬ value property │ │ ├── immutable │ │ └── type: primitive:string + │ ├─┬ class StripInternal + │ │ └─┬ members + │ │ ├─┬ () method + │ │ │ └── returns: void + │ │ └─┬ youSeeMe property + │ │ └── type: primitive:string │ ├─┬ class Sum │ │ ├── base: CompositeOperation │ │ └─┬ members @@ -1063,6 +1093,16 @@ assemblies │ │ └─┬ optionalArray property │ │ ├── abstract │ │ └── type: Array + │ ├─┬ interface ExtendsInternalInterface + │ │ └─┬ members + │ │ └─┬ boom property + │ │ ├── abstract + │ │ └── type: primitive:boolean + │ ├─┬ interface ExtendsPrivateInterface + │ │ └─┬ members + │ │ └─┬ moreThings property + │ │ ├── abstract + │ │ └── type: Array │ ├─┬ interface IFriendlier │ │ ├─┬ interfaces │ │ │ └── IFriendly @@ -1086,6 +1126,11 @@ assemblies │ │ ├── abstract │ │ ├── immutable │ │ └── type: primitive:string + │ ├─┬ interface IInterfaceWithInternal + │ │ └─┬ members + │ │ └─┬ visible() method + │ │ ├── abstract + │ │ └── returns: void │ ├─┬ interface IInterfaceWithMethods │ │ └─┬ members │ │ ├─┬ doThings() method diff --git a/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt index f65536e262..5ed60d75ad 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.inheritance.expected.txt @@ -33,6 +33,12 @@ assemblies │ ├── class ExportedBaseClass │ ├── class GiveMeStructs │ ├── class GreetingAugmenter + │ ├── class ImplementInternalInterface + │ ├─┬ class ImplementsInterfaceWithInternal + │ │ └── interfaces: IInterfaceWithInternal + │ ├─┬ class ImplementsInterfaceWithInternalSubclass + │ │ └── base: ImplementsInterfaceWithInternal + │ ├── class ImplementsPrivateInterface │ ├─┬ class InbetweenClass │ │ └── base: PublicClass │ ├── class Foo @@ -62,6 +68,7 @@ assemblies │ ├── class ReturnsPrivateImplementationOfInterface │ ├── class RuntimeTypeChecking │ ├── class Statics + │ ├── class StripInternal │ ├─┬ class Sum │ │ └── base: CompositeOperation │ ├── class SyncVirtualMethods @@ -79,6 +86,8 @@ assemblies │ ├─┬ interface DerivedStruct │ │ └─┬ interfaces │ │ └── MyFirstStruct + │ ├── interface ExtendsInternalInterface + │ ├── interface ExtendsPrivateInterface │ ├─┬ interface IFriendlier │ │ └─┬ interfaces │ │ └── IFriendly @@ -89,6 +98,7 @@ assemblies │ ├─┬ interface IInterfaceThatShouldNotBeADataType │ │ └─┬ interfaces │ │ └── IInterfaceWithMethods + │ ├── interface IInterfaceWithInternal │ ├── interface IInterfaceWithMethods │ ├── interface IInterfaceWithOptionalMethodArguments │ ├── interface IPrivatelyImplemented diff --git a/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt index 2dc70c18fc..4b12ae297a 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.members.expected.txt @@ -147,6 +147,21 @@ assemblies │ │ └─┬ members │ │ ├── () method │ │ └── betterGreeting(friendly) method + │ ├─┬ class ImplementInternalInterface + │ │ └─┬ members + │ │ ├── () method + │ │ └── prop property + │ ├─┬ class ImplementsInterfaceWithInternal + │ │ └─┬ members + │ │ ├── () method + │ │ └── visible() method + │ ├─┬ class ImplementsInterfaceWithInternalSubclass + │ │ └─┬ members + │ │ └── () method + │ ├─┬ class ImplementsPrivateInterface + │ │ └─┬ members + │ │ ├── () method + │ │ └── private property │ ├─┬ class InbetweenClass │ │ └─┬ members │ │ └── () method @@ -356,6 +371,10 @@ assemblies │ │ ├── instance property │ │ ├── nonConstStatic property │ │ └── value property + │ ├─┬ class StripInternal + │ │ └─┬ members + │ │ ├── () method + │ │ └── youSeeMe property │ ├─┬ class Sum │ │ └─┬ members │ │ ├── () method @@ -436,6 +455,12 @@ assemblies │ │ ├── anotherOptional property │ │ ├── optionalAny property │ │ └── optionalArray property + │ ├─┬ interface ExtendsInternalInterface + │ │ └─┬ members + │ │ └── boom property + │ ├─┬ interface ExtendsPrivateInterface + │ │ └─┬ members + │ │ └── moreThings property │ ├─┬ interface IFriendlier │ │ └─┬ members │ │ ├── farewell() method @@ -445,6 +470,9 @@ assemblies │ ├─┬ interface IInterfaceThatShouldNotBeADataType │ │ └─┬ members │ │ └── otherValue property + │ ├─┬ interface IInterfaceWithInternal + │ │ └─┬ members + │ │ └── visible() method │ ├─┬ interface IInterfaceWithMethods │ │ └─┬ members │ │ ├── doThings() method diff --git a/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt b/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt index 674648f02a..3caad51496 100644 --- a/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt +++ b/packages/jsii-reflect/test/jsii-tree.test.types.expected.txt @@ -24,6 +24,10 @@ assemblies │ ├── class ExportedBaseClass │ ├── class GiveMeStructs │ ├── class GreetingAugmenter + │ ├── class ImplementInternalInterface + │ ├── class ImplementsInterfaceWithInternal + │ ├── class ImplementsInterfaceWithInternalSubclass + │ ├── class ImplementsPrivateInterface │ ├── class InbetweenClass │ ├── class Foo │ ├── class JSObjectLiteralForInterface @@ -47,6 +51,7 @@ assemblies │ ├── class ReturnsPrivateImplementationOfInterface │ ├── class RuntimeTypeChecking │ ├── class Statics + │ ├── class StripInternal │ ├── class Sum │ ├── class SyncVirtualMethods │ ├── class Thrower @@ -59,9 +64,12 @@ assemblies │ ├── class CompositeOperation │ ├── interface CalculatorProps │ ├── interface DerivedStruct + │ ├── interface ExtendsInternalInterface + │ ├── interface ExtendsPrivateInterface │ ├── interface IFriendlier │ ├── interface IFriendlyRandomGenerator │ ├── interface IInterfaceThatShouldNotBeADataType + │ ├── interface IInterfaceWithInternal │ ├── interface IInterfaceWithMethods │ ├── interface IInterfaceWithOptionalMethodArguments │ ├── interface IPrivatelyImplemented diff --git a/packages/jsii/lib/assembler.ts b/packages/jsii/lib/assembler.ts index 860df41f21..7bceb52b66 100644 --- a/packages/jsii/lib/assembler.ts +++ b/packages/jsii/lib/assembler.ts @@ -11,7 +11,7 @@ import { Diagnostic, Emitter } from './emitter'; import literate = require('./literate'); import { ProjectInfo } from './project-info'; import utils = require('./utils'); -import { Validator } from './validator'; +import { Validator } from './validator'; // tslint:disable:no-var-requires Modules without TypeScript definitions const sortJson = require('sort-json'); @@ -337,11 +337,15 @@ export class Assembler implements Emitter { return [jsiiType]; } - private async _visitClass(type: ts.Type, namespace: string[]): Promise { + private async _visitClass(type: ts.Type, namespace: string[]): Promise { if (LOG.isTraceEnabled()) { LOG.trace(`Processing class: ${colors.gray(namespace.join('.'))}.${colors.cyan(type.symbol.name)}`); } + if (_hasInternalJsDocTag(type.symbol)) { + return undefined; + } + const fqn = `${[this.projectInfo.name, ...namespace].join('.')}.${type.symbol.name}`; const jsiiType: spec.ClassType = { @@ -360,7 +364,9 @@ export class Assembler implements Emitter { this._diagnostic(base.symbol.valueDeclaration, ts.DiagnosticCategory.Error, `Found multiple base types for ${jsiiType.fqn}`); continue; } + const ref = await this._typeReference(base, type.symbol.valueDeclaration); + if (!spec.isNamedTypeReference(ref)) { this._diagnostic(base.symbol.valueDeclaration, ts.DiagnosticCategory.Error, @@ -384,15 +390,25 @@ export class Assembler implements Emitter { this._diagnostic(clause, ts.DiagnosticCategory.Error, `Ignoring ${ts.SyntaxKind[clause.token]} heritage clause`); continue; } + for (const expression of clause.types) { const iface = this._typeChecker.getTypeFromTypeNode(expression); + + // if this interface is internal/private, we erase it from the API definition + if (this._isPrivateOrInternal(iface.symbol)) { + LOG.trace(`erasing hidden interface ${iface.symbol.name}`); + continue; + } + const typeRef = await this._typeReference(iface, iface.symbol.valueDeclaration); + if (!spec.isNamedTypeReference(typeRef)) { this._diagnostic(expression, ts.DiagnosticCategory.Error, `Interface of ${jsiiType.fqn} is not a named type (${spec.describeTypeReference(typeRef)})`); continue; } + this._deferUntilTypesAvailable(fqn, [typeRef], expression, (deref) => { if (!spec.isInterfaceType(deref)) { this._diagnostic(expression, @@ -400,11 +416,9 @@ export class Assembler implements Emitter { `Implements clause of ${jsiiType.fqn} uses ${spec.describeTypeReference(typeRef)} as an interface`); } }); - if (jsiiType.interfaces) { - jsiiType.interfaces.push(typeRef); - } else { - jsiiType.interfaces = [typeRef]; - } + + jsiiType.interfaces = jsiiType.interfaces || []; + jsiiType.interfaces.push(typeRef); } } @@ -418,8 +432,20 @@ export class Assembler implements Emitter { for (const memberDecl of classDecl.members) { const member: ts.Symbol = (memberDecl as any).symbol; - if (!(type.symbol.getDeclarations() || []).find(d => d === memberDecl.parent)) { continue; } - if (_isHidden(member)) { continue; } + + if (!(type.symbol.getDeclarations() || []).find(d => d === memberDecl.parent)) { + continue; + } + + if (this._isPrivateOrInternal(member, memberDecl)) { + continue; + } + + // constructors are handled later + if (ts.isConstructorDeclaration(memberDecl)) { + continue; + } + if (ts.isMethodDeclaration(memberDecl) || ts.isMethodSignature(memberDecl)) { await this._visitMethod(member, jsiiType); } else if (ts.isPropertyDeclaration(memberDecl) @@ -479,11 +505,47 @@ export class Assembler implements Emitter { return _sortMembers(this._visitDocumentation(type.symbol, jsiiType)); } - private async _visitEnum(type: ts.Type, namespace: string[]): Promise { + /** + * @returns true if this member is internal and should be omitted from the type manifest + */ + private _isPrivateOrInternal(symbol: ts.Symbol, validateDeclaration?: ts.Declaration): boolean { + const hasInternalJsDocTag = _hasInternalJsDocTag(symbol); + const hasUnderscorePrefix = symbol.name !== '__constructor' && symbol.name.startsWith('_'); + + if (_isPrivate(symbol)) { + LOG.trace(`skipping ${symbol.name} because it is marked "private"`); + return true; + } + + if (!hasInternalJsDocTag && !hasUnderscorePrefix) { + return false; + } + + // we only validate if we have a declaration + if (validateDeclaration) { + if (!hasUnderscorePrefix) { + this._diagnostic(validateDeclaration, ts.DiagnosticCategory.Error, + `${symbol.name}: the name of members marked as @internal must begin with an underscore`); + } + + if (!hasInternalJsDocTag) { + this._diagnostic(validateDeclaration, ts.DiagnosticCategory.Error, + `${symbol.name}: members with names that begin with an underscore must be marked as @internal via a JSDoc tag`); + } + } + + return true; + } + + private async _visitEnum(type: ts.Type, namespace: string[]): Promise { if (LOG.isTraceEnabled()) { LOG.trace(`Processing enum: ${colors.gray(namespace.join('.'))}.${colors.cyan(type.symbol.name)}`); } + if (_hasInternalJsDocTag(type.symbol)) { + return undefined; + } + const decl = type.symbol.valueDeclaration; const flags = ts.getCombinedModifierFlags(decl); // tslint:disable-next-line:no-bitwise @@ -553,11 +615,15 @@ export class Assembler implements Emitter { } } - private async _visitInterface(type: ts.Type, namespace: string[]): Promise { + private async _visitInterface(type: ts.Type, namespace: string[]): Promise { if (LOG.isTraceEnabled()) { LOG.trace(`Processing interface: ${colors.gray(namespace.join('.'))}.${colors.cyan(type.symbol.name)}`); } + if (_hasInternalJsDocTag(type.symbol)) { + return undefined; + } + const fqn = `${[this.projectInfo.name, ...namespace].join('.')}.${type.symbol.name}`; const jsiiType: spec.InterfaceType = { @@ -569,13 +635,21 @@ export class Assembler implements Emitter { }; for (const base of (type.getBaseTypes() || [])) { + // if this interface is internal/private, we erase it from the API definition + if (this._isPrivateOrInternal(base.symbol)) { + LOG.trace(`erasing hidden interface ${base.symbol.name}`); + continue; + } + const ref = await this._typeReference(base, type.symbol.valueDeclaration); + if (!spec.isNamedTypeReference(ref)) { this._diagnostic(base.symbol.valueDeclaration, ts.DiagnosticCategory.Error, `Base type of ${jsiiType.fqn} is not a named type (${spec.describeTypeReference(ref)})`); continue; } + this._deferUntilTypesAvailable(fqn, [ref], base.symbol.valueDeclaration, (baseType) => { if (!spec.isInterfaceType(baseType)) { // tslint:disable:max-line-length @@ -585,15 +659,17 @@ export class Assembler implements Emitter { // tslint:enable:max-line-length } }); - if (jsiiType.interfaces) { - jsiiType.interfaces.push(ref); - } else { - jsiiType.interfaces = [ref]; - } + + jsiiType.interfaces = jsiiType.interfaces || []; + jsiiType.interfaces.push(ref); } for (const member of type.getProperties()) { if (!(type.symbol.getDeclarations() || []).find(decl => decl === member.valueDeclaration.parent)) { continue; } - if (_isHidden(member)) { continue; } + + if (this._isPrivateOrInternal(member, member.valueDeclaration)) { + continue; + } + if (ts.isMethodDeclaration(member.valueDeclaration) || ts.isMethodSignature(member.valueDeclaration)) { await this._visitMethod(member, jsiiType); } else if (ts.isPropertyDeclaration(member.valueDeclaration) @@ -723,6 +799,7 @@ export class Assembler implements Emitter { */ return; } + if (LOG.isTraceEnabled()) { LOG.trace(`Processing property: ${colors.green(type.fqn)}#${colors.cyan(symbol.name)}`); } @@ -1051,17 +1128,34 @@ function _isExported(node: ts.Declaration): boolean { } /** - * Members with names starting with ``_`` and members that are private are hidden. + * Members with names starting with `_` (and marked as @internal) and members + * that are private are hidden. * * @param symbol the symbol which should be assessed * - * @return ``true`` if the symbol should be hidden + * @return `true` if the symbol should be hidden */ -function _isHidden(symbol: ts.Symbol): boolean { - return !symbol.valueDeclaration - || symbol.name.startsWith('_') - // tslint:disable-next-line:no-bitwise - || (ts.getCombinedModifierFlags(symbol.valueDeclaration) & ts.ModifierFlags.Private) !== 0; +function _isPrivate(symbol: ts.Symbol): boolean { + + // if the symbol doesn't have a value declaration, we are assuming it's a type (enum/interface/class) + // and check that it has an "export" modifier + if (!symbol.valueDeclaration) { + let hasExport = false; + for (const decl of symbol.declarations) { + // tslint:disable-next-line:no-bitwise + if (ts.getCombinedModifierFlags(decl) & ts.ModifierFlags.Export) { + hasExport = true; + } + } + return !hasExport; + } + + // tslint:disable-next-line:no-bitwise + return symbol.valueDeclaration && (ts.getCombinedModifierFlags(symbol.valueDeclaration) & ts.ModifierFlags.Private) !== 0; +} + +function _hasInternalJsDocTag(symbol: ts.Symbol) { + return symbol.getJsDocTags().some((t: any) => t.name === 'internal'); } function _isProtected(symbol: ts.Symbol): boolean { diff --git a/packages/jsii/lib/compiler.ts b/packages/jsii/lib/compiler.ts index ce0a409115..83e8cfa2ca 100644 --- a/packages/jsii/lib/compiler.ts +++ b/packages/jsii/lib/compiler.ts @@ -29,6 +29,7 @@ const COMPILER_OPTIONS: ts.CompilerOptions = { strict: true, strictNullChecks: true, strictPropertyInitialization: false, + stripInternal: true, target: ts.ScriptTarget.ES2018 }; diff --git a/packages/jsii/test/negatives/neg.internal-underscore-class.5.ts b/packages/jsii/test/negatives/neg.internal-underscore-class.5.ts new file mode 100644 index 0000000000..f6e220556c --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-class.5.ts @@ -0,0 +1,6 @@ +///!MATCH_ERROR: the name of members marked as @internal must begin with an underscore + +export class MyClass { + /** @internal */ + public propertyWithInternalButNotUnderscorePrefix?: string; +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore-class.6.ts b/packages/jsii/test/negatives/neg.internal-underscore-class.6.ts new file mode 100644 index 0000000000..0f96a89f5e --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-class.6.ts @@ -0,0 +1,5 @@ +///!MATCH_ERROR: members with names that begin with an underscore must be marked as @internal via a JSDoc tag + +export class MyClass { + public _propertyWithUnderscoreButNoInternal?: string; +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore-class.7.ts b/packages/jsii/test/negatives/neg.internal-underscore-class.7.ts new file mode 100644 index 0000000000..43f4ecb8eb --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-class.7.ts @@ -0,0 +1,6 @@ +///!MATCH_ERROR: the name of members marked as @internal must begin with an underscore + +export class MyClass { + /** @internal */ + public methodWithInternalButNoUnderscore(): string { return 'hi'; } +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore-class.8.ts b/packages/jsii/test/negatives/neg.internal-underscore-class.8.ts new file mode 100644 index 0000000000..e7b5afd433 --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-class.8.ts @@ -0,0 +1,5 @@ +///!MATCH_ERROR: members with names that begin with an underscore must be marked as @internal via a JSDoc tag + +export interface IMyInterface { + _methodWithUnderscoreButNoInternal(); +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore-interface.1.ts b/packages/jsii/test/negatives/neg.internal-underscore-interface.1.ts new file mode 100644 index 0000000000..9edd58ae90 --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-interface.1.ts @@ -0,0 +1,6 @@ +///!MATCH_ERROR: the name of members marked as @internal must begin with an underscore + +export interface IMyInterface { + /** @internal */ + propertyWithInternalButNotUnderscorePrefix: string; +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore-interface.2.ts b/packages/jsii/test/negatives/neg.internal-underscore-interface.2.ts new file mode 100644 index 0000000000..f025d1d9b1 --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-interface.2.ts @@ -0,0 +1,5 @@ +///!MATCH_ERROR: members with names that begin with an underscore must be marked as @internal via a JSDoc tag + +export interface IMyInterface { + _propertyWithUnderscoreButNoInternal: string; +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore-interface.3.ts b/packages/jsii/test/negatives/neg.internal-underscore-interface.3.ts new file mode 100644 index 0000000000..62a744501c --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-interface.3.ts @@ -0,0 +1,6 @@ +///!MATCH_ERROR: the name of members marked as @internal must begin with an underscore + +export interface IMyInterface { + /** @internal */ + methodWithInternalButNoUnderscore(): string; +} diff --git a/packages/jsii/test/negatives/neg.internal-underscore-interface.4.ts b/packages/jsii/test/negatives/neg.internal-underscore-interface.4.ts new file mode 100644 index 0000000000..8d33518242 --- /dev/null +++ b/packages/jsii/test/negatives/neg.internal-underscore-interface.4.ts @@ -0,0 +1,7 @@ +///!MATCH_ERROR: members with names that begin with an underscore must be marked as @internal via a JSDoc tag + +export class MyClass { + public _methodWithUnderscoreButNoInternal() { + return; + } +}