chore: update webextension example

This commit is contained in:
Martin Varmuza
2026-02-13 10:56:54 +01:00
committed by martin
parent 732fe0080f
commit a57700c276
16 changed files with 36 additions and 80 deletions

View File

@@ -109,8 +109,12 @@ runs:
if: inputs.buildArtifacts == 'true'
shell: bash
env:
FULL_URL: https://${{ inputs.serverHostname }}/${{ inputs.serverPath }}/
FULL_URL: https://${{ inputs.serverHostname }}/suite-web/${{ needs.extract-branch.outputs.branch }}/web/connect-popup
run: |
cd packages/connect-examples/webextension
yarn
yarn build
cd ../../../
echo "FULL_URL is set to ${FULL_URL}"
node ./packages/connect-examples/update-webextensions-sw.js --trezor-connect-src "${FULL_URL}"
@@ -128,7 +132,7 @@ runs:
with:
name: connect-example-webextension-${{ inputs.serverHostname }}
path: |
packages/connect-examples/webextension-mv3-sw/build
packages/connect-examples/webextension/build
- name: Upload connect-explorer webextension artifacts
if: inputs.uploadArtifacts == 'true'

View File

@@ -144,7 +144,6 @@
"jest": "29.7.0",
"jest-environment-node": "^29.7.0",
"jest-expo": "^54.0.12",
"node-fetch": "^2.6.4",
"node-gyp": "12.1.0",
"nx": "^22.3.3",
"patch-package": "8.0.1",

View File

@@ -2,16 +2,14 @@
A collection of example implementations of @trezor/connect in various environments. See individual READMEs for instructions:
| Environment | package | Popup |
| --------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ----- |
| [Node.js](./node) | [@trezor/connect](../connect/README.md) | No |
| [Electron main process](./electron-main-process/) | [@trezor/connect](../connect/README.md) | No |
| [Electron renderer with popup](./electron-renderer-with-popup/) | [@trezor/connect](../connect/README.md) | Yes |
| [Browser inline script](./browser-inline-script/) | [@trezor/connect-web](../connect-web/README.md) | Yes |
| [Browser with webpack](../connect-explorer/README.md) | [@trezor/connect-web](../connect-web/README.md) | Yes |
| [Webextension Manifest V3](./webextension-mv3) | [@trezor/connect-web](../connect-web/README.md) | Yes |
| [Webextension Manifest V3 with Service Worker](./webextension-mv3-sw) | [@trezor/connect-webextension](../connect-webextension/README.md) | Yes |
| [Webextension Manifest V3 with Service Worker and ES6 module](./webextension-mv3-sw-ts) | [@trezor/connect-webextension](../connect-webextension/README.md) | Yes |
| Environment | package | Popup |
| ----------------------------------------------------- | ----------------------------------------------------------------- | ----- |
| [Node.js](./node) | [@trezor/connect](../connect/README.md) | No |
| [Electron main process](./electron-main-process/) | [@trezor/connect](../connect/README.md) | No |
| [Mobile expo]('/mobile-expo) | [@trezor/connect-mobile](../connect-mobile/README.md) | Yes |
| [Browser inline script](./browser-inline-script/) | [@trezor/connect-web](../connect-web/README.md) | Yes |
| [Browser with webpack](../connect-explorer/README.md) | [@trezor/connect-web](../connect-web/README.md) | Yes |
| [Webextension](./webextension) | [@trezor/connect-webextension](../connect-webextension/README.md) | Yes |
Also you may explorer 3rd party @trezor/connect integrations.

View File

@@ -3,16 +3,14 @@
*/
const fs = require('fs');
const fetch = require('node-fetch');
const path = require('path');
const rootPaths = ['webextension-mv3-sw'];
const rootPaths = ['webextension'];
const trezorConnectSrcIndex = process.argv.indexOf('--trezor-connect-src');
const buildFolderIndex = process.argv.indexOf('--build-folder');
const npmSrcIndex = process.argv.indexOf('--npm-src');
const DEFAULT_SRC = 'https://connect.trezor.io/9/';
const DEFAULT_SRC = 'https://suite.trezor.io/web/connect-popup';
let trezorConnectSrc = DEFAULT_SRC;
if (trezorConnectSrcIndex > -1) {
@@ -26,55 +24,20 @@ if (buildFolderIndex > -1) {
console.log('buildFolder: ', buildFolder);
}
let npmSrc = '';
if (npmSrcIndex > -1) {
npmSrc = process.argv[npmSrcIndex + 1];
console.log('npmSrc: ', npmSrc);
}
rootPaths.forEach(dir => {
const rootPath = path.join(__dirname, dir);
const buildPath = path.join(rootPath, buildFolder);
const vendorPath = path.join(buildPath, 'vendor');
fs.rmSync(buildPath, { recursive: true, force: true });
if (!fs.existsSync(buildPath)) {
fs.mkdirSync(buildPath);
}
if (!fs.existsSync(vendorPath)) {
fs.mkdirSync(vendorPath);
}
if (npmSrc) {
fetch(npmSrc).then(res => {
const dest = fs.createWriteStream(
path.join(rootPath, buildFolder, 'vendor', 'trezor-connect-webextension.js'),
);
res.body.pipe(dest);
});
} else {
['trezor-connect-webextension.js'].forEach(p => {
fs.copyFileSync(
path.join(__dirname, '../connect-webextension', 'build', p),
path.join(rootPath, buildFolder, 'vendor', p),
);
});
}
fs.readdirSync(path.join(rootPath, 'src')).forEach(p => {
// Some files like binary `.png` we just want to copy.
const isJustCopied = ['.png'].some(ext => p.endsWith(ext));
if (isJustCopied) {
fs.copyFileSync(path.join(rootPath, 'src', p), path.join(rootPath, buildFolder, p));
return;
}
fs.readFile(path.join(rootPath, 'src', p), 'utf-8', (err, contents) => {
fs.readdirSync(path.join(rootPath, 'build')).forEach(p => {
fs.readFile(path.join(rootPath, 'build', p), 'utf-8', (err, contents) => {
if (err) {
console.log(err);
return;
}
const found = contents.startsWith(DEFAULT_SRC);
if (found) {
console.log(`Found ${DEFAULT_SRC} in ${p}, replacing with ${trezorConnectSrc}`);
}
const replaced = contents.replace(DEFAULT_SRC, trezorConnectSrc);

View File

@@ -1,19 +0,0 @@
{
"name": "@trezor/webextension-mv3-sw-ts",
"version": "1.0.0",
"manifest_version": 3,
"action": {
"default_popup": "popup.html"
},
"background": {
"service_worker": "service-worker.js"
},
"permissions": ["scripting"],
"host_permissions": [
"*://connect.trezor.io/9/*",
"*://suite.corp.sldev.cz/*",
"*://localhost/*",
"*://staging-connect.trezor.io/*",
"*://dev.suite.sldev.cz/*"
]
}

View File

@@ -0,0 +1,12 @@
{
"name": "@trezor/webextension-mv3-sw-ts",
"version": "1.0.0",
"manifest_version": 3,
"action": {
"default_popup": "popup.html"
},
"background": {
"service_worker": "service-worker.js"
},
"host_permissions": ["http://*/*", "https://*/*"]
}

View File

@@ -16014,9 +16014,9 @@ __metadata:
languageName: unknown
linkType: soft
"@trezor/webextension-mv3-sw-ts@workspace:packages/connect-examples/webextension-mv3-sw-ts":
"@trezor/webextension-mv3-sw-ts@workspace:packages/connect-examples/webextension":
version: 0.0.0-use.local
resolution: "@trezor/webextension-mv3-sw-ts@workspace:packages/connect-examples/webextension-mv3-sw-ts"
resolution: "@trezor/webextension-mv3-sw-ts@workspace:packages/connect-examples/webextension"
dependencies:
"@trezor/connect-webextension": "workspace:^"
"@trezor/eslint": "workspace:^"
@@ -44381,7 +44381,6 @@ __metadata:
jest: "npm:29.7.0"
jest-environment-node: "npm:^29.7.0"
jest-expo: "npm:^54.0.12"
node-fetch: "npm:^2.6.4"
node-gyp: "npm:12.1.0"
nx: "npm:^22.3.3"
patch-package: "npm:8.0.1"