From aa790562087d90f6992e6f3a9ff0d74850f4dcd5 Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 17:13:40 +0700 Subject: [PATCH 01/16] Use type module in html --- README.md | 29 +++++-------------- .../@tests/smoke/web-cra-ts/public/index.html | 2 -- packages/@tests/smoke/web/public/index.html | 5 ++-- packages/@tests/smoke/web/public/index.js | 17 +++++------ packages/@tests/smoke/web/src/index.ts | 3 -- packages/core/js-client/src/index.ts | 10 ------- packages/core/js-client/vite.config.ts | 2 +- 7 files changed, 19 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index c6ed200e9..aafa333dd 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ This is the Javascript client for the [Fluence](https://fluence.network) network ### HTML page -Add a script tag with the JS Client bundle to your `index.html`. The easiest way to do this is using a CDN ( +Add a script tag with the JS Client module to your `index.html`. The easiest way to do this is using a CDN ( like [JSDELIVR](https://www.jsdelivr.com/) or [UNPKG](https://unpkg.com/)). Here is an example using the JSDELIVR CDN: @@ -33,33 +33,20 @@ Here is an example using the JSDELIVR CDN: ```html Cool App - + + ``` If you cannot or don't want to use a CDN, feel free to get the script directly from the [npm package](https://www.npmjs.com/package/@fluencelabs/js-client) and host it yourself. You can find the script in -the `/dist` directory of the package. (Note: this option means that developers understand what they are doing and know +the `/dist/browser` directory of the package. (Note: this option means that developers understand what they are doing and know how to serve this file from their own web server.) -After importing JS-client to HTML page the client is available as `window.Fluence` variable. -To get a specific network you can peek at - -``` -https://cdn.jsdelivr.net/npm/@fluencelabs/js-client/dist/network.js -``` - -and hardcode selected network. So initialization would look like this - -```javascript -// Passing 1 kras network config from ./dist/network.js above -window.Fluence.connect({ - multiaddr: - "/dns4/0-kras.fluence.dev/tcp/9000/wss/p2p/12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e", - peerId: "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e", -}); -``` - ## Usage in an Application Once you've added the client, you can compile [Aqua](https://github.com/fluencelabs/aqua) and run it in your application. To compile Aqua, use [Fluence CLI](https://github.com/fluencelabs/cli). diff --git a/packages/@tests/smoke/web-cra-ts/public/index.html b/packages/@tests/smoke/web-cra-ts/public/index.html index d830de49b..916403e4e 100644 --- a/packages/@tests/smoke/web-cra-ts/public/index.html +++ b/packages/@tests/smoke/web-cra-ts/public/index.html @@ -7,8 +7,6 @@ - - + + diff --git a/packages/@tests/smoke/web/public/index.js b/packages/@tests/smoke/web/public/index.js index 3600f91a0..70ee3b636 100644 --- a/packages/@tests/smoke/web/public/index.js +++ b/packages/@tests/smoke/web/public/index.js @@ -1,10 +1,6 @@ -const fluence = globalThis.fluence; +import { Fluence, callAquaFunction, randomStage } from "./js-client.min.js"; -const relay = { - multiaddr: - "/ip4/127.0.0.1/tcp/9991/ws/p2p/12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR", - peerId: "12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR", -}; +const relay = randomStage(); const getRelayTime = () => { const script = ` @@ -74,18 +70,19 @@ const getRelayTime = () => { const config = {}; const args = { relayPeerId: relay.peerId }; - return fluence.callAquaFunction({ + + return callAquaFunction({ args, def, script, config, - peer: fluence.defaultClient, + peer: Fluence.defaultClient, }); }; const main = async () => { console.log("starting fluence..."); - fluence.defaultClient = await fluence.clientFactory(relay, { + await Fluence.connect(relay, { CDNUrl: "http://localhost:3000", }); console.log("started fluence"); @@ -95,7 +92,7 @@ const main = async () => { console.log("got relay time, ", relayTime); console.log("stopping fluence..."); - await fluence.defaultClient.stop(); + await Fluence.disconnect(); console.log("stopped fluence..."); return relayTime; diff --git a/packages/@tests/smoke/web/src/index.ts b/packages/@tests/smoke/web/src/index.ts index ae85b30d4..3aed989be 100644 --- a/packages/@tests/smoke/web/src/index.ts +++ b/packages/@tests/smoke/web/src/index.ts @@ -18,7 +18,6 @@ import { dirname, join } from "path"; import { fileURLToPath } from "url"; import { - CDN_PUBLIC_PATH, createSymlinkIfNotExists, JS_CLIENT_DEPS_PATH, startContentServer, @@ -34,8 +33,6 @@ const publicPath = join(__dirname, "../public/"); const test = async () => { const localServer = await startContentServer(port, publicPath); - await createSymlinkIfNotExists(CDN_PUBLIC_PATH, join(publicPath, "source")); - await createSymlinkIfNotExists( JS_CLIENT_DEPS_PATH, join(publicPath, "node_modules"), diff --git a/packages/core/js-client/src/index.ts b/packages/core/js-client/src/index.ts index 4cb9a8ebd..48ef31934 100644 --- a/packages/core/js-client/src/index.ts +++ b/packages/core/js-client/src/index.ts @@ -176,16 +176,6 @@ export type { export { v5_callFunction, v5_registerService } from "./api.js"; -// @ts-expect-error Writing to global object like this prohibited by ts -globalThis.new_fluence = Fluence; - -// @ts-expect-error Writing to global object like this prohibited by ts -globalThis.fluence = { - clientFactory: createClient, - callAquaFunction, - registerService, -}; - export { createClient, callAquaFunction, registerService }; // Deprecated exports. Later they will be exposed only under js-client/keypair path diff --git a/packages/core/js-client/vite.config.ts b/packages/core/js-client/vite.config.ts index 80af88452..e9a8b2295 100644 --- a/packages/core/js-client/vite.config.ts +++ b/packages/core/js-client/vite.config.ts @@ -30,7 +30,7 @@ const config: UserConfig = { entry: "./src/index.ts", name: "js-client", fileName: () => "index.min.js", - formats: ["umd"], + formats: ["es"], }, outDir: "./dist/browser", rollupOptions: { From ea577b969b8a0b975bc37069d898f92e3f00a506 Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 17:47:36 +0700 Subject: [PATCH 02/16] Fix autocommit --- .github/workflows/tests.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5f031107b..c432294fb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -96,6 +96,10 @@ jobs: - name: Auto-commit uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_user_name: fluencebot + commit_user_email: devops@fluence.one + commit_author: fluencebot - name: Override dependencies uses: fluencelabs/github-actions/pnpm-set-dependency@main From 355c0cbdea2242d3198fad1ecf97503040ee953c Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 18:20:23 +0700 Subject: [PATCH 03/16] Try fix template --- .github/workflows/tests.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c432294fb..379895097 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -29,6 +29,8 @@ jobs: js-client: name: "Run tests" runs-on: ubuntu-latest + env: + MATRIX_LIST: "['18.x', '20.x']" permissions: contents: read @@ -36,9 +38,7 @@ jobs: strategy: matrix: - node-version: - - 18.x - - 20.x + node-version: ${{ fromJSON(env.MATRIX_LIST) }} steps: - name: Import secrets @@ -92,9 +92,13 @@ jobs: - run: pnpm -r build - name: Lint code and fix all fixable errors + # Lint once + if: ${{ matrix.node_version == fromJSON(env.MATRIX_LIST)[0] }} run: pnpm lint-fix - name: Auto-commit + # Autocommit once + if: ${{ matrix.node_version == fromJSON(env.MATRIX_LIST)[0] }} uses: stefanzweifel/git-auto-commit-action@v4 with: commit_user_name: fluencebot From df40161589d56a89816c560c173b4c147b63d64f Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 18:22:14 +0700 Subject: [PATCH 04/16] Try fix template --- .github/workflows/tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 379895097..aa8275e3d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,7 +38,7 @@ jobs: strategy: matrix: - node-version: ${{ fromJSON(env.MATRIX_LIST) }} + node-version: ${{ fromJSON($MATRIX_LIST) }} steps: - name: Import secrets @@ -93,12 +93,12 @@ jobs: - name: Lint code and fix all fixable errors # Lint once - if: ${{ matrix.node_version == fromJSON(env.MATRIX_LIST)[0] }} + if: ${{ matrix.node-version == fromJSON($MATRIX_LIST)[0] }} run: pnpm lint-fix - name: Auto-commit # Autocommit once - if: ${{ matrix.node_version == fromJSON(env.MATRIX_LIST)[0] }} + if: ${{ matrix.node-version == fromJSON($MATRIX_LIST)[0] }} uses: stefanzweifel/git-auto-commit-action@v4 with: commit_user_name: fluencebot From ffa518a8a7ad18af692b25b2644068ad85e2bb7c Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 18:24:52 +0700 Subject: [PATCH 05/16] Try fix template --- .github/workflows/tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index aa8275e3d..0ef4be7df 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,7 +38,7 @@ jobs: strategy: matrix: - node-version: ${{ fromJSON($MATRIX_LIST) }} + node-version: ${{ fromJSON(env.MATRIX_LIST) }} steps: - name: Import secrets @@ -93,12 +93,12 @@ jobs: - name: Lint code and fix all fixable errors # Lint once - if: ${{ matrix.node-version == fromJSON($MATRIX_LIST)[0] }} + if: ${{ matrix.node-version == fromJSON(env.MATRIX_LIST)[0] }} run: pnpm lint-fix - name: Auto-commit # Autocommit once - if: ${{ matrix.node-version == fromJSON($MATRIX_LIST)[0] }} + if: ${{ matrix.node-version == fromJSON(env.MATRIX_LIST)[0] }} uses: stefanzweifel/git-auto-commit-action@v4 with: commit_user_name: fluencebot From 788956c60256c036c192dc1da2b55e9bd51d31ba Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 18:26:07 +0700 Subject: [PATCH 06/16] Try fix template --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0ef4be7df..bd71f02a3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,7 +38,7 @@ jobs: strategy: matrix: - node-version: ${{ fromJSON(env.MATRIX_LIST) }} + node-version: ${{ fromJSON("$MATRIX_LIST") }} steps: - name: Import secrets From 59956014b74b3291ae13af5c3daf9d780d581576 Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 18:37:09 +0700 Subject: [PATCH 07/16] Try fix template --- .github/workflows/tests.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bd71f02a3..39ac4a12c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -29,16 +29,19 @@ jobs: js-client: name: "Run tests" runs-on: ubuntu-latest - env: - MATRIX_LIST: "['18.x', '20.x']" permissions: contents: read id-token: write + env: + LATEST_NODE_VERSION: 20.x + strategy: matrix: - node-version: ${{ fromJSON("$MATRIX_LIST") }} + node-version: + - 18.x + - 20.x steps: - name: Import secrets @@ -93,12 +96,12 @@ jobs: - name: Lint code and fix all fixable errors # Lint once - if: ${{ matrix.node-version == fromJSON(env.MATRIX_LIST)[0] }} + if: ${{ matrix.node-version == env.LATEST_NODE_VERSION }} run: pnpm lint-fix - name: Auto-commit # Autocommit once - if: ${{ matrix.node-version == fromJSON(env.MATRIX_LIST)[0] }} + if: ${{ matrix.node-version == env.LATEST_NODE_VERSION }} uses: stefanzweifel/git-auto-commit-action@v4 with: commit_user_name: fluencebot From d8bbecb82e688f1d493a091058528e0f4cc91d20 Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 19:07:16 +0700 Subject: [PATCH 08/16] Fix test --- .github/workflows/tests.yml | 2 +- packages/@tests/smoke/web/public/index.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 39ac4a12c..82236e3d3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -6,7 +6,7 @@ on: nox-image: description: "nox image tag" type: string - default: "fluencelabs/nox:minimal_0.2.9" + default: "fluencelabs/nox:minimal_0.4.0" avm-version: description: "@fluencelabs/avm version" type: string diff --git a/packages/@tests/smoke/web/public/index.js b/packages/@tests/smoke/web/public/index.js index 70ee3b636..c7db44cd7 100644 --- a/packages/@tests/smoke/web/public/index.js +++ b/packages/@tests/smoke/web/public/index.js @@ -1,6 +1,10 @@ import { Fluence, callAquaFunction, randomStage } from "./js-client.min.js"; -const relay = randomStage(); +const relay = { + multiaddr: + "/ip4/127.0.0.1/tcp/9991/ws/p2p/12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR", + peerId: "12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR", +}; const getRelayTime = () => { const script = ` From 9b66ba352e9a246997ada96f269901f6b8b49865 Mon Sep 17 00:00:00 2001 From: Akim <59872966+akim-bow@users.noreply.github.com> Date: Fri, 10 Nov 2023 19:09:49 +0700 Subject: [PATCH 09/16] Update packages/@tests/smoke/web/public/index.html Co-authored-by: shamsartem --- packages/@tests/smoke/web/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@tests/smoke/web/public/index.html b/packages/@tests/smoke/web/public/index.html index f026259f0..3aaab4dc0 100644 --- a/packages/@tests/smoke/web/public/index.html +++ b/packages/@tests/smoke/web/public/index.html @@ -16,7 +16,7 @@

Open console f12

- + From 64301cdfba1056756cd9308a4d6f06bf11c13eaa Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 19:26:18 +0700 Subject: [PATCH 10/16] Minify es bundle --- packages/core/js-client/package.json | 1 + packages/core/js-client/vite.config.ts | 23 ++- pnpm-lock.yaml | 269 ++++++++++++++++++++++++- 3 files changed, 289 insertions(+), 4 deletions(-) diff --git a/packages/core/js-client/package.json b/packages/core/js-client/package.json index efe17b75d..6efc24836 100644 --- a/packages/core/js-client/package.json +++ b/packages/core/js-client/package.json @@ -68,6 +68,7 @@ "@types/debug": "4.1.7", "@types/node": "20.7.0", "@types/uuid": "8.3.2", + "esbuild": "0.19.5", "hotscript": "1.0.13", "vite": "4.4.11", "vite-tsconfig-paths": "4.0.3", diff --git a/packages/core/js-client/vite.config.ts b/packages/core/js-client/vite.config.ts index e9a8b2295..9e075ed3d 100644 --- a/packages/core/js-client/vite.config.ts +++ b/packages/core/js-client/vite.config.ts @@ -17,11 +17,30 @@ import inject from "@rollup/plugin-inject"; import tsconfigPaths from "vite-tsconfig-paths"; import { createRequire } from "module"; -import { UserConfig } from "vite"; +import { PluginOption, UserConfig } from "vite"; +import { transform } from "esbuild"; const require = createRequire(import.meta.url); const esbuildShim = require.resolve("node-stdlib-browser/helpers/esbuild/shim"); +function minifyEs(): PluginOption { + return { + name: "minifyEs", + renderChunk: { + order: "post", + async handler(code, chunk, outputOptions) { + if ( + outputOptions.format === "es" && + chunk.fileName.endsWith(".min.js") + ) { + return await transform(code, { minify: true }); + } + return code; + }, + }, + }; +} + const config: UserConfig = { build: { target: "modules", @@ -47,7 +66,7 @@ const config: UserConfig = { ], }, }, - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths(), minifyEs()], optimizeDeps: { esbuildOptions: { define: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a3c011e5c..7cc04fd44 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -305,6 +305,9 @@ importers: '@types/uuid': specifier: 8.3.2 version: 8.3.2 + esbuild: + specifier: 0.19.5 + version: 0.19.5 hotscript: specifier: 1.0.13 version: 1.0.13 @@ -1181,6 +1184,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: false + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.22.10): + resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} engines: {node: '>=6.9.0'} @@ -1267,6 +1280,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: false + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.10): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} @@ -2390,6 +2413,20 @@ packages: '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.5) dev: false + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.10): + resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) + '@babel/types': 7.22.5 + dev: false + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} @@ -3243,6 +3280,15 @@ packages: dev: true optional: true + /@esbuild/android-arm64@0.19.5: + resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm@0.18.20: resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} @@ -3252,6 +3298,15 @@ packages: dev: true optional: true + /@esbuild/android-arm@0.19.5: + resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-x64@0.18.20: resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} @@ -3261,6 +3316,15 @@ packages: dev: true optional: true + /@esbuild/android-x64@0.19.5: + resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-arm64@0.18.20: resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} @@ -3270,6 +3334,15 @@ packages: dev: true optional: true + /@esbuild/darwin-arm64@0.19.5: + resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-x64@0.18.20: resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} @@ -3279,6 +3352,15 @@ packages: dev: true optional: true + /@esbuild/darwin-x64@0.19.5: + resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-arm64@0.18.20: resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} @@ -3288,6 +3370,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-arm64@0.19.5: + resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-x64@0.18.20: resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} @@ -3297,6 +3388,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-x64@0.19.5: + resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64@0.18.20: resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} @@ -3306,6 +3406,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm64@0.19.5: + resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm@0.18.20: resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} @@ -3315,6 +3424,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm@0.19.5: + resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32@0.18.20: resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} @@ -3324,6 +3442,15 @@ packages: dev: true optional: true + /@esbuild/linux-ia32@0.19.5: + resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64@0.18.20: resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} @@ -3333,6 +3460,15 @@ packages: dev: true optional: true + /@esbuild/linux-loong64@0.19.5: + resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-mips64el@0.18.20: resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} @@ -3342,6 +3478,15 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el@0.19.5: + resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ppc64@0.18.20: resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} @@ -3351,6 +3496,15 @@ packages: dev: true optional: true + /@esbuild/linux-ppc64@0.19.5: + resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-riscv64@0.18.20: resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} @@ -3360,6 +3514,15 @@ packages: dev: true optional: true + /@esbuild/linux-riscv64@0.19.5: + resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-s390x@0.18.20: resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} @@ -3369,6 +3532,15 @@ packages: dev: true optional: true + /@esbuild/linux-s390x@0.19.5: + resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-x64@0.18.20: resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} @@ -3378,6 +3550,15 @@ packages: dev: true optional: true + /@esbuild/linux-x64@0.19.5: + resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-x64@0.18.20: resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} @@ -3387,6 +3568,15 @@ packages: dev: true optional: true + /@esbuild/netbsd-x64@0.19.5: + resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-x64@0.18.20: resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} @@ -3396,6 +3586,15 @@ packages: dev: true optional: true + /@esbuild/openbsd-x64@0.19.5: + resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/sunos-x64@0.18.20: resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} @@ -3405,6 +3604,15 @@ packages: dev: true optional: true + /@esbuild/sunos-x64@0.19.5: + resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-arm64@0.18.20: resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} @@ -3414,6 +3622,15 @@ packages: dev: true optional: true + /@esbuild/win32-arm64@0.19.5: + resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-ia32@0.18.20: resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} @@ -3423,6 +3640,15 @@ packages: dev: true optional: true + /@esbuild/win32-ia32@0.19.5: + resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-x64@0.18.20: resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} @@ -3432,6 +3658,15 @@ packages: dev: true optional: true + /@esbuild/win32-x64@0.19.5: + resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint-community/eslint-utils@4.4.0(eslint@8.50.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10232,6 +10467,36 @@ packages: '@esbuild/win32-x64': 0.18.20 dev: true + /esbuild@0.19.5: + resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.5 + '@esbuild/android-arm64': 0.19.5 + '@esbuild/android-x64': 0.19.5 + '@esbuild/darwin-arm64': 0.19.5 + '@esbuild/darwin-x64': 0.19.5 + '@esbuild/freebsd-arm64': 0.19.5 + '@esbuild/freebsd-x64': 0.19.5 + '@esbuild/linux-arm': 0.19.5 + '@esbuild/linux-arm64': 0.19.5 + '@esbuild/linux-ia32': 0.19.5 + '@esbuild/linux-loong64': 0.19.5 + '@esbuild/linux-mips64el': 0.19.5 + '@esbuild/linux-ppc64': 0.19.5 + '@esbuild/linux-riscv64': 0.19.5 + '@esbuild/linux-s390x': 0.19.5 + '@esbuild/linux-x64': 0.19.5 + '@esbuild/netbsd-x64': 0.19.5 + '@esbuild/openbsd-x64': 0.19.5 + '@esbuild/sunos-x64': 0.19.5 + '@esbuild/win32-arm64': 0.19.5 + '@esbuild/win32-ia32': 0.19.5 + '@esbuild/win32-x64': 0.19.5 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -10401,8 +10666,8 @@ packages: '@babel/plugin-transform-react-jsx': ^7.14.9 eslint: ^8.1.0 dependencies: - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.5) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.10) eslint: 8.50.0 lodash: 4.17.21 string-natural-compare: 3.0.1 From fd8e24c2235f3af8132d3ef29df558a4917a70dc Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 20:36:07 +0700 Subject: [PATCH 11/16] Remove autocommit --- .github/workflows/tests.yml | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 82236e3d3..b8ca15db5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -94,19 +94,8 @@ jobs: - run: pnpm -r i - run: pnpm -r build - - name: Lint code and fix all fixable errors - # Lint once - if: ${{ matrix.node-version == env.LATEST_NODE_VERSION }} - run: pnpm lint-fix - - - name: Auto-commit - # Autocommit once - if: ${{ matrix.node-version == env.LATEST_NODE_VERSION }} - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_user_name: fluencebot - commit_user_email: devops@fluence.one - commit_author: fluencebot + - name: Lint code + run: pnpm lint-check - name: Override dependencies uses: fluencelabs/github-actions/pnpm-set-dependency@main From 186b5455d624f06f194c5f6eba4d94db5469a1de Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 20:47:42 +0700 Subject: [PATCH 12/16] Fix lint --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index aafa333dd..a18e74ca7 100644 --- a/README.md +++ b/README.md @@ -33,11 +33,17 @@ Here is an example using the JSDELIVR CDN: ```html Cool App - + ``` From e4dc8f1531898754b422c61f8ea38f60dd3314fe Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 20:49:29 +0700 Subject: [PATCH 13/16] Remove minimal --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b8ca15db5..53957f322 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -6,7 +6,7 @@ on: nox-image: description: "nox image tag" type: string - default: "fluencelabs/nox:minimal_0.4.0" + default: "fluencelabs/nox:0.4.0" avm-version: description: "@fluencelabs/avm version" type: string From b3e80854acbde269996c1dcf13a1dd48712de2c2 Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 21:04:18 +0700 Subject: [PATCH 14/16] Change nox version --- .github/workflows/run-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index ba85acea5..63b7491e5 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -28,4 +28,4 @@ jobs: uses: ./.github/workflows/tests.yml with: ref: ${{ github.ref }} - nox-image: "fluencelabs/nox:unstable_minimal" + nox-image: "fluencelabs/nox:0.4.0" From 9c355bebeb6f31ef3c610c588c5e454620c9fced Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 21:04:37 +0700 Subject: [PATCH 15/16] Change nox version --- .github/workflows/run-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 63b7491e5..7cfd8bf95 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -28,4 +28,4 @@ jobs: uses: ./.github/workflows/tests.yml with: ref: ${{ github.ref }} - nox-image: "fluencelabs/nox:0.4.0" + nox-image: "fluencelabs/nox:unstable" From da2b14afba5d5de8f996da2ba0ee075c64eebf43 Mon Sep 17 00:00:00 2001 From: Akim Mamedov Date: Fri, 10 Nov 2023 21:13:55 +0700 Subject: [PATCH 16/16] Fix CDN --- packages/@tests/smoke/web-cra-ts/test/index.ts | 2 +- packages/@tests/smoke/web/src/index.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/@tests/smoke/web-cra-ts/test/index.ts b/packages/@tests/smoke/web-cra-ts/test/index.ts index f4ff7ea80..fb483eb01 100644 --- a/packages/@tests/smoke/web-cra-ts/test/index.ts +++ b/packages/@tests/smoke/web-cra-ts/test/index.ts @@ -17,7 +17,7 @@ const publicPath = join(__dirname, "../build/"); const test = async () => { const localServer = await startContentServer(port, publicPath); - await createSymlinkIfNotExists(CDN_PUBLIC_PATH, join(publicPath, "source")); + await createSymlinkIfNotExists( JS_CLIENT_DEPS_PATH, join(publicPath, "node_modules"), diff --git a/packages/@tests/smoke/web/src/index.ts b/packages/@tests/smoke/web/src/index.ts index 3aed989be..ae85b30d4 100644 --- a/packages/@tests/smoke/web/src/index.ts +++ b/packages/@tests/smoke/web/src/index.ts @@ -18,6 +18,7 @@ import { dirname, join } from "path"; import { fileURLToPath } from "url"; import { + CDN_PUBLIC_PATH, createSymlinkIfNotExists, JS_CLIENT_DEPS_PATH, startContentServer, @@ -33,6 +34,8 @@ const publicPath = join(__dirname, "../public/"); const test = async () => { const localServer = await startContentServer(port, publicPath); + await createSymlinkIfNotExists(CDN_PUBLIC_PATH, join(publicPath, "source")); + await createSymlinkIfNotExists( JS_CLIENT_DEPS_PATH, join(publicPath, "node_modules"),