mirror of
https://github.com/gchq/CyberChef
synced 2025-12-24 12:13:42 +00:00
add Buffer translation to Dish. Cannot work in SyncDish as typeEnums are static. Seeing as they will never be hit in the broswer, shouldnt be an issue
This commit is contained in:
@@ -92,6 +92,9 @@ class SyncDish extends Dish {
|
||||
case Dish.JSON:
|
||||
this.value = this.value ? Utils.strToByteArray(JSON.stringify(this.value)) : [];
|
||||
break;
|
||||
case Dish.BUFFER:
|
||||
this.value = this.value instanceof Buffer ? this.value.buffer : [];
|
||||
break;
|
||||
// case Dish.FILE:
|
||||
// this.value = Utils.readFileSync(this.value);
|
||||
// this.value = Array.prototype.slice.call(this.value);
|
||||
@@ -134,6 +137,10 @@ class SyncDish extends Dish {
|
||||
this.value = JSON.parse(byteArrayToStr(this.value));
|
||||
this.type = Dish.JSON;
|
||||
break;
|
||||
case Dish.BUFFER:
|
||||
this.value = Buffer.from(new Uint8Array(this.value));
|
||||
this.type = Dish.BUFFER;
|
||||
break;
|
||||
// case Dish.FILE:
|
||||
// this.value = new File(this.value, "unknown");
|
||||
// break;
|
||||
@@ -145,7 +152,7 @@ class SyncDish extends Dish {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
export default SyncDish;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
* @license Apache-2.0
|
||||
*/
|
||||
|
||||
import Dish from "../core/Dish";
|
||||
import SyncDish from "./SyncDish";
|
||||
import Recipe from "./Recipe";
|
||||
import OperationConfig from "./config/OperationConfig.json";
|
||||
@@ -46,11 +47,24 @@ function extractArg(arg) {
|
||||
*
|
||||
* Argument name matching is case and space insensitive
|
||||
* @private
|
||||
* @param {Object[]} originalArgs
|
||||
* @param {Object} newArgs
|
||||
* @param {Object[]} originalArgs - the operation-s args list
|
||||
* @param {Object} newArgs - any inputted args
|
||||
*/
|
||||
function transformArgs(originalArgs, newArgs) {
|
||||
const allArgs = Object.assign([], originalArgs);
|
||||
|
||||
// Filter out arg values that are list subheadings - they are surrounded in [].
|
||||
// See Strings op for example.
|
||||
const allArgs = Object.assign([], originalArgs).map((a) => {
|
||||
if (Array.isArray(a.value)) {
|
||||
a.value = a.value.filter((v) => {
|
||||
if (typeof v === "string") {
|
||||
return !v.match(/^\[[\s\S]*\]$/); // Matches anything surrounded in [ ]
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
return a;
|
||||
});
|
||||
|
||||
if (newArgs) {
|
||||
Object.keys(newArgs).map((key) => {
|
||||
@@ -90,7 +104,7 @@ const ensureIsDish = function ensureIsDish(input) {
|
||||
dish = input;
|
||||
} else {
|
||||
dish = new SyncDish();
|
||||
const type = SyncDish.typeEnum(input.constructor.name);
|
||||
const type = Dish.typeEnum(input.constructor.name);
|
||||
dish.set(input, type);
|
||||
}
|
||||
return dish;
|
||||
|
||||
Reference in New Issue
Block a user