Added the ability to paste one or more Images from the Clipboard#1876
Added the ability to paste one or more Images from the Clipboard#1876C85297 merged 12 commits intogchq:masterfrom
Conversation
|
resolves #1852 |
|
@C85297 is there anything left for me to do to get this reviewed? It has been open and ready for quite some time. Is there anything wrong with it? Please let me know. Thanks! |
C85297
left a comment
There was a problem hiding this comment.
Thanks @t-martine for submitting this pull request, I'm sorry that it has taken us so long to review it. I've left some comments for you.
src/web/waiters/InputWaiter.mjs
Outdated
| // Event handlers | ||
| EditorView.domEventHandlers({ | ||
| paste(event, view) { | ||
| const clipboardData = event.clipboardData || window.clipboardData; |
There was a problem hiding this comment.
@t-martine what is the purpose of window.clipboardData here? I cannot find any documentation for that property.
ClipboardEvent.clipboardData is baseline widely available, so I would have thought it is fine to just use that: https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/clipboardData#browser_compatibility
There was a problem hiding this comment.
I think this was meant for backwards compatibility with IE11 but I agree to remove it since IE is officially out of support for a while now.
src/web/waiters/InputWaiter.mjs
Outdated
| event.target.files = []; | ||
| for (let i = 0; i < items.length; i++) { | ||
| const item = items[i]; | ||
| if (item.type.indexOf("image") !== -1) { |
There was a problem hiding this comment.
It would be good if we could support all file types, rather than just images. Could you not instead check item.kind === 'file'?
https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem/kind
src/web/waiters/InputWaiter.mjs
Outdated
| paste(event, view) { | ||
| const clipboardData = event.clipboardData || window.clipboardData; | ||
| const items = clipboardData.items; | ||
| event.target.files = []; |
There was a problem hiding this comment.
It seems like bad practice to me to add a custom attribute to an external type. Couldn't we create this list as a local variable, and update the signature of afterPaste to accept a list of files as a second parameter?
…all files to be pasted, not just images
|
@C85297 Thank you for the thorough review. I followed your guidance and updated the code. You can now paste any file(s) from the clipboard. Tried it with pdf, docx, csv, png, .... I kindly ask for a re-review. |
|
This is a great contribution. Thank you @t-martine ! |
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [gchq/CyberChef](https://github.com/gchq/CyberChef) | minor | `v10.21.0` -> `v10.22.1` | --- ### Release Notes <details> <summary>gchq/CyberChef (gchq/CyberChef)</summary> ### [`v10.22.1`](https://github.com/gchq/CyberChef/releases/tag/v10.22.1) [Compare Source](gchq/CyberChef@v10.22.0...v10.22.1) See the [CHANGELOG](https://github.com/gchq/CyberChef/blob/master/CHANGELOG.md) and [commit messages](https://github.com/gchq/CyberChef/commits/master) for details. ### [`v10.22.0`](https://github.com/gchq/CyberChef/blob/HEAD/CHANGELOG.md#400---2016-11-28) [Compare Source](gchq/CyberChef@v10.21.0...v10.22.0) - Initial open source commit [@​n1474335] | [b1d73a72](gchq/CyberChef@b1d73a7) [10.22.0]: https://github.com/gchq/CyberChef/releases/tag/v10.22.0 [10.21.0]: https://github.com/gchq/CyberChef/releases/tag/v10.21.0 [10.20.0]: https://github.com/gchq/CyberChef/releases/tag/v10.20.0 [10.19.0]: https://github.com/gchq/CyberChef/releases/tag/v10.19.0 [10.18.0]: https://github.com/gchq/CyberChef/releases/tag/v10.18.0 [10.17.0]: https://github.com/gchq/CyberChef/releases/tag/v10.17.0 [10.16.0]: https://github.com/gchq/CyberChef/releases/tag/v10.16.0 [10.15.0]: https://github.com/gchq/CyberChef/releases/tag/v10.15.0 [10.14.0]: https://github.com/gchq/CyberChef/releases/tag/v10.14.0 [10.13.0]: https://github.com/gchq/CyberChef/releases/tag/v10.13.0 [10.12.0]: https://github.com/gchq/CyberChef/releases/tag/v10.12.0 [10.11.0]: https://github.com/gchq/CyberChef/releases/tag/v10.11.0 [10.10.0]: https://github.com/gchq/CyberChef/releases/tag/v10.10.0 [10.9.0]: https://github.com/gchq/CyberChef/releases/tag/v10.9.0 [10.8.0]: https://github.com/gchq/CyberChef/releases/tag/v10.7.0 [10.7.0]: https://github.com/gchq/CyberChef/releases/tag/v10.7.0 [10.6.0]: https://github.com/gchq/CyberChef/releases/tag/v10.6.0 [10.5.0]: https://github.com/gchq/CyberChef/releases/tag/v10.5.0 [10.4.0]: https://github.com/gchq/CyberChef/releases/tag/v10.4.0 [10.3.0]: https://github.com/gchq/CyberChef/releases/tag/v10.3.0 [10.2.0]: https://github.com/gchq/CyberChef/releases/tag/v10.2.0 [10.1.0]: https://github.com/gchq/CyberChef/releases/tag/v10.1.0 [10.0.0]: https://github.com/gchq/CyberChef/releases/tag/v10.0.0 [9.55.0]: https://github.com/gchq/CyberChef/releases/tag/v9.55.0 [9.54.0]: https://github.com/gchq/CyberChef/releases/tag/v9.54.0 [9.53.0]: https://github.com/gchq/CyberChef/releases/tag/v9.53.0 [9.52.0]: https://github.com/gchq/CyberChef/releases/tag/v9.52.0 [9.51.0]: https://github.com/gchq/CyberChef/releases/tag/v9.51.0 [9.50.0]: https://github.com/gchq/CyberChef/releases/tag/v9.50.0 [9.49.0]: https://github.com/gchq/CyberChef/releases/tag/v9.49.0 [9.48.0]: https://github.com/gchq/CyberChef/releases/tag/v9.48.0 [9.47.0]: https://github.com/gchq/CyberChef/releases/tag/v9.47.0 [9.46.0]: https://github.com/gchq/CyberChef/releases/tag/v9.46.0 [9.45.0]: https://github.com/gchq/CyberChef/releases/tag/v9.45.0 [9.44.0]: https://github.com/gchq/CyberChef/releases/tag/v9.44.0 [9.43.0]: https://github.com/gchq/CyberChef/releases/tag/v9.43.0 [9.42.0]: https://github.com/gchq/CyberChef/releases/tag/v9.42.0 [9.41.0]: https://github.com/gchq/CyberChef/releases/tag/v9.41.0 [9.40.0]: https://github.com/gchq/CyberChef/releases/tag/v9.40.0 [9.39.0]: https://github.com/gchq/CyberChef/releases/tag/v9.39.0 [9.38.0]: https://github.com/gchq/CyberChef/releases/tag/v9.38.0 [9.37.0]: https://github.com/gchq/CyberChef/releases/tag/v9.37.0 [9.36.0]: https://github.com/gchq/CyberChef/releases/tag/v9.36.0 [9.35.0]: https://github.com/gchq/CyberChef/releases/tag/v9.35.0 [9.34.0]: https://github.com/gchq/CyberChef/releases/tag/v9.34.0 [9.33.0]: https://github.com/gchq/CyberChef/releases/tag/v9.33.0 [9.32.0]: https://github.com/gchq/CyberChef/releases/tag/v9.32.0 [9.31.0]: https://github.com/gchq/CyberChef/releases/tag/v9.31.0 [9.30.0]: https://github.com/gchq/CyberChef/releases/tag/v9.30.0 [9.29.0]: https://github.com/gchq/CyberChef/releases/tag/v9.29.0 [9.28.0]: https://github.com/gchq/CyberChef/releases/tag/v9.28.0 [9.27.0]: https://github.com/gchq/CyberChef/releases/tag/v9.27.0 [9.26.0]: https://github.com/gchq/CyberChef/releases/tag/v9.26.0 [9.25.0]: https://github.com/gchq/CyberChef/releases/tag/v9.25.0 [9.24.0]: https://github.com/gchq/CyberChef/releases/tag/v9.24.0 [9.23.0]: https://github.com/gchq/CyberChef/releases/tag/v9.23.0 [9.22.0]: https://github.com/gchq/CyberChef/releases/tag/v9.22.0 [9.21.0]: https://github.com/gchq/CyberChef/releases/tag/v9.21.0 [9.20.0]: https://github.com/gchq/CyberChef/releases/tag/v9.20.0 [9.19.0]: https://github.com/gchq/CyberChef/releases/tag/v9.19.0 [9.18.0]: https://github.com/gchq/CyberChef/releases/tag/v9.18.0 [9.17.0]: https://github.com/gchq/CyberChef/releases/tag/v9.17.0 [9.16.0]: https://github.com/gchq/CyberChef/releases/tag/v9.16.0 [9.15.0]: https://github.com/gchq/CyberChef/releases/tag/v9.15.0 [9.14.0]: https://github.com/gchq/CyberChef/releases/tag/v9.14.0 [9.13.0]: https://github.com/gchq/CyberChef/releases/tag/v9.13.0 [9.12.0]: https://github.com/gchq/CyberChef/releases/tag/v9.12.0 [9.11.0]: https://github.com/gchq/CyberChef/releases/tag/v9.11.0 [9.10.0]: https://github.com/gchq/CyberChef/releases/tag/v9.10.0 [9.9.0]: https://github.com/gchq/CyberChef/releases/tag/v9.9.0 [9.8.0]: https://github.com/gchq/CyberChef/releases/tag/v9.8.0 [9.7.0]: https://github.com/gchq/CyberChef/releases/tag/v9.7.0 [9.6.0]: https://github.com/gchq/CyberChef/releases/tag/v9.6.0 [9.5.0]: https://github.com/gchq/CyberChef/releases/tag/v9.5.0 [9.4.0]: https://github.com/gchq/CyberChef/releases/tag/v9.4.0 [9.3.0]: https://github.com/gchq/CyberChef/releases/tag/v9.3.0 [9.2.0]: https://github.com/gchq/CyberChef/releases/tag/v9.2.0 [9.1.0]: https://github.com/gchq/CyberChef/releases/tag/v9.1.0 [9.0.0]: https://github.com/gchq/CyberChef/releases/tag/v9.0.0 [8.38.0]: https://github.com/gchq/CyberChef/releases/tag/v8.38.0 [8.37.0]: https://github.com/gchq/CyberChef/releases/tag/v8.37.0 [8.36.0]: https://github.com/gchq/CyberChef/releases/tag/v8.36.0 [8.35.0]: https://github.com/gchq/CyberChef/releases/tag/v8.35.0 [8.34.0]: https://github.com/gchq/CyberChef/releases/tag/v8.34.0 [8.33.0]: https://github.com/gchq/CyberChef/releases/tag/v8.33.0 [8.32.0]: https://github.com/gchq/CyberChef/releases/tag/v8.32.0 [8.31.0]: https://github.com/gchq/CyberChef/releases/tag/v8.31.0 [8.30.0]: https://github.com/gchq/CyberChef/releases/tag/v8.30.0 [8.29.0]: https://github.com/gchq/CyberChef/releases/tag/v8.29.0 [8.28.0]: https://github.com/gchq/CyberChef/releases/tag/v8.28.0 [8.27.0]: https://github.com/gchq/CyberChef/releases/tag/v8.27.0 [8.26.0]: https://github.com/gchq/CyberChef/releases/tag/v8.26.0 [8.25.0]: https://github.com/gchq/CyberChef/releases/tag/v8.25.0 [8.24.0]: https://github.com/gchq/CyberChef/releases/tag/v8.24.0 [8.23.1]: https://github.com/gchq/CyberChef/releases/tag/v8.23.1 [8.23.0]: https://github.com/gchq/CyberChef/releases/tag/v8.23.0 [8.22.0]: https://github.com/gchq/CyberChef/releases/tag/v8.22.0 [8.21.0]: https://github.com/gchq/CyberChef/releases/tag/v8.21.0 [8.20.0]: https://github.com/gchq/CyberChef/releases/tag/v8.20.0 [8.19.0]: https://github.com/gchq/CyberChef/releases/tag/v8.19.0 [8.18.0]: https://github.com/gchq/CyberChef/releases/tag/v8.18.0 [8.17.0]: https://github.com/gchq/CyberChef/releases/tag/v8.17.0 [8.16.0]: https://github.com/gchq/CyberChef/releases/tag/v8.16.0 [8.15.0]: https://github.com/gchq/CyberChef/releases/tag/v8.15.0 [8.14.0]: https://github.com/gchq/CyberChef/releases/tag/v8.14.0 [8.13.0]: https://github.com/gchq/CyberChef/releases/tag/v8.13.0 [8.12.0]: https://github.com/gchq/CyberChef/releases/tag/v8.12.0 [8.11.0]: https://github.com/gchq/CyberChef/releases/tag/v8.11.0 [8.10.0]: https://github.com/gchq/CyberChef/releases/tag/v8.10.0 [8.9.0]: https://github.com/gchq/CyberChef/releases/tag/v8.9.0 [8.8.0]: https://github.com/gchq/CyberChef/releases/tag/v8.8.0 [8.7.0]: https://github.com/gchq/CyberChef/releases/tag/v8.7.0 [8.6.0]: https://github.com/gchq/CyberChef/releases/tag/v8.6.0 [8.5.0]: https://github.com/gchq/CyberChef/releases/tag/v8.5.0 [8.4.0]: https://github.com/gchq/CyberChef/releases/tag/v8.4.0 [8.3.0]: https://github.com/gchq/CyberChef/releases/tag/v8.3.0 [8.2.0]: https://github.com/gchq/CyberChef/releases/tag/v8.2.0 [8.1.0]: https://github.com/gchq/CyberChef/releases/tag/v8.1.0 [8.0.0]: https://github.com/gchq/CyberChef/releases/tag/v8.0.0 [7.0.0]: https://github.com/gchq/CyberChef/releases/tag/v7.0.0 [6.0.0]: https://github.com/gchq/CyberChef/releases/tag/v6.0.0 [5.0.0]: https://github.com/gchq/CyberChef/releases/tag/v5.0.0 [4.0.0]: gchq/CyberChef@b1d73a7 [@​n1474335]: https://github.com/n1474335 [@​d98762625]: https://github.com/d98762625 [@​j433866]: https://github.com/j433866 [@​n1073645]: https://github.com/n1073645 [@​GCHQ77703]: https://github.com/GCHQ77703 [@​h345983745]: https://github.com/h345983745 [@​s2224834]: https://github.com/s2224834 [@​artemisbot]: https://github.com/artemisbot [@​tlwr]: https://github.com/tlwr [@​picapi]: https://github.com/picapi [@​Dachande663]: https://github.com/Dachande663 [@​JustAnotherMark]: https://github.com/JustAnotherMark [@​sevzero]: https://github.com/sevzero [@​PenguinGeorge]: https://github.com/PenguinGeorge [@​arnydo]: https://github.com/arnydo [@​klaxon1]: https://github.com/klaxon1 [@​bwhitn]: https://github.com/bwhitn [@​jarmovanlenthe]: https://github.com/jarmovanlenthe [@​tcode2k16]: https://github.com/tcode2k16 [@​Cynser]: https://github.com/Cynser [@​anthony-arnold]: https://github.com/anthony-arnold [@​masq]: https://github.com/masq [@​Ge0rg3]: https://github.com/Ge0rg3 [@​MShwed]: https://github.com/MShwed [@​kassi]: https://github.com/kassi [@​jarrodconnolly]: https://github.com/jarrodconnolly [@​VirtualColossus]: https://github.com/VirtualColossus [@​cbeuw]: https://github.com/cbeuw [@​matthieuxyz]: https://github.com/matthieuxyz [@​Flavsditz]: https://github.com/Flavsditz [@​pointhi]: https://github.com/pointhi [@​MarvinJWendt]: https://github.com/MarvinJWendt [@​dmfj]: https://github.com/dmfj [@​mattnotmitt]: https://github.com/mattnotmitt [@​Danh4]: https://github.com/Danh4 [@​john19696]: https://github.com/john19696 [@​t-8ch]: https://github.com/t-8ch [@​hettysymes]: https://github.com/hettysymes [@​swesven]: https://github.com/swesven [@​mikecat]: https://github.com/mikecat [@​crespyl]: https://github.com/crespyl [@​thomasleplus]: https://github.com/thomasleplus [@​valdelaseras]: https://github.com/valdelaseras [@​brun0ne]: https://github.com/brun0ne [@​joostrijneveld]: https://github.com/joostrijneveld [@​Xenonym]: https://github.com/Xenonym [@​gchq77703]: https://github.com/gchq77703 [@​a3957273]: https://github.com/a3957273 [@​0xThiebaut]: https://github.com/0xThiebaut [@​cnotin]: https://github.com/cnotin [@​KevinSJ]: https://github.com/KevinSJ [@​sw5678]: https://github.com/sw5678 [@​sg5506844]: https://github.com/sg5506844 [@​AliceGrey]: https://github.com/AliceGrey [@​AshCorr]: https://github.com/AshCorr [@​simonw]: https://github.com/simonw [@​chriswhite199]: https://github.com/chriswhite199 [@​breakersall]: https://github.com/breakersall [@​evanreichard]: https://github.com/evanreichard [@​devcydo]: https://github.com/devcydo [@​zb3]: https://github.com/zb3 [@​jkataja]: https://github.com/jkataja [@​tomgond]: https://github.com/tomgond [@​e218736]: https://github.com/e218736 [@​TheZ3ro]: https://github.com/TheZ3ro [@​EvieHarv]: https://github.com/EvieHarv [@​cplussharp]: https://github.com/cplussharp [@​robinsandhu]: https://github.com/robinsandhu [@​eltociear]: https://github.com/eltociear [@​GuilhermoReadonly]: https://github.com/GuilhermoReadonly [@​simonarnell]: https://github.com/simonarnell [@​RandomByte]: https://github.com/RandomByte [@​c65722]: https://github.com/c65722 [@​c65722]: https://github.com/c65722 [@​c65722]: https://github.com/c65722 [@​max0x53]: https://github.com/max0x53 [@​Adamkadaban]: https://github.com/Adamkadaban [@​c65722]: https://github.com/c65722 [@​jb30795]: https://github.com/jb30795 [@​FranciscoPombal]: https://github.com/FranciscoPombal [@​Oshawk]: https://github.com/Oshawk [@​Oshawk]: https://github.com/Oshawk [@​bartblaze]: https://github.com/bartblaze [@​exactlyaron]: https://github.com/exactlyaron [@​k3ach]: https://github.com/k3ach [@​vs4vijay]: https://github.com/vs4vijay [@​FranciscoPombal]: https://github.com/FranciscoPombal [@​FranciscoPombal]: https://github.com/FranciscoPombal [@​linuxgemini]: https://github.com/linuxgemini [@​depperm]: https://github.com/depperm [@​evenstensberg]: https://github.com/evenstensberg [@​bartblaze]: https://github.com/bartblaze [@​0xh3xa]: https://github.com/0xh3xa [@​flakjacket95]: https://github.com/flakjacket95 [@​zhzy0077]: https://github.com/zhzy0077 [@​JSCU-CNI]: https://github.com/JSCU-CNI [@​ccarpo]: https://github.com/ccarpo [@​r4mos]: https://github.com/r4mos [@​0xh3xa]: https://github.com/0xh3xa [@​0xh3xa]: https://github.com/0xh3xa [@​PathToLife]: https://github.com/PathToLife [@​peterc-s]: https://github.com/peterc-s [@​plvie]: https://github.com/plvie [@​kenduguay1]: https://github.com/kenduguay1 [@​jonking-ajar]: https://github.com/jonking-ajar [@​PathToLife]: https://github.com/PathToLife [@​r4mos]: https://github.com/r4mos [@​jg42526]: https://github.com/jg42526 [@​es45411]: https://github.com/es45411 [@​gchq]: https://github.com/gchq [@​gchqdev364]: https://github.com/gchqdev364 [@​GCHQDeveloper94872]: https://github.com/GCHQDeveloper94872 [@​Sma-Das]: https://github.com/Sma-Das [@​gchq]: https://github.com/gchq [@​Odyhibit]: https://github.com/Odyhibit [@​ericli-splunk]: https://github.com/ericli-splunk [@​xumptex]: https://github.com/xumptex [@​bartvanandel]: https://github.com/bartvanandel [@​bartvanandel]: https://github.com/bartvanandel [@​kendallgoto]: https://github.com/kendallgoto [@​remingtr]: https://github.com/remingtr [@​0xff1ce]: https://github.com/0xff1ce [@​starplanet]: https://github.com/starplanet [@​C85297]: https://github.com/C85297 [@​GCHQDeveloper581]: https://github.com/GCHQDeveloper581 [@​ThomasNotTom]: https://github.com/ThomasNotTom [@​rbpi]: https://github.com/rbpi [@​AlexGustafsson]: https://github.com/AlexGustafsson [@​tuliperis]: https://github.com/tuliperis [@​thomasxm]: https://github.com/thomasxm [@​twostraws]: https://github.com/twostraws [@​beneri]: https://github.com/beneri [@​t-martine]: https://github.com/t-martine [@​wesinator]: https://github.com/wesinator [@​Raka-loah]: https://github.com/Raka-loah [8ad18b]: gchq/CyberChef@8ad18bc [9a33498]: gchq/CyberChef@9a33498 [289a417]: gchq/CyberChef@289a417 [e9ca4dc]: gchq/CyberChef@e9ca4dc [dd18e52]: gchq/CyberChef@dd18e52 [a895d1d]: gchq/CyberChef@a895d1d [31a7f83]: gchq/CyberChef@31a7f83 [760eff4]: gchq/CyberChef@760eff4 [65ffd8d]: gchq/CyberChef@65ffd8d [0a353ee]: gchq/CyberChef@0a353ee [66d445c]: gchq/CyberChef@66d445c [ab37c1e]: gchq/CyberChef@ab37c1e [965570d]: gchq/CyberChef@965570d [a477f47]: gchq/CyberChef@a477f47 [7a5225c]: gchq/CyberChef@7a5225c [5f88ae4]: gchq/CyberChef@5f88ae4 [0e82e4b]: gchq/CyberChef@0e82e4b [d635cca]: gchq/CyberChef@d635cca [895a929]: gchq/CyberChef@895a929 [270a333]: gchq/CyberChef@270a333 [d3adfc7]: gchq/CyberChef@d3adfc7 [47c85a1]: gchq/CyberChef@47c85a1 [3822c6c]: gchq/CyberChef@3822c6c [66d445c]: gchq/CyberChef@66d445c [ab37c1e]: gchq/CyberChef@ab37c1e [965570d]: gchq/CyberChef@965570d [a477f47]: gchq/CyberChef@a477f47 [7a5225c]: gchq/CyberChef@7a5225c [5f88ae4]: gchq/CyberChef@5f88ae4 [0e82e4b]: gchq/CyberChef@0e82e4b [d635cca]: gchq/CyberChef@d635cca [895a929]: gchq/CyberChef@895a929 [270a333]: gchq/CyberChef@270a333 [d3adfc7]: gchq/CyberChef@d3adfc7 [47c85a1]: gchq/CyberChef@47c85a1 [3822c6c]: gchq/CyberChef@3822c6c [66d445c]: gchq/CyberChef@66d445c [ab37c1e]: gchq/CyberChef@ab37c1e [965570d]: gchq/CyberChef@965570d [a477f47]: gchq/CyberChef@a477f47 [7a5225c]: gchq/CyberChef@7a5225c [5f88ae4]: gchq/CyberChef@5f88ae4 [0e82e4b]: gchq/CyberChef@0e82e4b [d635cca]: gchq/CyberChef@d635cca [895a929]: gchq/CyberChef@895a929 [270a333]: gchq/CyberChef@270a333 [d3adfc7]: gchq/CyberChef@d3adfc7 [47c85a1]: gchq/CyberChef@47c85a1 [3822c6c]: gchq/CyberChef@3822c6c [66d445c]: gchq/CyberChef@66d445c [#​95]: gchq/CyberChef#299 [#​173]: gchq/CyberChef#173 [#​143]: gchq/CyberChef#143 [#​224]: gchq/CyberChef#224 [#​239]: gchq/CyberChef#239 [#​248]: gchq/CyberChef#248 [#​255]: gchq/CyberChef#255 [#​277]: gchq/CyberChef#277 [#​281]: gchq/CyberChef#281 [#​284]: gchq/CyberChef#284 [#​291]: gchq/CyberChef#291 [#​294]: gchq/CyberChef#294 [#​296]: gchq/CyberChef#296 [#​298]: gchq/CyberChef#298 [#​311]: gchq/CyberChef#311 [#​325]: gchq/CyberChef#325 [#​338]: gchq/CyberChef#338 [#​340]: gchq/CyberChef#340 [#​344]: gchq/CyberChef#344 [#​348]: gchq/CyberChef#348 [#​351]: gchq/CyberChef#351 [#​387]: gchq/CyberChef#387 [#​394]: gchq/CyberChef#394 [#​428]: gchq/CyberChef#428 [#​439]: gchq/CyberChef#439 [#​440]: gchq/CyberChef#440 [#​441]: gchq/CyberChef#441 [#​443]: gchq/CyberChef#443 [#​446]: gchq/CyberChef#446 [#​448]: gchq/CyberChef#448 [#​449]: gchq/CyberChef#449 [#​455]: gchq/CyberChef#455 [#​458]: gchq/CyberChef#458 [#​461]: gchq/CyberChef#461 [#​467]: gchq/CyberChef#467 [#​468]: gchq/CyberChef#468 [#​476]: gchq/CyberChef#476 [#​477]: gchq/CyberChef#477 [#​489]: gchq/CyberChef#489 [#​496]: gchq/CyberChef#496 [#​500]: gchq/CyberChef#500 [#​506]: gchq/CyberChef#506 [#​515]: gchq/CyberChef#515 [#​516]: gchq/CyberChef#516 [#​525]: gchq/CyberChef#525 [#​528]: gchq/CyberChef#528 [#​530]: gchq/CyberChef#530 [#​531]: gchq/CyberChef#531 [#​533]: gchq/CyberChef#533 [#​535]: gchq/CyberChef#535 [#​556]: gchq/CyberChef#556 [#​566]: gchq/CyberChef#566 [#​571]: gchq/CyberChef#571 [#​585]: gchq/CyberChef#585 [#​591]: gchq/CyberChef#591 [#​595]: gchq/CyberChef#595 [#​614]: gchq/CyberChef#614 [#​625]: gchq/CyberChef#625 [#​627]: gchq/CyberChef#627 [#​632]: gchq/CyberChef#632 [#​652]: gchq/CyberChef#652 [#​653]: gchq/CyberChef#653 [#​674]: gchq/CyberChef#674 [#​683]: gchq/CyberChef#683 [#​865]: gchq/CyberChef#865 [#​906]: gchq/CyberChef#906 [#​912]: gchq/CyberChef#912 [#​917]: gchq/CyberChef#917 [#​934]: gchq/CyberChef#934 [#​948]: gchq/CyberChef#948 [#​951]: gchq/CyberChef#951 [#​952]: gchq/CyberChef#952 [#​965]: gchq/CyberChef#965 [#​966]: gchq/CyberChef#966 [#​987]: gchq/CyberChef#987 [#​999]: gchq/CyberChef#999 [#​1006]: gchq/CyberChef#1006 [#​1022]: gchq/CyberChef#1022 [#​1037]: gchq/CyberChef#1037 [#​1045]: gchq/CyberChef#1045 [#​1049]: gchq/CyberChef#1049 [#​1065]: gchq/CyberChef#1065 [#​1066]: gchq/CyberChef#1066 [#​1083]: gchq/CyberChef#1083 [#​1189]: gchq/CyberChef#1189 [#​1242]: gchq/CyberChef#1242 [#​1244]: gchq/CyberChef#1244 [#​1313]: gchq/CyberChef#1313 [#​1326]: gchq/CyberChef#1326 [#​1364]: gchq/CyberChef#1364 [#​1264]: gchq/CyberChef#1264 [#​1266]: gchq/CyberChef#1266 [#​1250]: gchq/CyberChef#1250 [#​1308]: gchq/CyberChef#1308 [#​1405]: gchq/CyberChef#1405 [#​1421]: gchq/CyberChef#1421 [#​1427]: gchq/CyberChef#1427 [#​1472]: gchq/CyberChef#1472 [#​1457]: gchq/CyberChef#1457 [#​1466]: gchq/CyberChef#1466 [#​1456]: gchq/CyberChef#1456 [#​1450]: gchq/CyberChef#1450 [#​1498]: gchq/CyberChef#1498 [#​1499]: gchq/CyberChef#1499 [#​1528]: gchq/CyberChef#1528 [#​661]: gchq/CyberChef#661 [#​493]: gchq/CyberChef#493 [#​592]: gchq/CyberChef#592 [#​1703]: gchq/CyberChef#1703 [#​1675]: gchq/CyberChef#1675 [#​1678]: gchq/CyberChef#1678 [#​1541]: gchq/CyberChef#1541 [#​1667]: gchq/CyberChef#1667 [#​1555]: gchq/CyberChef#1555 [#​1694]: gchq/CyberChef#1694 [#​1699]: gchq/CyberChef#1699 [#​1757]: gchq/CyberChef#1757 [#​1752]: gchq/CyberChef#1752 [#​1753]: gchq/CyberChef#1753 [#​1750]: gchq/CyberChef#1750 [#​1591]: gchq/CyberChef#1591 [#​654]: gchq/CyberChef#654 [#​1762]: gchq/CyberChef#1762 [#​1606]: gchq/CyberChef#1606 [#​1197]: gchq/CyberChef#1197 [#​933]: gchq/CyberChef#933 [#​1361]: gchq/CyberChef#1361 [#​1765]: gchq/CyberChef#1765 [#​1767]: gchq/CyberChef#1767 [#​1769]: gchq/CyberChef#1769 [#​1759]: gchq/CyberChef#1759 [#​1504]: gchq/CyberChef#1504 [#​512]: gchq/CyberChef#512 [#​1732]: gchq/CyberChef#1732 [#​1789]: gchq/CyberChef#1789 [#​1040]: gchq/CyberChef#1040 [#​2176]: gchq/CyberChef#2176 [#​2177]: gchq/CyberChef#2177 [#​2174]: gchq/CyberChef#2174 [#​2058]: gchq/CyberChef#2058 [#​1861]: gchq/CyberChef#1861 [#​2055]: gchq/CyberChef#2055 [#​2169]: gchq/CyberChef#2169 [#​2175]: gchq/CyberChef#2175 [#​2173]: gchq/CyberChef#2173 [#​2172]: gchq/CyberChef#2172 [#​2136]: gchq/CyberChef#2136 [#​2165]: gchq/CyberChef#2165 [#​2159]: gchq/CyberChef#2159 [#​2086]: gchq/CyberChef#2086 [#​2118]: gchq/CyberChef#2118 [#​2166]: gchq/CyberChef#2166 [#​2188]: gchq/CyberChef#2188 [#​2137]: gchq/CyberChef#2137 [#​1876]: gchq/CyberChef#1876 [#​2186]: gchq/CyberChef#2186 [#​1573]: gchq/CyberChef#1573 [#​2183]: gchq/CyberChef#2183 [#​2182]: gchq/CyberChef#2182 [#​2181]: gchq/CyberChef#2181 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Reviewed-on: https://git.walbeck.it/mwalbeck/docker-cyberchef/pulls/452 Co-authored-by: renovate-bot <bot@walbeck.it> Co-committed-by: renovate-bot <bot@walbeck.it>
Incorporates 37 upstream commits from gchq/CyberChef master including: - Fix: Move Magic checks from Escape to Unescape Unicode Characters (gchq#2195) - Paste spreadsheets as text (gchq#2200) - Fix Roboto Mono font (gchq#2199) - Fix return of buffer for PNG QR image generation (gchq#2125) - Update JIMP (gchq#2171) - Bump v10.22.1 (gchq#2193) - Bump v10.22.0 (gchq#2189) - Fixed Percent delimiter for hex encoding (gchq#2137) - Added ability to paste Images from Clipboard (gchq#1876) - Quoted Printable improvements (gchq#2186) - Fix freeze when output text decoding fails (gchq#1573) - Fix import operations with special chars (gchq#1040) - Add Bech32 encode/decode operations - Various bug fixes and improvements Conflict resolution: - Workflow files: kept Node 24 + actions@v4 (local upgrade) - package.json: kept jsonwebtoken 9.0.0, fixJimpModule postinstall, added upstream 'tag' script - package-lock.json: kept local version (consistent with jimp 1.6.0 install) - sitemap.mjs: kept modern 'with' import assertion syntax - Code.mjs: kept escaped curly brace regex for Node 24 compatibility - newMinorVersion.mjs: added upstream ignoredAuthors constant https://claude.ai/code/session_011xozAMdxys1JF7nLRQsMtg
We have added the ability to paste one or more images directly from the clipboard. This is especially useful if we need screenshots as input, e.g., for QR code analysis.
To use this feature: