feat!: Unify all packages (#327)

* * Separate marine worker as a package
* Trying to fix tests

* Finalizing test fixes

* fix: rename back to Fluence CLI (#320)

chore: rename back to Fluence CLI

* fix(deps): update dependency @fluencelabs/avm to v0.43.1 (#322)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: release master (#324)

* chore: release master

* chore: Regenerate pnpm lock file

* feat: use marine-js 0.7.2 (#321)

* use marine-js 0.5.0

* increace some timeouts

* increace some timeouts

* use latest marine + remove larger timeouts

* propagate CallParameters type

* use marine 0.7.2

* Temp use node 18 and 20

* Comment out node 20.x

---------

Co-authored-by: Anatoly Laskaris <github_me@nahsi.dev>

* chore: Fix test with node 18/20 error message (#323)

* Fix test with node 18/20 error message

* Run tests on node 18 and 20

* Enhance description

* Fix type and obj property

---------

Co-authored-by: Anatoly Laskaris <github_me@nahsi.dev>

* * Separate marine worker as a package
* Trying to fix tests

* Finalizing test fixes

* * Refactoring packages.
* Using CDN to load .wasm deps.
* Setting up tests for new architecture

* Fix almost all tests

* Fix last strange test

* Remove package specific packages

* Remove avm class as it looks excessive

* marine worker new version

* misc refactoring/remove console.log's

* Rename package js-peer to js-client

* Move service info to marine worker

* Change CDN path

* Fix worker race confition

* Remove buffer type

* Remove turned off headless mode in platform tests

* Remove async keyword to make tests pass

* Remove util package

* Make js-client.api package just reexport interface from js-client main package

* Update package info in CI

* Fix review comments

* Remove test entry from marine-worker package

* Misc fixes

* Fix worker type

* Add fetchers

* Specify correct versions for js-client package

* Set first ver for js-client

* Update libp2p and related dep versions to the latest

* Build all deps into package itself

* Fix review

* Refine package

* Fix comment

* Update packages/core/js-client/src/fetchers/browser.ts

* Update packages/core/js-client/src/fetchers/index.ts

* Update packages/core/js-client/src/fetchers/node.ts

* Update packages/core/js-client/src/jsPeer/FluencePeer.ts

* Update packages/core/js-client/src/keypair/__test__/KeyPair.spec.ts

* Update packages/core/js-client/src/jsPeer/FluencePeer.ts

Co-authored-by: shamsartem <shamsartem@gmail.com>

* Delete outdated file

* Need types for build to work

* Inline func call

* Add comments to replacement lines.
P.S. we can remove some of them after update libp2p

---------

Co-authored-by: shamsartem <shamsartem@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: fluencebot <116741523+fluencebot@users.noreply.github.com>
Co-authored-by: Valery Antopol <valery.antopol@gmail.com>
Co-authored-by: Anatoly Laskaris <github_me@nahsi.dev>
This commit is contained in:
Akim
2023-08-25 00:15:49 +07:00
committed by GitHub
parent 2d2f5591cf
commit 97c24918d8
130 changed files with 3350 additions and 3119 deletions

View File

@ -18,6 +18,7 @@
"license": "Apache-2.0",
"dependencies": {
"@fluencelabs/js-client.api": "workspace:^",
"@fluencelabs/js-client": "workspace:^",
"base64-js": "1.5.1"
},
"devDependencies": {

View File

@ -1,6 +1,6 @@
import { fromByteArray } from 'base64-js';
import { Fluence } from '@fluencelabs/js-client.api';
import type { ClientConfig } from '@fluencelabs/js-client.api';
import { Fluence } from '@fluencelabs/js-client';
import type { ClientConfig } from '@fluencelabs/js-client';
import { registerHelloWorld, helloTest, marineTest, resourceTest } from './_aqua/smoke_test.js';
import { wasm } from './wasmb64.js';

View File

@ -17,9 +17,7 @@
"author": "Fluence Labs",
"license": "Apache-2.0",
"dependencies": {
"@fluencelabs/js-client.api": "workspace:^",
"@fluencelabs/js-client.node": "workspace:^",
"@test/aqua_for_test": "workspace:^"
},
"devDependencies": {}
"@fluencelabs/js-client": "workspace:*",
"@test/aqua_for_test": "workspace:../../aqua"
}
}

View File

@ -1,4 +1,4 @@
import '@fluencelabs/js-client.node';
import '@fluencelabs/js-client';
import { runTest } from '@test/aqua_for_test';
runTest().then(() => console.log('Smoke tests succeed!'));

View File

@ -7,7 +7,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Web site created using create-react-app" />
<script src='http://localhost:8766/js-client.min.js' async></script>
<!-- Ideally we want to use 'async' here. Currently, it's not supported. -->
<script src="js-client.min.js"></script>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a

View File

@ -2,7 +2,8 @@ import puppeteer from 'puppeteer';
import { dirname, join } from 'path';
import { fileURLToPath } from 'url';
import { startCdn, startContentServer, stopServer } from '@test/test-utils';
import { CDN_PUBLIC_PATH, startContentServer, stopServer } from '@test/test-utils';
import { access, symlink } from 'fs/promises';
const port = 3001;
const uri = `http://localhost:${port}/`;
@ -10,12 +11,16 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
const publicPath = join(__dirname, '../build/');
const test = async () => {
const cdn = await startCdn(8766);
const localServer = await startContentServer(port, publicPath);
try {
await access(join(publicPath, 'source'))
} catch {
await symlink(CDN_PUBLIC_PATH, join(publicPath, 'source'));
}
console.log('starting puppeteer...');
const browser = await puppeteer.launch();
const page = await browser.newPage();
const browser = await puppeteer.launch({ headless: false });
const page = (await browser.pages())[0];
// uncomment to debug what's happening inside the browser
// page.on('console', (msg) => console.log('// from console: ', msg.text()));
@ -34,7 +39,6 @@ const test = async () => {
console.log('raw result: ', content);
await browser.close();
await stopServer(cdn);
await stopServer(localServer);
if (!content) {

View File

@ -19,8 +19,8 @@
"author": "Fluence Labs",
"license": "Apache-2.0",
"dependencies": {
"@fluencelabs/js-client.web.standalone": "workspace:^",
"@test/test-utils": "workspace:^"
"@fluencelabs/js-client": "workspace:^",
"@test/test-utils": "workspace:../../test-utils"
},
"devDependencies": {}
}

View File

@ -16,8 +16,8 @@
<div id="res-placeholder"></div>
<script src='http://localhost:8765/js-client.min.js'></script>
<script src="./index.js"></script>
<script src="js-client.min.js"></script>
<script src="index.js"></script>
</main>
</body>

View File

@ -84,7 +84,7 @@ const getRelayTime = () => {
const main = async () => {
console.log('starting fluence...');
await fluence.defaultClient.connect(relay);
fluence.defaultClient = await fluence.clientFactory(relay);
console.log('started fluence');
console.log('getting relay time...');
@ -104,7 +104,7 @@ btn.addEventListener('click', () => {
main().then((res) => {
const inner = document.createElement('div');
inner.id = 'res';
inner.innerText = 'res';
inner.innerText = res;
document.getElementById('res-placeholder').appendChild(inner);
});
});

View File

@ -2,7 +2,8 @@ import puppeteer from 'puppeteer';
import { dirname, join } from 'path';
import { fileURLToPath } from 'url';
import { startCdn, startContentServer, stopServer } from '@test/test-utils';
import { CDN_PUBLIC_PATH, startCdn, startContentServer, stopServer } from '@test/test-utils';
import { symlink, access } from 'fs/promises';
const port = 3000;
const uri = `http://localhost:${port}/`;
@ -10,12 +11,16 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
const publicPath = join(__dirname, '../public/');
const test = async () => {
const cdn = await startCdn(8765);
const localServer = await startContentServer(port, publicPath);
try {
await access(join(publicPath, 'source'))
} catch {
await symlink(CDN_PUBLIC_PATH, join(publicPath, 'source'));
}
console.log('starting puppeteer...');
const browser = await puppeteer.launch();
const page = await browser.newPage();
const page = (await browser.pages())[0];
// uncomment to debug what's happening inside the browser
// page.on('console', (msg) => console.log('// from console: ', msg.text()));
@ -34,7 +39,6 @@ const test = async () => {
console.log('raw result: ', content);
await browser.close();
await stopServer(cdn);
await stopServer(localServer);
if (!content) {

View File

@ -16,8 +16,6 @@
"author": "Fluence Labs",
"license": "Apache-2.0",
"dependencies": {
"@fluencelabs/js-client.api": "workspace:^",
"@fluencelabs/js-client.node": "workspace:^",
"serve-handler": "6.1.5"
},
"devDependencies": {

View File

@ -7,7 +7,7 @@ import { fileURLToPath } from 'url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const CDN_PUBLIC_PATH = join(__dirname, '../../../client/js-client.web.standalone/dist/');
export const CDN_PUBLIC_PATH = join(__dirname, '../../../core/js-client/dist/browser');
export const startCdn = (port: number) => startContentServer(port, CDN_PUBLIC_PATH);
@ -15,6 +15,17 @@ export const startContentServer = (port: number, publicDir: string): Promise<Ser
const server = createServer((request, response) => {
return handler(request, response, {
public: publicDir,
rewrites: [{
source: '/js-client.min.js',
destination: '/source/index.umd.cjs'
}],
headers: [{
source: '**/*',
headers: [
{ key: 'Cross-Origin-Opener-Policy', value: 'same-origin' },
{ key: 'Cross-Origin-Embedder-Policy', value: 'require-corp' }
]
}]
});
});