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 { LazyLoader } from '@fluencelabs/interfaces';
|
||||
import type { WorkerImplementation } from 'threads/dist/types/master';
|
||||
import { fromBase64 } from 'js-base64';
|
||||
import { toUint8Array, fromBase64 } from 'js-base64';
|
||||
// @ts-ignore
|
||||
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> {
|
||||
constructor() {
|
||||
super(() => {
|
||||
|
@ -24,7 +24,6 @@
|
||||
"devDependencies": {
|
||||
"buffer": "6.0.3",
|
||||
"process": "0.11.10",
|
||||
"webpack-plugin-replace": "1.2.0",
|
||||
"@types/node": "16.11.59",
|
||||
"ts-loader": "8.4.0",
|
||||
"typescript": "^4.6.4",
|
||||
|
131
pnpm-lock.yaml
generated
@ -2,6 +2,47 @@ lockfileVersion: 5.4
|
||||
|
||||
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:
|
||||
specifiers:
|
||||
'@fluencelabs/avm': 0.32.1
|
||||
@ -76,47 +117,6 @@ importers:
|
||||
webpack-cli: 4.10.0_6e633uucef4eifwu2eev7m6e4m
|
||||
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:
|
||||
specifiers:
|
||||
'@fluencelabs/fluence': workspace:*
|
||||
@ -224,6 +224,38 @@ importers:
|
||||
ts-node: 10.9.1_f4s53rsdbgkmxc2oaa23drhnsy
|
||||
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:
|
||||
specifiers:
|
||||
'@fluencelabs/marine.worker-script': workspace:*
|
||||
@ -444,7 +476,6 @@ importers:
|
||||
typescript: ^4.6.4
|
||||
webpack: 5.75.0
|
||||
webpack-cli: 5.0.1
|
||||
webpack-plugin-replace: 1.2.0
|
||||
dependencies:
|
||||
'@fluencelabs/marine-js': 0.3.38
|
||||
threads: 1.7.0
|
||||
@ -456,7 +487,6 @@ importers:
|
||||
typescript: 4.7.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:
|
||||
|
||||
@ -16256,6 +16286,21 @@ packages:
|
||||
webpack: 5.75.0_webpack-cli@5.0.1
|
||||
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:
|
||||
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
||||
hasBin: true
|
||||
|