tasmota-esp-web-tools 8.1.14 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/build_upload.yml +4 -1
- package/README.md +26 -0
- package/dist/const.d.ts +2 -0
- package/dist/flash.js +21 -4
- package/dist/web/esp32c5-mcj52-K1.js +1 -0
- package/dist/web/esp32p4r3-Cle9QJmZ.js +1 -0
- package/dist/web/install-button.js +1 -1
- package/dist/web/{install-dialog-BZFuby8t.js → install-dialog-D-GC_18-.js} +13 -13
- package/js/modules/esp32c5-mcj52-K1.js +1 -0
- package/js/modules/esp32p4r3-Cle9QJmZ.js +1 -0
- package/js/modules/install-button.js +1 -1
- package/js/modules/{install-dialog-BZFuby8t.js → install-dialog-D-GC_18-.js} +13 -13
- package/manifest-example-p4-variants.json +61 -0
- package/package.json +7 -4
- package/src/const.ts +2 -0
- package/src/flash.ts +21 -4
- package/dist/web/esp32c5-C8uE-s4t.js +0 -1
- package/js/modules/esp32c5-C8uE-s4t.js +0 -1
|
@@ -12,6 +12,9 @@ concurrency:
|
|
|
12
12
|
jobs:
|
|
13
13
|
build:
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
|
+
permissions:
|
|
16
|
+
contents: write
|
|
17
|
+
id-token: write # required to use OIDC
|
|
15
18
|
steps:
|
|
16
19
|
- uses: actions/checkout@v4
|
|
17
20
|
- name: Remove old files and folders
|
|
@@ -43,7 +46,7 @@ jobs:
|
|
|
43
46
|
with:
|
|
44
47
|
commit_message: "Github Action: Updated dist files"
|
|
45
48
|
- name: Publish to NPM registry
|
|
46
|
-
uses: JS-DevTools/npm-publish@
|
|
49
|
+
uses: JS-DevTools/npm-publish@v4
|
|
47
50
|
with:
|
|
48
51
|
registry: https://registry.npmjs.org/
|
|
49
52
|
token: ${{ secrets.NPM_TOKEN }}
|
package/README.md
CHANGED
|
@@ -82,6 +82,32 @@ Example manifest:
|
|
|
82
82
|
}
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
+
## Chip Variant Support (ESP32-P4)
|
|
86
|
+
|
|
87
|
+
For chips with multiple hardware revisions (like ESP32-P4), you can specify different firmware builds for each variant:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"name": "My Firmware",
|
|
92
|
+
"builds": [
|
|
93
|
+
{
|
|
94
|
+
"chipFamily": "ESP32-P4",
|
|
95
|
+
"chipVariant": "rev0",
|
|
96
|
+
"parts": [{ "path": "firmware_p4_old.bin", "offset": 0 }]
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"chipFamily": "ESP32-P4",
|
|
100
|
+
"chipVariant": "rev300",
|
|
101
|
+
"parts": [{ "path": "firmware_p4_new.bin", "offset": 0 }]
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
The `chipVariant` field is optional. If omitted, the build will match any variant of that chip family.
|
|
108
|
+
|
|
109
|
+
See [manifest-example-p4-variants.json](manifest-example-p4-variants.json) for a complete example.
|
|
110
|
+
|
|
85
111
|
## Development
|
|
86
112
|
|
|
87
113
|
Run `script/develop`. This starts a server. Open it on http://localhost:5001.
|
package/dist/const.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface Logger {
|
|
|
5
5
|
}
|
|
6
6
|
export interface Build {
|
|
7
7
|
chipFamily: "ESP32" | "ESP8266" | "ESP32-S2" | "ESP32-S3" | "ESP32-C2" | "ESP32-C3" | "ESP32-C5" | "ESP32-C6" | "ESP32-C61" | "ESP32-H2" | "ESP32-P4";
|
|
8
|
+
chipVariant?: string;
|
|
8
9
|
parts: {
|
|
9
10
|
path: string;
|
|
10
11
|
offset: number;
|
|
@@ -27,6 +28,7 @@ export interface BaseFlashState {
|
|
|
27
28
|
manifest?: Manifest;
|
|
28
29
|
build?: Build;
|
|
29
30
|
chipFamily?: Build["chipFamily"] | "Unknown Chip";
|
|
31
|
+
chipVariant?: string | null;
|
|
30
32
|
}
|
|
31
33
|
export interface InitializingState extends BaseFlashState {
|
|
32
34
|
state: FlashStateType.INITIALIZING;
|
package/dist/flash.js
CHANGED
|
@@ -5,11 +5,13 @@ export const flash = async (onEvent, port, logger, manifestPath, eraseFirst, fir
|
|
|
5
5
|
let manifest;
|
|
6
6
|
let build;
|
|
7
7
|
let chipFamily;
|
|
8
|
+
let chipVariant = null;
|
|
8
9
|
const fireStateEvent = (stateUpdate) => onEvent({
|
|
9
10
|
...stateUpdate,
|
|
10
11
|
manifest,
|
|
11
12
|
build,
|
|
12
13
|
chipFamily,
|
|
14
|
+
chipVariant,
|
|
13
15
|
});
|
|
14
16
|
var manifestProm = null;
|
|
15
17
|
var manifestURL = "";
|
|
@@ -44,9 +46,10 @@ export const flash = async (onEvent, port, logger, manifestPath, eraseFirst, fir
|
|
|
44
46
|
return;
|
|
45
47
|
}
|
|
46
48
|
chipFamily = getChipFamilyName(esploader);
|
|
49
|
+
chipVariant = esploader.chipVariant;
|
|
47
50
|
fireStateEvent({
|
|
48
51
|
state: "initializing" /* FlashStateType.INITIALIZING */,
|
|
49
|
-
message: `Initialized. Found ${chipFamily}`,
|
|
52
|
+
message: `Initialized. Found ${chipFamily}${chipVariant ? ` (${chipVariant})` : ""}`,
|
|
50
53
|
details: { done: true },
|
|
51
54
|
});
|
|
52
55
|
fireStateEvent({
|
|
@@ -66,17 +69,31 @@ export const flash = async (onEvent, port, logger, manifestPath, eraseFirst, fir
|
|
|
66
69
|
await esploader.disconnect();
|
|
67
70
|
return;
|
|
68
71
|
}
|
|
69
|
-
build = manifest.builds.find((b) =>
|
|
72
|
+
build = manifest.builds.find((b) => {
|
|
73
|
+
// Match chipFamily and optionally chipVariant
|
|
74
|
+
if (b.chipFamily !== chipFamily) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
// If build specifies a chipVariant, it must match
|
|
78
|
+
if (b.chipVariant !== undefined) {
|
|
79
|
+
return b.chipVariant === chipVariant;
|
|
80
|
+
}
|
|
81
|
+
// If build doesn't specify chipVariant, it matches any variant
|
|
82
|
+
return true;
|
|
83
|
+
});
|
|
70
84
|
fireStateEvent({
|
|
71
85
|
state: "manifest" /* FlashStateType.MANIFEST */,
|
|
72
86
|
message: `Found manifest for ${manifest.name}`,
|
|
73
87
|
details: { done: true },
|
|
74
88
|
});
|
|
75
89
|
if (!build) {
|
|
90
|
+
const chipInfo = chipVariant
|
|
91
|
+
? `${chipFamily} (${chipVariant})`
|
|
92
|
+
: chipFamily;
|
|
76
93
|
fireStateEvent({
|
|
77
94
|
state: "error" /* FlashStateType.ERROR */,
|
|
78
|
-
message: `Your ${
|
|
79
|
-
details: { error: "not_supported" /* FlashError.NOT_SUPPORTED */, details:
|
|
95
|
+
message: `Your ${chipInfo} board is not supported.`,
|
|
96
|
+
details: { error: "not_supported" /* FlashError.NOT_SUPPORTED */, details: chipInfo },
|
|
80
97
|
});
|
|
81
98
|
await esploader.disconnect();
|
|
82
99
|
return;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var A=1082132556,B="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",E=1082130432,w="GACEQLQMgEACDYBAmg2AQHgOgEDgDoBAjg6AQAgLgEAsDoBAdA6AQLgNgEC4CoBA4A2AQLgKgECSDIBAzgyAQAINgECaDYBApAyAQDILgEBgC4BAoAyAQJYSgEACDYBARhCAQE4SgED2CYBAdhKAQPYJgED2CYBA9gmAQPYJgED2CYBA9gmAQPYJgED2CYBA7A+AQPYJgEByEYBAThKAQA==",g=1082469300,C=1082392576,Q={entry:A,text:B,text_start:E,data:w,data_start:g,bss_start:C};export{C as bss_start,w as data,g as data_start,Q as default,A as entry,B as text,E as text_start};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var A=1341458758,w="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",B=1341456384,E="YAD2T4YO9U/UDvVPcg/1T1gQ9U+yEPVPahD1T7gM9U8MEPVPVBD1T5AP9U9oDPVPuA/1T2gM9U9iDvVPoA71T9QO9U9yD/VPdA71T+IM9U8WDfVPcA71T5AU9U/UDvVPJhL1T1AU9U8MC/VPdBT1TwwL9U8MC/VPDAv1TwwL9U8MC/VPDAv1TwwL9U8MC/VPxBH1TwwL9U9sE/VPUBT1Tw==",D=1341598716,Q=1341521920,C={entry:A,text:w,text_start:B,data:E,data_start:D,bss_start:Q};export{Q as bss_start,E as data,D as data_start,C as default,A as entry,w as text,B as text_start};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=async t=>{let n;import("./install-dialog-
|
|
1
|
+
const e=async t=>{let n;import("./install-dialog-D-GC_18-.js");try{n=await navigator.serial.requestPort()}catch(n){return"NotFoundError"===n.name?void import("./index-BK6drzlv.js").then(n=>n.openNoPortPickedDialog(()=>e(t))):void alert(`Error: ${n.message}`)}if(!n)return;try{await n.open({baudRate:115200})}catch(e){return void alert(e.message)}const o=document.createElement("ewt-install-dialog");o.port=n,o.manifestPath=t.manifest||t.getAttribute("manifest"),o.overrides=t.overrides,o.firmwareFile=t.firmwareFile,o.addEventListener("closed",()=>{n.close()},{once:!0}),document.body.appendChild(o)};class t extends HTMLElement{connectedCallback(){if(this.renderRoot)return;if(this.renderRoot=this.attachShadow({mode:"open"}),!t.isSupported||!t.isAllowed)return this.toggleAttribute("install-unsupported",!0),void(this.renderRoot.innerHTML=t.isAllowed?"<slot name='unsupported'>Your browser does not support installing things on ESP devices. Use Google Chrome or Microsoft Edge.</slot>":"<slot name='not-allowed'>You can only install ESP devices on HTTPS websites or on the localhost.</slot>");this.toggleAttribute("install-supported",!0);const n=document.createElement("slot");n.addEventListener("click",async t=>{t.preventDefault(),e(this)}),n.name="activate";const o=document.createElement("button");if(o.innerText="CONNECT",n.append(o),"adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype){const e=new CSSStyleSheet;e.replaceSync(t.style),this.renderRoot.adoptedStyleSheets=[e]}else{const e=document.createElement("style");e.innerText=t.style,this.renderRoot.append(e)}this.renderRoot.append(n)}}t.isSupported="serial"in navigator,t.isAllowed=window.isSecureContext,t.style='\n button {\n position: relative;\n cursor: pointer;\n font-size: 14px;\n padding: 8px 28px;\n color: var(--esp-tools-button-text-color, #fff);\n background-color: var(--esp-tools-button-color, #03a9f4);\n border: none;\n border-radius: 4px;\n box-shadow: 0 2px 2px 0 rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.12), 0 1px 5px 0 rgba(0,0,0,.2);\n }\n button::before {\n content: " ";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n opacity: 0.2;\n border-radius: 4px;\n }\n button:hover {\n box-shadow: 0 4px 8px 0 rgba(0,0,0,.14), 0 1px 7px 0 rgba(0,0,0,.12), 0 3px 1px -1px rgba(0,0,0,.2);\n }\n button:hover::before {\n background-color: rgba(255,255,255,.8);\n }\n button:focus {\n outline: none;\n }\n button:focus::before {\n background-color: white;\n }\n button:active::before {\n background-color: grey;\n }\n :host([active]) button {\n color: rgba(0, 0, 0, 0.38);\n background-color: rgba(0, 0, 0, 0.12);\n box-shadow: none;\n cursor: unset;\n pointer-events: none;\n }\n improv-wifi-launch-button {\n display: block;\n margin-top: 16px;\n }\n .hidden {\n display: none;\n }',customElements.define("esp-web-install-button",t);
|