Skip to content
This repository was archived by the owner on Jul 10, 2025. It is now read-only.

Commit d4bb8fb

Browse files
authored
feat!: Expose updated JS Client API via js-client.api package (#246)
1 parent 9667c4f commit d4bb8fb

File tree

25 files changed

+867
-573
lines changed

25 files changed

+867
-573
lines changed

.github/workflows/tests.yml

Lines changed: 34 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
name: Run tests with worflow_call
1+
name: Run tests
2+
3+
defaults:
4+
run:
5+
working-directory: .
26

37
on:
48
workflow_call:
@@ -30,83 +34,32 @@ jobs:
3034
name: "Run tests"
3135
runs-on: ubuntu-latest
3236

33-
permissions:
34-
contents: read
35-
id-token: write
36-
37-
strategy:
38-
matrix:
39-
node-version:
40-
- 16.x
41-
- 17.x
42-
43-
steps:
44-
- name: Import secrets
45-
uses: hashicorp/[email protected]
46-
with:
47-
url: https://vault.fluence.dev
48-
path: jwt/github
49-
role: ci
50-
method: jwt
51-
jwtGithubAudience: "https://github.com/fluencelabs"
52-
jwtTtl: 300
53-
secrets: |
54-
kv/docker-registry/basicauth/ci username | DOCKER_USERNAME ;
55-
kv/docker-registry/basicauth/ci password | DOCKER_PASSWORD
56-
57-
- name: Login to DockerHub
58-
uses: docker/login-action@v2
59-
with:
60-
registry: docker.fluence.dev
61-
username: ${{ env.DOCKER_USERNAME }}
62-
password: ${{ env.DOCKER_PASSWORD }}
63-
64-
- name: Checkout
65-
uses: actions/checkout@v3
66-
with:
67-
repository: fluencelabs/fluence-js
68-
ref: ${{ inputs.ref }}
69-
70-
- name: Pull rust-peer image
71-
run: docker pull $RUST_PEER_IMAGE
72-
73-
- name: Run rust-peer
74-
uses: isbang/[email protected]
75-
with:
76-
compose-file: ".github/e2e/docker-compose.yml"
77-
down-flags: "--volumes"
78-
79-
- name: Setup pnpm
80-
uses: pnpm/[email protected]
81-
with:
82-
version: 7
83-
84-
- name: Setup node ${{ matrix.node-version }} with self-hosted registry
85-
uses: actions/setup-node@v3
86-
with:
87-
node-version: ${{ matrix.node-version }}
88-
registry-url: "https://npm.fluence.dev"
89-
cache: "pnpm"
90-
91-
- run: pnpm i
92-
93-
- name: Set avm version
94-
if: inputs.avm-version != 'null'
95-
uses: fluencelabs/github-actions/npm-set-dependency@main
96-
with:
97-
package: "@fluencelabs/avm"
98-
version: ${{ inputs.avm-version }}
99-
working-directory: packages/fluence-js
100-
package-manager: pnpm
101-
102-
- name: Set marine-js version
103-
if: inputs.marine-js-version != 'null'
104-
uses: fluencelabs/github-actions/npm-set-dependency@main
105-
with:
106-
package: "@fluencelabs/marine-js"
107-
version: ${{ inputs.marine-js-version }}
108-
working-directory: packages/fluence-js
109-
package-manager: pnpm
110-
111-
- run: pnpm -r build
112-
- run: pnpm -r test
37+
strategy:
38+
matrix:
39+
node-version: [16.x, 17.x, 18.x]
40+
41+
steps:
42+
- uses: actions/checkout@v2
43+
44+
- name: Setup Node.js ${{ matrix.node-version }}
45+
uses: actions/setup-node@v1
46+
with:
47+
node-version: ${{ matrix.node-version }}
48+
49+
- name: Setup pnpm
50+
uses: pnpm/[email protected]
51+
with:
52+
version: 7
53+
54+
- name: Run container with Fluence node
55+
run: |
56+
docker pull fluencelabs/fluence
57+
docker run -d --rm -e RUST_LOG="info" -p 1210:1210 -p 4310:4310 fluencelabs/fluence -t 1210 -w 4310 -k gKdiCSUr1TFGFEgu2t8Ch1XEUsrN5A2UfBLjSZvfci9SPR3NvZpACfcpPGC3eY4zma1pk7UvYv5zb1VjvPHwCjj --local --aqua-pool-size 2
58+
59+
- run: pnpm i
60+
- run: pnpm -r build
61+
env:
62+
CI: true
63+
- run: pnpm -r test
64+
env:
65+
CI: true

.github/workflows/tests.yml.disabled

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
name: Run tests with worflow_call
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
rust-peer-image:
7+
description: "rust-peer image tag"
8+
type: string
9+
default: "fluencelabs/fluence:minimal"
10+
avm-version:
11+
description: "@fluencelabs/avm version"
12+
type: string
13+
default: "null"
14+
marine-js-version:
15+
description: "@fluencelabs/marine-js version"
16+
type: string
17+
default: "null"
18+
ref:
19+
description: "git ref to checkout to"
20+
type: string
21+
default: "master"
22+
23+
env:
24+
RUST_PEER_IMAGE: "${{ inputs.rust-peer-image }}"
25+
FORCE_COLOR: true
26+
CI: true
27+
28+
jobs:
29+
fluence-js:
30+
name: "Run tests"
31+
runs-on: ubuntu-latest
32+
33+
permissions:
34+
contents: read
35+
id-token: write
36+
37+
strategy:
38+
matrix:
39+
node-version:
40+
- 16.x
41+
- 17.x
42+
43+
steps:
44+
- name: Import secrets
45+
uses: hashicorp/[email protected]
46+
with:
47+
url: https://vault.fluence.dev
48+
path: jwt/github
49+
role: ci
50+
method: jwt
51+
jwtGithubAudience: "https://github.com/fluencelabs"
52+
jwtTtl: 300
53+
secrets: |
54+
kv/docker-registry/basicauth/ci username | DOCKER_USERNAME ;
55+
kv/docker-registry/basicauth/ci password | DOCKER_PASSWORD
56+
57+
- name: Login to DockerHub
58+
uses: docker/login-action@v2
59+
with:
60+
registry: docker.fluence.dev
61+
username: ${{ env.DOCKER_USERNAME }}
62+
password: ${{ env.DOCKER_PASSWORD }}
63+
64+
- name: Checkout
65+
uses: actions/checkout@v3
66+
with:
67+
repository: fluencelabs/fluence-js
68+
ref: ${{ inputs.ref }}
69+
70+
- name: Pull rust-peer image
71+
run: docker pull $RUST_PEER_IMAGE
72+
73+
- name: Run rust-peer
74+
uses: isbang/[email protected]
75+
with:
76+
compose-file: ".github/e2e/docker-compose.yml"
77+
down-flags: "--volumes"
78+
79+
- name: Setup pnpm
80+
uses: pnpm/[email protected]
81+
with:
82+
version: 7
83+
84+
- name: Setup node ${{ matrix.node-version }} with self-hosted registry
85+
uses: actions/setup-node@v3
86+
with:
87+
node-version: ${{ matrix.node-version }}
88+
registry-url: "https://npm.fluence.dev"
89+
cache: "pnpm"
90+
91+
- run: pnpm i
92+
93+
- name: Set avm version
94+
if: inputs.avm-version != 'null'
95+
uses: fluencelabs/github-actions/npm-set-dependency@main
96+
with:
97+
package: "@fluencelabs/avm"
98+
version: ${{ inputs.avm-version }}
99+
working-directory: packages/fluence-js
100+
package-manager: pnpm
101+
102+
- name: Set marine-js version
103+
if: inputs.marine-js-version != 'null'
104+
uses: fluencelabs/github-actions/npm-set-dependency@main
105+
with:
106+
package: "@fluencelabs/marine-js"
107+
version: ${{ inputs.marine-js-version }}
108+
working-directory: packages/fluence-js
109+
package-manager: pnpm
110+
111+
- run: pnpm -r build
112+
- run: pnpm -r test

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@
1313
},
1414
"author": "Fluence Labs",
1515
"license": "Apache-2.0",
16-
"dependencies": {},
1716
"devDependencies": {
1817
"http-server": "14.1.1",
19-
"@types/node": "16.11.59",
18+
"@types/node": "18.13.0",
2019
"ts-node": "10.9.1",
2120
"typescript": "4.7",
2221
"@fluencelabs/aqua-lib": "0.6.0",

packages/@tests/aqua/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"author": "Fluence Labs",
1818
"license": "Apache-2.0",
1919
"dependencies": {
20-
"@fluencelabs/fluence": "workspace:0.60.0",
20+
"@fluencelabs/js-client.api": "0.10.0",
2121
"@fluencelabs/fluence-network-environment": "1.0.13",
2222
"base64-js": "1.5.1"
2323
},

packages/@tests/aqua/src/_aqua/smoke_test.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
* Aqua version: 0.9.4
77
*
88
*/
9-
import { FluencePeer } from '@fluencelabs/fluence';
10-
import type { CallParams$$ } from '@fluencelabs/fluence/dist/internal/compilerSupport/v4';
11-
import { callFunction$$, registerService$$ } from '@fluencelabs/fluence/dist/internal/compilerSupport/v4';
9+
10+
// eslint-disable
11+
//ts-nocheck
12+
import type { IFluenceClient as IFluenceClient$$, CallParams as CallParams$$ } from '@fluencelabs/js-client.api';
13+
import { v5_callFunction as callFunction$$, v5_registerService as registerService$$ } from '@fluencelabs/js-client.api';
1214

1315
// Services
1416

@@ -17,7 +19,7 @@ import { callFunction$$, registerService$$ } from '@fluencelabs/fluence/dist/int
1719
export type SmokeTestResult = [string | null, string[]];
1820
export function smokeTest(label: string, config?: { ttl?: number }): Promise<SmokeTestResult>;
1921

20-
export function smokeTest(peer: FluencePeer, label: string, config?: { ttl?: number }): Promise<SmokeTestResult>;
22+
export function smokeTest(peer: IFluenceClient$$, label: string, config?: { ttl?: number }): Promise<SmokeTestResult>;
2123

2224
export function smokeTest(...args: any) {
2325
let script = `

packages/@tests/aqua/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { fromByteArray } from 'base64-js';
2-
import { Fluence } from '@fluencelabs/fluence';
2+
import { Fluence } from '@fluencelabs/js-client.api';
33
import { krasnodar } from '@fluencelabs/fluence-network-environment';
44
import { smokeTest } from './_aqua/smoke_test.js';
55

packages/@tests/frameworks/cra-ts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "0.1.0",
44
"private": true,
55
"dependencies": {
6-
"@fluencelabs/fluence": "workspace:0.60.0",
6+
"@fluencelabs/js-client.api": "0.10.0",
77
"@test/aqua_for_test": "workspace:*",
88
"@testing-library/jest-dom": "5.16.5",
99
"@testing-library/react": "13.4.0",

packages/@tests/smoke_node/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"author": "Fluence Labs",
1818
"license": "Apache-2.0",
1919
"dependencies": {
20-
"@fluencelabs/fluence": "workspace:0.60.0",
20+
"@fluencelabs/js-client.api": "0.10.0",
2121
"@fluencelabs/js-client.node": "0.1.0",
2222
"@test/aqua_for_test": "workspace:*"
2323
},

packages/client/api/dtsbundle.cjs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// @ts-check
2+
3+
// If won't use `@ts-check` - just remove that comments (with `@type` JSDoc below).
4+
5+
/** @type import('dts-bundle-generator/config-schema').OutputOptions */
6+
const commonOutputParams = {
7+
inlineDeclareGlobals: false,
8+
sortNodes: true,
9+
};
10+
11+
/** @type import('dts-bundle-generator/config-schema').BundlerConfig */
12+
const config = {
13+
compilationOptions: {
14+
preferredConfigPath: './tsconfig.json',
15+
},
16+
17+
entries: [
18+
{
19+
filePath: './src/index.ts',
20+
outFile: './dist/index.d.ts',
21+
noCheck: false,
22+
23+
libraries: {
24+
importedLibraries: ['node', '@types/node'],
25+
inlinedLibraries: ['@fluencelabs/avm', '@fluencelabs/marine-js'],
26+
},
27+
28+
output: commonOutputParams,
29+
},
30+
],
31+
};
32+
33+
module.exports = config;

0 commit comments

Comments
 (0)