tmp
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
21
packages/client/js-client.web.standalone/.gitignore
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
lerna-debug.log*
|
||||||
|
|
||||||
|
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||||
|
build/Release
|
||||||
|
bundle/
|
||||||
|
|
||||||
|
dist
|
||||||
|
esm
|
||||||
|
types
|
||||||
|
|
||||||
|
# Dependency directories
|
||||||
|
node_modules/
|
||||||
|
jspm_packages/
|
||||||
|
|
||||||
|
.idea
|
1
packages/client/js-client.web.standalone/.prettierignore
Normal file
@ -0,0 +1 @@
|
|||||||
|
/dist/
|
8
packages/client/js-client.web.standalone/.prettierrc.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
module.exports = {
|
||||||
|
semi: true,
|
||||||
|
trailingComma: "all",
|
||||||
|
singleQuote: true,
|
||||||
|
printWidth: 120,
|
||||||
|
tabWidth: 4,
|
||||||
|
useTabs: false
|
||||||
|
};
|
11
packages/client/js-client.web.standalone/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# JS Client web
|
||||||
|
|
||||||
|
This package is a part of FluenceJS, the official implementation of the Fluence Peer in typescript. See the [FluenceJS repo](https://github.com/fluencelabs/fluence-js) for more info
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
While the project is still in the early stages of development, you are welcome to track progress and contribute. As the project is undergoing rapid changes, interested contributors should contact the team before embarking on larger pieces of work. All contributors should consult with and agree to our [basic contributing rules](CONTRIBUTING.md).
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[Apache 2.0](LICENSE)
|
33
packages/client/js-client.web.standalone/package.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"name": "@fluencelabs/js-client.web.standalone",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"description": "TypeScript implementation of Fluence Peer",
|
||||||
|
"main": "./dist/index.js",
|
||||||
|
"typings": "./dist/index.d.ts",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10",
|
||||||
|
"pnpm": ">=3"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "webpack"
|
||||||
|
},
|
||||||
|
"repository": "https://github.com/fluencelabs/fluence-js",
|
||||||
|
"author": "Fluence Labs",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {},
|
||||||
|
"devDependencies": {
|
||||||
|
"js-base64": "3.7.3",
|
||||||
|
"webpack": "5.75.0",
|
||||||
|
"webpack-cli": "5.0.1",
|
||||||
|
"webpack-plugin-replace": "1.2.0",
|
||||||
|
"@fluencelabs/js-peer": "workspace:0.1.0",
|
||||||
|
"@fluencelabs/marine.deps-loader.web": "workspace:0.1.0",
|
||||||
|
"@fluencelabs/marine.background-runner": "workspace:0.1.0",
|
||||||
|
"@types/node": "16.11.59",
|
||||||
|
"@types/jest": "28.1.0",
|
||||||
|
"jest": "28.1.0",
|
||||||
|
"ts-jest": "28.0.2",
|
||||||
|
"ts-loader": "9.4.2",
|
||||||
|
"typescript": "4.6.4"
|
||||||
|
}
|
||||||
|
}
|
18
packages/client/js-client.web.standalone/src/index.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import { MarineBackgroundRunner } from '@fluencelabs/marine.background-runner';
|
||||||
|
import { MarineBasedAvmRunner } from '@fluencelabs/js-peer/dist/avm';
|
||||||
|
import { marineLogFunction } from '@fluencelabs/js-peer/dist/peerUtils';
|
||||||
|
import { FluencePeer } from '@fluencelabs/js-peer/dist/FluencePeer';
|
||||||
|
import { InlinedWorkerLoader, InlinedWasmLoader } from '@fluencelabs/marine.deps-loader.web';
|
||||||
|
|
||||||
|
export const makeDefaultPeer = () => {
|
||||||
|
const workerLoader = new InlinedWorkerLoader();
|
||||||
|
const controlModuleLoader = new InlinedWasmLoader('__marine__');
|
||||||
|
const avmModuleLoader = new InlinedWasmLoader('__avm__');
|
||||||
|
|
||||||
|
const marine = new MarineBackgroundRunner(workerLoader, controlModuleLoader, marineLogFunction);
|
||||||
|
const avm = new MarineBasedAvmRunner(marine, avmModuleLoader, undefined);
|
||||||
|
return new FluencePeer(marine, avm);
|
||||||
|
};
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
globalThis.defaultPeer = makeDefaultPeer();
|
21
packages/client/js-client.web.standalone/tsconfig.json
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "./dist/",
|
||||||
|
"baseUrl": ".",
|
||||||
|
"downlevelIteration": true,
|
||||||
|
"sourceMap": true,
|
||||||
|
"inlineSources": true,
|
||||||
|
"allowSyntheticDefaultImports": true,
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"target": "ES5",
|
||||||
|
"module": "commonjs",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"declaration": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"declarationMap": true,
|
||||||
|
"strict": true,
|
||||||
|
"skipLibCheck": true
|
||||||
|
},
|
||||||
|
"exclude": ["node_modules", "dist", "bundle"],
|
||||||
|
"include": ["src/**/*"]
|
||||||
|
}
|
42
packages/client/js-client.web.standalone/webpack.config.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
// Generated using webpack-cli https://github.com/webpack/webpack-cli
|
||||||
|
|
||||||
|
const path = require('path');
|
||||||
|
const ReplacePlugin = require('webpack-plugin-replace');
|
||||||
|
|
||||||
|
const mode = 'production';
|
||||||
|
|
||||||
|
const config = () => ({
|
||||||
|
mode: mode,
|
||||||
|
entry: './src/index.ts',
|
||||||
|
output: {
|
||||||
|
path: path.resolve('dist'),
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
test: /\.(js|ts|tsx)$/i,
|
||||||
|
use: [
|
||||||
|
{
|
||||||
|
loader: 'ts-loader',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
exclude: ['/node_modules/'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
extensions: ['.tsx', '.ts', '.js'],
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
new ReplacePlugin({
|
||||||
|
values: {
|
||||||
|
__marine__: '10',
|
||||||
|
__avm__: '20',
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = () => {
|
||||||
|
return config();
|
||||||
|
};
|
@ -2,7 +2,7 @@ import { BlobWorker, Worker } from 'threads';
|
|||||||
import { Buffer } from 'buffer';
|
import { Buffer } from 'buffer';
|
||||||
import { LazyLoader } from '@fluencelabs/interfaces';
|
import { LazyLoader } from '@fluencelabs/interfaces';
|
||||||
import type { WorkerImplementation } from 'threads/dist/types/master';
|
import type { WorkerImplementation } from 'threads/dist/types/master';
|
||||||
import { fromBase64 } from 'js-base64';
|
import { toUint8Array, fromBase64 } from 'js-base64';
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import b64script from './marine-js.b64.web';
|
import b64script from './marine-js.b64.web';
|
||||||
|
|
||||||
@ -44,6 +44,15 @@ export class WasmWebLoader extends LazyLoader<SharedArrayBuffer | Buffer> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class InlinedWasmLoader extends LazyLoader<SharedArrayBuffer | Buffer> {
|
||||||
|
constructor(b64Content: string) {
|
||||||
|
super(() => {
|
||||||
|
const content = toUint8Array(b64Content);
|
||||||
|
return Buffer.from(content);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class InlinedWorkerLoader extends LazyLoader<WorkerImplementation> {
|
export class InlinedWorkerLoader extends LazyLoader<WorkerImplementation> {
|
||||||
constructor() {
|
constructor() {
|
||||||
super(() => {
|
super(() => {
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"buffer": "6.0.3",
|
"buffer": "6.0.3",
|
||||||
"process": "0.11.10",
|
"process": "0.11.10",
|
||||||
"webpack-plugin-replace": "1.2.0",
|
|
||||||
"@types/node": "16.11.59",
|
"@types/node": "16.11.59",
|
||||||
"ts-loader": "8.4.0",
|
"ts-loader": "8.4.0",
|
||||||
"typescript": "^4.6.4",
|
"typescript": "^4.6.4",
|
||||||
|
131
pnpm-lock.yaml
generated
@ -2,6 +2,47 @@ lockfileVersion: 5.4
|
|||||||
|
|
||||||
importers:
|
importers:
|
||||||
|
|
||||||
|
packages/@tests/frameworks/react:
|
||||||
|
specifiers:
|
||||||
|
'@fluencelabs/aqua': 0.8.0-368
|
||||||
|
'@fluencelabs/aqua-lib': 0.6.0
|
||||||
|
'@fluencelabs/compiler-support': workspace:*
|
||||||
|
'@fluencelabs/fluence-network-environment': ^1.0.13
|
||||||
|
'@fluencelabs/js-client.web': workspace:*
|
||||||
|
'@fluencelabs/tools': workspace:*
|
||||||
|
'@testing-library/jest-dom': ^5.16.5
|
||||||
|
'@testing-library/react': ^13.4.0
|
||||||
|
'@testing-library/user-event': ^13.5.0
|
||||||
|
'@types/jest': ^27.5.2
|
||||||
|
'@types/node': 16.11.59
|
||||||
|
'@types/react': ^18.0.18
|
||||||
|
'@types/react-dom': ^18.0.6
|
||||||
|
react: ^18.2.0
|
||||||
|
react-dom: ^18.2.0
|
||||||
|
react-scripts: 5.0.1
|
||||||
|
typescript: ^4.8.2
|
||||||
|
web-vitals: ^2.1.4
|
||||||
|
dependencies:
|
||||||
|
'@fluencelabs/compiler-support': link:../../../client/compiler-support
|
||||||
|
'@fluencelabs/fluence-network-environment': 1.0.13
|
||||||
|
'@fluencelabs/js-client.web': link:../../../client/js-client.web
|
||||||
|
'@testing-library/jest-dom': 5.16.5
|
||||||
|
'@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y
|
||||||
|
'@testing-library/user-event': 13.5.0_yxlyej73nftwmh2fiao7paxmlm
|
||||||
|
'@types/jest': 27.5.2
|
||||||
|
'@types/node': 16.11.59
|
||||||
|
'@types/react': 18.0.26
|
||||||
|
'@types/react-dom': 18.0.10
|
||||||
|
react: 18.2.0
|
||||||
|
react-dom: 18.2.0_react@18.2.0
|
||||||
|
react-scripts: 5.0.1_suhoixrbctjhyfojppfjnc4z4y
|
||||||
|
typescript: 4.9.4
|
||||||
|
web-vitals: 2.1.4
|
||||||
|
devDependencies:
|
||||||
|
'@fluencelabs/aqua': 0.8.0-368_6ufwt3jpv5t55s2rz2aorqe75e
|
||||||
|
'@fluencelabs/aqua-lib': 0.6.0
|
||||||
|
'@fluencelabs/tools': link:../../../client/tools
|
||||||
|
|
||||||
packages/@tests/marine/node:
|
packages/@tests/marine/node:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@fluencelabs/avm': 0.32.1
|
'@fluencelabs/avm': 0.32.1
|
||||||
@ -76,47 +117,6 @@ importers:
|
|||||||
webpack-cli: 4.10.0_6e633uucef4eifwu2eev7m6e4m
|
webpack-cli: 4.10.0_6e633uucef4eifwu2eev7m6e4m
|
||||||
webpack-dev-server: 4.11.1_pda42hcaj7d62cr262fr632kue
|
webpack-dev-server: 4.11.1_pda42hcaj7d62cr262fr632kue
|
||||||
|
|
||||||
packages/@tests/react_test:
|
|
||||||
specifiers:
|
|
||||||
'@fluencelabs/aqua': 0.8.0-368
|
|
||||||
'@fluencelabs/aqua-lib': 0.6.0
|
|
||||||
'@fluencelabs/compiler-support': workspace:*
|
|
||||||
'@fluencelabs/fluence-network-environment': ^1.0.13
|
|
||||||
'@fluencelabs/js-client.web': workspace:*
|
|
||||||
'@fluencelabs/tools': workspace:*
|
|
||||||
'@testing-library/jest-dom': ^5.16.5
|
|
||||||
'@testing-library/react': ^13.4.0
|
|
||||||
'@testing-library/user-event': ^13.5.0
|
|
||||||
'@types/jest': ^27.5.2
|
|
||||||
'@types/node': 16.11.59
|
|
||||||
'@types/react': ^18.0.18
|
|
||||||
'@types/react-dom': ^18.0.6
|
|
||||||
react: ^18.2.0
|
|
||||||
react-dom: ^18.2.0
|
|
||||||
react-scripts: 5.0.1
|
|
||||||
typescript: ^4.8.2
|
|
||||||
web-vitals: ^2.1.4
|
|
||||||
dependencies:
|
|
||||||
'@fluencelabs/compiler-support': link:../../client/compiler-support
|
|
||||||
'@fluencelabs/fluence-network-environment': 1.0.13
|
|
||||||
'@fluencelabs/js-client.web': link:../../client/js-client.web
|
|
||||||
'@testing-library/jest-dom': 5.16.5
|
|
||||||
'@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y
|
|
||||||
'@testing-library/user-event': 13.5.0_yxlyej73nftwmh2fiao7paxmlm
|
|
||||||
'@types/jest': 27.5.2
|
|
||||||
'@types/node': 16.11.59
|
|
||||||
'@types/react': 18.0.26
|
|
||||||
'@types/react-dom': 18.0.10
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0_react@18.2.0
|
|
||||||
react-scripts: 5.0.1_suhoixrbctjhyfojppfjnc4z4y
|
|
||||||
typescript: 4.9.4
|
|
||||||
web-vitals: 2.1.4
|
|
||||||
devDependencies:
|
|
||||||
'@fluencelabs/aqua': 0.8.0-368_6ufwt3jpv5t55s2rz2aorqe75e
|
|
||||||
'@fluencelabs/aqua-lib': 0.6.0
|
|
||||||
'@fluencelabs/tools': link:../../client/tools
|
|
||||||
|
|
||||||
packages/@tests/smoke:
|
packages/@tests/smoke:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@fluencelabs/fluence': workspace:*
|
'@fluencelabs/fluence': workspace:*
|
||||||
@ -224,6 +224,38 @@ importers:
|
|||||||
ts-node: 10.9.1_f4s53rsdbgkmxc2oaa23drhnsy
|
ts-node: 10.9.1_f4s53rsdbgkmxc2oaa23drhnsy
|
||||||
typescript: 4.6.4
|
typescript: 4.6.4
|
||||||
|
|
||||||
|
packages/client/js-client.web.standalone:
|
||||||
|
specifiers:
|
||||||
|
'@fluencelabs/js-peer': workspace:0.1.0
|
||||||
|
'@fluencelabs/marine.background-runner': workspace:0.1.0
|
||||||
|
'@fluencelabs/marine.deps-loader.web': workspace:0.1.0
|
||||||
|
'@types/jest': 28.1.0
|
||||||
|
'@types/node': 16.11.59
|
||||||
|
jest: 28.1.0
|
||||||
|
js-base64: 3.7.3
|
||||||
|
ts-jest: 28.0.2
|
||||||
|
ts-loader: 9.4.2
|
||||||
|
ts-node: 10.9.1
|
||||||
|
typescript: 4.6.4
|
||||||
|
webpack: 5.75.0
|
||||||
|
webpack-cli: 5.0.1
|
||||||
|
webpack-plugin-replace: 1.2.0
|
||||||
|
devDependencies:
|
||||||
|
'@fluencelabs/js-peer': link:../../core/js-peer
|
||||||
|
'@fluencelabs/marine.background-runner': link:../../marine/background-runner
|
||||||
|
'@fluencelabs/marine.deps-loader.web': link:../../marine/deps-loader.web
|
||||||
|
'@types/jest': 28.1.0
|
||||||
|
'@types/node': 16.11.59
|
||||||
|
jest: 28.1.0_4echt27za7uk6ezjshmbxcfmgy
|
||||||
|
js-base64: 3.7.3
|
||||||
|
ts-jest: 28.0.2_vibqa5hxa5biq5fwuxzv5iobty
|
||||||
|
ts-loader: 9.4.2_ot4tevpsagasia5fdh7emkeuyq
|
||||||
|
ts-node: 10.9.1_f4s53rsdbgkmxc2oaa23drhnsy
|
||||||
|
typescript: 4.6.4
|
||||||
|
webpack: 5.75.0_webpack-cli@5.0.1
|
||||||
|
webpack-cli: 5.0.1_webpack@5.75.0
|
||||||
|
webpack-plugin-replace: 1.2.0
|
||||||
|
|
||||||
packages/client/tools:
|
packages/client/tools:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@fluencelabs/marine.worker-script': workspace:*
|
'@fluencelabs/marine.worker-script': workspace:*
|
||||||
@ -444,7 +476,6 @@ importers:
|
|||||||
typescript: ^4.6.4
|
typescript: ^4.6.4
|
||||||
webpack: 5.75.0
|
webpack: 5.75.0
|
||||||
webpack-cli: 5.0.1
|
webpack-cli: 5.0.1
|
||||||
webpack-plugin-replace: 1.2.0
|
|
||||||
dependencies:
|
dependencies:
|
||||||
'@fluencelabs/marine-js': 0.3.38
|
'@fluencelabs/marine-js': 0.3.38
|
||||||
threads: 1.7.0
|
threads: 1.7.0
|
||||||
@ -456,7 +487,6 @@ importers:
|
|||||||
typescript: 4.7.4
|
typescript: 4.7.4
|
||||||
webpack: 5.75.0_webpack-cli@5.0.1
|
webpack: 5.75.0_webpack-cli@5.0.1
|
||||||
webpack-cli: 5.0.1_webpack@5.75.0
|
webpack-cli: 5.0.1_webpack@5.75.0
|
||||||
webpack-plugin-replace: 1.2.0
|
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@ -16256,6 +16286,21 @@ packages:
|
|||||||
webpack: 5.75.0_webpack-cli@5.0.1
|
webpack: 5.75.0_webpack-cli@5.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/ts-loader/9.4.2_ot4tevpsagasia5fdh7emkeuyq:
|
||||||
|
resolution: {integrity: sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==}
|
||||||
|
engines: {node: '>=12.0.0'}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '*'
|
||||||
|
webpack: ^5.0.0
|
||||||
|
dependencies:
|
||||||
|
chalk: 4.1.2
|
||||||
|
enhanced-resolve: 5.12.0
|
||||||
|
micromatch: 4.0.5
|
||||||
|
semver: 7.3.8
|
||||||
|
typescript: 4.6.4
|
||||||
|
webpack: 5.75.0_webpack-cli@5.0.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/ts-node/10.9.1_apbkdfxvcdmborgupeskcsfbo4:
|
/ts-node/10.9.1_apbkdfxvcdmborgupeskcsfbo4:
|
||||||
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|