diff --git a/.github/workflows/reusable/cached-build/action.yml b/.github/workflows/reusable/cached-build/action.yml index 3199597c6e..8d4efc9e2e 100644 --- a/.github/workflows/reusable/cached-build/action.yml +++ b/.github/workflows/reusable/cached-build/action.yml @@ -29,6 +29,7 @@ runs: packages/sdk/src/generated packages/autocertifier-client/generated packages/proto-rpc/generated + packages/proto-rpc/test/proto packages/dht/generated packages/trackerless-network/generated - name: ci diff --git a/packages/autocertifier-client/tsconfig.json b/packages/autocertifier-client/tsconfig.json index 8a784bac80..2f229666e8 100644 --- a/packages/autocertifier-client/tsconfig.json +++ b/packages/autocertifier-client/tsconfig.json @@ -1,8 +1,7 @@ { "extends": "../../tsconfig.node.json", "compilerOptions": { - "outDir": "dist", - "noImplicitOverride": false + "outDir": "dist" }, "include": [ "src", diff --git a/packages/dht/test/unit/PeerManager.test.ts b/packages/dht/test/unit/PeerManager.test.ts index 43f28b3601..ba744d6445 100644 --- a/packages/dht/test/unit/PeerManager.test.ts +++ b/packages/dht/test/unit/PeerManager.test.ts @@ -17,7 +17,7 @@ const createDhtNodeRpcRemote = ( ) => { const remote = new class extends DhtNodeRpcRemote { // eslint-disable-next-line class-methods-use-this - async ping(): Promise { + override async ping(): Promise { return !pingFailures.has(toNodeId(peerDescriptor)) } }(localPeerDescriptor, peerDescriptor, undefined as any, new MockRpcCommunicator()) diff --git a/packages/dht/test/utils/utils.ts b/packages/dht/test/utils/utils.ts index 1cc9db2fbc..fcd6c005aa 100644 --- a/packages/dht/test/utils/utils.ts +++ b/packages/dht/test/utils/utils.ts @@ -62,7 +62,7 @@ export const createMockRingNode = async ( rpcRequestTimeout: 5000 } const node = new class extends DhtNode { - async stop(): Promise { + override async stop(): Promise { await super.stop() await mockConnectionManager.stop() } @@ -90,7 +90,7 @@ export const createMockConnectionDhtNode = async ( rpcRequestTimeout: 5000 } const node = new class extends DhtNode { - async stop(): Promise { + override async stop(): Promise { await super.stop() await mockConnectionManager.stop() } diff --git a/packages/dht/tsconfig.jest.json b/packages/dht/tsconfig.jest.json index a227c3edba..ebf2ebceba 100644 --- a/packages/dht/tsconfig.jest.json +++ b/packages/dht/tsconfig.jest.json @@ -1,16 +1,13 @@ { "extends": "../../tsconfig.jest.json", - "compilerOptions": { - "noImplicitOverride": false - }, "include": [ "src", - "generated", "test", "package.json", "scripts" ], "references": [ + { "path": "./tsconfig.proto.json" }, { "path": "../utils/tsconfig.node.json" }, { "path": "../test-utils/tsconfig.node.json" }, { "path": "../proto-rpc/tsconfig.node.json" }, diff --git a/packages/dht/tsconfig.karma.json b/packages/dht/tsconfig.karma.json index e1d0a37cc0..fa8692c9e0 100644 --- a/packages/dht/tsconfig.karma.json +++ b/packages/dht/tsconfig.karma.json @@ -2,10 +2,7 @@ "extends": "../../tsconfig.karma.json", "compilerOptions": { "outDir": "dist", - "types": [ - "jest", - "jest-extended" - ] + "types": ["jest", "jest-extended"] }, "include": [ "src", diff --git a/packages/dht/tsconfig.node.json b/packages/dht/tsconfig.node.json index 9adaea3779..4a73ff0585 100644 --- a/packages/dht/tsconfig.node.json +++ b/packages/dht/tsconfig.node.json @@ -1,15 +1,14 @@ { "extends": "../../tsconfig.node.json", "compilerOptions": { - "outDir": "dist", - "noImplicitOverride": false + "outDir": "dist" }, "include": [ "src", - "generated", "package.json" ], "references": [ + { "path": "./tsconfig.proto.json" }, { "path": "../utils/tsconfig.node.json" }, { "path": "../test-utils/tsconfig.node.json" }, { "path": "../proto-rpc/tsconfig.node.json" }, diff --git a/packages/dht/tsconfig.proto.json b/packages/dht/tsconfig.proto.json new file mode 100644 index 0000000000..16cd49bd0e --- /dev/null +++ b/packages/dht/tsconfig.proto.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.proto.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": [ + "generated" + ] +} diff --git a/packages/proto-rpc/package.json b/packages/proto-rpc/package.json index 59ff0f64a3..b053a17ece 100644 --- a/packages/proto-rpc/package.json +++ b/packages/proto-rpc/package.json @@ -18,8 +18,8 @@ "license": "(Apache-2.0 AND BSD-3-Clause)", "author": "Streamr Network AG ", "scripts": { - "prebuild": "./proto.sh", - "build": "tsc -b tsconfig.node.json", + "prebuild": "./proto.sh && ./test-proto.sh", + "build": "tsc -b tsconfig.node.json && tsc -b tsconfig.test-proto.json", "build-browser": "webpack --mode=development --progress", "check": "./test-proto.sh && tsc -p ./tsconfig.jest.json", "clean": "jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true", diff --git a/packages/proto-rpc/test-proto.sh b/packages/proto-rpc/test-proto.sh index 5c602334dd..bd35e64dcb 100755 --- a/packages/proto-rpc/test-proto.sh +++ b/packages/proto-rpc/test-proto.sh @@ -1,2 +1,9 @@ -mkdir -p ./test/proto -npx protoc --ts_out ./test/proto --ts_opt server_generic,generate_dependencies --proto_path test/protos test/protos/*.proto --experimental_allow_proto3_optional +# Run protoc only when test/protos exists (it's absent in Docker builds) +if [ -d ./test/protos ]; then + mkdir -p ./test/proto + npx protoc \ + --ts_out ./test/proto \ + --ts_opt server_generic,generate_dependencies \ + --proto_path test/protos test/protos/*.proto \ + --experimental_allow_proto3_optional +fi diff --git a/packages/proto-rpc/tsconfig.jest.json b/packages/proto-rpc/tsconfig.jest.json index c1b2113112..de17e3cec8 100644 --- a/packages/proto-rpc/tsconfig.jest.json +++ b/packages/proto-rpc/tsconfig.jest.json @@ -1,14 +1,15 @@ { "extends": "../../tsconfig.jest.json", - "compilerOptions": { - "noImplicitOverride": false - }, "include": [ "src", - "generated", "test" ], + "exclude": [ + "test/proto" + ], "references": [ + { "path": "./tsconfig.proto.json" }, + { "path": "./tsconfig.test-proto.json" }, { "path": "../utils/tsconfig.node.json" }, { "path": "../test-utils/tsconfig.node.json" } ] diff --git a/packages/proto-rpc/tsconfig.karma.json b/packages/proto-rpc/tsconfig.karma.json index f8f93ce799..fec2d7ecdd 100644 --- a/packages/proto-rpc/tsconfig.karma.json +++ b/packages/proto-rpc/tsconfig.karma.json @@ -2,9 +2,7 @@ "extends": "../../tsconfig.karma.json", "compilerOptions": { "outDir": "dist", - "types": [ - "jest" - ] + "types": ["jest"] }, "include": [ "src" diff --git a/packages/proto-rpc/tsconfig.node.json b/packages/proto-rpc/tsconfig.node.json index 8a784bac80..af1d2f7868 100644 --- a/packages/proto-rpc/tsconfig.node.json +++ b/packages/proto-rpc/tsconfig.node.json @@ -1,14 +1,13 @@ { "extends": "../../tsconfig.node.json", "compilerOptions": { - "outDir": "dist", - "noImplicitOverride": false + "outDir": "dist" }, "include": [ - "src", - "generated" + "src" ], "references": [ + { "path": "./tsconfig.proto.json" }, { "path": "../utils/tsconfig.node.json" } ] } diff --git a/packages/proto-rpc/tsconfig.proto.json b/packages/proto-rpc/tsconfig.proto.json new file mode 100644 index 0000000000..16cd49bd0e --- /dev/null +++ b/packages/proto-rpc/tsconfig.proto.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.proto.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": [ + "generated" + ] +} diff --git a/packages/proto-rpc/tsconfig.test-proto.json b/packages/proto-rpc/tsconfig.test-proto.json new file mode 100644 index 0000000000..fe7cc69acf --- /dev/null +++ b/packages/proto-rpc/tsconfig.test-proto.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.proto.json", + "compilerOptions": { + "emitDeclarationOnly": true + }, + "include": [ + "test/proto" + ] +} diff --git a/packages/sdk/src/identity/EthereumKeyPairIdentity.ts b/packages/sdk/src/identity/EthereumKeyPairIdentity.ts index 0a03c97208..e928eaea41 100644 --- a/packages/sdk/src/identity/EthereumKeyPairIdentity.ts +++ b/packages/sdk/src/identity/EthereumKeyPairIdentity.ts @@ -26,7 +26,7 @@ export class EthereumKeyPairIdentity extends KeyPairIdentity { return signingUtil.createSignature(payload, this.privateKey) } - async getTransactionSigner(rpcProviderSource: RpcProviderSource): Promise { + override async getTransactionSigner(rpcProviderSource: RpcProviderSource): Promise { const primaryProvider = rpcProviderSource.getProvider() return new Wallet(binaryToHex(this.privateKey), primaryProvider) as SignerWithProvider } diff --git a/packages/sdk/tsconfig.jest.json b/packages/sdk/tsconfig.jest.json index 59c7631e2f..9721f94084 100644 --- a/packages/sdk/tsconfig.jest.json +++ b/packages/sdk/tsconfig.jest.json @@ -3,8 +3,7 @@ "compilerOptions": { "lib": ["es2021", "dom"], "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "noImplicitOverride": false + "emitDecoratorMetadata": true }, "include": [ "package.json", @@ -16,10 +15,13 @@ "scripts" ], "exclude": [ + "src/generated/google", + "src/generated/packages", "test/exports", "src/exports-esm.mjs" ], "references": [ + { "path": "./tsconfig.proto.json" }, { "path": "../test-utils/tsconfig.node.json" }, { "path": "../dht/tsconfig.node.json" }, { "path": "../trackerless-network/tsconfig.node.json" } diff --git a/packages/sdk/tsconfig.node.json b/packages/sdk/tsconfig.node.json index 0e9591b2cf..dcecc65dd2 100644 --- a/packages/sdk/tsconfig.node.json +++ b/packages/sdk/tsconfig.node.json @@ -5,17 +5,19 @@ "declarationDir": "dist/types", "lib": ["es2021", "dom"], "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "noImplicitOverride": false + "emitDecoratorMetadata": true }, "include": [ "src", "src/**/*.json" ], "exclude": [ + "src/generated/google", + "src/generated/packages", "src/exports-esm.mjs" ], "references": [ + { "path": "./tsconfig.proto.json" }, { "path": "../test-utils/tsconfig.node.json" }, { "path": "../trackerless-network/tsconfig.node.json" }, { "path": "../dht/tsconfig.node.json" } diff --git a/packages/sdk/tsconfig.proto.json b/packages/sdk/tsconfig.proto.json new file mode 100644 index 0000000000..fca4cec775 --- /dev/null +++ b/packages/sdk/tsconfig.proto.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.proto.json", + "compilerOptions": { + "outDir": "dist", + "declarationDir": "dist/types" + }, + "include": [ + "src/generated/google", + "src/generated/packages" + ] +} diff --git a/packages/trackerless-network/tsconfig.jest.json b/packages/trackerless-network/tsconfig.jest.json index 15c903741d..51bb34badd 100644 --- a/packages/trackerless-network/tsconfig.jest.json +++ b/packages/trackerless-network/tsconfig.jest.json @@ -5,16 +5,15 @@ "node", "jest", "@streamr/test-utils/customMatcherTypes" - ], - "noImplicitOverride": false + ] }, "include": [ "src", - "generated", "test", "package.json" ], "references": [ + { "path": "./tsconfig.proto.json" }, { "path": "../proto-rpc/tsconfig.node.json" }, { "path": "../dht/tsconfig.node.json" } ] diff --git a/packages/trackerless-network/tsconfig.karma.json b/packages/trackerless-network/tsconfig.karma.json index 7e3aa6a7b8..e5c956bfcb 100644 --- a/packages/trackerless-network/tsconfig.karma.json +++ b/packages/trackerless-network/tsconfig.karma.json @@ -8,7 +8,6 @@ ] }, "include": [ - "src", - "generated" + "src" ] } diff --git a/packages/trackerless-network/tsconfig.node.json b/packages/trackerless-network/tsconfig.node.json index 91ca0871c5..698bbf2c55 100644 --- a/packages/trackerless-network/tsconfig.node.json +++ b/packages/trackerless-network/tsconfig.node.json @@ -1,17 +1,16 @@ { "extends": "../../tsconfig.node.json", "compilerOptions": { - "outDir": "dist", - "noImplicitOverride": false + "outDir": "dist" }, "include": [ "src", - "generated", "test/benchmark/first-message.ts", "test/utils/utils.ts", "package.json" ], "references": [ + { "path": "./tsconfig.proto.json" }, { "path": "../dht/tsconfig.node.json" } ] } diff --git a/packages/trackerless-network/tsconfig.proto.json b/packages/trackerless-network/tsconfig.proto.json new file mode 100644 index 0000000000..16cd49bd0e --- /dev/null +++ b/packages/trackerless-network/tsconfig.proto.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.proto.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": [ + "generated" + ] +} diff --git a/tsconfig.proto.json b/tsconfig.proto.json new file mode 100644 index 0000000000..ee7849f7fa --- /dev/null +++ b/tsconfig.proto.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.node.json", + "compilerOptions": { + "noImplicitOverride": false + } +}