From af6aa5b5b1fc89c2a09a57cfae65315386a79513 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Wed, 14 Jan 2026 21:40:21 -0500 Subject: [PATCH 01/44] Stash --- config.txt | Bin 0 -> 1514536 bytes package-lock.json | 1643 ++++++++++++++++++++++++++++++++- package.json | 5 +- wled00/const.h | 5 +- wled00/data/settings_wifi.htm | 3 + wled00/wled.cpp | 25 +- 6 files changed, 1667 insertions(+), 14 deletions(-) create mode 100644 config.txt diff --git a/config.txt b/config.txt new file mode 100644 index 0000000000000000000000000000000000000000..d68a4f9a48430a10ace4cfc6124ca61592b0eca5 GIT binary patch literal 1514536 zcmeFaSyNm~(k+M2@1?V7^l~o#Ikobf^7tmA>=cjk~ zTH)!6Vb2*mQ%J`ROZJdEBVv1aczC!k_xS(*-{ryO;KShK;M3q{a56X^%;5YA_x=Z0 zN4PhG|CfV{!Rg>^@D@*94GwYl%-x&8-Amk=87vQe8~l6la&V1bUE%+~@eE7(=FYeA z`;)jjNg++q#|iE zUP(jz`plJ+wry|h661H=Lp#^dN6!Y21`m2F)0a0K@xmw2VO$DmdpFV26HxM9c1hB^ zeDi+F+ZpT)b_Yw~mm$u^eb0r#!-)I(D`{Ll9uCqr@eRq{Z!oIfj`^m07;B!J$9+pF z>t~4@W9zWIxu%DfKa^{}6ve9A$1Chx)!0eZziA z$$2BuXhIp+t+Yc(!6VS+3-k->NHX7FjC7oHclQc+KSP(G#M4=)%ltsi;hobWhL}M= zK~teNzAP`;?^ z{yQlB2=z(Xtn~za#XchyLcQGUx>9RdsYCQJweKtZouS<)gF84MX{}acl09lqz(1$ zl~%-KWZLaLMO!&uxMDj2Wv+342>P5jTBrOG$~IElucr7GU3;=vI#)(VgZHBrcy9Hj zr@!HRHitG};_n>4eTUzYTW8$};0o^=cV-4p@%eMaMU)ix@R@gfbr;8n_(r%Z?u~X= z^=(pq(KeDN+LaqW)vcC~SW~km_LAu4TzOH3yah$#lKqwR;4IeHGx)4v4ft~K0{yyx zYq_iI?_u!$xNpP~eJw-Ow}%z~5NrJP!74sdXW0{LgMIw**=5)R*73_NT(^1tC4TiB zE3^Np8oa`B z2b5YK{0@rn?jGLgUpQy$=P_FEXVu1DT?UnQag2Fr5j9nPH^g{YL92H0%pQ6yhwtN( z_&2??_y)3SQfZzu7p=M#6;}?TJJC`nO6*RcE0VRmq&HpB9HcL_D*lsz-jkakfPwQTn4OB~tj z>`AT`_i@GbO)<=>4O#QRrdXa$UIUsQCitc{KEOsb0&~5XT|W8$%p7@m{PW)NG4d zDtjS(E7MZBYK^T2IXxAZWOj(Y?OLX#hNHLYT;x-1K`|{=s3o+y4O%MOGYjo)e0g&K zO^_a%W7v?t!1@#7;m$AiqS5_xRikC-0u+-=?u@y3c5 z-Ft=1`=MMT^eL_qi{20Z!n6)gH-9FQs96Uvt%Ei|k09tn=NV7yAP(>vx-F4)A7S;R zo$&)ccY$_$AK5wB%c6DAZu-_~#&DsA8oHM6f7w(% zTjIIWpVhaY<@1+yrQaVtq=)N5K&paOn+8iy8g1R^v7uXLwtOh{;a-q z{bgP0#OjlNd{1AloYj{e{?gaLl~2f-*Wk?<;V1Z>5bIfX&T>NZX*>zJL;TnJ_-F{0K+$}vG>fI33G%?$6@Mgr% zlEVGgs&pfolW6U(rC*|TH$cf&^~UjoG$c|jEPCAjbmEt(s( zX$kcBhEaM1{~@u!d-#7flB;*1S&(P`j%&77koKg0k-ly2P#)Z%jziS<9wpAf;>5@S zi6J33z5wM`fyVw1s4w+Ba=qQA^x`u))Omq+ox(=M_+^pAS7?#agONP<@E)gV=VSPS z-(bFdgYy%Nm4~>#kN*$c*{S>HKHl~*xat(&zrpbde)|~T%;U~u{E9TKpBIa7Cmh{0 zi>buVnJJ5PH`VH;)X>Q*FDr{>wYk$&-(+UfV#}J^q0}C4el4qS8Z+)V^{PDni206w z+41J!vYPvyl{wRe=$BY4<+zJ^wFx^ZEtat-D{OD2h_S>X%hDRW54-s8;T>N?Ja>#Q zeOWqN+$WAlT0D!nLva7oK=Wvw-Ow{a#Ytm&#%tT;kv+a$lfw7-8YYGE@ij~X>l4;C zImAy`iN^!9~H0k`^^!?Z)@E%3DoK=Vxs> znypB}E_%O@uI;+&Vq2vr(ptsmEh{1F`m7^oCB&N2I*9+<$yh(IOs-AdLx;VLn=$7Ju;{R!Vnj|*oJ z1F{Q_xB*UN-SJhZJ9^D7wr!+!m}Zw!B)+DO+65OaePf#4ub|m^9fqKI=fSN<8{1YzVnM>*wR9`LgTEFqDjx8T7-6 zABtWfJr7rjl$P{BP2MAPjTOQv#vifh%r`{;=Oe8CQtHmSXSkN2N0ga_m@mmoKdv2V zC#Oek{GJ$h1*%f5+p+D+(>$c?Ro~aD`7*vjN)UyhGqzYLz2BH)zY4=a9gjH^Jq}1}m3lNQ*fpe&m&M*1;d6B^V1>lE z21av)zjOE1m z5qXCY|H2;dIzO-S^m?{iYH6oIGm8Csga)AoUnnzY7I( z(A!eZc&h{X?KuCb^|sNgMMLwWm2?`XK7C8(-J7ni&6?Zl_>FfI=8kV?SJaW z&2eR2r7>&kOCocQxqyz{JO{8=`Dlcgbg8q%~&^;!fL8x;?FZ2KXlx z+J-wW}aj2xuw6UnHvz@M3 zj@F$%9<}Srh;NvV<+iIMO2`n~-bRO%x>r|WEKdR5XgaoV05#%#2GMnZBo?XSC z0e;ry?ch!2( zb5lQSLSLTjazR}@UG2oHH2$La*QFoh^4hP+Zr`deeiNZ(83nm_1$7SUA4S^99igDi z_vw1~sq=@?gH-Mz)$(J%SX^Vwv0=`4#tbpy?6b?>rE6{(DU8J6yfQ!dU!(Q(0^Z^- zRzDmaH~7`N5wa)c8n&tGUG;wbJ2Uq@*X>-v%SbJ&Lv*>S{P!w*(_e~bIL}Kc?GlR& zrAb}ia2F7L>*BE;9jbkzRsA24sjR;z<98CtlW+A&wY(r!IZ>_*f2#Fhj@mZT?kO+A0fiUvi?WuOXEaZT$>Y z?^k7omU{ZJKucNP`W$PL*CWfHX^qUg!qt5aE=je<@$x3oX8Pmw#~-27wb3H?MjYBS zhnIg(-6ggZsy&c;+b%3avXi5?T(Cafjk3JVrn|*DZ-aHRtrpp*WwLFZO*%Al7SZ<2 z(a}Wx^6%TWq+EyYr~Z`NRfp!zgXKBFWd&9BJKD8h!Uj;DOT3&8O?Q=d^C(@_V%Z~y z`=yF6$Mp1Kf0&+bx#H42;LBGrrlM)p?OdVdvLcB~^` zn~v;o8P`B$^k+Z*nRH}tIqi2Qrwys!j4`QIs;q{+DeKm(?^o5WRd3pKF)xC|+=IP+ z7noe`yG@OH$z_hoCwg5^=Y9%M04hTO}_!nF1x#YK!n#P+>sS&Y-tX!_*+krx)qrJP9#`) zO=+Bx|5f=}C=J8tIn9p#bQGDS`xm9<=R}by9x#ll`-*r1W_DoqGm%q&I_$;*Jd5+t zsra9fQjC&%i2pfOp!8khtfv~!r>z`cm+4lI<`wl^5k@l09(v(EciOMoljZw27I!EN z(ah~E_N*zjob|OwiL~BlyJTF6M3%6f_#HdRYj?9z3Dk&};m2nj8ute$R)o~zuHe<*4UzL>#UWVs@Ra1M>h`YsG~YQc zi@TDtOx8i$^g3EKK398fS>BL)GC#xnzCiih|BTs|H}I~42+&q_J4zjW?0!wo)l91W z^VSUBnfTZt-gyhOedZ`IL=UV0%drHiY@pwVpaxL@=ip`8qpKS=^l72Wr1rqpF&>xC ztOd(xKgZ;!-dn%tur9ABSUxj;@1Y;Iz@L+Pi;Z5(Cg0FUBYO!BM-h+l-MrDO>v*4= zqPQP+UJYVHQe7gitbX^I^3q^BdrWc6-o{-By0&W?drPrRliPiOrB7~8DV9E+{iLL( zN$w>jHFzm8y?vybYwmLoskF8_Z?Mjeo+{LSD5EK@sp)b4-^AG>K6@DR!)U+2@vK!+ zl8+fiD6?oLPDJ<+nuk!m>Ij%|^Zxw{+vnh{WpjF45d@@Ai2(;OR&>J4q9 zaf(@K>iJ04oN*Q`>L^t!Z=YwlDL-)f)<6IL*tVN+H7_;o;%mDJ(}F`Q7PEa^L*A&3 ztD2^D-!NAQ_d)m#<o7-g@ifNnbZ1b*-g00W;}#M=5F4UMxnL1{G3mPIdRMK z%%}8JYhhIj>g6E!k@^TbKwPSnDJ_@mUh-eFu6y)@&t?^u5MG%@P^^V!5e&IPS3Ta^ zNKOr(Xn*c)0A>-ar_ocJ&dpken3{kyANK3Y3@7ueJZ0P*H+_o)uV>uPhhSle)3DNg99DKou zV=lxGI48Q3C8oIC>aygUutdX3U&7C#*yvviD@~4k01pgxg>&TN7Vh)j3qwm2NxVMz zmqWQ2TDnPY@O!ZiGcSgrr423JhGXOz;hWg=Vrc1*enO!b7j0;1Lrd?$XYf1b@Vjou znT5d<=zZMPS8~6F9Mt}tyw=5MV`%Am+RE4!>w25rHmQl#mss_!)MUPq+wL3DwV7Ft z&k;rT305MBg5_F-(fWpy_9HweCspcWXx=GevX*1RF0)@3@b>^SHgSWL^(qBuQ~UsX z4RKmA_S$m;&%{Eb=+7fO%~A}z98)R0YO-0IHP@`UU9Gtxs-e!RtKa!CN*nR9oAW{* zEjw3RY`sm{V=Cet3f!N?5X@zCt-ePMx;k%xOo$L=3?k(nY8e+qu?UOy%0d z;`J@3LD&OoqmKK)5X>Qs$fbs0R*H}sU94e3Ir=}Chh`m_QRqi9E8WIO&gEIRET@6; zW!+Kc8ISC>oCfXr-%4t9=U8v=IJ-d$f{yWv)4Vz(k?5===YmZ=_J~l&bP=;YP zOSG3@@tIkoEsI9X5oU>w>Ct>;mguT%7MCsqD)TK^77b<&slyc$

5+Lry1cXRYq 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.4.0" } }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -97,6 +126,30 @@ "node": ">=6" } }, + "node_modules/ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -110,12 +163,67 @@ "node": ">= 8" } }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -128,6 +236,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -166,6 +279,151 @@ "tslib": "^2.0.3" } }, + "node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/charset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/charset/-/charset-1.0.1.tgz", + "integrity": "sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cheerio": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz", + "integrity": "sha512-Fwcm3zkR37STnPC8FepSHeSYJM5Rd596TZOcfDUdojR4Q735aK1Xn+M+ISagNneuCwMjK28w4kX+ETILGNT/UQ==", + "dependencies": { + "css-select": "~1.0.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "~3.8.1", + "lodash": "^3.2.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cheerio/node_modules/dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/cheerio/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/cheerio/node_modules/domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha512-q9bUwjfp7Eif8jWxxxPSykdRZAb6GkguBGSgvvCrhI9wB71W2K/Kvv4E61CF/mcCfnVJDeDWx/Vb/uAqbDj6UQ==", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/cheerio/node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/cheerio/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/cheerio/node_modules/htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha512-hBxEg3CYXe+rPIua8ETe7tmG3XDn9B0edOE/e9wH2nLczxzgdu0m0aNHY+5wFZiviLWLdANPJTssa92dMcXQ5Q==", + "dependencies": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + } + }, + "node_modules/cheerio/node_modules/htmlparser2/node_modules/entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha512-LbLqfXgJMmy81t+7c14mnulFHJ170cM6E+0vMXR9k/ZiZwgX8i5pNgjTCX3SO4VeUsFLV+8InixoretwU+MjBQ==" + }, + "node_modules/cheerio/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/cheerio/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/cheerio/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -190,6 +448,17 @@ "fsevents": "~2.3.2" } }, + "node_modules/clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dependencies": { + "chalk": "^1.1.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/clean-css": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", @@ -202,6 +471,46 @@ "node": ">= 10.0" } }, + "node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ==", + "dependencies": { + "q": "^1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", @@ -217,6 +526,101 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, + "node_modules/configstore": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz", + "integrity": "sha512-Zcx2SVdZC06IuRHd2MhkVYFNJBkZBj166LGdsJXRcqNC8Gs5Bwh8mosStNeCBBmtIm4wNii2uarD50qztjKOjw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "object-assign": "^4.0.1", + "os-tmpdir": "^1.0.0", + "osenv": "^0.1.0", + "uuid": "^2.0.1", + "write-file-atomic": "^1.1.2", + "xdg-basedir": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/configstore/node_modules/uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha512-FULf7fayPdpASncVy4DLh3xydlXEJJpvIELjYjNeQWYUZ9pclcpvCZSr2gkmN2FrrGcI7G/cJsIEwk5/8vfXpg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/css-select": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz", + "integrity": "sha512-/xPlD7betkfd7ChGkLGGWx5HWyiHDOSn7aACLzdH0nwucPvB0EAm8hMBm7Xn7vGfAeRRN7KZ8wumGm8NoNcMRw==", + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "1.0", + "domutils": "1.4", + "nth-check": "~1.0.0" + } + }, + "node_modules/css-select/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/css-select/node_modules/domutils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz", + "integrity": "sha512-ZkVgS/PpxjyJMb+S2iVHHEZjVnOUtjGp0/zstqKGTE9lrZtNHlNQmLwP/lhLMEApYbzc08BKMx9IFpKhaSbW1w==", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/css-what": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz", + "integrity": "sha512-60SUMPBreXrLXgvpM8kYpO0AOyMRhdRlXFX5BMQbZq1SIJCyNE56nqFQhmvREQdUJpedbGRYZ5wOyq3/F6q5Zw==", + "engines": { + "node": "*" + } + }, + "node_modules/csso": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz", + "integrity": "sha512-tckZA0LhyEnToPoQDmncCA+TUS3aoIVl/MsSaoipR52Sfa+H83fJvIHRVOHMFn9zW6kIV1L0D7tUDFFjvN28lg==", + "dependencies": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + }, + "bin": { + "csso": "bin/csso" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", @@ -234,6 +638,30 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -338,6 +766,34 @@ "tslib": "^2.0.3" } }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -350,6 +806,11 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/es6-promise": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", + "integrity": "sha512-oyOjMhyKMLEjOOtvkwg0G4pAzLQ9WdbbeX7WdqKzvYXu+UFgD0Zo/Brq5Q49zNmnGPPzV5rmYvrr0jz1zWx8Iw==" + }, "node_modules/escape-goat": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", @@ -362,6 +823,49 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -374,6 +878,27 @@ "node": ">=8" } }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -388,6 +913,14 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -400,6 +933,71 @@ "node": ">= 6" } }, + "node_modules/got": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz", + "integrity": "sha512-7chPlc0pWHjvq7B6dEEXz4GphoDupOvBSSl6AwRsAJX7GPTZ+bturaZiIigX4Dp6KrAP67nvzuKkNc0SLA0DKg==", + "dependencies": { + "duplexify": "^3.2.0", + "infinity-agent": "^2.0.0", + "is-redirect": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "nested-error-stacks": "^1.0.0", + "object-assign": "^3.0.0", + "prepend-http": "^1.0.0", + "read-all-stream": "^3.0.0", + "timed-out": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/got/node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -454,16 +1052,117 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "license": "ISC" }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/infinity-agent": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz", + "integrity": "sha512-CnfUJe5o2S9aAQWXGMhDZI4UL39MAJV3guOTfHHIdos4tuVHkl1j/J+1XLQn+CLIvqcpgQR/p+xXYXzcrhCe5w==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inliner": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/inliner/-/inliner-1.13.1.tgz", + "integrity": "sha512-yoS+56puOu+Ug8FBRtxtTFnEn2NHqFs8BNQgSOvzh3J0ommbwNw8VKiaVNYjWK6fgPuByq95KyV0LC+qV9IwLw==", + "dependencies": { + "ansi-escapes": "^1.4.0", + "ansi-styles": "^2.2.1", + "chalk": "^1.1.3", + "charset": "^1.0.0", + "cheerio": "^0.19.0", + "debug": "^2.2.0", + "es6-promise": "^2.3.0", + "iconv-lite": "^0.4.11", + "jschardet": "^1.3.0", + "lodash.assign": "^3.2.0", + "lodash.defaults": "^3.1.2", + "lodash.foreach": "^3.0.3", + "mime": "^1.3.4", + "minimist": "^1.1.3", + "request": "^2.74.0", + "svgo": "^0.6.6", + "then-fs": "^2.0.0", + "uglify-js": "^2.8.0", + "update-notifier": "^0.5.0" + }, + "bin": { + "inliner": "cli/index.js" + } + }, + "node_modules/inliner/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/inliner/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inliner/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -472,6 +1171,11 @@ "node": ">=8" } }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -481,6 +1185,17 @@ "node": ">=0.10.0" } }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -493,6 +1208,14 @@ "node": ">=0.10.0" } }, + "node_modules/is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -502,6 +1225,244 @@ "node": ">=0.12.0" } }, + "node_modules/is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/js-yaml": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha512-BLv3oxhfET+w5fjPwq3PsAsxzi9i3qzU//HMpWVz0A6KplF86HdR9x2TGnv9DXhSUrO7LO8czUiTd3yb3mLSvg==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/jschardet": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.6.0.tgz", + "integrity": "sha512-xYuhvQ7I9PDJIGBWev9xm0+SMSed3ZDBAmvVjbFR1ZRLAF+vlXcQu6cRI9uAlj81rzikElRVteehwV7DuX2ZmQ==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/latest-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz", + "integrity": "sha512-HERbxp4SBlmI380+eM0B0u4nxjfTaPeydIMzl9+9UQ4nSu3xMWKlX9WoT34e4wy7VWe67c53Nv9qPVjS8fHKgg==", + "dependencies": { + "package-json": "^1.0.0" + }, + "bin": { + "latest-version": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==" + }, + "node_modules/lodash._arrayeach": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz", + "integrity": "sha512-Mn7HidOVcl3mkQtbPsuKR0Fj0N6Q6DQB77CtYncZcJc0bx5qv2q4Gl6a0LC1AN+GSxpnBDNnK3CKEm9XNA4zqQ==" + }, + "node_modules/lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha512-t3N26QR2IdSN+gqSy9Ds9pBu/J1EAFEshKlUHpJG3rvyJOYgcELIxcIeKKfZk7sjOz11cFfzJRsyFry/JyabJQ==", + "dependencies": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==" + }, + "node_modules/lodash._baseeach": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz", + "integrity": "sha512-IqUZ9MQo2UT1XPGuBntInqTOlc+oV+bCo0kMp+yuKGsfvRSNgUW0YjWVZUrG/gs+8z/Eyuc0jkJjOBESt9BXxg==", + "dependencies": { + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ==" + }, + "node_modules/lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha512-LziVL7IDnJjQeeV95Wvhw6G28Z8Q6da87LWKOPWmzBLv4u6FAT/x5v00pyGW0u38UoogNF2JnD3bGgZZDaNEBw==", + "dependencies": { + "lodash._bindcallback": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash.restparam": "^3.0.0" + } + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==" + }, + "node_modules/lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==" + }, + "node_modules/lodash.assign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha512-/VVxzgGBmbphasTg51FrztxQJ/VgAUpol6zmJuSVSGcNg4g7FA4z7rQV8Ovr9V3vFBNWZhvKWHfpAytjTVUfFA==", + "dependencies": { + "lodash._baseassign": "^3.0.0", + "lodash._createassigner": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash.defaults": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", + "integrity": "sha512-X7135IXFQt5JDFnYxOVAzVz+kFvwDn3N8DJYf+nrz/mMWEuSu7+OL6rWqsk3+VR1T4TejFCSu5isBJOLSID2bg==", + "dependencies": { + "lodash.assign": "^3.0.0", + "lodash.restparam": "^3.0.0" + } + }, + "node_modules/lodash.foreach": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-3.0.3.tgz", + "integrity": "sha512-PA7Lp7pe2HMJBoB1vELegEIF3waUFnM0fWDKJVYolwZ4zHh6WTmnq0xmzfQksD66gx2quhDNyBdyaE2T8/DP3Q==", + "dependencies": { + "lodash._arrayeach": "^3.0.0", + "lodash._baseeach": "^3.0.0", + "lodash._bindcallback": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + }, + "node_modules/lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==" + }, + "node_modules/lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==", + "dependencies": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "node_modules/lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==" + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -511,6 +1472,14 @@ "tslib": "^2.0.3" } }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", @@ -523,6 +1492,25 @@ "node": ">=4.0.0" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -535,12 +1523,39 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/nested-error-stacks": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", + "integrity": "sha512-o32anp9JA7oezPOFSfG2BBXSdHepOm5FpJvwxHWDtfJ3Bg3xdi68S6ijPlEOfUg6quxZWyvJM+8fHk1yMDKspA==", + "dependencies": { + "inherits": "~2.0.1" + } + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -588,6 +1603,76 @@ "node": ">=0.10.0" } }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz", + "integrity": "sha512-knDtirWWqKVJrLY3gEBLflVvueTMpyjbAwX/9j/EKi2DsjNemp5voS8cyKyGh57SNaMJNhNRZbIaWdneOcLU1g==", + "dependencies": { + "got": "^3.2.0", + "registry-url": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -608,6 +1693,11 @@ "tslib": "^2.0.3" } }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -620,12 +1710,134 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "license": "MIT" }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/read-all-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", + "integrity": "sha512-DI1drPHbmBcUDWrJ7ull/F2Qb8HkwBncVx8/RpKYFSIACYaVRQReISYPdZz/mt1y1+qMCOrfReTopERmaxtP6w==", + "dependencies": { + "pinkie-promise": "^2.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -638,6 +1850,17 @@ "node": ">=8.10.0" } }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -647,6 +1870,99 @@ "node": ">= 0.10" } }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "integrity": "sha512-Nh30JLeMHdoI+AsQ5eblhZ7YlTsM9wiJQe/AHIunlK3KWzvXhXb36IJ7K1IOeRjIOtzMjdUHjwXUFxKJoPTSOg==", + "dependencies": { + "is-finite": "^1.0.0" + }, + "bin": { + "repeating": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, "node_modules/semver": { "version": "7.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", @@ -659,6 +1975,25 @@ "node": ">=10" } }, + "node_modules/semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw==", + "dependencies": { + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", @@ -671,6 +2006,14 @@ "node": ">=10" } }, + "node_modules/slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", + "engines": { + "node": "*" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -690,6 +2033,83 @@ "source-map": "^0.6.0" } }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", + "integrity": "sha512-MNCACnufWUf3pQ57O5WTBMkKhzYIaKEcUioO0XHrTMafrbBaNk4IyDOLHBv5xbXO0jLLdsYWeFjpjG2hVHRDtw==", + "dependencies": { + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -702,6 +2122,27 @@ "node": ">=4" } }, + "node_modules/svgo": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz", + "integrity": "sha512-C5A1r5SjFesNoKsmc+kWBxmB04iBGH2D/nFy8HJaME9+SyZKcmqcN8QG+GwxIc7D2+JWhaaW7uaM9+XwfplTEQ==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.0.0", + "js-yaml": "~3.6.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/terser": { "version": "5.37.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", @@ -726,6 +2167,22 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "license": "MIT" }, + "node_modules/then-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/then-fs/-/then-fs-2.0.0.tgz", + "integrity": "sha512-5ffcBcU+vFUCYDNi/o507IqjqrTkuGsLVZ1Fp50hwgZRY7ufVFa9jFfTy5uZ2QnSKacKigWKeaXkOqLa4DsjLw==", + "dependencies": { + "promise": ">=3.2 <8" + } + }, + "node_modules/timed-out": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", + "integrity": "sha512-pqqJOi1rF5zNs/ps4vmbE4SFCrM4iR7LW+GHAsHqO/EumqbIWceioevYLM5xZRgQSH6gFgL9J/uB7EcJhQ9niQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -747,18 +2204,117 @@ "nodetouch": "bin/nodetouch.js" } }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/uglify-js/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", + "optional": true + }, "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "license": "MIT" }, + "node_modules/update-notifier": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz", + "integrity": "sha512-zOGOlUKDAgDlLHLv7Oiszz3pSj8fKlSJ3i0u49sEakjXUEVJ6DMjo/Mh/B6mg2eOALvRTJkd0kbChcipQoYCng==", + "dependencies": { + "chalk": "^1.0.0", + "configstore": "^1.0.0", + "is-npm": "^1.0.0", + "latest-version": "^1.0.0", + "repeating": "^1.1.2", + "semver-diff": "^2.0.0", + "string-length": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/valid-data-url": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-3.0.1.tgz", @@ -768,6 +2324,24 @@ "node": ">=10" } }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, "node_modules/web-resource-inliner": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-7.0.0.tgz", @@ -783,6 +2357,67 @@ "engines": { "node": ">=10.0.0" } + }, + "node_modules/whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA==", + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha512-SdrHoC/yVBPpV0Xq/mUZQIpW2sWXAShb/V4pomcJXh92RuaO+f3UTWItiR3Px+pLnV2PvC2/bfn5cwr5X6Vfxw==", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", + "integrity": "sha512-NF1pPn594TaRSUO/HARoB4jK8I+rWgcpVlpQCK6/6o5PHyLUt2CSiDrpUZbQ6rROck+W2EwF8mBJcTs+W98J9w==", + "dependencies": { + "os-homedir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } } } } diff --git a/package.json b/package.json index ce80af580e..2a2a748dd3 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,9 @@ "dependencies": { "clean-css": "^5.3.3", "html-minifier-terser": "^7.2.0", - "web-resource-inliner": "^7.0.0", - "nodemon": "^3.1.9" + "inliner": "^1.13.1", + "nodemon": "^3.1.9", + "web-resource-inliner": "^7.0.0" }, "engines": { "node": ">=20.0.0" diff --git a/wled00/const.h b/wled00/const.h index c81854dad0..d319f94942 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -309,7 +309,7 @@ #define BTN_TYPE_TOUCH_SWITCH 9 //WLEDMM not yet supported //Ethernet board types -#define WLED_NUM_ETH_TYPES 15 //WLEDMM +1 for Olimex ESP32-Gateway +#define WLED_NUM_ETH_TYPES 18 //WLEDMM +1 for Olimex ESP32-Gateway + 3 for W5500 #define WLED_ETH_NONE 0 #define WLED_ETH_WT32_ETH01 1 @@ -326,6 +326,9 @@ #define WLED_ETH_LILYGO_T_POE_PRO 12 #define WLED_ETH_GLEDOPTO 13 #define WLED_ETH_OLIMEX_GTW 14 +#define WLED_ETH_TTGO_T_ETH_LITE_S3 15 +#define WLED_ETH_WAVESHARE_ESP32_S3_ETH 16 +#define WLED_ETH_W5500_GENERIC 17 //Hue error codes #define HUE_ERROR_INACTIVE 0 diff --git a/wled00/data/settings_wifi.htm b/wled00/data/settings_wifi.htm index a0b8778a1e..66be574a0f 100644 --- a/wled00/data/settings_wifi.htm +++ b/wled00/data/settings_wifi.htm @@ -211,6 +211,9 @@

Ethernet Type

+ + +


diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 26696e569c..6a0f9df1ec 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -1085,14 +1085,25 @@ bool WLED::initEthernet() } #endif + // if (!ETH.begin(ETH_PHY_W5500, ETH_ADDR, ETH_CS_PIN, ETH_INT_PIN, ETH_RST_PIN, SPI3_HOST, ETH_SCLK_PIN, ETH_MISO_PIN, ETH_MOSI_PIN)) { + // DEBUG_PRINTLN(F("initC: ETH.begin() [SPI Ethernet] failed")); + // // de-allocate the allocated pins + // for (managed_pin_type mpt : pinsToAllocate) { + // pinManager.deallocatePin(mpt.pin, PinOwner::Ethernet); + // } + // return false; + // } else { + // Serial.println("ETH initialized W5500!"); + // } + if (!ETH.begin( - (uint8_t) es.eth_address, - (int) es.eth_power, - (int) es.eth_mdc, - (int) es.eth_mdio, - (eth_phy_type_t) es.eth_type, - (eth_clock_mode_t) es.eth_clk_mode - )) { + (uint8_t)es.eth_address, + (int)es.eth_power, + (int)es.eth_mdc, + (int)es.eth_mdio, + (eth_phy_type_t)es.eth_type, + (eth_clock_mode_t)es.eth_clk_mode + )) { DEBUG_PRINTLN(F("initC: ETH.begin() failed")); // de-allocate the allocated pins for (managed_pin_type mpt : pinsToAllocate) { From 2bb266420f56def7df50b5809c902f47e2b88bc4 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Thu, 15 Jan 2026 00:38:51 -0500 Subject: [PATCH 02/44] W5500 "onnected" but no IP yet. --- wled00/data/settings_wifi.htm | 6 +- wled00/network.cpp | 133 ++++++++++++++++++++- wled00/src/dependencies/network/Network.h | 3 +- wled00/wled.cpp | 135 ++++++++++++---------- wled00/wled.h | 5 +- wled00/wled_ethernet.h | 7 ++ 6 files changed, 220 insertions(+), 69 deletions(-) diff --git a/wled00/data/settings_wifi.htm b/wled00/data/settings_wifi.htm index 66be574a0f..a3a4206d23 100644 --- a/wled00/data/settings_wifi.htm +++ b/wled00/data/settings_wifi.htm @@ -211,9 +211,9 @@

Ethernet Type

- - - + + +


diff --git a/wled00/network.cpp b/wled00/network.cpp index a6b4da8cc1..c3e6752a9b 100644 --- a/wled00/network.cpp +++ b/wled00/network.cpp @@ -33,6 +33,12 @@ const ethernet_settings ethernetBoards[] = { 16, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO0_IN // eth_clk_mode }, @@ -43,6 +49,12 @@ const ethernet_settings ethernetBoards[] = { 12, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO17_OUT // eth_clk_mode }, @@ -53,6 +65,12 @@ const ethernet_settings ethernetBoards[] = { -1, // eth_power, 16, // eth_mdc, 17, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO0_IN // eth_clk_mode }, @@ -63,6 +81,12 @@ const ethernet_settings ethernetBoards[] = { 5, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO17_OUT // eth_clk_mode }, @@ -73,6 +97,12 @@ const ethernet_settings ethernetBoards[] = { 5, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO17_OUT // eth_clk_mode }, @@ -83,6 +113,12 @@ const ethernet_settings ethernetBoards[] = { -1, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO17_OUT // eth_clk_mode }, @@ -93,6 +129,12 @@ const ethernet_settings ethernetBoards[] = { 5, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_IP101, // eth_type, ETH_CLOCK_GPIO0_IN // eth_clk_mode }, @@ -103,6 +145,12 @@ const ethernet_settings ethernetBoards[] = { -1, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO17_OUT // eth_clk_mode }, @@ -113,6 +161,12 @@ const ethernet_settings ethernetBoards[] = { 5, // eth_power, 23, // eth_mdc, 33, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO17_OUT // eth_clk_mode }, @@ -123,6 +177,12 @@ const ethernet_settings ethernetBoards[] = { 5, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO17_OUT // eth_clk_mode }, @@ -133,6 +193,12 @@ const ethernet_settings ethernetBoards[] = { 12, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO0_OUT // eth_clk_mode }, @@ -144,6 +210,12 @@ const ethernet_settings ethernetBoards[] = { 5, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO0_OUT // eth_clk_mode }, @@ -154,19 +226,76 @@ const ethernet_settings ethernetBoards[] = { 5, // eth_power, 23, // eth_mdc, 33, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO0_IN // eth_clk_mode }, - //WLEDMM: Olimex-ESP32-Gateway (like QuinLed-ESP32-Ethernet { 0, // eth_address, 5, // eth_power, 23, // eth_mdc, 18, // eth_mdio, + GPIO_NUM_NC, // eth_miso_pin, + GPIO_NUM_NC, // eth_mosi_pin, + GPIO_NUM_NC, // eth_cs_pin, + GPIO_NUM_NC, // eth_rst_pin, + GPIO_NUM_NC, // eth_int_pin; + GPIO_NUM_NC, // eth_sclk_pin; ETH_PHY_LAN8720, // eth_type, ETH_CLOCK_GPIO17_OUT // eth_clk_mode + }, + + //WLEDMM: WaveShare ESP32-S3-ETH + { + 1, // eth_address, + GPIO_NUM_NC, // eth_power, + GPIO_NUM_NC, // eth_mdc, + GPIO_NUM_NC, // eth_mdio, + 12, // eth_miso_pin, + 11, // eth_mosi_pin, + 14, // eth_cs_pin, + 9, // eth_rst_pin, + 10, // eth_int_pin; + 13, // eth_sclk_pin; + ETH_PHY_W5500, // eth_type, + ETH_CLOCK_GPIO0_OUT // eth_clk_mode (ignored for W5500) + }, + + { + 1, // eth_address, + GPIO_NUM_NC, // eth_power, + GPIO_NUM_NC, // eth_mdc, + GPIO_NUM_NC, // eth_mdio, + 11, // eth_miso_pin, + 12, // eth_mosi_pin, + 9, // eth_cs_pin, + 14, // eth_rst_pin, + 13, // eth_int_pin; + 10, // eth_sclk_pin; + ETH_PHY_W5500, // eth_type, + ETH_CLOCK_GPIO0_OUT // eth_clk_mode (ignored for W5500) + }, + + { + 1, // eth_address, + GPIO_NUM_NC, // eth_power, + GPIO_NUM_NC, // eth_mdc, + GPIO_NUM_NC, // eth_mdio, + 12, // eth_miso_pin, + 13, // eth_mosi_pin, + 25, // eth_cs_pin, + 26, // eth_rst_pin, + 27, // eth_int_pin; + 14, // eth_sclk_pin; + ETH_PHY_W5500, // eth_type, + ETH_CLOCK_GPIO0_OUT // eth_clk_mode (ignored for W5500) } }; @@ -226,7 +355,7 @@ void WiFiEvent(WiFiEvent_t event) if (staticIP != (uint32_t)0x00000000 && staticGateway != (uint32_t)0x00000000) { ETH.config(staticIP, staticGateway, staticSubnet, IPAddress(8, 8, 8, 8)); } else { - ETH.config(INADDR_NONE, INADDR_NONE, INADDR_NONE); + // ETH.config(INADDR_NONE, INADDR_NONE, INADDR_NONE); } // convert the "serverDescription" into a valid DNS hostname (alphanumeric) char hostname[64]; diff --git a/wled00/src/dependencies/network/Network.h b/wled00/src/dependencies/network/Network.h index 9201d514ea..cb43fda072 100644 --- a/wled00/src/dependencies/network/Network.h +++ b/wled00/src/dependencies/network/Network.h @@ -2,7 +2,8 @@ #include #else // ESP32 #include - #include + // #include + #include "ETHClass2.h" #endif #ifndef Network_h diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 6a0f9df1ec..116ba8621a 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -1029,43 +1029,6 @@ bool WLED::initEthernet() // Ethernet initialization should only succeed once -- else reboot required ethernet_settings es = ethernetBoards[ethernetType]; - managed_pin_type pinsToAllocate[10] = { - // first six pins are non-configurable - esp32_nonconfigurable_ethernet_pins[0], - esp32_nonconfigurable_ethernet_pins[1], - esp32_nonconfigurable_ethernet_pins[2], - esp32_nonconfigurable_ethernet_pins[3], - esp32_nonconfigurable_ethernet_pins[4], - esp32_nonconfigurable_ethernet_pins[5], - { (int8_t)es.eth_mdc, true }, // [6] = MDC is output and mandatory - { (int8_t)es.eth_mdio, true }, // [7] = MDIO is bidirectional and mandatory - { (int8_t)es.eth_power, true }, // [8] = optional pin, not all boards use - { ((int8_t)0xFE), false }, // [9] = replaced with eth_clk_mode, mandatory - }; - // update the clock pin.... - if (es.eth_clk_mode == ETH_CLOCK_GPIO0_IN) { - pinsToAllocate[9].pin = 0; - pinsToAllocate[9].isOutput = false; - } else if (es.eth_clk_mode == ETH_CLOCK_GPIO0_OUT) { - pinsToAllocate[9].pin = 0; - pinsToAllocate[9].isOutput = true; - } else if (es.eth_clk_mode == ETH_CLOCK_GPIO16_OUT) { - pinsToAllocate[9].pin = 16; - pinsToAllocate[9].isOutput = true; - } else if (es.eth_clk_mode == ETH_CLOCK_GPIO17_OUT) { - pinsToAllocate[9].pin = 17; - pinsToAllocate[9].isOutput = true; - } else { - DEBUG_PRINT(F("initE: Failing due to invalid eth_clk_mode (")); - DEBUG_PRINT(es.eth_clk_mode); - DEBUG_PRINTLN(")"); - return false; - } - - if (!pinManager.allocateMultiplePins(pinsToAllocate, 10, PinOwner::Ethernet)) { - DEBUG_PRINTLN(F("initE: Failed to allocate ethernet pins")); - return false; - } /* For LAN8720 the most correct way is to perform clean reset each time before init @@ -1085,31 +1048,81 @@ bool WLED::initEthernet() } #endif - // if (!ETH.begin(ETH_PHY_W5500, ETH_ADDR, ETH_CS_PIN, ETH_INT_PIN, ETH_RST_PIN, SPI3_HOST, ETH_SCLK_PIN, ETH_MISO_PIN, ETH_MOSI_PIN)) { - // DEBUG_PRINTLN(F("initC: ETH.begin() [SPI Ethernet] failed")); - // // de-allocate the allocated pins - // for (managed_pin_type mpt : pinsToAllocate) { - // pinManager.deallocatePin(mpt.pin, PinOwner::Ethernet); - // } - // return false; - // } else { - // Serial.println("ETH initialized W5500!"); - // } - - if (!ETH.begin( - (uint8_t)es.eth_address, - (int)es.eth_power, - (int)es.eth_mdc, - (int)es.eth_mdio, - (eth_phy_type_t)es.eth_type, - (eth_clock_mode_t)es.eth_clk_mode - )) { - DEBUG_PRINTLN(F("initC: ETH.begin() failed")); - // de-allocate the allocated pins - for (managed_pin_type mpt : pinsToAllocate) { - pinManager.deallocatePin(mpt.pin, PinOwner::Ethernet); + if (es.eth_type == ETH_PHY_W5500) { + managed_pin_type pinsToAllocate[6] = { + { (int8_t)es.eth_miso_pin, false }, // MISO is input + { (int8_t)es.eth_mosi_pin, true }, // MOSI is output + { (int8_t)es.eth_cs_pin, true }, // CS is output + { (int8_t)es.eth_rst_pin, true }, // RST is output + { (int8_t)es.eth_int_pin, false }, // INT is input + { (int8_t)es.eth_sclk_pin, true }, // SCLK is output + }; + if (!pinManager.allocateMultiplePins(pinsToAllocate, 6, PinOwner::Ethernet)) { + DEBUG_PRINTLN(F("initE: Failed to allocate ethernet pins")); + return false; + } + if (!ETH.begin(ETH_PHY_W5500, es.eth_address, es.eth_cs_pin, es.eth_int_pin, es.eth_rst_pin, SPI3_HOST, es.eth_sclk_pin, es.eth_miso_pin, es.eth_mosi_pin)) { + DEBUG_PRINTLN(F("initC: ETH.begin() [SPI Ethernet] failed")); + // de-allocate the allocated pins + for (managed_pin_type mpt : pinsToAllocate) { + pinManager.deallocatePin(mpt.pin, PinOwner::Ethernet); + } + return false; + } else { + Serial.println("ETH initialized W5500!"); + } + } else { + managed_pin_type pinsToAllocate[10] = { + // first six pins are non-configurable + esp32_nonconfigurable_ethernet_pins[0], + esp32_nonconfigurable_ethernet_pins[1], + esp32_nonconfigurable_ethernet_pins[2], + esp32_nonconfigurable_ethernet_pins[3], + esp32_nonconfigurable_ethernet_pins[4], + esp32_nonconfigurable_ethernet_pins[5], + { (int8_t)es.eth_mdc, true }, // [6] = MDC is output and mandatory + { (int8_t)es.eth_mdio, true }, // [7] = MDIO is bidirectional and mandatory + { (int8_t)es.eth_power, true }, // [8] = optional pin, not all boards use + { ((int8_t)0xFE), false }, // [9] = replaced with eth_clk_mode, mandatory + }; + // update the clock pin.... + if (es.eth_clk_mode == ETH_CLOCK_GPIO0_IN) { + pinsToAllocate[9].pin = 0; + pinsToAllocate[9].isOutput = false; + } else if (es.eth_clk_mode == ETH_CLOCK_GPIO0_OUT) { + pinsToAllocate[9].pin = 0; + pinsToAllocate[9].isOutput = true; + } else if (es.eth_clk_mode == ETH_CLOCK_GPIO16_OUT) { + pinsToAllocate[9].pin = 16; + pinsToAllocate[9].isOutput = true; + } else if (es.eth_clk_mode == ETH_CLOCK_GPIO17_OUT) { + pinsToAllocate[9].pin = 17; + pinsToAllocate[9].isOutput = true; + } else { + DEBUG_PRINT(F("initE: Failing due to invalid eth_clk_mode (")); + DEBUG_PRINT(es.eth_clk_mode); + DEBUG_PRINTLN(")"); + return false; + } + if (!pinManager.allocateMultiplePins(pinsToAllocate, 10, PinOwner::Ethernet)) { + DEBUG_PRINTLN(F("initE: Failed to allocate ethernet pins")); + return false; + } + if (!ETH.begin( + (eth_phy_type_t)es.eth_type, + (uint8_t)es.eth_address, + (int)es.eth_power, + (int)es.eth_mdc, + (int)es.eth_mdio, + (eth_clock_mode_t)es.eth_clk_mode + )) { + DEBUG_PRINTLN(F("initC: ETH.begin() failed")); + // de-allocate the allocated pins + for (managed_pin_type mpt : pinsToAllocate) { + pinManager.deallocatePin(mpt.pin, PinOwner::Ethernet); + } + return false; } - return false; } successfullyConfiguredEthernet = true; diff --git a/wled00/wled.h b/wled00/wled.h index 751411d000..0f862220b9 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -108,7 +108,8 @@ #else // ESP32 #include // ensure we have the correct "Serial" on new MCUs (depends on ARDUINO_USB_MODE and ARDUINO_USB_CDC_ON_BOOT) #include - #include + // #include + #include "ETHClass2.h" #include "esp_wifi.h" #include #include @@ -352,7 +353,7 @@ WLED_GLOBAL int8_t irPin _INIT(IRPIN); #endif //WLED_GLOBAL byte presetToApply _INIT(0); - +WLED_GLOBAL ETHClass2 ETH; WLED_GLOBAL char ntpServerName[33] _INIT("0.wled.pool.ntp.org"); // NTP server to use // WiFi CONFIG (all these can be changed via web UI, no need to set them here) diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index 6b8f0ba56f..d9122c81ac 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -17,11 +17,18 @@ // ETH_CLOCK_GPIO0_OUT == ESP32 provides 50MHz clock output via GPIO0 // ETH_CLOCK_GPIO16_OUT == ESP32 provides 50MHz clock output via GPIO16 // ETH_CLOCK_GPIO17_OUT == ESP32 provides 50MHz clock output via GPIO17 + typedef struct EthernetSettings { uint8_t eth_address; int eth_power; int eth_mdc; int eth_mdio; + int eth_miso_pin; + int eth_mosi_pin; + int eth_cs_pin; + int eth_rst_pin; + int eth_int_pin; + int eth_sclk_pin; eth_phy_type_t eth_type; eth_clock_mode_t eth_clk_mode; } ethernet_settings; From dc41ebb72ea642ad366c687717fd9a7ccc01b57d Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:30:06 -0500 Subject: [PATCH 03/44] W5500 working oin ESP32 for Quindor --- wled00/network.cpp | 9 ++++++++- wled00/src/dependencies/network/Network.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/wled00/network.cpp b/wled00/network.cpp index c3e6752a9b..f934899e78 100644 --- a/wled00/network.cpp +++ b/wled00/network.cpp @@ -355,13 +355,19 @@ void WiFiEvent(WiFiEvent_t event) if (staticIP != (uint32_t)0x00000000 && staticGateway != (uint32_t)0x00000000) { ETH.config(staticIP, staticGateway, staticSubnet, IPAddress(8, 8, 8, 8)); } else { - // ETH.config(INADDR_NONE, INADDR_NONE, INADDR_NONE); + ETH.config(INADDR_NONE, INADDR_NONE, INADDR_NONE); } // convert the "serverDescription" into a valid DNS hostname (alphanumeric) char hostname[64]; prepareHostname(hostname); ETH.setHostname(hostname); showWelcomePage = false; + USER_PRINTF("Ethernet link is up. Speed is %u mbit and link is %sfull duplex! (MAC: ", ETH.linkSpeed(), ETH.fullDuplex() ? "" : "not "); + USER_PRINT(ETH.macAddress()); + USER_PRINTLN(")"); + escapedMac = ETH.macAddress(); + escapedMac.replace(":", ""); + escapedMac.toLowerCase(); break; } case SYSTEM_EVENT_ETH_DISCONNECTED: @@ -375,6 +381,7 @@ void WiFiEvent(WiFiEvent_t event) break; #endif default: + DEBUG_PRINTF("Unhandled Network event: %d\n", (int)event); break; } } diff --git a/wled00/src/dependencies/network/Network.h b/wled00/src/dependencies/network/Network.h index cb43fda072..570e0858ef 100644 --- a/wled00/src/dependencies/network/Network.h +++ b/wled00/src/dependencies/network/Network.h @@ -4,6 +4,7 @@ #include // #include #include "ETHClass2.h" + extern ETHClass2 ETH; #endif #ifndef Network_h From 7037edd8c7dba00c33a4d59ecd2e2c42c60c8123 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Thu, 15 Jan 2026 10:54:13 -0500 Subject: [PATCH 04/44] Fix for non-W5500 Ethernet (wrrong ETH.begin() order) --- wled00/wled.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 116ba8621a..87827e2b44 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -1047,7 +1047,7 @@ bool WLED::initEthernet() delayMicroseconds(10); } #endif - + if (es.eth_type == ETH_PHY_W5500) { managed_pin_type pinsToAllocate[6] = { { (int8_t)es.eth_miso_pin, false }, // MISO is input @@ -1111,9 +1111,9 @@ bool WLED::initEthernet() if (!ETH.begin( (eth_phy_type_t)es.eth_type, (uint8_t)es.eth_address, - (int)es.eth_power, (int)es.eth_mdc, (int)es.eth_mdio, + (int)es.eth_power, (eth_clock_mode_t)es.eth_clk_mode )) { DEBUG_PRINTLN(F("initC: ETH.begin() failed")); From 8a114b2e77c05d930faf89338336f3abde7c2963 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Thu, 15 Jan 2026 14:41:30 -0500 Subject: [PATCH 05/44] W5500 addition should work for S3 and others now too --- config.txt | Bin 1514536 -> 0 bytes wled00/network.cpp | 37 ++++++++++++++++++++++--------------- wled00/wled.cpp | 5 +++++ wled00/wled_ethernet.h | 24 ++++++++++++++++++++++++ 4 files changed, 51 insertions(+), 15 deletions(-) delete mode 100644 config.txt diff --git a/config.txt b/config.txt deleted file mode 100644 index d68a4f9a48430a10ace4cfc6124ca61592b0eca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1514536 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

5+Lry1cXRYq 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 Date: Thu, 15 Jan 2026 17:48:22 -0500 Subject: [PATCH 06/44] Allow SPI2_HOST if no SPI3_HOST --- wled00/wled.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 10ff61e510..e7c9f5cc75 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -1048,6 +1048,10 @@ bool WLED::initEthernet() } #endif + #if !defined(SPI3_HOST) + #define SPI3_HOST SPI2_HOST // at a minimum thgere's 2 SPI Hosts + #endif + if (es.eth_type == ETH_PHY_W5500) { managed_pin_type pinsToAllocate[6] = { { (int8_t)es.eth_miso_pin, false }, // MISO is input From 830861a67a8f4baf4b99e6b7a92f880313a335ac Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Mon, 19 Jan 2026 16:29:05 -0500 Subject: [PATCH 07/44] Adding a line to reconfigure interfaces just in case - and worst case just to print the new IP to the console. --- wled00/network.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/wled00/network.cpp b/wled00/network.cpp index ea7b7c83ce..b6949686f5 100644 --- a/wled00/network.cpp +++ b/wled00/network.cpp @@ -355,6 +355,7 @@ void WiFiEvent(WiFiEvent_t event) } else { DEBUG_PRINTLN(F("WiFi Connected. No ETH")); } + interfacesInited = false; break; case SYSTEM_EVENT_ETH_CONNECTED: { From 6ccb0577cf284adecc3493b0aac2d3fcf0629d18 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:26:33 -0500 Subject: [PATCH 08/44] First attempt, new libs --- platformio.ini | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index 2a5a707aa7..c159273efe 100644 --- a/platformio.ini +++ b/platformio.ini @@ -458,8 +458,8 @@ lib_depsV4 = ;; platform_packages = platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them) ;; Tasmota Arduino Core 2.0.9 with IPv6 support, based on IDF 4.4.4. Warning: all kernel error asserts removed -platform = ${esp32.platformTasmota} -platform_packages = ${esp32.platform_packagesTasmota} +platform = espressif32@6.12.0 ;; ${esp32.platformTasmota} +platform_packages = platformio/framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b ;; ${esp32.platform_packagesTasmota} build_unflags = ${common.build_unflags} build_flags = -g @@ -477,6 +477,7 @@ lib_deps = esp32async/AsyncTCP @ 3.4.7 makuna/NeoPixelBus @ 2.7.9 ;; experimental ${env.lib_deps} + https://github.com/troyhacks/ETHClass2 board_build.partitions = ${esp32.default_partitions} ;; default partioning for 4MB Flash - can be overridden in build envs monitor_filters = esp32_exception_decoder board_build.f_flash = 80000000L From b745f8c05056d413bf597f893a302f8e72196c6d Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:29:34 -0500 Subject: [PATCH 09/44] Moving ETHClass2 to top env. --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index c159273efe..b1726855b9 100644 --- a/platformio.ini +++ b/platformio.ini @@ -262,6 +262,7 @@ lib_deps = https://github.com/Aircoookie/ESPAsyncWebServer.git#v2.4.2 bitbank2/AnimatedGIF@^1.4.7 https://github.com/Aircoookie/GifDecoder.git#bc3af189b6b1e06946569f6b4287f0b79a860f8e + https://github.com/troyhacks/ETHClass2 #For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line #TFT_eSPI #For compatible OLED display uncomment following @@ -477,7 +478,6 @@ lib_deps = esp32async/AsyncTCP @ 3.4.7 makuna/NeoPixelBus @ 2.7.9 ;; experimental ${env.lib_deps} - https://github.com/troyhacks/ETHClass2 board_build.partitions = ${esp32.default_partitions} ;; default partioning for 4MB Flash - can be overridden in build envs monitor_filters = esp32_exception_decoder board_build.f_flash = 80000000L From f4b2dd827751ef85263288b7d5009ba78d9a9214 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:39:39 -0500 Subject: [PATCH 10/44] More platform changes --- platformio.ini | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platformio.ini b/platformio.ini index b1726855b9..7d6b624c10 100644 --- a/platformio.ini +++ b/platformio.ini @@ -421,11 +421,11 @@ platformV4_pre = espressif32@5.2.0 platformV4_packages_pre = toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 ; required for platform version < 5.3.0, remove this line when upgrading to platform >=5.3.0 ;;; standard V4 platform -platformV4 = espressif32@ ~6.3.2 -platformV4_packages = platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them) +platformV4 = espressif32@6.12.0 +platformV4_packages = platformio/framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them) ;;; experimental: latest V4 platform with latest arduino-esp32 2.0.14 + ESP-IDF 4.4.6 (may or may not work) -platformV4_xp = espressif32@ ~6.5.0 +platformV4_xp = espressif32@6.12.0 platformV4_packages_xp = platformio/framework-arduinoespressif32 @ 3.20014.231204 ;; arduino-esp32 2.0.14 build_flagsV4 = -g From 25eaa8f06bc1770b740cb1f637218c29a83eab86 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:47:37 -0500 Subject: [PATCH 11/44] Fixes for ESP8266 --- wled00/wled.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wled00/wled.h b/wled00/wled.h index 0f862220b9..f0eaed6792 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -353,7 +353,9 @@ WLED_GLOBAL int8_t irPin _INIT(IRPIN); #endif //WLED_GLOBAL byte presetToApply _INIT(0); +#ifndef ESP8266 WLED_GLOBAL ETHClass2 ETH; +#endif WLED_GLOBAL char ntpServerName[33] _INIT("0.wled.pool.ntp.org"); // NTP server to use // WiFi CONFIG (all these can be changed via web UI, no need to set them here) From 28bd5125cb9b9afd1b6818a90b4f3ac4f5d8ebce Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:56:30 -0500 Subject: [PATCH 12/44] Let's try needing min 4.4.5 --- wled00/wled.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wled00/wled.h b/wled00/wled.h index f0eaed6792..159ed6f345 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -108,8 +108,11 @@ #else // ESP32 #include // ensure we have the correct "Serial" on new MCUs (depends on ARDUINO_USB_MODE and ARDUINO_USB_CDC_ON_BOOT) #include - // #include - #include "ETHClass2.h" + #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 5) + #include "ETHClass2.h" + #else + #include + #endif #include "esp_wifi.h" #include #include From 52c3eb9e15e520ca20eecb07256361ae6f3a0738 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 16:02:51 -0500 Subject: [PATCH 13/44] More guards for older IDF versions --- wled00/wled.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wled00/wled.h b/wled00/wled.h index 159ed6f345..e6ee7c2f0a 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -357,7 +357,9 @@ WLED_GLOBAL int8_t irPin _INIT(IRPIN); //WLED_GLOBAL byte presetToApply _INIT(0); #ifndef ESP8266 -WLED_GLOBAL ETHClass2 ETH; + #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 5) + WLED_GLOBAL ETHClass2 ETH; + #endif #endif WLED_GLOBAL char ntpServerName[33] _INIT("0.wled.pool.ntp.org"); // NTP server to use From 164614b44bc6181976ac3b75d80561e11d6e2ca2 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 16:10:02 -0500 Subject: [PATCH 14/44] More guards for old IDF versions --- wled00/wled.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wled00/wled.h b/wled00/wled.h index e6ee7c2f0a..a5c8c88f92 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -108,7 +108,7 @@ #else // ESP32 #include // ensure we have the correct "Serial" on new MCUs (depends on ARDUINO_USB_MODE and ARDUINO_USB_CDC_ON_BOOT) #include - #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 5) + #if defined(ESP_IDF_VERSION) && ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 5) #include "ETHClass2.h" #else #include From 42d2f1cd41baa12a418ebecdb84eeae68bb68ef4 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 16:16:50 -0500 Subject: [PATCH 15/44] Check for platform W5500 support --- wled00/src/dependencies/network/Network.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/wled00/src/dependencies/network/Network.h b/wled00/src/dependencies/network/Network.h index 570e0858ef..ac9ae24081 100644 --- a/wled00/src/dependencies/network/Network.h +++ b/wled00/src/dependencies/network/Network.h @@ -2,11 +2,16 @@ #include #else // ESP32 #include - // #include - #include "ETHClass2.h" - extern ETHClass2 ETH; + #if defined(CONFIG_ETH_SPI_ETHERNET_W5500) + #include "ETHClass2.h" + extern ETHClass2 ETH; + #else + #include + #endif #endif + + #ifndef Network_h #define Network_h From ff28c9ce817bdf5713e72d834c4199d835959006 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 16:25:09 -0500 Subject: [PATCH 16/44] Comfort for the elderly --- wled00/wled_ethernet.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index e0f886f144..1ed8d2981e 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -18,6 +18,10 @@ // ETH_CLOCK_GPIO16_OUT == ESP32 provides 50MHz clock output via GPIO16 // ETH_CLOCK_GPIO17_OUT == ESP32 provides 50MHz clock output via GPIO17 +#ifndef GPIO_NUM_NC + #define GPIO_NUM_NC -1 +#endif + #ifdef CONFIG_ETH_PHY_INTERFACE_RMII typedef struct EthernetSettings { uint8_t eth_address; From 199d505880c60a176ce670a16f28a2f84819a7a6 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 16:39:11 -0500 Subject: [PATCH 17/44] Comfort anything without ETH_PHY_W5500 defined --- wled00/wled_ethernet.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index 1ed8d2981e..0ec98fcab9 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -22,6 +22,10 @@ #define GPIO_NUM_NC -1 #endif +#ifndef ETH_PHY_W5500 + #define ETH_PHY_W5500 69 +#endif + #ifdef CONFIG_ETH_PHY_INTERFACE_RMII typedef struct EthernetSettings { uint8_t eth_address; From 84da8cbbc7e2faeb406ffb263f23a0a340477708 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 16:46:34 -0500 Subject: [PATCH 18/44] Retest --- wled00/wled_ethernet.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index 0ec98fcab9..431f60a1f3 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -23,7 +23,7 @@ #endif #ifndef ETH_PHY_W5500 - #define ETH_PHY_W5500 69 + #define ETH_PHY_W5500 1 #endif #ifdef CONFIG_ETH_PHY_INTERFACE_RMII From 6079b4814127c581d8a921b26b63ead056d69e32 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 16:51:47 -0500 Subject: [PATCH 19/44] Try this again --- wled00/wled_ethernet.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index 431f60a1f3..58eb6ad4a9 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -42,12 +42,12 @@ typedef struct EthernetSettings { eth_clock_mode_t eth_clk_mode; } ethernet_settings; #else -#define ETH_PHY_LAN8720 1 -#define ETH_CLOCK_GPIO0_IN 2 -#define ETH_CLOCK_GPIO0_OUT 3 -#define ETH_CLOCK_GPIO17_OUT 4 -#define ETH_CLOCK_GPIO16_OUT 5 -#define ETH_PHY_IP101 6 +#define ETH_PHY_LAN8720 0 +#define ETH_CLOCK_GPIO0_IN 0 +#define ETH_CLOCK_GPIO0_OUT 1 +#define ETH_CLOCK_GPIO17_OUT 3 +#define ETH_CLOCK_GPIO16_OUT 2 +#define ETH_PHY_IP101 1 typedef struct EthernetSettings { uint8_t eth_address; From ac1a4cafc07065fa7129bec2de7c22408b7f7b9e Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 16:52:47 -0500 Subject: [PATCH 20/44] Changing of the guard --- wled00/wled.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wled00/wled.h b/wled00/wled.h index a5c8c88f92..a6afcdbc34 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -108,7 +108,7 @@ #else // ESP32 #include // ensure we have the correct "Serial" on new MCUs (depends on ARDUINO_USB_MODE and ARDUINO_USB_CDC_ON_BOOT) #include - #if defined(ESP_IDF_VERSION) && ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 5) + #if defined(CONFIG_ETH_SPI_ETHERNET_W5500) #include "ETHClass2.h" #else #include From e11e1f3e83c6c7024be31fd32cf8383da554b72f Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:00:41 -0500 Subject: [PATCH 21/44] Ignore ETHClass2 where not supported --- platformio.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platformio.ini b/platformio.ini index 7d6b624c10..af9e07072a 100644 --- a/platformio.ini +++ b/platformio.ini @@ -326,6 +326,7 @@ lib_deps = ${esp8266.lib8266_deps} ;; use proven library versions for 8266 lib_ignore = NeoESP32RmtHI + ETHClass2 ;; compatibilty flags - same as 0.14.0 which seems to work better on some 8266 boards. Not using PIO_FRAMEWORK_ARDUINO_MMU_CACHE16_IRAM48 build_flags_compat = @@ -690,6 +691,7 @@ build_flags = ${common.build_flags} ${esp32_legacy.build_flags} -D WLED_RELEAS ;;-D WLED_ENABLE_FULL_FONTS ;; 10KB flash lib_deps = ${esp32_legacy.lib_deps} ${esp32.AR_lib_deps} +lib_ignore = ETHClass2 board_build.partitions = ${esp32_legacy.default_partitions} monitor_filters = esp32_exception_decoder ;; RAM: [== ] 23.2% (used 75944 bytes from 327680 bytes) From 6091344b99316fc2650245bc874bd56b1f518f4f Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:21:10 -0500 Subject: [PATCH 22/44] More comforts --- wled00/wled_ethernet.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index 58eb6ad4a9..6f2738eff5 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -23,7 +23,7 @@ #endif #ifndef ETH_PHY_W5500 - #define ETH_PHY_W5500 1 + #define ETH_PHY_W5500 ETH_PHY_MAX #endif #ifdef CONFIG_ETH_PHY_INTERFACE_RMII From 7db76e020c2fad8ead059032aed3efe4f72ce92d Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:37:31 -0500 Subject: [PATCH 23/44] Put back in the original code for IDFv3 --- wled00/wled.cpp | 122 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 89 insertions(+), 33 deletions(-) diff --git a/wled00/wled.cpp b/wled00/wled.cpp index e7c9f5cc75..06a05b84b0 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -1048,35 +1048,94 @@ bool WLED::initEthernet() } #endif - #if !defined(SPI3_HOST) - #define SPI3_HOST SPI2_HOST // at a minimum thgere's 2 SPI Hosts - #endif - - if (es.eth_type == ETH_PHY_W5500) { - managed_pin_type pinsToAllocate[6] = { - { (int8_t)es.eth_miso_pin, false }, // MISO is input - { (int8_t)es.eth_mosi_pin, true }, // MOSI is output - { (int8_t)es.eth_cs_pin, true }, // CS is output - { (int8_t)es.eth_rst_pin, true }, // RST is output - { (int8_t)es.eth_int_pin, false }, // INT is input - { (int8_t)es.eth_sclk_pin, true }, // SCLK is output - }; - if (!pinManager.allocateMultiplePins(pinsToAllocate, 6, PinOwner::Ethernet)) { - DEBUG_PRINTLN(F("initE: Failed to allocate ethernet pins")); - return false; - } - if (!ETH.begin(ETH_PHY_W5500, es.eth_address, es.eth_cs_pin, es.eth_int_pin, es.eth_rst_pin, SPI3_HOST, es.eth_sclk_pin, es.eth_miso_pin, es.eth_mosi_pin)) { - DEBUG_PRINTLN(F("initC: ETH.begin() [SPI Ethernet] failed")); - // de-allocate the allocated pins - for (managed_pin_type mpt : pinsToAllocate) { - pinManager.deallocatePin(mpt.pin, PinOwner::Ethernet); + #ifdef CONFIG_ETH_SPI_ETHERNET_W5500 + #if !defined(SPI3_HOST) + #define SPI3_HOST SPI2_HOST // at a minimum there are 2 SPI Hosts + #endif + if (es.eth_type == ETH_PHY_W5500) { + managed_pin_type pinsToAllocate[6] = { + { (int8_t)es.eth_miso_pin, false }, // MISO is input + { (int8_t)es.eth_mosi_pin, true }, // MOSI is output + { (int8_t)es.eth_cs_pin, true }, // CS is output + { (int8_t)es.eth_rst_pin, true }, // RST is output + { (int8_t)es.eth_int_pin, false }, // INT is input + { (int8_t)es.eth_sclk_pin, true }, // SCLK is output + }; + if (!pinManager.allocateMultiplePins(pinsToAllocate, 6, PinOwner::Ethernet)) { + DEBUG_PRINTLN(F("initE: Failed to allocate ethernet pins")); + return false; + } + if (!ETH.begin(ETH_PHY_W5500, es.eth_address, es.eth_cs_pin, es.eth_int_pin, es.eth_rst_pin, SPI3_HOST, es.eth_sclk_pin, es.eth_miso_pin, es.eth_mosi_pin)) { + DEBUG_PRINTLN(F("initC: ETH.begin() [SPI Ethernet] failed")); + // de-allocate the allocated pins + for (managed_pin_type mpt : pinsToAllocate) { + pinManager.deallocatePin(mpt.pin, PinOwner::Ethernet); + } + return false; + } else { + Serial.println("ETH initialized W5500!"); } - return false; } else { - Serial.println("ETH initialized W5500!"); + #ifdef CONFIG_ETH_PHY_INTERFACE_RMII + managed_pin_type pinsToAllocate[10] = { + // first six pins are non-configurable + esp32_nonconfigurable_ethernet_pins[0], + esp32_nonconfigurable_ethernet_pins[1], + esp32_nonconfigurable_ethernet_pins[2], + esp32_nonconfigurable_ethernet_pins[3], + esp32_nonconfigurable_ethernet_pins[4], + esp32_nonconfigurable_ethernet_pins[5], + { (int8_t)es.eth_mdc, true }, // [6] = MDC is output and mandatory + { (int8_t)es.eth_mdio, true }, // [7] = MDIO is bidirectional and mandatory + { (int8_t)es.eth_power, true }, // [8] = optional pin, not all boards use + { ((int8_t)0xFE), false }, // [9] = replaced with eth_clk_mode, mandatory + }; + // update the clock pin.... + if (es.eth_clk_mode == ETH_CLOCK_GPIO0_IN) { + pinsToAllocate[9].pin = 0; + pinsToAllocate[9].isOutput = false; + } else if (es.eth_clk_mode == ETH_CLOCK_GPIO0_OUT) { + pinsToAllocate[9].pin = 0; + pinsToAllocate[9].isOutput = true; + } else if (es.eth_clk_mode == ETH_CLOCK_GPIO16_OUT) { + pinsToAllocate[9].pin = 16; + pinsToAllocate[9].isOutput = true; + } else if (es.eth_clk_mode == ETH_CLOCK_GPIO17_OUT) { + pinsToAllocate[9].pin = 17; + pinsToAllocate[9].isOutput = true; + } else { + DEBUG_PRINT(F("initE: Failing due to invalid eth_clk_mode (")); + DEBUG_PRINT(es.eth_clk_mode); + DEBUG_PRINTLN(")"); + return false; + } + if (!pinManager.allocateMultiplePins(pinsToAllocate, 10, PinOwner::Ethernet)) { + DEBUG_PRINTLN(F("initE: Failed to allocate ethernet pins")); + return false; + } + + if (!ETH.begin( + (eth_phy_type_t)es.eth_type, + (uint8_t)es.eth_address, + (int)es.eth_mdc, + (int)es.eth_mdio, + (int)es.eth_power, + (eth_clock_mode_t)es.eth_clk_mode + )) { + DEBUG_PRINTLN(F("initC: ETH.begin() failed")); + // de-allocate the allocated pins + for (managed_pin_type mpt : pinsToAllocate) { + pinManager.deallocatePin(mpt.pin, PinOwner::Ethernet); + } + return false; + } + #else + return false; + #endif } - } else { - #ifdef CONFIG_ETH_PHY_INTERFACE_RMII + #else + // Ethernet initialization should only succeed once -- else reboot required + ethernet_settings es = ethernetBoards[ethernetType]; managed_pin_type pinsToAllocate[10] = { // first six pins are non-configurable esp32_nonconfigurable_ethernet_pins[0], @@ -1109,17 +1168,18 @@ bool WLED::initEthernet() DEBUG_PRINTLN(")"); return false; } + if (!pinManager.allocateMultiplePins(pinsToAllocate, 10, PinOwner::Ethernet)) { DEBUG_PRINTLN(F("initE: Failed to allocate ethernet pins")); return false; } if (!ETH.begin( - (eth_phy_type_t)es.eth_type, (uint8_t)es.eth_address, + (int)es.eth_power, (int)es.eth_mdc, (int)es.eth_mdio, - (int)es.eth_power, + (eth_phy_type_t)es.eth_type, (eth_clock_mode_t)es.eth_clk_mode )) { DEBUG_PRINTLN(F("initC: ETH.begin() failed")); @@ -1129,11 +1189,7 @@ bool WLED::initEthernet() } return false; } - #else - return false; - #endif - } - + #endif successfullyConfiguredEthernet = true; USER_PRINTLN(F("initC: *** Ethernet successfully configured! ***")); // WLEDMM return true; From f698f06393d84dd77c2e8188fd3911a5afe6783d Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:41:25 -0500 Subject: [PATCH 24/44] Duped definition --- wled00/wled.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 06a05b84b0..69aa48d8d2 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -1135,7 +1135,6 @@ bool WLED::initEthernet() } #else // Ethernet initialization should only succeed once -- else reboot required - ethernet_settings es = ethernetBoards[ethernetType]; managed_pin_type pinsToAllocate[10] = { // first six pins are non-configurable esp32_nonconfigurable_ethernet_pins[0], From e0c8b47dc13f3385bc1217b1369821ff5c7c552c Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:47:53 -0500 Subject: [PATCH 25/44] Ignore ETHClass2 on esp32_4MB_M_eth --- platformio.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/platformio.ini b/platformio.ini index af9e07072a..3219dd4f86 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1483,6 +1483,7 @@ build_flags = ${esp32_4MB_M_base.build_flags} -D WLED_DISABLE_INFRARED ;; Over the limit -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit +lib_ignore = ETHClass2 ; RAM: [== ] 24.1% (used 78904 bytes from 327680 bytes) ; Flash: [==========] 98.5% (used 1548489 bytes from 1572864 bytes From 7cd1b2f1492ff7bf3fc283a016cffbc6531b3be5 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:51:28 -0500 Subject: [PATCH 26/44] Try making one Tasmota that was oversized. --- platformio.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platformio.ini b/platformio.ini index 3219dd4f86..1664c1c943 100644 --- a/platformio.ini +++ b/platformio.ini @@ -2722,6 +2722,8 @@ monitor_filters = esp32_exception_decoder [env:esp32s2_PSRAM_S] extends = env:esp32s2_PSRAM_M +platform = ${esp32.platformTasmota} +platform_packages = ${esp32.platform_packagesTasmota} board_build.partitions = ${esp32.default_partitions} ;; 1.55MB firmware, 1MB filesystem build_unflags = ${env:esp32s2_PSRAM_M.build_unflags} -DWLED_DISABLE_ADALIGHT From a430386481a01222e276faf093bd96a795631e9a Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:56:04 -0500 Subject: [PATCH 27/44] Try that again but ignore the lib too --- platformio.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/platformio.ini b/platformio.ini index 1664c1c943..8f83bcf561 100644 --- a/platformio.ini +++ b/platformio.ini @@ -2737,6 +2737,7 @@ build_flags = ${env:esp32s2_PSRAM_M.build_flags} -D WLED_RELEASE_NAME=esp32s2_4MB_S lib_deps = ${env:esp32s2_PSRAM_M.lib_deps} lib_ignore = ${env:esp32s2_PSRAM_M.lib_ignore} + EthClass2 U8g2 ${common_mm.animartrix_lib_ignore} ; RAM: [== ] 18.1% (used 59176 bytes from 327680 bytes) From cfcd2ddf5b3468d52c83f3e3f0893a8eefaf7828 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 18:02:05 -0500 Subject: [PATCH 28/44] Ignore the right lib this time. Case matters. --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 8f83bcf561..5d21c95b40 100644 --- a/platformio.ini +++ b/platformio.ini @@ -2737,7 +2737,7 @@ build_flags = ${env:esp32s2_PSRAM_M.build_flags} -D WLED_RELEASE_NAME=esp32s2_4MB_S lib_deps = ${env:esp32s2_PSRAM_M.lib_deps} lib_ignore = ${env:esp32s2_PSRAM_M.lib_ignore} - EthClass2 + ETHClass2 U8g2 ${common_mm.animartrix_lib_ignore} ; RAM: [== ] 18.1% (used 59176 bytes from 327680 bytes) From b1f44d46287d7e916e95c445074d2ca29a60b1b9 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 18:57:20 -0500 Subject: [PATCH 29/44] Moved some back to Tasmota and ignored ETHClass2 --- platformio.ini | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/platformio.ini b/platformio.ini index 5d21c95b40..80f5ce5eaa 100644 --- a/platformio.ini +++ b/platformio.ini @@ -691,7 +691,8 @@ build_flags = ${common.build_flags} ${esp32_legacy.build_flags} -D WLED_RELEAS ;;-D WLED_ENABLE_FULL_FONTS ;; 10KB flash lib_deps = ${esp32_legacy.lib_deps} ${esp32.AR_lib_deps} -lib_ignore = ETHClass2 +lib_ignore = ${esp32_legacy.lib_ignore} + ETHClass2 board_build.partitions = ${esp32_legacy.default_partitions} monitor_filters = esp32_exception_decoder ;; RAM: [== ] 23.2% (used 75944 bytes from 327680 bytes) @@ -1483,7 +1484,8 @@ build_flags = ${esp32_4MB_M_base.build_flags} -D WLED_DISABLE_INFRARED ;; Over the limit -D WLED_DISABLE_PARTICLESYSTEM1D ;; exceeds flash size limit -D WLED_DISABLE_PARTICLESYSTEM2D ;; exceeds flash size limit -lib_ignore = ETHClass2 +lib_ignore = ${esp32_4MB_M_base.lib_ignore} + ETHClass2 ; RAM: [== ] 24.1% (used 78904 bytes from 327680 bytes) ; Flash: [==========] 98.5% (used 1548489 bytes from 1572864 bytes @@ -2551,8 +2553,8 @@ lib_ignore = ;; MM for esp32-s3 zero/supermini and lolin S3 mini boards - standard [env:esp32S3_4MB_PSRAM_M] extends = env:esp32S3_8MB_M -platform = ${esp32s3.platform} -platform_packages = ${esp32s3.platform_packages} +platform = ${esp32.platformTasmota} +platform_packages = ${esp32.platform_packagesTasmota} board = lolin_s3_mini ;; -S3 mini: 4MB flash 2MB PSRAM board_build.partitions = ${esp32.extended_partitions} ;; 1.65MB firmware, 700KB filesystem build_unflags = ${common.build_unflags} @@ -2591,6 +2593,7 @@ lib_ignore = ;; IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation ${common_mm.HUB75_lib_ignore} ${common_mm.DMXin_lib_ignore} + ETHClass2 ;; ${common_mm.animartrix_lib_ignore} ; RAM: [== ] 16.7% (used 54676 bytes from 327680 bytes) ; Flash: [======== ] 83.2% (used 1416997 bytes from 1703936 bytes) @@ -2665,8 +2668,8 @@ monitor_filters = esp32_exception_decoder [env:esp32s2_PSRAM_M] extends = esp32_4MB_V4_M_base ;; default tasmota platform -platform = ${esp32s2.platform} -platform_packages = ${esp32s2.platform_packages} +platform = ${esp32.platformTasmota} +platform_packages = ${esp32.platform_packagesTasmota} ;; standard espressif platform (optional) ;; platform = ${esp32.platformV4} ;; platform_packages = ${esp32.platformV4_packages} @@ -2714,6 +2717,7 @@ lib_deps = ${esp32s2.lib_deps} ${common_mm.lib_deps_S} ${common_mm.lib_deps_V4_M lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation OneWire ; not needed as we don't include USERMOD_DALLASTEMPERATURE + ETHClass2 ${common_mm.HUB75_lib_ignore} ${common_mm.DMXin_lib_ignore} monitor_filters = esp32_exception_decoder @@ -2828,6 +2832,8 @@ build_flags = ${env:esp32c3dev_4MB_M.build_flags} [env:esp32c3dev_2MB_M] extends = env:esp32c3dev_4MB_M +platform = ${esp32.platformTasmota} +platform_packages = ${esp32.platform_packagesTasmota} board = lolin_c3_mini ;;; replace WLED_RELEASE_NAME, disable CDC_ON_BOOT build_unflags = ${env:esp32c3dev_4MB_M.build_unflags} @@ -2840,7 +2846,8 @@ board_build.partitions = tools/WLED_ESP32_2MB_noOTA.csv board_build.flash_mode = dio board_upload.flash_size = 2MB board_upload.maximum_size = 2097152 - +lib_ignore = ${env:esp32c3dev_4MB_M.lib_ignore} + ETHClass2 build_flags = ${env:esp32c3dev_4MB_M.build_flags} -D WLED_WATCHDOG_TIMEOUT=0 -D WLED_DISABLE_OTA @@ -3080,8 +3087,8 @@ lib_ignore = ${esp32_4MB_M_base.lib_ignore} ;; "V4" build environment (tasmota core) [env:athom_music_esp32_4MB_V4_M] extends = esp32_4MB_V4_M_base -platform = ${esp32.platform} ;; "V4" tasmota -platform_packages = ${esp32.platform_packages} +platform = ${esp32.platformTasmota} +platform_packages = ${esp32.platform_packagesTasmota} build_unflags = ${esp32_4MB_V4_M_base.build_unflags} ;; ${common_mm.build_disable_sync_interfaces} ${common_mm.animartrix_build_flags} ;; exceeds flash limits, no pins for HUB75 ; -D USERMOD_ARTIFX ;; disabled to save some program space in flash @@ -3115,6 +3122,7 @@ build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags} lib_deps = ${esp32_4MB_V4_M_base.esp32_lib_deps} lib_ignore = ${common_mm.DMXin_lib_ignore} + ETHClass2 ; RAM: [== ] 24.0% (used 78568 bytes from 327680 bytes) ; Flash: [======== ] 82.3% (used 1402341 bytes from 1703936 bytes) From 4917c133666f01de9f7bb3d29e3e3342eca21ca1 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 19:04:14 -0500 Subject: [PATCH 30/44] Missed one. --- platformio.ini | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index 80f5ce5eaa..0e84e01367 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1862,8 +1862,8 @@ extends = env:esp32_4MB_V4_S_HUB75 [env:esp32_4MB_V4_M] extends = esp32_4MB_V4_M_base ;; needs tasmota framework; will exceed flash limits with default framework -platform = ${esp32.platform} ;; "V4" tasmota -platform_packages = ${esp32.platform_packages} +platform = ${esp32.platformTasmota} +platform_packages = ${esp32.platform_packagesTasmota} build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags} -D WLED_RELEASE_NAME=esp32_4MB_V4_M -D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET @@ -1875,6 +1875,7 @@ build_flags = ${esp32_4MB_V4_M_base.esp32_build_flags} lib_deps = ${esp32_4MB_V4_M_base.esp32_lib_deps} lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation + ETHClass2 ${common_mm.HUB75_lib_ignore} ;; over the flash size limit ;;${common_mm.animartrix_lib_ignore} build_unflags = ${esp32_4MB_V4_M_base.build_unflags} From 83bff2dff005fea32529cbad3021c05122874cf0 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 19:11:22 -0500 Subject: [PATCH 31/44] Pinning ETHClass2 to a commit to make the rabbit shut up. --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 0e84e01367..d7a7cab603 100644 --- a/platformio.ini +++ b/platformio.ini @@ -262,7 +262,7 @@ lib_deps = https://github.com/Aircoookie/ESPAsyncWebServer.git#v2.4.2 bitbank2/AnimatedGIF@^1.4.7 https://github.com/Aircoookie/GifDecoder.git#bc3af189b6b1e06946569f6b4287f0b79a860f8e - https://github.com/troyhacks/ETHClass2 + https://github.com/troyhacks/ETHClass2.git#3744ef20fdaa8d8c15597701fc3b5267757bee90 #For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line #TFT_eSPI #For compatible OLED display uncomment following From a540b9675d8d5549f36608991ca7af1d91338274 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 20:04:57 -0500 Subject: [PATCH 32/44] This is not in the right place. What place should it be in? I dunno! --- wled00/wled_ethernet.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index 6f2738eff5..73f376f14a 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -22,9 +22,9 @@ #define GPIO_NUM_NC -1 #endif -#ifndef ETH_PHY_W5500 - #define ETH_PHY_W5500 ETH_PHY_MAX -#endif +// #ifndef ETH_PHY_W5500 +// #define ETH_PHY_W5500 ETH_PHY_MAX +// #endif #ifdef CONFIG_ETH_PHY_INTERFACE_RMII typedef struct EthernetSettings { From 33feac91fc8b612e6888875097a40524fb836e56 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 20:18:04 -0500 Subject: [PATCH 33/44] Testing this one --- wled00/network.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wled00/network.cpp b/wled00/network.cpp index b6949686f5..b3590ff08e 100644 --- a/wled00/network.cpp +++ b/wled00/network.cpp @@ -23,6 +23,10 @@ const managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_CO const managed_pin_type esp32_nonconfigurable_ethernet_pins[] = {}; #endif +#ifndef CONFIG_ETH_SPI_ETHERNET_W5500 + #define ETH_PHY_W5500 ETH_PHY_MAX +#endif + const ethernet_settings ethernetBoards[] = { // None { From 84b35afd7ec31e30eed4a532b48aacdb38e6d4fd Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 20:33:04 -0500 Subject: [PATCH 34/44] Tidy --- wled00/wled_ethernet.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index 73f376f14a..0caee6a031 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -22,10 +22,6 @@ #define GPIO_NUM_NC -1 #endif -// #ifndef ETH_PHY_W5500 -// #define ETH_PHY_W5500 ETH_PHY_MAX -// #endif - #ifdef CONFIG_ETH_PHY_INTERFACE_RMII typedef struct EthernetSettings { uint8_t eth_address; From 286d95e7a8a6636c65fdadca456951a4720b4722 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 22:07:12 -0500 Subject: [PATCH 35/44] Added WaveShare_ESP32-S3-ETH --- platformio.ini | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/platformio.ini b/platformio.ini index d7a7cab603..efef6f7ff2 100644 --- a/platformio.ini +++ b/platformio.ini @@ -115,6 +115,7 @@ default_envs = abc_wled_controller_v43_V4_S athom_music_esp32_4MB_V4_M adafruit_matrixportal_esp32s3 ;; HUB75 supported, uses standard bootloader + WaveShare_ESP32-S3-ETH ;; Easiest ESP32-S3 with W5500 Ethernet and USB-C for programming ; adafruit_matrixportal_esp32s3_tinyUF2 ;; supports the adafruit "tinyUF2" bootloader ; Go to MoonModules environments for environments @@ -3325,3 +3326,12 @@ build_flags = ${env:adafruit_matrixportal_esp32s3_wled.build_flags} [env:adafruit_matrixportal_esp32s3] ;; this buildenv is just an alias for the matrixportal UF2 build, to keep 3rd party build tools happy. extends = env:adafruit_matrixportal_esp32s3_wled + +[env:WaveShare_ESP32-S3-ETH] +;; This is the easiest-to-use W5500 board as it has USB-C for programming +extends = env:esp32S3_16MB_PSRAM_M_HUB75 +build_unflags = -D LEDPIN -D BTNPIN -D RLYPIN -D I2S_SDPIN -D I2S_CKPIN -D I2S_WSPIN -D ARDUINO_TTGO_T7_S3 +build_flags = ${env:esp32S3_16MB_PSRAM_M_HUB75.build_flags} + -D WLED_USE_ETHERNET + -D WLED_ETH_DEFAULT=16 + -D LEDPIN=-1 -D BTNPIN=-1 -D RLYPIN=-1 -D I2S_SDPIN=-1 -D I2S_CKPIN=-1 -D I2S_WSPIN=-1 From a4d082223ae5a946743f550bae0a8af82e06e25d Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 22:08:07 -0500 Subject: [PATCH 36/44] Fixing places that deal with pins, like reserved pins and saviing pins to cfg.json --- wled00/cfg.cpp | 38 +++++++++++++++++++++++--------------- wled00/wled_ethernet.h | 2 +- wled00/xml.cpp | 40 ++++++++++++++++++++++++---------------- 3 files changed, 48 insertions(+), 32 deletions(-) diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index 069b303aa0..c87a95eda2 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -746,21 +746,29 @@ void serializeConfig() { ethernet["type"] = ethernetType; if (ethernetType != WLED_ETH_NONE && ethernetType < WLED_NUM_ETH_TYPES) { JsonArray pins = ethernet.createNestedArray("pin"); - for (uint8_t p=0; p=0) pins.add(ethernetBoards[ethernetType].eth_power); - if (ethernetBoards[ethernetType].eth_mdc>=0) pins.add(ethernetBoards[ethernetType].eth_mdc); - if (ethernetBoards[ethernetType].eth_mdio>=0) pins.add(ethernetBoards[ethernetType].eth_mdio); - switch (ethernetBoards[ethernetType].eth_clk_mode) { - case ETH_CLOCK_GPIO0_IN: - case ETH_CLOCK_GPIO0_OUT: - pins.add(0); - break; - case ETH_CLOCK_GPIO16_OUT: - pins.add(16); - break; - case ETH_CLOCK_GPIO17_OUT: - pins.add(17); - break; + for (uint8_t p = 0; p < WLED_ETH_RSVD_PINS_COUNT; p++) pins.add(esp32_nonconfigurable_ethernet_pins[p].pin); + if (ethernetBoards[ethernetType].eth_power >= 0) pins.add(ethernetBoards[ethernetType].eth_power); + if (ethernetBoards[ethernetType].eth_mdc >= 0) pins.add(ethernetBoards[ethernetType].eth_mdc); + if (ethernetBoards[ethernetType].eth_mdio >= 0) pins.add(ethernetBoards[ethernetType].eth_mdio); + if (ethernetBoards[ethernetType].eth_miso_pin >= 0) pins.add(ethernetBoards[ethernetType].eth_miso_pin); + if (ethernetBoards[ethernetType].eth_mosi_pin >= 0) pins.add(ethernetBoards[ethernetType].eth_mosi_pin); + if (ethernetBoards[ethernetType].eth_cs_pin >= 0) pins.add(ethernetBoards[ethernetType].eth_cs_pin); + if (ethernetBoards[ethernetType].eth_rst_pin >= 0) pins.add(ethernetBoards[ethernetType].eth_rst_pin); + if (ethernetBoards[ethernetType].eth_int_pin >= 0) pins.add(ethernetBoards[ethernetType].eth_int_pin); + if (ethernetBoards[ethernetType].eth_sclk_pin >= 0) pins.add(ethernetBoards[ethernetType].eth_sclk_pin); + if (ethernetBoards[ethernetType].eth_type != ETH_PHY_W5500) { + switch (ethernetBoards[ethernetType].eth_clk_mode) { + case ETH_CLOCK_GPIO0_IN: + case ETH_CLOCK_GPIO0_OUT: + pins.add(0); + break; + case ETH_CLOCK_GPIO16_OUT: + pins.add(16); + break; + case ETH_CLOCK_GPIO17_OUT: + pins.add(17); + break; + } } } #endif diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index 0caee6a031..cde28a26a9 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -63,7 +63,7 @@ typedef struct EthernetSettings { extern const ethernet_settings ethernetBoards[]; -#define WLED_ETH_RSVD_PINS_COUNT 6 +#define WLED_ETH_RSVD_PINS_COUNT 0 extern const managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_COUNT]; #endif diff --git a/wled00/xml.cpp b/wled00/xml.cpp index 71f3340f93..e3d886e84b 100644 --- a/wled00/xml.cpp +++ b/wled00/xml.cpp @@ -240,22 +240,30 @@ void appendGPIOinfo() { #endif #ifdef WLED_USE_ETHERNET - if (ethernetType != WLED_ETH_NONE && ethernetType < WLED_NUM_ETH_TYPES) { - for (uint8_t p=0; p=0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_power,nS,10)); } - if (ethernetBoards[ethernetType].eth_mdc>=0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_mdc,nS,10)); } - if (ethernetBoards[ethernetType].eth_mdio>=0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_mdio,nS,10)); } - switch (ethernetBoards[ethernetType].eth_clk_mode) { - case ETH_CLOCK_GPIO0_IN: - case ETH_CLOCK_GPIO0_OUT: - oappend(SET_F(",0")); - break; - case ETH_CLOCK_GPIO16_OUT: - oappend(SET_F(",16")); - break; - case ETH_CLOCK_GPIO17_OUT: - oappend(SET_F(",17")); - break; + if (ethernetType != WLED_ETH_NONE && ethernetType < WLED_NUM_ETH_TYPES) { + for (uint8_t p = 0; p < WLED_ETH_RSVD_PINS_COUNT; p++) { oappend(","); oappend(itoa(esp32_nonconfigurable_ethernet_pins[p].pin, nS, 10)); } + if (ethernetBoards[ethernetType].eth_power >= 0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_power, nS, 10)); } + if (ethernetBoards[ethernetType].eth_mdc >= 0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_mdc, nS, 10)); } + if (ethernetBoards[ethernetType].eth_mdio >= 0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_mdio, nS, 10)); } + if (ethernetBoards[ethernetType].eth_miso_pin >= 0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_miso_pin, nS, 10)); } + if (ethernetBoards[ethernetType].eth_mosi_pin >= 0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_mosi_pin, nS, 10)); } + if (ethernetBoards[ethernetType].eth_cs_pin >= 0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_cs_pin, nS, 10)); } + if (ethernetBoards[ethernetType].eth_rst_pin >= 0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_rst_pin, nS, 10)); } + if (ethernetBoards[ethernetType].eth_int_pin >= 0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_int_pin, nS, 10)); } + if (ethernetBoards[ethernetType].eth_sclk_pin >= 0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_sclk_pin, nS, 10)); } + if (ethernetBoards[ethernetType].eth_type != ETH_PHY_W5500) { + switch (ethernetBoards[ethernetType].eth_clk_mode) { + case ETH_CLOCK_GPIO0_IN: + case ETH_CLOCK_GPIO0_OUT: + oappend(SET_F(",0")); + break; + case ETH_CLOCK_GPIO16_OUT: + oappend(SET_F(",16")); + break; + case ETH_CLOCK_GPIO17_OUT: + oappend(SET_F(",17")); + break; + } } } #endif From 68e1790e959c24acd29b2ced8a06587e5f34430b Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 22:18:19 -0500 Subject: [PATCH 37/44] Build fixes --- wled00/cfg.cpp | 5 +++++ wled00/network.cpp | 2 +- wled00/xml.cpp | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index c87a95eda2..d88eab0989 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -742,6 +742,11 @@ void serializeConfig() { wifi[F("phy")] = force802_3g; #ifdef WLED_USE_ETHERNET + + #ifndef CONFIG_ETH_SPI_ETHERNET_W5500 + #define ETH_PHY_W5500 ETH_PHY_MAX + #endif + JsonObject ethernet = doc.createNestedObject("eth"); ethernet["type"] = ethernetType; if (ethernetType != WLED_ETH_NONE && ethernetType < WLED_NUM_ETH_TYPES) { diff --git a/wled00/network.cpp b/wled00/network.cpp index b3590ff08e..f6ab07dc18 100644 --- a/wled00/network.cpp +++ b/wled00/network.cpp @@ -20,7 +20,7 @@ const managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_CO { 27, true }, // RMII EMAC CRS_DV == Carrier Sense and RX Data Valid }; #else -const managed_pin_type esp32_nonconfigurable_ethernet_pins[] = {}; +const managed_pin_type esp32_nonconfigurable_ethernet_pins[]; #endif #ifndef CONFIG_ETH_SPI_ETHERNET_W5500 diff --git a/wled00/xml.cpp b/wled00/xml.cpp index e3d886e84b..3a6267a3f4 100644 --- a/wled00/xml.cpp +++ b/wled00/xml.cpp @@ -240,6 +240,11 @@ void appendGPIOinfo() { #endif #ifdef WLED_USE_ETHERNET + + #ifndef CONFIG_ETH_SPI_ETHERNET_W5500 + #define ETH_PHY_W5500 ETH_PHY_MAX + #endif + if (ethernetType != WLED_ETH_NONE && ethernetType < WLED_NUM_ETH_TYPES) { for (uint8_t p = 0; p < WLED_ETH_RSVD_PINS_COUNT; p++) { oappend(","); oappend(itoa(esp32_nonconfigurable_ethernet_pins[p].pin, nS, 10)); } if (ethernetBoards[ethernetType].eth_power >= 0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_power, nS, 10)); } From 41512dd077c5785248d53499a7ddc6269dac5903 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 23:16:24 -0500 Subject: [PATCH 38/44] Fix esp32_nonconfigurable_ethernet_pins --- wled00/network.cpp | 2 +- wled00/wled_ethernet.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/wled00/network.cpp b/wled00/network.cpp index f6ab07dc18..35f65846dd 100644 --- a/wled00/network.cpp +++ b/wled00/network.cpp @@ -20,7 +20,7 @@ const managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_CO { 27, true }, // RMII EMAC CRS_DV == Carrier Sense and RX Data Valid }; #else -const managed_pin_type esp32_nonconfigurable_ethernet_pins[]; +managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_COUNT]; #endif #ifndef CONFIG_ETH_SPI_ETHERNET_W5500 diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index cde28a26a9..54e5bc6e85 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -64,7 +64,7 @@ typedef struct EthernetSettings { extern const ethernet_settings ethernetBoards[]; #define WLED_ETH_RSVD_PINS_COUNT 0 -extern const managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_COUNT]; +extern managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_COUNT]; #endif #endif \ No newline at end of file From 43fe29daeebf43ba6fda33c68b62437a55b08bf7 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 23:23:26 -0500 Subject: [PATCH 39/44] managed_pin_type fixes --- wled00/network.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wled00/network.cpp b/wled00/network.cpp index 35f65846dd..f1422b634d 100644 --- a/wled00/network.cpp +++ b/wled00/network.cpp @@ -11,7 +11,7 @@ // See https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-ethernet-kit-v1.1.html#ip101gri-phy-interface #ifdef CONFIG_ETH_PHY_INTERFACE_RMII -const managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_COUNT] = { +managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_COUNT] = { { 21, true }, // RMII EMAC TX EN == When high, clocks the data on TXD0 and TXD1 to transmitter { 19, true }, // RMII EMAC TXD0 == First bit of transmitted data { 22, true }, // RMII EMAC TXD1 == Second bit of transmitted data From 214be9a22ea63f6f78af71d600cac2019ae49ccc Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 23:32:28 -0500 Subject: [PATCH 40/44] Juggling initializers --- wled00/wled_ethernet.h | 1 + 1 file changed, 1 insertion(+) diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index 54e5bc6e85..b83caf1d9e 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -23,6 +23,7 @@ #endif #ifdef CONFIG_ETH_PHY_INTERFACE_RMII +#define WLED_ETH_RSVD_PINS_COUNT 6 typedef struct EthernetSettings { uint8_t eth_address; int eth_power; From 32a0c7b255f27de82b91c3f49bfb6e19fb01c124 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 23:47:55 -0500 Subject: [PATCH 41/44] Testing intializers --- wled00/network.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wled00/network.cpp b/wled00/network.cpp index f1422b634d..e20c536503 100644 --- a/wled00/network.cpp +++ b/wled00/network.cpp @@ -11,7 +11,7 @@ // See https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-ethernet-kit-v1.1.html#ip101gri-phy-interface #ifdef CONFIG_ETH_PHY_INTERFACE_RMII -managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_COUNT] = { +managed_pin_type esp32_nonconfigurable_ethernet_pins[6] = { { 21, true }, // RMII EMAC TX EN == When high, clocks the data on TXD0 and TXD1 to transmitter { 19, true }, // RMII EMAC TXD0 == First bit of transmitted data { 22, true }, // RMII EMAC TXD1 == Second bit of transmitted data @@ -20,7 +20,7 @@ managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_COUNT] = { 27, true }, // RMII EMAC CRS_DV == Carrier Sense and RX Data Valid }; #else -managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_COUNT]; +managed_pin_type esp32_nonconfigurable_ethernet_pins;; #endif #ifndef CONFIG_ETH_SPI_ETHERNET_W5500 From f67613439f2eacfa07f0cf331f546a69309b3ec1 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 23:55:39 -0500 Subject: [PATCH 42/44] Another initializer --- wled00/wled_ethernet.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index b83caf1d9e..23735816c7 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -65,7 +65,7 @@ typedef struct EthernetSettings { extern const ethernet_settings ethernetBoards[]; #define WLED_ETH_RSVD_PINS_COUNT 0 -extern managed_pin_type esp32_nonconfigurable_ethernet_pins[WLED_ETH_RSVD_PINS_COUNT]; +extern managed_pin_type esp32_nonconfigurable_ethernet_pins; #endif #endif \ No newline at end of file From 10d70c7a45f4cdaa7b59ed57c38fb8b6cc266df8 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Tue, 20 Jan 2026 23:58:59 -0500 Subject: [PATCH 43/44] Initializers --- wled00/network.cpp | 2 -- wled00/wled_ethernet.h | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/wled00/network.cpp b/wled00/network.cpp index e20c536503..effaf1eb99 100644 --- a/wled00/network.cpp +++ b/wled00/network.cpp @@ -19,8 +19,6 @@ managed_pin_type esp32_nonconfigurable_ethernet_pins[6] = { { 26, false }, // RMII EMAC RXD1 == Second bit of received data { 27, true }, // RMII EMAC CRS_DV == Carrier Sense and RX Data Valid }; -#else -managed_pin_type esp32_nonconfigurable_ethernet_pins;; #endif #ifndef CONFIG_ETH_SPI_ETHERNET_W5500 diff --git a/wled00/wled_ethernet.h b/wled00/wled_ethernet.h index 23735816c7..7c37cf6d9f 100644 --- a/wled00/wled_ethernet.h +++ b/wled00/wled_ethernet.h @@ -65,7 +65,7 @@ typedef struct EthernetSettings { extern const ethernet_settings ethernetBoards[]; #define WLED_ETH_RSVD_PINS_COUNT 0 -extern managed_pin_type esp32_nonconfigurable_ethernet_pins; +extern managed_pin_type esp32_nonconfigurable_ethernet_pins[]; #endif #endif \ No newline at end of file From 9772e364c2a6d70f227f8dffedaeb5429271b338 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Wed, 21 Jan 2026 00:22:09 -0500 Subject: [PATCH 44/44] Hopefully this is it. --- wled00/network.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wled00/network.cpp b/wled00/network.cpp index effaf1eb99..ae37147beb 100644 --- a/wled00/network.cpp +++ b/wled00/network.cpp @@ -10,7 +10,7 @@ // can they be re-assigned through IOMUX / GPIO matrix. // See https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-ethernet-kit-v1.1.html#ip101gri-phy-interface -#ifdef CONFIG_ETH_PHY_INTERFACE_RMII +#if defined(CONFIG_ETH_PHY_INTERFACE_RMII) || (defined(ESP_IDF_VERSION_MAJOR) && ESP_IDF_VERSION_MAJOR == 3) managed_pin_type esp32_nonconfigurable_ethernet_pins[6] = { { 21, true }, // RMII EMAC TX EN == When high, clocks the data on TXD0 and TXD1 to transmitter { 19, true }, // RMII EMAC TXD0 == First bit of transmitted data